@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.
- package/components/pagination/index.css +8 -8
- package/components/pagination/index.module.css.js +1 -1
- package/components/pagination/index.module.css.js.map +1 -1
- package/components/pagination/select-field/index.css +3 -3
- package/components/pagination/select-field/index.module.css.js +1 -1
- package/components/pagination/select-field/index.module.css.js.map +1 -1
- package/components/table/index.css +6 -6
- package/components/table/index.module.css.js +1 -1
- package/components/table/index.module.css.js.map +1 -1
- package/components/tbody/index.css +1 -1
- package/components/tbody/index.module.css.js +1 -1
- package/components/tbody/index.module.css.js.map +1 -1
- package/components/tcell/index.css +5 -5
- package/components/tcell/index.module.css.js +1 -1
- package/components/tcell/index.module.css.js.map +1 -1
- package/components/texpandable-row/index.css +4 -4
- package/components/texpandable-row/index.module.css.js +1 -1
- package/components/texpandable-row/index.module.css.js.map +1 -1
- package/components/thead/index.css +5 -5
- package/components/thead/index.module.css.js +1 -1
- package/components/thead/index.module.css.js.map +1 -1
- package/components/thead-cell/index.css +8 -8
- package/components/thead-cell/index.module.css.js +1 -1
- package/components/thead-cell/index.module.css.js.map +1 -1
- package/components/trow/index.css +7 -7
- package/components/trow/index.module.css.js +1 -1
- package/components/trow/index.module.css.js.map +1 -1
- package/components/tsortable-head-cell/index.css +7 -7
- package/components/tsortable-head-cell/index.module.css.js +1 -1
- package/components/tsortable-head-cell/index.module.css.js.map +1 -1
- package/dynamic-mixins/component.d.ts +43 -0
- package/dynamic-mixins/component.js +36 -0
- package/dynamic-mixins/component.js.map +1 -0
- package/dynamic-mixins/components/index.d.ts +9 -0
- package/dynamic-mixins/components/index.js +26 -0
- package/dynamic-mixins/components/index.js.map +1 -0
- package/dynamic-mixins/components/pagination/Component.d.ts +25 -0
- package/dynamic-mixins/components/pagination/Component.js +48 -0
- package/dynamic-mixins/components/pagination/Component.js.map +1 -0
- package/dynamic-mixins/components/pagination/index.css +42 -0
- package/dynamic-mixins/components/pagination/index.d.ts +1 -0
- package/dynamic-mixins/components/pagination/index.js +10 -0
- package/dynamic-mixins/components/pagination/index.js.map +1 -0
- package/dynamic-mixins/components/pagination/index.module.css.js +8 -0
- package/dynamic-mixins/components/pagination/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/pagination/select-field/index.css +9 -0
- package/dynamic-mixins/components/pagination/select-field/index.d.ts +2 -0
- package/dynamic-mixins/components/pagination/select-field/index.js +25 -0
- package/dynamic-mixins/components/pagination/select-field/index.js.map +1 -0
- package/dynamic-mixins/components/pagination/select-field/index.module.css.js +8 -0
- package/dynamic-mixins/components/pagination/select-field/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/table/Component.d.ts +69 -0
- package/dynamic-mixins/components/table/Component.js +47 -0
- package/dynamic-mixins/components/table/Component.js.map +1 -0
- package/dynamic-mixins/components/table/index.css +30 -0
- package/dynamic-mixins/components/table/index.d.ts +1 -0
- package/dynamic-mixins/components/table/index.js +10 -0
- package/dynamic-mixins/components/table/index.js.map +1 -0
- package/dynamic-mixins/components/table/index.module.css.js +8 -0
- package/dynamic-mixins/components/table/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/table/utils.d.ts +3 -0
- package/dynamic-mixins/components/table/utils.js +26 -0
- package/dynamic-mixins/components/table/utils.js.map +1 -0
- package/dynamic-mixins/components/table-context/index.d.ts +17 -0
- package/dynamic-mixins/components/table-context/index.js +22 -0
- package/dynamic-mixins/components/table-context/index.js.map +1 -0
- package/dynamic-mixins/components/tbody/Component.d.ts +21 -0
- package/dynamic-mixins/components/tbody/Component.js +22 -0
- package/dynamic-mixins/components/tbody/Component.js.map +1 -0
- package/dynamic-mixins/components/tbody/index.css +4 -0
- package/dynamic-mixins/components/tbody/index.d.ts +1 -0
- package/dynamic-mixins/components/tbody/index.js +10 -0
- package/dynamic-mixins/components/tbody/index.js.map +1 -0
- package/dynamic-mixins/components/tbody/index.module.css.js +8 -0
- package/dynamic-mixins/components/tbody/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/tcell/Component.d.ts +16 -0
- package/dynamic-mixins/components/tcell/Component.js +29 -0
- package/dynamic-mixins/components/tcell/Component.js.map +1 -0
- package/dynamic-mixins/components/tcell/index.css +37 -0
- package/dynamic-mixins/components/tcell/index.d.ts +1 -0
- package/dynamic-mixins/components/tcell/index.js +10 -0
- package/dynamic-mixins/components/tcell/index.js.map +1 -0
- package/dynamic-mixins/components/tcell/index.module.css.js +8 -0
- package/dynamic-mixins/components/tcell/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/texpandable-row/Component.d.ts +22 -0
- package/dynamic-mixins/components/texpandable-row/Component.js +38 -0
- package/dynamic-mixins/components/texpandable-row/Component.js.map +1 -0
- package/dynamic-mixins/components/texpandable-row/index.css +15 -0
- package/dynamic-mixins/components/texpandable-row/index.d.ts +1 -0
- package/dynamic-mixins/components/texpandable-row/index.js +10 -0
- package/dynamic-mixins/components/texpandable-row/index.js.map +1 -0
- package/dynamic-mixins/components/texpandable-row/index.module.css.js +8 -0
- package/dynamic-mixins/components/texpandable-row/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/thead/Component.d.ts +16 -0
- package/dynamic-mixins/components/thead/Component.js +22 -0
- package/dynamic-mixins/components/thead/Component.js.map +1 -0
- package/dynamic-mixins/components/thead/index.css +28 -0
- package/dynamic-mixins/components/thead/index.d.ts +1 -0
- package/dynamic-mixins/components/thead/index.js +10 -0
- package/dynamic-mixins/components/thead/index.js.map +1 -0
- package/dynamic-mixins/components/thead/index.module.css.js +8 -0
- package/dynamic-mixins/components/thead/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/thead-cell/Component.d.ts +25 -0
- package/dynamic-mixins/components/thead-cell/Component.js +28 -0
- package/dynamic-mixins/components/thead-cell/Component.js.map +1 -0
- package/dynamic-mixins/components/thead-cell/index.css +45 -0
- package/dynamic-mixins/components/thead-cell/index.d.ts +1 -0
- package/dynamic-mixins/components/thead-cell/index.js +10 -0
- package/dynamic-mixins/components/thead-cell/index.js.map +1 -0
- package/dynamic-mixins/components/thead-cell/index.module.css.js +8 -0
- package/dynamic-mixins/components/thead-cell/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/trow/Component.d.ts +48 -0
- package/dynamic-mixins/components/trow/Component.js +27 -0
- package/dynamic-mixins/components/trow/Component.js.map +1 -0
- package/dynamic-mixins/components/trow/index.css +24 -0
- package/dynamic-mixins/components/trow/index.d.ts +1 -0
- package/dynamic-mixins/components/trow/index.js +10 -0
- package/dynamic-mixins/components/trow/index.js.map +1 -0
- package/dynamic-mixins/components/trow/index.module.css.js +8 -0
- package/dynamic-mixins/components/trow/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/tsortable-head-cell/Component.d.ts +8 -0
- package/dynamic-mixins/components/tsortable-head-cell/Component.js +39 -0
- package/dynamic-mixins/components/tsortable-head-cell/Component.js.map +1 -0
- package/dynamic-mixins/components/tsortable-head-cell/index.css +30 -0
- package/dynamic-mixins/components/tsortable-head-cell/index.d.ts +1 -0
- package/dynamic-mixins/components/tsortable-head-cell/index.js +10 -0
- package/dynamic-mixins/components/tsortable-head-cell/index.js.map +1 -0
- package/dynamic-mixins/components/tsortable-head-cell/index.module.css.js +8 -0
- package/dynamic-mixins/components/tsortable-head-cell/index.module.css.js.map +1 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-asc.d.ts +2 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-asc.js +16 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-asc.js.map +1 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-desc.d.ts +2 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-desc.js +16 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-desc.js.map +1 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-unset.d.ts +2 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-unset.js +16 -0
- package/dynamic-mixins/components/tsortable-head-cell/sort-icon-unset.js.map +1 -0
- package/dynamic-mixins/index.d.ts +1 -0
- package/dynamic-mixins/index.js +28 -0
- package/dynamic-mixins/index.js.map +1 -0
- package/dynamic-mixins/typings.d.ts +1 -0
- package/dynamic-mixins/typings.js +3 -0
- package/dynamic-mixins/typings.js.map +1 -0
- package/dynamic-mixins/utils.d.ts +2 -0
- package/dynamic-mixins/utils.js +17 -0
- package/dynamic-mixins/utils.js.map +1 -0
- package/esm/components/pagination/index.css +8 -8
- package/esm/components/pagination/index.module.css.js +1 -1
- package/esm/components/pagination/index.module.css.js.map +1 -1
- package/esm/components/pagination/select-field/index.css +3 -3
- package/esm/components/pagination/select-field/index.module.css.js +1 -1
- package/esm/components/pagination/select-field/index.module.css.js.map +1 -1
- package/esm/components/table/index.css +6 -6
- package/esm/components/table/index.module.css.js +1 -1
- package/esm/components/table/index.module.css.js.map +1 -1
- package/esm/components/tbody/index.css +1 -1
- package/esm/components/tbody/index.module.css.js +1 -1
- package/esm/components/tbody/index.module.css.js.map +1 -1
- package/esm/components/tcell/index.css +5 -5
- package/esm/components/tcell/index.module.css.js +1 -1
- package/esm/components/tcell/index.module.css.js.map +1 -1
- package/esm/components/texpandable-row/index.css +4 -4
- package/esm/components/texpandable-row/index.module.css.js +1 -1
- package/esm/components/texpandable-row/index.module.css.js.map +1 -1
- package/esm/components/thead/index.css +5 -5
- package/esm/components/thead/index.module.css.js +1 -1
- package/esm/components/thead/index.module.css.js.map +1 -1
- package/esm/components/thead-cell/index.css +8 -8
- package/esm/components/thead-cell/index.module.css.js +1 -1
- package/esm/components/thead-cell/index.module.css.js.map +1 -1
- package/esm/components/trow/index.css +7 -7
- package/esm/components/trow/index.module.css.js +1 -1
- package/esm/components/trow/index.module.css.js.map +1 -1
- package/esm/components/tsortable-head-cell/index.css +7 -7
- package/esm/components/tsortable-head-cell/index.module.css.js +1 -1
- package/esm/components/tsortable-head-cell/index.module.css.js.map +1 -1
- package/modern/components/pagination/index.css +8 -8
- package/modern/components/pagination/index.module.css.js +1 -1
- package/modern/components/pagination/index.module.css.js.map +1 -1
- package/modern/components/pagination/select-field/index.css +3 -3
- package/modern/components/pagination/select-field/index.module.css.js +1 -1
- package/modern/components/pagination/select-field/index.module.css.js.map +1 -1
- package/modern/components/table/index.css +6 -6
- package/modern/components/table/index.module.css.js +1 -1
- package/modern/components/table/index.module.css.js.map +1 -1
- package/modern/components/tbody/index.css +1 -1
- package/modern/components/tbody/index.module.css.js +1 -1
- package/modern/components/tbody/index.module.css.js.map +1 -1
- package/modern/components/tcell/index.css +5 -5
- package/modern/components/tcell/index.module.css.js +1 -1
- package/modern/components/tcell/index.module.css.js.map +1 -1
- package/modern/components/texpandable-row/index.css +4 -4
- package/modern/components/texpandable-row/index.module.css.js +1 -1
- package/modern/components/texpandable-row/index.module.css.js.map +1 -1
- package/modern/components/thead/index.css +5 -5
- package/modern/components/thead/index.module.css.js +1 -1
- package/modern/components/thead/index.module.css.js.map +1 -1
- package/modern/components/thead-cell/index.css +8 -8
- package/modern/components/thead-cell/index.module.css.js +1 -1
- package/modern/components/thead-cell/index.module.css.js.map +1 -1
- package/modern/components/trow/index.css +7 -7
- package/modern/components/trow/index.module.css.js +1 -1
- package/modern/components/trow/index.module.css.js.map +1 -1
- package/modern/components/tsortable-head-cell/index.css +7 -7
- package/modern/components/tsortable-head-cell/index.module.css.js +1 -1
- package/modern/components/tsortable-head-cell/index.module.css.js.map +1 -1
- package/moderncssm/components/pagination/index.module.css +2 -0
- package/moderncssm/components/pagination/select-field/index.module.css +2 -1
- package/moderncssm/components/table/index.module.css +2 -0
- package/moderncssm/components/tbody/index.module.css +2 -0
- package/moderncssm/components/tcell/index.module.css +2 -0
- package/moderncssm/components/texpandable-row/index.module.css +2 -0
- package/moderncssm/components/thead/index.module.css +2 -0
- package/moderncssm/components/thead-cell/index.module.css +2 -0
- package/moderncssm/components/trow/index.module.css +2 -0
- package/moderncssm/components/tsortable-head-cell/index.module.css +2 -0
- package/package.json +6 -6
- package/src/components/pagination/index.module.css +1 -1
- package/src/components/pagination/select-field/index.module.css +1 -1
- package/src/components/table/index.module.css +1 -1
- package/src/components/tbody/index.module.css +1 -1
- package/src/components/tcell/index.module.css +1 -1
- package/src/components/texpandable-row/index.module.css +1 -1
- package/src/components/thead/index.module.css +1 -1
- package/src/components/thead-cell/index.module.css +1 -1
- package/src/components/trow/index.module.css +1 -1
- 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 @@
|
|
|
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,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 @@
|
|
|
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 @@
|
|
|
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,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 @@
|
|
|
1
|
+
export * from './Component';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -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
|