@alfalab/core-components-table 3.0.0 → 3.1.0-snapshot-92b8690

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 (228) hide show
  1. package/components/pagination/index.css +8 -8
  2. package/components/pagination/index.module.css.js +1 -1
  3. package/components/pagination/index.module.css.js.map +1 -1
  4. package/components/pagination/select-field/index.css +3 -3
  5. package/components/pagination/select-field/index.module.css.js +1 -1
  6. package/components/pagination/select-field/index.module.css.js.map +1 -1
  7. package/components/table/index.css +6 -6
  8. package/components/table/index.module.css.js +1 -1
  9. package/components/table/index.module.css.js.map +1 -1
  10. package/components/tbody/index.css +1 -1
  11. package/components/tbody/index.module.css.js +1 -1
  12. package/components/tbody/index.module.css.js.map +1 -1
  13. package/components/tcell/index.css +5 -5
  14. package/components/tcell/index.module.css.js +1 -1
  15. package/components/tcell/index.module.css.js.map +1 -1
  16. package/components/texpandable-row/index.css +4 -4
  17. package/components/texpandable-row/index.module.css.js +1 -1
  18. package/components/texpandable-row/index.module.css.js.map +1 -1
  19. package/components/thead/index.css +5 -5
  20. package/components/thead/index.module.css.js +1 -1
  21. package/components/thead/index.module.css.js.map +1 -1
  22. package/components/thead-cell/index.css +8 -8
  23. package/components/thead-cell/index.module.css.js +1 -1
  24. package/components/thead-cell/index.module.css.js.map +1 -1
  25. package/components/trow/index.css +7 -7
  26. package/components/trow/index.module.css.js +1 -1
  27. package/components/trow/index.module.css.js.map +1 -1
  28. package/components/tsortable-head-cell/index.css +7 -7
  29. package/components/tsortable-head-cell/index.module.css.js +1 -1
  30. package/components/tsortable-head-cell/index.module.css.js.map +1 -1
  31. package/dynamic-mixins/component.d.ts +43 -0
  32. package/dynamic-mixins/component.js +36 -0
  33. package/dynamic-mixins/component.js.map +1 -0
  34. package/dynamic-mixins/components/index.d.ts +9 -0
  35. package/dynamic-mixins/components/index.js +26 -0
  36. package/dynamic-mixins/components/index.js.map +1 -0
  37. package/dynamic-mixins/components/pagination/Component.d.ts +25 -0
  38. package/dynamic-mixins/components/pagination/Component.js +48 -0
  39. package/dynamic-mixins/components/pagination/Component.js.map +1 -0
  40. package/dynamic-mixins/components/pagination/index.css +42 -0
  41. package/dynamic-mixins/components/pagination/index.d.ts +1 -0
  42. package/dynamic-mixins/components/pagination/index.js +10 -0
  43. package/dynamic-mixins/components/pagination/index.js.map +1 -0
  44. package/dynamic-mixins/components/pagination/index.module.css.js +8 -0
  45. package/dynamic-mixins/components/pagination/index.module.css.js.map +1 -0
  46. package/dynamic-mixins/components/pagination/select-field/index.css +9 -0
  47. package/dynamic-mixins/components/pagination/select-field/index.d.ts +2 -0
  48. package/dynamic-mixins/components/pagination/select-field/index.js +25 -0
  49. package/dynamic-mixins/components/pagination/select-field/index.js.map +1 -0
  50. package/dynamic-mixins/components/pagination/select-field/index.module.css.js +8 -0
  51. package/dynamic-mixins/components/pagination/select-field/index.module.css.js.map +1 -0
  52. package/dynamic-mixins/components/table/Component.d.ts +69 -0
  53. package/dynamic-mixins/components/table/Component.js +47 -0
  54. package/dynamic-mixins/components/table/Component.js.map +1 -0
  55. package/dynamic-mixins/components/table/index.css +30 -0
  56. package/dynamic-mixins/components/table/index.d.ts +1 -0
  57. package/dynamic-mixins/components/table/index.js +10 -0
  58. package/dynamic-mixins/components/table/index.js.map +1 -0
  59. package/dynamic-mixins/components/table/index.module.css.js +8 -0
  60. package/dynamic-mixins/components/table/index.module.css.js.map +1 -0
  61. package/dynamic-mixins/components/table/utils.d.ts +3 -0
  62. package/dynamic-mixins/components/table/utils.js +26 -0
  63. package/dynamic-mixins/components/table/utils.js.map +1 -0
  64. package/dynamic-mixins/components/table-context/index.d.ts +17 -0
  65. package/dynamic-mixins/components/table-context/index.js +22 -0
  66. package/dynamic-mixins/components/table-context/index.js.map +1 -0
  67. package/dynamic-mixins/components/tbody/Component.d.ts +21 -0
  68. package/dynamic-mixins/components/tbody/Component.js +22 -0
  69. package/dynamic-mixins/components/tbody/Component.js.map +1 -0
  70. package/dynamic-mixins/components/tbody/index.css +4 -0
  71. package/dynamic-mixins/components/tbody/index.d.ts +1 -0
  72. package/dynamic-mixins/components/tbody/index.js +10 -0
  73. package/dynamic-mixins/components/tbody/index.js.map +1 -0
  74. package/dynamic-mixins/components/tbody/index.module.css.js +8 -0
  75. package/dynamic-mixins/components/tbody/index.module.css.js.map +1 -0
  76. package/dynamic-mixins/components/tcell/Component.d.ts +16 -0
  77. package/dynamic-mixins/components/tcell/Component.js +29 -0
  78. package/dynamic-mixins/components/tcell/Component.js.map +1 -0
  79. package/dynamic-mixins/components/tcell/index.css +37 -0
  80. package/dynamic-mixins/components/tcell/index.d.ts +1 -0
  81. package/dynamic-mixins/components/tcell/index.js +10 -0
  82. package/dynamic-mixins/components/tcell/index.js.map +1 -0
  83. package/dynamic-mixins/components/tcell/index.module.css.js +8 -0
  84. package/dynamic-mixins/components/tcell/index.module.css.js.map +1 -0
  85. package/dynamic-mixins/components/texpandable-row/Component.d.ts +22 -0
  86. package/dynamic-mixins/components/texpandable-row/Component.js +38 -0
  87. package/dynamic-mixins/components/texpandable-row/Component.js.map +1 -0
  88. package/dynamic-mixins/components/texpandable-row/index.css +15 -0
  89. package/dynamic-mixins/components/texpandable-row/index.d.ts +1 -0
  90. package/dynamic-mixins/components/texpandable-row/index.js +10 -0
  91. package/dynamic-mixins/components/texpandable-row/index.js.map +1 -0
  92. package/dynamic-mixins/components/texpandable-row/index.module.css.js +8 -0
  93. package/dynamic-mixins/components/texpandable-row/index.module.css.js.map +1 -0
  94. package/dynamic-mixins/components/thead/Component.d.ts +16 -0
  95. package/dynamic-mixins/components/thead/Component.js +22 -0
  96. package/dynamic-mixins/components/thead/Component.js.map +1 -0
  97. package/dynamic-mixins/components/thead/index.css +28 -0
  98. package/dynamic-mixins/components/thead/index.d.ts +1 -0
  99. package/dynamic-mixins/components/thead/index.js +10 -0
  100. package/dynamic-mixins/components/thead/index.js.map +1 -0
  101. package/dynamic-mixins/components/thead/index.module.css.js +8 -0
  102. package/dynamic-mixins/components/thead/index.module.css.js.map +1 -0
  103. package/dynamic-mixins/components/thead-cell/Component.d.ts +25 -0
  104. package/dynamic-mixins/components/thead-cell/Component.js +28 -0
  105. package/dynamic-mixins/components/thead-cell/Component.js.map +1 -0
  106. package/dynamic-mixins/components/thead-cell/index.css +45 -0
  107. package/dynamic-mixins/components/thead-cell/index.d.ts +1 -0
  108. package/dynamic-mixins/components/thead-cell/index.js +10 -0
  109. package/dynamic-mixins/components/thead-cell/index.js.map +1 -0
  110. package/dynamic-mixins/components/thead-cell/index.module.css.js +8 -0
  111. package/dynamic-mixins/components/thead-cell/index.module.css.js.map +1 -0
  112. package/dynamic-mixins/components/trow/Component.d.ts +48 -0
  113. package/dynamic-mixins/components/trow/Component.js +27 -0
  114. package/dynamic-mixins/components/trow/Component.js.map +1 -0
  115. package/dynamic-mixins/components/trow/index.css +24 -0
  116. package/dynamic-mixins/components/trow/index.d.ts +1 -0
  117. package/dynamic-mixins/components/trow/index.js +10 -0
  118. package/dynamic-mixins/components/trow/index.js.map +1 -0
  119. package/dynamic-mixins/components/trow/index.module.css.js +8 -0
  120. package/dynamic-mixins/components/trow/index.module.css.js.map +1 -0
  121. package/dynamic-mixins/components/tsortable-head-cell/Component.d.ts +8 -0
  122. package/dynamic-mixins/components/tsortable-head-cell/Component.js +39 -0
  123. package/dynamic-mixins/components/tsortable-head-cell/Component.js.map +1 -0
  124. package/dynamic-mixins/components/tsortable-head-cell/index.css +30 -0
  125. package/dynamic-mixins/components/tsortable-head-cell/index.d.ts +1 -0
  126. package/dynamic-mixins/components/tsortable-head-cell/index.js +10 -0
  127. package/dynamic-mixins/components/tsortable-head-cell/index.js.map +1 -0
  128. package/dynamic-mixins/components/tsortable-head-cell/index.module.css.js +8 -0
  129. package/dynamic-mixins/components/tsortable-head-cell/index.module.css.js.map +1 -0
  130. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-asc.d.ts +2 -0
  131. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-asc.js +16 -0
  132. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-asc.js.map +1 -0
  133. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-desc.d.ts +2 -0
  134. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-desc.js +16 -0
  135. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-desc.js.map +1 -0
  136. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-unset.d.ts +2 -0
  137. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-unset.js +16 -0
  138. package/dynamic-mixins/components/tsortable-head-cell/sort-icon-unset.js.map +1 -0
  139. package/dynamic-mixins/index.d.ts +1 -0
  140. package/dynamic-mixins/index.js +28 -0
  141. package/dynamic-mixins/index.js.map +1 -0
  142. package/dynamic-mixins/typings.d.ts +1 -0
  143. package/dynamic-mixins/typings.js +3 -0
  144. package/dynamic-mixins/typings.js.map +1 -0
  145. package/dynamic-mixins/utils.d.ts +2 -0
  146. package/dynamic-mixins/utils.js +17 -0
  147. package/dynamic-mixins/utils.js.map +1 -0
  148. package/esm/components/pagination/index.css +8 -8
  149. package/esm/components/pagination/index.module.css.js +1 -1
  150. package/esm/components/pagination/index.module.css.js.map +1 -1
  151. package/esm/components/pagination/select-field/index.css +3 -3
  152. package/esm/components/pagination/select-field/index.module.css.js +1 -1
  153. package/esm/components/pagination/select-field/index.module.css.js.map +1 -1
  154. package/esm/components/table/index.css +6 -6
  155. package/esm/components/table/index.module.css.js +1 -1
  156. package/esm/components/table/index.module.css.js.map +1 -1
  157. package/esm/components/tbody/index.css +1 -1
  158. package/esm/components/tbody/index.module.css.js +1 -1
  159. package/esm/components/tbody/index.module.css.js.map +1 -1
  160. package/esm/components/tcell/index.css +5 -5
  161. package/esm/components/tcell/index.module.css.js +1 -1
  162. package/esm/components/tcell/index.module.css.js.map +1 -1
  163. package/esm/components/texpandable-row/index.css +4 -4
  164. package/esm/components/texpandable-row/index.module.css.js +1 -1
  165. package/esm/components/texpandable-row/index.module.css.js.map +1 -1
  166. package/esm/components/thead/index.css +5 -5
  167. package/esm/components/thead/index.module.css.js +1 -1
  168. package/esm/components/thead/index.module.css.js.map +1 -1
  169. package/esm/components/thead-cell/index.css +8 -8
  170. package/esm/components/thead-cell/index.module.css.js +1 -1
  171. package/esm/components/thead-cell/index.module.css.js.map +1 -1
  172. package/esm/components/trow/index.css +7 -7
  173. package/esm/components/trow/index.module.css.js +1 -1
  174. package/esm/components/trow/index.module.css.js.map +1 -1
  175. package/esm/components/tsortable-head-cell/index.css +7 -7
  176. package/esm/components/tsortable-head-cell/index.module.css.js +1 -1
  177. package/esm/components/tsortable-head-cell/index.module.css.js.map +1 -1
  178. package/modern/components/pagination/index.css +8 -8
  179. package/modern/components/pagination/index.module.css.js +1 -1
  180. package/modern/components/pagination/index.module.css.js.map +1 -1
  181. package/modern/components/pagination/select-field/index.css +3 -3
  182. package/modern/components/pagination/select-field/index.module.css.js +1 -1
  183. package/modern/components/pagination/select-field/index.module.css.js.map +1 -1
  184. package/modern/components/table/index.css +6 -6
  185. package/modern/components/table/index.module.css.js +1 -1
  186. package/modern/components/table/index.module.css.js.map +1 -1
  187. package/modern/components/tbody/index.css +1 -1
  188. package/modern/components/tbody/index.module.css.js +1 -1
  189. package/modern/components/tbody/index.module.css.js.map +1 -1
  190. package/modern/components/tcell/index.css +5 -5
  191. package/modern/components/tcell/index.module.css.js +1 -1
  192. package/modern/components/tcell/index.module.css.js.map +1 -1
  193. package/modern/components/texpandable-row/index.css +4 -4
  194. package/modern/components/texpandable-row/index.module.css.js +1 -1
  195. package/modern/components/texpandable-row/index.module.css.js.map +1 -1
  196. package/modern/components/thead/index.css +5 -5
  197. package/modern/components/thead/index.module.css.js +1 -1
  198. package/modern/components/thead/index.module.css.js.map +1 -1
  199. package/modern/components/thead-cell/index.css +8 -8
  200. package/modern/components/thead-cell/index.module.css.js +1 -1
  201. package/modern/components/thead-cell/index.module.css.js.map +1 -1
  202. package/modern/components/trow/index.css +7 -7
  203. package/modern/components/trow/index.module.css.js +1 -1
  204. package/modern/components/trow/index.module.css.js.map +1 -1
  205. package/modern/components/tsortable-head-cell/index.css +7 -7
  206. package/modern/components/tsortable-head-cell/index.module.css.js +1 -1
  207. package/modern/components/tsortable-head-cell/index.module.css.js.map +1 -1
  208. package/moderncssm/components/pagination/index.module.css +2 -0
  209. package/moderncssm/components/pagination/select-field/index.module.css +2 -1
  210. package/moderncssm/components/table/index.module.css +2 -0
  211. package/moderncssm/components/tbody/index.module.css +2 -0
  212. package/moderncssm/components/tcell/index.module.css +2 -0
  213. package/moderncssm/components/texpandable-row/index.module.css +2 -0
  214. package/moderncssm/components/thead/index.module.css +2 -0
  215. package/moderncssm/components/thead-cell/index.module.css +2 -0
  216. package/moderncssm/components/trow/index.module.css +2 -0
  217. package/moderncssm/components/tsortable-head-cell/index.module.css +2 -0
  218. package/package.json +6 -6
  219. package/src/components/pagination/index.module.css +1 -1
  220. package/src/components/pagination/select-field/index.module.css +1 -1
  221. package/src/components/table/index.module.css +1 -1
  222. package/src/components/tbody/index.module.css +1 -1
  223. package/src/components/tcell/index.module.css +1 -1
  224. package/src/components/texpandable-row/index.module.css +1 -1
  225. package/src/components/thead/index.module.css +1 -1
  226. package/src/components/thead-cell/index.module.css +1 -1
  227. package/src/components/trow/index.module.css +1 -1
  228. package/src/components/tsortable-head-cell/index.module.css +1 -1
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var dynamicMixins = require('@alfalab/core-components-pagination/dynamic-mixins');
9
+ var desktop = require('@alfalab/core-components-select/dynamic-mixins/desktop');
10
+ var index = require('../table-context/index.js');
11
+ var index$1 = require('./select-field/index.js');
12
+ var index_module = require('./index.module.css.js');
13
+
14
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
15
+
16
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
17
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
18
+
19
+ var Pagination = function (_a) {
20
+ var _b = _a.perPage, perPage = _b === void 0 ? 25 : _b, _c = _a.possiblePerPage, possiblePerPage = _c === void 0 ? [25, 50, 100] : _c, _d = _a.onPerPageChange, onPerPageChange = _d === void 0 ? function () { return null; } : _d, _e = _a.hidePerPageSelect, hidePerPageSelect = _e === void 0 ? false : _e, pagesCount = _a.pagesCount, _f = _a.onPageChange, onPageChange = _f === void 0 ? function () { return null; } : _f, className = _a.className, dataTestId = _a.dataTestId, restPaginationProps = tslib.__rest(_a, ["perPage", "possiblePerPage", "onPerPageChange", "hidePerPageSelect", "pagesCount", "onPageChange", "className", "dataTestId"]);
21
+ var wrapperRef = React.useContext(index.TableContext).wrapperRef;
22
+ var options = React.useMemo(function () {
23
+ return Array.from(new Set(possiblePerPage.concat(perPage)))
24
+ .sort(function (a, b) { return a - b; })
25
+ .map(function (value) { return ({
26
+ key: value.toString(),
27
+ content: "\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u043E ".concat(value),
28
+ }); });
29
+ }, [perPage, possiblePerPage]);
30
+ var handlePerPageChange = React.useCallback(function (_a) {
31
+ var selected = _a.selected;
32
+ onPerPageChange(Number(selected === null || selected === void 0 ? void 0 : selected.key));
33
+ }, [onPerPageChange]);
34
+ var handlePageChange = React.useCallback(function (pageIndex) {
35
+ onPageChange(pageIndex);
36
+ setTimeout(function () {
37
+ if (wrapperRef.current) {
38
+ wrapperRef.current.scrollIntoView();
39
+ }
40
+ }, 0);
41
+ }, [onPageChange, wrapperRef]);
42
+ return (React__default.default.createElement("div", { className: cn__default.default(index_module.component, className), "data-test-id": dataTestId },
43
+ hidePerPageSelect === false && (React__default.default.createElement(desktop.SelectDesktop, { options: options, selected: perPage.toString(), onChange: handlePerPageChange, preventFlip: false, size: 's', className: index_module.select, optionsListClassName: index_module.menu, optionClassName: index_module.option, Field: index$1.CustomSelectField })),
44
+ pagesCount > 1 && (React__default.default.createElement(dynamicMixins.Pagination, tslib.__assign({ pagesCount: pagesCount, onPageChange: handlePageChange, className: index_module.pagination }, restPaginationProps)))));
45
+ };
46
+
47
+ exports.Pagination = Pagination;
48
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/pagination/Component.tsx"],"sourcesContent":["import React, { FC, useCallback, useContext, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport {\n Pagination as CorePagination,\n PaginationProps as CorePaginationProps,\n} from '@alfalab/core-components-pagination';\nimport { SelectDesktop, SelectDesktopProps } from '@alfalab/core-components-select/desktop';\nimport { BaseSelectChangePayload } from '@alfalab/core-components-select/shared';\n\nimport { TableContext } from '../table-context';\n\nimport { CustomSelectField } from './select-field';\n\nimport styles from './index.module.css';\n\nexport type PaginationProps = CorePaginationProps & {\n /**\n * Количество строк на страницу\n */\n perPage?: number;\n\n /**\n * Возможные варианты разбивки\n */\n possiblePerPage?: number[];\n\n /**\n * Обработчик переключения perPage\n */\n onPerPageChange?: (perPage: number) => void;\n\n /**\n * Скрывает переключатель количества строк на страницу\n */\n hidePerPageSelect?: boolean;\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n};\n\nexport const Pagination: FC<PaginationProps> = ({\n perPage = 25,\n possiblePerPage = [25, 50, 100],\n onPerPageChange = () => null,\n hidePerPageSelect = false,\n pagesCount,\n onPageChange = () => null,\n className,\n dataTestId,\n ...restPaginationProps\n}) => {\n const { wrapperRef } = useContext(TableContext);\n\n const options = useMemo(\n () =>\n Array.from(new Set<number>(possiblePerPage.concat(perPage)))\n .sort((a, b) => a - b)\n .map((value) => ({\n key: value.toString(),\n content: `Показывать по ${value}`,\n })),\n [perPage, possiblePerPage],\n );\n\n const handlePerPageChange: SelectDesktopProps['onChange'] = useCallback(\n ({ selected }: BaseSelectChangePayload) => {\n onPerPageChange(Number(selected?.key));\n },\n [onPerPageChange],\n );\n\n const handlePageChange = useCallback(\n (pageIndex: number) => {\n onPageChange(pageIndex);\n\n setTimeout(() => {\n if (wrapperRef.current) {\n wrapperRef.current.scrollIntoView();\n }\n }, 0);\n },\n [onPageChange, wrapperRef],\n );\n\n return (\n <div className={cn(styles.component, className)} data-test-id={dataTestId}>\n {hidePerPageSelect === false && (\n <SelectDesktop\n options={options}\n selected={perPage.toString()}\n onChange={handlePerPageChange}\n preventFlip={false}\n size='s'\n className={styles.select}\n optionsListClassName={styles.menu}\n optionClassName={styles.option}\n Field={CustomSelectField}\n />\n )}\n\n {pagesCount > 1 && (\n <CorePagination\n pagesCount={pagesCount}\n onPageChange={handlePageChange}\n className={styles.pagination}\n {...restPaginationProps}\n />\n )}\n </div>\n );\n};\n"],"names":["__rest","useContext","TableContext","useMemo","useCallback","React","cn","styles","SelectDesktop","CustomSelectField","CorePagination","__assign"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ :root {
2
+ --color-light-neutral-400: #d2d3d9;
3
+ } :root {
4
+ --gap-2xs: 4px;
5
+ --gap-xs: 8px;
6
+ --gap-m: 16px;
7
+ --gap-xl: 24px;
8
+ --gap-2xl: 32px;
9
+ --gap-0: 0px;
10
+ --gap-4: var(--gap-2xs);
11
+ --gap-8: var(--gap-xs);
12
+ --gap-16: var(--gap-m);
13
+ --gap-24: var(--gap-xl);
14
+ --gap-32: var(--gap-2xl);
15
+ } .table__component_1ugvb {
16
+ position: sticky;
17
+ left: var(--gap-0);
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: flex-start;
21
+ width: 100%;
22
+ padding: var(--gap-24) var(--gap-16) var(--gap-32);
23
+ border-top: 1px solid var(--color-light-neutral-400);
24
+ box-sizing: border-box;
25
+ } .table__pagesWrapper_1ugvb {
26
+ display: flex;
27
+ } .table__tag_1ugvb.table__tag_1ugvb {
28
+ flex-shrink: 0;
29
+ margin-right: var(--gap-8);
30
+ padding: var(--gap-0) var(--gap-8);
31
+ min-width: 32px
32
+ } .table__tag_1ugvb.table__tag_1ugvb:last-child {
33
+ margin-right: var(--gap-0);
34
+ } .table__tag_1ugvb.table__tag_1ugvb.table__tagActive_1ugvb {
35
+ cursor: default;
36
+ } .table__pagination_1ugvb {
37
+ margin-left: auto;
38
+ } .table__menu_1ugvb {
39
+ margin: var(--gap-4) var(--gap-0);
40
+ } .table__option_1ugvb {
41
+ min-width: 208px;
42
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.Pagination = Component.Pagination;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ require('./index.css');
4
+
5
+ var styles = {"component":"table__component_1ugvb","pagination":"table__pagination_1ugvb","menu":"table__menu_1ugvb","option":"table__option_1ugvb"};
6
+
7
+ module.exports = styles;
8
+ //# sourceMappingURL=index.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/pagination/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component {\n position: sticky;\n left: var(--gap-0);\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n width: 100%;\n padding: var(--gap-24) var(--gap-16) var(--gap-32);\n border-top: 1px solid var(--color-light-neutral-400);\n box-sizing: border-box;\n}\n\n.pagesWrapper {\n display: flex;\n}\n\n.tag.tag {\n flex-shrink: 0;\n margin-right: var(--gap-8);\n padding: var(--gap-0) var(--gap-8);\n min-width: 32px;\n\n &:last-child {\n margin-right: var(--gap-0);\n }\n\n &.tagActive {\n cursor: default;\n }\n}\n\n.pagination {\n margin-left: auto;\n}\n\n.menu {\n margin: var(--gap-4) var(--gap-0);\n}\n\n.option {\n min-width: 208px;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,wBAAwB,CAA0G,YAAY,CAAC,yBAAyB,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,CAAC;;;;"}
@@ -0,0 +1,9 @@
1
+ :root {
2
+ --color-light-neutral-translucent-200-hover: rgba(15, 25, 55, 0.1);
3
+ } .table__field_1d0wy svg {
4
+ width: 18px;
5
+ height: 18px;
6
+ } .table__open_1d0wy,
7
+ .table__open_1d0wy:hover {
8
+ background-color: var(--color-light-neutral-translucent-200-hover);
9
+ }
@@ -0,0 +1,2 @@
1
+ import { SelectProps } from '@alfalab/core-components-select';
2
+ export declare const CustomSelectField: SelectProps['Field'];
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var dynamicMixins = require('@alfalab/core-components-button/dynamic-mixins');
9
+ var index_module = require('./index.module.css.js');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
15
+
16
+ var CustomSelectField = function (_a) {
17
+ var _b;
18
+ var selected = _a.selected, innerProps = _a.innerProps, Arrow = _a.Arrow, open = _a.open;
19
+ var ref = innerProps.ref, restInnerProps = tslib.__rest(innerProps, ["ref"]);
20
+ return (React__default.default.createElement("div", { ref: ref },
21
+ React__default.default.createElement(dynamicMixins.Button, tslib.__assign({}, restInnerProps, { size: 'xxs', view: 'transparent', className: cn__default.default(index_module.field, (_b = {}, _b[index_module.open] = open, _b)), rightAddons: Arrow }), selected === null || selected === void 0 ? void 0 : selected.content)));
22
+ };
23
+
24
+ exports.CustomSelectField = CustomSelectField;
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/pagination/select-field/index.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\n\nimport { Button, ButtonProps } from '@alfalab/core-components-button';\nimport { SelectProps } from '@alfalab/core-components-select';\n\nimport styles from './index.module.css';\n\nexport const CustomSelectField: SelectProps['Field'] = ({ selected, innerProps, Arrow, open }) => {\n const { ref, ...restInnerProps } = innerProps;\n\n return (\n <div ref={ref}>\n <Button\n {...(restInnerProps as ButtonProps)}\n size='xxs'\n view='transparent'\n className={cn(styles.field, { [styles.open]: open })}\n rightAddons={Arrow}\n >\n {selected?.content}\n </Button>\n </div>\n );\n};\n"],"names":["__rest","React","Button","__assign","cn","styles"],"mappings":";;;;;;;;;;;;;;;AAQO,IAAM,iBAAiB,GAAyB,UAAC,EAAqC,EAAA;;QAAnC,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA;IAC/E,IAAA,GAAG,GAAwB,UAAU,CAAlC,GAAA,EAAK,cAAc,GAAAA,YAAA,CAAK,UAAU,EAAvC,CAA0B,KAAA,CAAA,CAAF;AAE9B,IAAA,QACIC,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAA;AACT,QAAAA,sBAAA,CAAA,aAAA,CAACC,oBAAM,EACEC,cAAA,CAAA,EAAA,EAAA,cAA8B,IACnC,IAAI,EAAC,KAAK,EACV,IAAI,EAAC,aAAa,EAClB,SAAS,EAAEC,mBAAE,CAACC,YAAM,CAAC,KAAK,GAAI,EAAA,GAAA,EAAA,EAAA,EAAA,CAACA,YAAM,CAAC,IAAI,CAAG,GAAA,IAAI,MAAG,EACpD,WAAW,EAAE,KAAK,EAAA,CAAA,EAEjB,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CACb,CACP;AAEd;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ require('./index.css');
4
+
5
+ var styles = {"field":"table__field_1d0wy","open":"table__open_1d0wy"};
6
+
7
+ module.exports = styles;
8
+ //# sourceMappingURL=index.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.css.js","sources":["../../../src/components/pagination/select-field/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.field {\n & svg {\n width: 18px;\n height: 18px;\n }\n}\n\n.open,\n.open:hover {\n background-color: var(--color-light-neutral-translucent-200-hover);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,mBAAmB,CAAC;;;;"}
@@ -0,0 +1,69 @@
1
+ import React, { ReactNode, TableHTMLAttributes } from 'react';
2
+ export declare type TableProps = TableHTMLAttributes<HTMLTableElement> & {
3
+ /**
4
+ * Компактный вид
5
+ */
6
+ compactView?: boolean;
7
+ /**
8
+ * Уменьшение горизонтальных паддингов
9
+ */
10
+ compactHorizontal?: boolean;
11
+ /**
12
+ * Дополнительный класс
13
+ */
14
+ className?: string;
15
+ /**
16
+ * Дочерние компоненты
17
+ */
18
+ children: React.ReactElement | React.ReactElement[];
19
+ /**
20
+ * Оборачивает таблицу в стилизованный контейнер
21
+ */
22
+ wrapper?: boolean;
23
+ /**
24
+ * Слот для пагинации
25
+ */
26
+ pagination?: ReactNode;
27
+ /**
28
+ * Идентификатор для систем автоматизированного тестирования
29
+ */
30
+ dataTestId?: string;
31
+ /**
32
+ * Если true то заголовок будет фиксироваться при скроле
33
+ */
34
+ stickyHeader?: boolean;
35
+ };
36
+ export declare const Table: React.ForwardRefExoticComponent<React.TableHTMLAttributes<HTMLTableElement> & {
37
+ /**
38
+ * Компактный вид
39
+ */
40
+ compactView?: boolean | undefined;
41
+ /**
42
+ * Уменьшение горизонтальных паддингов
43
+ */
44
+ compactHorizontal?: boolean | undefined;
45
+ /**
46
+ * Дополнительный класс
47
+ */
48
+ className?: string | undefined;
49
+ /**
50
+ * Дочерние компоненты
51
+ */
52
+ children: React.ReactElement | React.ReactElement[];
53
+ /**
54
+ * Оборачивает таблицу в стилизованный контейнер
55
+ */
56
+ wrapper?: boolean | undefined;
57
+ /**
58
+ * Слот для пагинации
59
+ */
60
+ pagination?: ReactNode;
61
+ /**
62
+ * Идентификатор для систем автоматизированного тестирования
63
+ */
64
+ dataTestId?: string | undefined;
65
+ /**
66
+ * Если true то заголовок будет фиксироваться при скроле
67
+ */
68
+ stickyHeader?: boolean | undefined;
69
+ } & React.RefAttributes<HTMLTableElement>>;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var index = require('../table-context/index.js');
9
+ var utils = require('./utils.js');
10
+ var index_module = require('./index.module.css.js');
11
+
12
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
15
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
16
+
17
+ var Table = React.forwardRef(function (_a, ref) {
18
+ var _b;
19
+ var className = _a.className, children = _a.children, _c = _a.compactView, compactView = _c === void 0 ? false : _c, _d = _a.compactHorizontal, compactHorizontal = _d === void 0 ? false : _d, _e = _a.wrapper, wrapper = _e === void 0 ? true : _e, pagination = _a.pagination, dataTestId = _a.dataTestId, _f = _a.stickyHeader, stickyHeader = _f === void 0 ? false : _f, restProps = tslib.__rest(_a, ["className", "children", "compactView", "compactHorizontal", "wrapper", "pagination", "dataTestId", "stickyHeader"]);
20
+ var wrapperRef = React.useRef(null);
21
+ var columnsConfiguration = React.useMemo(function () {
22
+ return utils.findAllHeadCellsProps(children).map(function (columnProps, index) { return ({
23
+ width: columnProps.width,
24
+ textAlign: columnProps.textAlign,
25
+ hidden: columnProps.hidden,
26
+ index: index,
27
+ }); });
28
+ }, [children]);
29
+ /* eslint-disable react/jsx-no-constructed-context-values */
30
+ return (React__default.default.createElement(index.TableContext.Provider, { value: {
31
+ stickyHeader: stickyHeader,
32
+ columnsConfiguration: columnsConfiguration,
33
+ compactView: compactView,
34
+ compactHorizontal: compactHorizontal,
35
+ wrapperRef: wrapperRef,
36
+ } },
37
+ React__default.default.createElement("div", { ref: wrapperRef, className: cn__default.default(index_module.component, className, (_b = {},
38
+ _b[index_module.wrapper] = wrapper,
39
+ _b[index_module.hasPagination] = !!pagination,
40
+ _b[index_module.stickyHeader] = stickyHeader,
41
+ _b)), "data-test-id": dataTestId },
42
+ React__default.default.createElement("table", tslib.__assign({ ref: ref, className: index_module.table }, restProps), children),
43
+ pagination)));
44
+ });
45
+
46
+ exports.Table = Table;
47
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/table/Component.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, TableHTMLAttributes, useMemo, useRef } from 'react';\nimport cn from 'classnames';\n\nimport { ColumnConfiguration, TableContext } from '../table-context';\n\nimport { findAllHeadCellsProps } from './utils';\n\nimport styles from './index.module.css';\n\nexport type TableProps = TableHTMLAttributes<HTMLTableElement> & {\n /**\n * Компактный вид\n */\n compactView?: boolean;\n\n /**\n * Уменьшение горизонтальных паддингов\n */\n compactHorizontal?: boolean;\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Дочерние компоненты\n */\n children: React.ReactElement | React.ReactElement[];\n\n /**\n * Оборачивает таблицу в стилизованный контейнер\n */\n wrapper?: boolean;\n\n /**\n * Слот для пагинации\n */\n pagination?: ReactNode;\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n\n /**\n * Если true то заголовок будет фиксироваться при скроле\n */\n stickyHeader?: boolean;\n};\n\nexport const Table = forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n children,\n compactView = false,\n compactHorizontal = false,\n wrapper = true,\n pagination,\n dataTestId,\n stickyHeader = false,\n ...restProps\n },\n ref,\n ) => {\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const columnsConfiguration: ColumnConfiguration[] = useMemo(\n () =>\n findAllHeadCellsProps(children).map((columnProps, index) => ({\n width: columnProps.width,\n textAlign: columnProps.textAlign,\n hidden: columnProps.hidden,\n index,\n })),\n [children],\n );\n\n /* eslint-disable react/jsx-no-constructed-context-values */\n return (\n <TableContext.Provider\n value={{\n stickyHeader,\n columnsConfiguration,\n compactView,\n compactHorizontal,\n wrapperRef,\n }}\n >\n <div\n ref={wrapperRef}\n className={cn(styles.component, className, {\n [styles.wrapper]: wrapper,\n [styles.hasPagination]: !!pagination,\n [styles.stickyHeader]: stickyHeader,\n })}\n data-test-id={dataTestId}\n >\n <table ref={ref} className={styles.table} {...restProps}>\n {children}\n </table>\n\n {pagination}\n </div>\n </TableContext.Provider>\n );\n },\n);\n"],"names":["forwardRef","__rest","useRef","useMemo","findAllHeadCellsProps","React","TableContext","cn","styles","__assign"],"mappings":";;;;;;;;;;;;;;;;IAmDa,KAAK,GAAGA,gBAAU,CAC3B,UACI,EAUC,EACD,GAAG,EAAA;;AAVC,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAmB,EAAnB,WAAW,mBAAG,KAAK,GAAA,EAAA,EACnB,EAAyB,GAAA,EAAA,CAAA,iBAAA,EAAzB,iBAAiB,GAAG,EAAA,KAAA,MAAA,GAAA,KAAK,KAAA,EACzB,EAAA,GAAA,EAAA,CAAA,OAAc,EAAd,OAAO,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA,EACd,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,oBAAoB,EAApB,YAAY,mBAAG,KAAK,GAAA,EAAA,EACjB,SAAS,GAAAC,YAAA,CAAA,EAAA,EAThB,oHAUC,CADe;AAIhB,IAAA,IAAM,UAAU,GAAGC,YAAM,CAAiB,IAAI,CAAC;IAE/C,IAAM,oBAAoB,GAA0BC,aAAO,CACvD,YAAA;AACI,QAAA,OAAAC,2BAAqB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,WAAW,EAAE,KAAK,EAAA,EAAK,QAAC;YACzD,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,MAAM,EAAE,WAAW,CAAC,MAAM;AAC1B,YAAA,KAAK,EAAA,KAAA;SACR,EAAC,EAAA,CAAC;AALH,KAKG,EACP,CAAC,QAAQ,CAAC,CACb;;AAGD,IAAA,QACIC,sBAAC,CAAA,aAAA,CAAAC,kBAAY,CAAC,QAAQ,EAAA,EAClB,KAAK,EAAE;AACH,YAAA,YAAY,EAAA,YAAA;AACZ,YAAA,oBAAoB,EAAA,oBAAA;AACpB,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,iBAAiB,EAAA,iBAAA;AACjB,YAAA,UAAU,EAAA,UAAA;AACb,SAAA,EAAA;AAED,QAAAD,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,UAAU,EACf,SAAS,EAAEE,mBAAE,CAACC,YAAM,CAAC,SAAS,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACrC,gBAAA,EAAA,CAACA,YAAM,CAAC,OAAO,CAAA,GAAG,OAAO;AACzB,gBAAA,EAAA,CAACA,YAAM,CAAC,aAAa,CAAG,GAAA,CAAC,CAAC,UAAU;AACpC,gBAAA,EAAA,CAACA,YAAM,CAAC,YAAY,CAAA,GAAG,YAAY;AACrC,gBAAA,EAAA,EAAA,EAAA,cAAA,EACY,UAAU,EAAA;AAExB,YAAAH,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAAI,cAAA,CAAA,EAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAED,YAAM,CAAC,KAAK,EAAA,EAAM,SAAS,CAAA,EAClD,QAAQ,CACL;YAEP,UAAU,CACT,CACc;AAEhC,CAAC;;;;"}
@@ -0,0 +1,30 @@
1
+ :root {
2
+ --color-light-base-bg-primary: #fff;
3
+ } :root {
4
+ --shadow-xs-hard: 0 4px 8px rgba(0, 0, 0, 0.16), 0 0 1px rgba(0, 0, 0, 0.16);
5
+ } :root {
6
+ --border-radius-m: 8px;
7
+ --border-radius-8: var(--border-radius-m);
8
+ } :root {
9
+ --gap-m: 16px;
10
+ --gap-0: 0px;
11
+ --gap-16: var(--gap-m);
12
+ } .table__component_7jaq6 {
13
+ box-sizing: border-box;
14
+ } .table__wrapper_7jaq6 {
15
+ padding: var(--gap-0) var(--gap-16) var(--gap-16);
16
+ background: var(--color-light-base-bg-primary);
17
+ box-shadow: var(--shadow-xs-hard);
18
+ border-radius: var(--border-radius-8);
19
+ overflow: auto;
20
+ } .table__stickyHeader_7jaq6 {
21
+ max-height: 100%;
22
+ } .table__hasPagination_7jaq6 {
23
+ padding-bottom: var(--gap-0);
24
+ } .table__table_7jaq6 {
25
+ width: 100%;
26
+ border-collapse: collapse;
27
+ box-sizing: border-box
28
+ } .table__table_7jaq6 td:first-child label > *[class^='box'], .table__table_7jaq6 th:first-child label > *[class^='box'] {
29
+ margin-top: var(--gap-0);
30
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.Table = Component.Table;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ require('./index.css');
4
+
5
+ var styles = {"component":"table__component_7jaq6","wrapper":"table__wrapper_7jaq6","stickyHeader":"table__stickyHeader_7jaq6","hasPagination":"table__hasPagination_7jaq6","table":"table__table_7jaq6"};
6
+
7
+ module.exports = styles;
8
+ //# sourceMappingURL=index.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/table/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component {\n box-sizing: border-box;\n}\n\n.wrapper {\n padding: var(--gap-0) var(--gap-16) var(--gap-16);\n background: var(--color-light-base-bg-primary);\n box-shadow: var(--shadow-xs-hard);\n border-radius: var(--border-radius-8);\n overflow: auto;\n}\n\n.stickyHeader {\n max-height: 100%;\n}\n\n.hasPagination {\n padding-bottom: var(--gap-0);\n}\n\n.table {\n width: 100%;\n border-collapse: collapse;\n box-sizing: border-box;\n\n /* TODO: Хак для выравнивания чекбокса */\n & td:first-child,\n & th:first-child {\n & label > *[class^='box'] {\n margin-top: var(--gap-0);\n }\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,sBAAsB,CAAC,cAAc,CAAC,2BAA2B,CAAC,eAAe,CAAC,4BAA4B,CAAC,OAAO,CAAC,oBAAoB,CAAC;;;;"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { THeadCellProps } from '../thead-cell';
3
+ export declare function findAllHeadCellsProps(children: React.ReactElement | React.ReactElement[]): THeadCellProps[];
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var utils = require('../../utils.js');
7
+ var Component = require('../thead/Component.js');
8
+
9
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
12
+
13
+ function findAllHeadCellsProps(children) {
14
+ var result = [];
15
+ React__default.default.Children.forEach(children, function (child) {
16
+ if (utils.isChildInstanceOf(child, Component.THead)) {
17
+ React__default.default.Children.forEach(child.props.children, function (headChild) {
18
+ result.push(headChild.props);
19
+ });
20
+ }
21
+ });
22
+ return result;
23
+ }
24
+
25
+ exports.findAllHeadCellsProps = findAllHeadCellsProps;
26
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/table/utils.ts"],"sourcesContent":["import React from 'react';\n\nimport { isChildInstanceOf } from '../../utils';\nimport { THead } from '../thead';\nimport { THeadCellProps } from '../thead-cell';\n\nexport function findAllHeadCellsProps(children: React.ReactElement | React.ReactElement[]) {\n const result: THeadCellProps[] = [];\n\n React.Children.forEach(children, (child) => {\n if (isChildInstanceOf(child, THead)) {\n React.Children.forEach(child.props.children, (headChild) => {\n result.push(headChild.props);\n });\n }\n });\n\n return result;\n}\n"],"names":["React","isChildInstanceOf","THead"],"mappings":";;;;;;;;;;;;AAMM,SAAU,qBAAqB,CAAC,QAAmD,EAAA;IACrF,IAAM,MAAM,GAAqB,EAAE;IAEnCA,sBAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAA;AACnC,QAAA,IAAIC,uBAAiB,CAAC,KAAK,EAAEC,eAAK,CAAC,EAAE;AACjC,YAAAF,sBAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAC,SAAS,EAAA;AACnD,gBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAChC,aAAC,CAAC;AACL;AACL,KAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACjB;;;;"}
@@ -0,0 +1,17 @@
1
+ import React, { RefObject } from 'react';
2
+ import { TextAlignProperty } from '../../typings';
3
+ export declare type ColumnConfiguration = {
4
+ width?: string | number;
5
+ textAlign?: TextAlignProperty;
6
+ hidden?: boolean;
7
+ index: number;
8
+ };
9
+ export declare type TableContextType = {
10
+ columnsConfiguration: ColumnConfiguration[];
11
+ stickyHeader: boolean;
12
+ compactView: boolean;
13
+ compactHorizontal: boolean;
14
+ wrapperRef: RefObject<HTMLDivElement>;
15
+ };
16
+ export declare const DEFAULT_TABLE_CONTEXT: TableContextType;
17
+ export declare const TableContext: React.Context<TableContextType>;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
10
+
11
+ var DEFAULT_TABLE_CONTEXT = {
12
+ columnsConfiguration: [],
13
+ compactView: false,
14
+ stickyHeader: false,
15
+ compactHorizontal: false,
16
+ wrapperRef: { current: null },
17
+ };
18
+ var TableContext = React__default.default.createContext(DEFAULT_TABLE_CONTEXT);
19
+
20
+ exports.DEFAULT_TABLE_CONTEXT = DEFAULT_TABLE_CONTEXT;
21
+ exports.TableContext = TableContext;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/table-context/index.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\n\nimport { TextAlignProperty } from '../../typings';\n\nexport type ColumnConfiguration = {\n width?: string | number;\n textAlign?: TextAlignProperty;\n hidden?: boolean;\n index: number;\n};\n\nexport type TableContextType = {\n columnsConfiguration: ColumnConfiguration[];\n stickyHeader: boolean;\n compactView: boolean;\n compactHorizontal: boolean;\n wrapperRef: RefObject<HTMLDivElement>;\n};\n\nexport const DEFAULT_TABLE_CONTEXT: TableContextType = {\n columnsConfiguration: [],\n compactView: false,\n stickyHeader: false,\n compactHorizontal: false,\n wrapperRef: { current: null },\n};\n\nexport const TableContext = React.createContext<TableContextType>(DEFAULT_TABLE_CONTEXT);\n"],"names":["React"],"mappings":";;;;;;;;;;AAmBa,IAAA,qBAAqB,GAAqB;AACnD,IAAA,oBAAoB,EAAE,EAAE;AACxB,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,iBAAiB,EAAE,KAAK;AACxB,IAAA,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;;AAGpB,IAAA,YAAY,GAAGA,sBAAK,CAAC,aAAa,CAAmB,qBAAqB;;;;;"}
@@ -0,0 +1,21 @@
1
+ import React, { HTMLAttributes } from 'react';
2
+ export declare type TBodyProps = HTMLAttributes<HTMLTableSectionElement> & {
3
+ /**
4
+ * Дополнительный класс
5
+ */
6
+ className?: string;
7
+ /**
8
+ * Идентификатор для систем автоматизированного тестирования
9
+ */
10
+ dataTestId?: string;
11
+ };
12
+ export declare const TBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & {
13
+ /**
14
+ * Дополнительный класс
15
+ */
16
+ className?: string | undefined;
17
+ /**
18
+ * Идентификатор для систем автоматизированного тестирования
19
+ */
20
+ dataTestId?: string | undefined;
21
+ } & React.RefAttributes<HTMLTableSectionElement>>;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var index_module = require('./index.module.css.js');
9
+
10
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
14
+
15
+ var TBody = React.forwardRef(function (_a, ref) {
16
+ var className = _a.className, children = _a.children, dataTestId = _a.dataTestId, restProps = tslib.__rest(_a, ["className", "children", "dataTestId"]);
17
+ return (React__default.default.createElement("tbody", tslib.__assign({ className: cn__default.default(index_module.component, className), "data-test-id": dataTestId, ref: ref }, restProps), children));
18
+ });
19
+ TBody.displayName = 'TBody';
20
+
21
+ exports.TBody = TBody;
22
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/tbody/Component.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes } from 'react';\nimport cn from 'classnames';\n\nimport styles from './index.module.css';\n\nexport type TBodyProps = HTMLAttributes<HTMLTableSectionElement> & {\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n};\n\nexport const TBody = forwardRef<HTMLTableSectionElement, TBodyProps>(\n ({ className, children, dataTestId, ...restProps }, ref) => (\n <tbody\n className={cn(styles.component, className)}\n data-test-id={dataTestId}\n ref={ref}\n {...restProps}\n >\n {children}\n </tbody>\n ),\n);\n\nTBody.displayName = 'TBody';\n"],"names":["forwardRef","__rest","React","__assign","cn","styles"],"mappings":";;;;;;;;;;;;;;IAiBa,KAAK,GAAGA,gBAAU,CAC3B,UAAC,EAAiD,EAAE,GAAG,EAAA;AAApD,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAK,SAAS,GAA/CC,YAAA,CAAA,EAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,YAAA,CAAiD,CAAF;IAAY,QACxDC,sBACI,CAAA,aAAA,CAAA,OAAA,EAAAC,cAAA,CAAA,EAAA,SAAS,EAAEC,mBAAE,CAACC,YAAM,CAAC,SAAS,EAAE,SAAS,CAAC,kBAC5B,UAAU,EACxB,GAAG,EAAE,GAAG,EAAA,EACJ,SAAS,CAEZ,EAAA,QAAQ,CACL;AACX,CAAA;AAGL,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
@@ -0,0 +1,4 @@
1
+ .table__component_w3eka {
2
+ width: 100%;
3
+ box-sizing: border-box;
4
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.TBody = Component.TBody;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ require('./index.css');
4
+
5
+ var styles = {"component":"table__component_w3eka"};
6
+
7
+ module.exports = styles;
8
+ //# sourceMappingURL=index.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/tbody/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component {\n width: 100%;\n box-sizing: border-box;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC;;;;"}
@@ -0,0 +1,16 @@
1
+ import React, { TdHTMLAttributes } from 'react';
2
+ export declare type TCellProps = TdHTMLAttributes<HTMLTableCellElement> & {
3
+ /**
4
+ * Дополнительный класс
5
+ */
6
+ className?: string;
7
+ /**
8
+ * Идентификатор для систем автоматизированного тестирования
9
+ */
10
+ dataTestId?: string;
11
+ /**
12
+ * Устанавливается автоматически и позволяет использовать конфиг для соответствующего индекса
13
+ */
14
+ index?: number;
15
+ };
16
+ export declare const TCell: ({ className, style, dataTestId, children, index, ...restProps }: TCellProps) => React.JSX.Element | null;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var index = require('../table-context/index.js');
9
+ var index_module = require('./index.module.css.js');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
15
+
16
+ var TCell = function (_a) {
17
+ var className = _a.className, style = _a.style, dataTestId = _a.dataTestId, children = _a.children, index$1 = _a.index, restProps = tslib.__rest(_a, ["className", "style", "dataTestId", "children", "index"]);
18
+ var _b = React.useContext(index.TableContext), columnsConfiguration = _b.columnsConfiguration, compactView = _b.compactView, compactHorizontal = _b.compactHorizontal;
19
+ var column = index$1 === undefined ? null : columnsConfiguration[index$1];
20
+ var width = column === null || column === void 0 ? void 0 : column.width;
21
+ var textAlign = column === null || column === void 0 ? void 0 : column.textAlign;
22
+ var hidden = (column === null || column === void 0 ? void 0 : column.hidden) || false;
23
+ if (hidden)
24
+ return null;
25
+ return (React__default.default.createElement("td", tslib.__assign({ className: cn__default.default(index_module.component, className, compactView && index_module.compact, compactHorizontal && index_module.compactHorizontal), style: tslib.__assign(tslib.__assign({}, style), { width: width, textAlign: textAlign }), "data-test-id": dataTestId }, restProps), children));
26
+ };
27
+
28
+ exports.TCell = TCell;
29
+ //# sourceMappingURL=Component.js.map