@qoretechnologies/reqore 0.68.0 → 0.68.1
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/dist/components/DatePicker/index.d.ts +13 -1
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/DatePicker/index.js +79 -39
- package/dist/components/DatePicker/index.js.map +1 -1
- package/dist/esm/components/Accordion/index.js +142 -0
- package/dist/esm/components/Accordion/index.js.map +1 -0
- package/dist/esm/components/Breadcrumbs/index.js +122 -0
- package/dist/esm/components/Breadcrumbs/index.js.map +1 -0
- package/dist/esm/components/Breadcrumbs/item.js +14 -0
- package/dist/esm/components/Breadcrumbs/item.js.map +1 -0
- package/dist/esm/components/Button/index.js +315 -0
- package/dist/esm/components/Button/index.js.map +1 -0
- package/dist/esm/components/Callout/index.js +142 -0
- package/dist/esm/components/Callout/index.js.map +1 -0
- package/dist/esm/components/Checkbox/index.js +217 -0
- package/dist/esm/components/Checkbox/index.js.map +1 -0
- package/dist/esm/components/Collection/index.js +298 -0
- package/dist/esm/components/Collection/index.js.map +1 -0
- package/dist/esm/components/Collection/item.js +157 -0
- package/dist/esm/components/Collection/item.js.map +1 -0
- package/dist/esm/components/Columns/column.js +14 -0
- package/dist/esm/components/Columns/column.js.map +1 -0
- package/dist/esm/components/Columns/index.js +17 -0
- package/dist/esm/components/Columns/index.js.map +1 -0
- package/dist/esm/components/Comment/index.js +63 -0
- package/dist/esm/components/Comment/index.js.map +1 -0
- package/dist/esm/components/CommentFeed/index.js +17 -0
- package/dist/esm/components/CommentFeed/index.js.map +1 -0
- package/dist/esm/components/Content/index.js +16 -0
- package/dist/esm/components/Content/index.js.map +1 -0
- package/dist/esm/components/Content/wrapper.js +14 -0
- package/dist/esm/components/Content/wrapper.js.map +1 -0
- package/dist/esm/components/ControlGroup/index.js +351 -0
- package/dist/esm/components/ControlGroup/index.js.map +1 -0
- package/dist/esm/components/DatePicker/MonthYearDropdowns.js +30 -0
- package/dist/esm/components/DatePicker/MonthYearDropdowns.js.map +1 -0
- package/dist/esm/components/DatePicker/index.js +244 -0
- package/dist/esm/components/DatePicker/index.js.map +1 -0
- package/dist/esm/components/DescriptionList/index.js +132 -0
- package/dist/esm/components/DescriptionList/index.js.map +1 -0
- package/dist/esm/components/Drawer/backdrop.js +34 -0
- package/dist/esm/components/Drawer/backdrop.js.map +1 -0
- package/dist/esm/components/Drawer/index.js +286 -0
- package/dist/esm/components/Drawer/index.js.map +1 -0
- package/dist/esm/components/Dropdown/index.js +49 -0
- package/dist/esm/components/Dropdown/index.js.map +1 -0
- package/dist/esm/components/Dropdown/item.js +12 -0
- package/dist/esm/components/Dropdown/item.js.map +1 -0
- package/dist/esm/components/Dropdown/list.js +320 -0
- package/dist/esm/components/Dropdown/list.js.map +1 -0
- package/dist/esm/components/Effect/index.js +349 -0
- package/dist/esm/components/Effect/index.js.map +1 -0
- package/dist/esm/components/EmptyState/index.js +31 -0
- package/dist/esm/components/EmptyState/index.js.map +1 -0
- package/dist/esm/components/EntityRow/index.js +134 -0
- package/dist/esm/components/EntityRow/index.js.map +1 -0
- package/dist/esm/components/ErrorBoundary/index.js +57 -0
- package/dist/esm/components/ErrorBoundary/index.js.map +1 -0
- package/dist/esm/components/ExportModal/index.js +60 -0
- package/dist/esm/components/ExportModal/index.js.map +1 -0
- package/dist/esm/components/FeatureCard/index.js +139 -0
- package/dist/esm/components/FeatureCard/index.js.map +1 -0
- package/dist/esm/components/GlobalModalsWrapper/index.js +27 -0
- package/dist/esm/components/GlobalModalsWrapper/index.js.map +1 -0
- package/dist/esm/components/Header/index.js +55 -0
- package/dist/esm/components/Header/index.js.map +1 -0
- package/dist/esm/components/Icon/index.js +130 -0
- package/dist/esm/components/Icon/index.js.map +1 -0
- package/dist/esm/components/Input/index.js +136 -0
- package/dist/esm/components/Input/index.js.map +1 -0
- package/dist/esm/components/InputClearButton/index.js +32 -0
- package/dist/esm/components/InputClearButton/index.js.map +1 -0
- package/dist/esm/components/InternalPopover/index.js +244 -0
- package/dist/esm/components/InternalPopover/index.js.map +1 -0
- package/dist/esm/components/KeyValueTable/index.js +81 -0
- package/dist/esm/components/KeyValueTable/index.js.map +1 -0
- package/dist/esm/components/Label/index.js +7 -0
- package/dist/esm/components/Label/index.js.map +1 -0
- package/dist/esm/components/Layout/content.js +12 -0
- package/dist/esm/components/Layout/content.js.map +1 -0
- package/dist/esm/components/Layout/index.js +28 -0
- package/dist/esm/components/Layout/index.js.map +1 -0
- package/dist/esm/components/Menu/divider.js +41 -0
- package/dist/esm/components/Menu/divider.js.map +1 -0
- package/dist/esm/components/Menu/index.js +67 -0
- package/dist/esm/components/Menu/index.js.map +1 -0
- package/dist/esm/components/Menu/item.js +33 -0
- package/dist/esm/components/Menu/item.js.map +1 -0
- package/dist/esm/components/Menu/section.js +28 -0
- package/dist/esm/components/Menu/section.js.map +1 -0
- package/dist/esm/components/Message/index.js +52 -0
- package/dist/esm/components/Message/index.js.map +1 -0
- package/dist/esm/components/Modal/index.js +40 -0
- package/dist/esm/components/Modal/index.js.map +1 -0
- package/dist/esm/components/MultiSelect/index.js +146 -0
- package/dist/esm/components/MultiSelect/index.js.map +1 -0
- package/dist/esm/components/Navbar/divider.js +24 -0
- package/dist/esm/components/Navbar/divider.js.map +1 -0
- package/dist/esm/components/Navbar/group.js +27 -0
- package/dist/esm/components/Navbar/group.js.map +1 -0
- package/dist/esm/components/Navbar/index.js +39 -0
- package/dist/esm/components/Navbar/index.js.map +1 -0
- package/dist/esm/components/Navbar/item.js +51 -0
- package/dist/esm/components/Navbar/item.js.map +1 -0
- package/dist/esm/components/Notifications/index.js +28 -0
- package/dist/esm/components/Notifications/index.js.map +1 -0
- package/dist/esm/components/Notifications/notification.js +225 -0
- package/dist/esm/components/Notifications/notification.js.map +1 -0
- package/dist/esm/components/Paging/index.js +116 -0
- package/dist/esm/components/Paging/index.js.map +1 -0
- package/dist/esm/components/Panel/LabelEditor.js +33 -0
- package/dist/esm/components/Panel/LabelEditor.js.map +1 -0
- package/dist/esm/components/Panel/NonResponsiveActions.js +18 -0
- package/dist/esm/components/Panel/NonResponsiveActions.js.map +1 -0
- package/dist/esm/components/Panel/index.js +564 -0
- package/dist/esm/components/Panel/index.js.map +1 -0
- package/dist/esm/components/Panel/panel.screenshot.js +15 -0
- package/dist/esm/components/Panel/panel.screenshot.js.map +1 -0
- package/dist/esm/components/Paragraph/index.js +19 -0
- package/dist/esm/components/Paragraph/index.js.map +1 -0
- package/dist/esm/components/Popover/index.js +267 -0
- package/dist/esm/components/Popover/index.js.map +1 -0
- package/dist/esm/components/Progress/index.js +188 -0
- package/dist/esm/components/Progress/index.js.map +1 -0
- package/dist/esm/components/RadioGroup/index.js +9 -0
- package/dist/esm/components/RadioGroup/index.js.map +1 -0
- package/dist/esm/components/Rating/index.js +165 -0
- package/dist/esm/components/Rating/index.js.map +1 -0
- package/dist/esm/components/RichTextEditor/index.js +299 -0
- package/dist/esm/components/RichTextEditor/index.js.map +1 -0
- package/dist/esm/components/SegmentedControl/index.js +291 -0
- package/dist/esm/components/SegmentedControl/index.js.map +1 -0
- package/dist/esm/components/SeverityRow/index.js +106 -0
- package/dist/esm/components/SeverityRow/index.js.map +1 -0
- package/dist/esm/components/Skeleton/index.js +28 -0
- package/dist/esm/components/Skeleton/index.js.map +1 -0
- package/dist/esm/components/Slider/index.js +176 -0
- package/dist/esm/components/Slider/index.js.map +1 -0
- package/dist/esm/components/Spacer/index.js +96 -0
- package/dist/esm/components/Spacer/index.js.map +1 -0
- package/dist/esm/components/Span/index.js +18 -0
- package/dist/esm/components/Span/index.js.map +1 -0
- package/dist/esm/components/Spinner/index.js +14 -0
- package/dist/esm/components/Spinner/index.js.map +1 -0
- package/dist/esm/components/Statistic/index.js +166 -0
- package/dist/esm/components/Statistic/index.js.map +1 -0
- package/dist/esm/components/Table/body.js +72 -0
- package/dist/esm/components/Table/body.js.map +1 -0
- package/dist/esm/components/Table/cell.js +214 -0
- package/dist/esm/components/Table/cell.js.map +1 -0
- package/dist/esm/components/Table/header.js +158 -0
- package/dist/esm/components/Table/header.js.map +1 -0
- package/dist/esm/components/Table/headerCell.js +233 -0
- package/dist/esm/components/Table/headerCell.js.map +1 -0
- package/dist/esm/components/Table/helpers.js +285 -0
- package/dist/esm/components/Table/helpers.js.map +1 -0
- package/dist/esm/components/Table/index.js +472 -0
- package/dist/esm/components/Table/index.js.map +1 -0
- package/dist/esm/components/Table/row.js +176 -0
- package/dist/esm/components/Table/row.js.map +1 -0
- package/dist/esm/components/Table/value.js +19 -0
- package/dist/esm/components/Table/value.js.map +1 -0
- package/dist/esm/components/Tabs/content.js +23 -0
- package/dist/esm/components/Tabs/content.js.map +1 -0
- package/dist/esm/components/Tabs/index.js +44 -0
- package/dist/esm/components/Tabs/index.js.map +1 -0
- package/dist/esm/components/Tabs/item.js +122 -0
- package/dist/esm/components/Tabs/item.js.map +1 -0
- package/dist/esm/components/Tabs/list.js +208 -0
- package/dist/esm/components/Tabs/list.js.map +1 -0
- package/dist/esm/components/Tag/group.js +38 -0
- package/dist/esm/components/Tag/group.js.map +1 -0
- package/dist/esm/components/Tag/index.js +267 -0
- package/dist/esm/components/Tag/index.js.map +1 -0
- package/dist/esm/components/Testimonial/index.js +108 -0
- package/dist/esm/components/Testimonial/index.js.map +1 -0
- package/dist/esm/components/Textarea/index.js +135 -0
- package/dist/esm/components/Textarea/index.js.map +1 -0
- package/dist/esm/components/Tier/index.js +48 -0
- package/dist/esm/components/Tier/index.js.map +1 -0
- package/dist/esm/components/TimeAgo/index.js +19 -0
- package/dist/esm/components/TimeAgo/index.js.map +1 -0
- package/dist/esm/components/Timeline/index.js +271 -0
- package/dist/esm/components/Timeline/index.js.map +1 -0
- package/dist/esm/components/TooltipComponent/index.js +11 -0
- package/dist/esm/components/TooltipComponent/index.js.map +1 -0
- package/dist/esm/components/Tree/index.js +266 -0
- package/dist/esm/components/Tree/index.js.map +1 -0
- package/dist/esm/components/Tree/modal.js +30 -0
- package/dist/esm/components/Tree/modal.js.map +1 -0
- package/dist/esm/constants/animations.js +9 -0
- package/dist/esm/constants/animations.js.map +1 -0
- package/dist/esm/constants/colors.js +13 -0
- package/dist/esm/constants/colors.js.map +1 -0
- package/dist/esm/constants/paging.js +48 -0
- package/dist/esm/constants/paging.js.map +1 -0
- package/dist/esm/constants/sizes.js +363 -0
- package/dist/esm/constants/sizes.js.map +1 -0
- package/dist/esm/constants/theme.js +40 -0
- package/dist/esm/constants/theme.js.map +1 -0
- package/dist/esm/containers/Paging.js +29 -0
- package/dist/esm/containers/Paging.js.map +1 -0
- package/dist/esm/containers/ReqoreProvider.js +239 -0
- package/dist/esm/containers/ReqoreProvider.js.map +1 -0
- package/dist/esm/containers/ThemeProvider.js +11 -0
- package/dist/esm/containers/ThemeProvider.js.map +1 -0
- package/dist/esm/containers/UIProvider.js +53 -0
- package/dist/esm/containers/UIProvider.js.map +1 -0
- package/dist/esm/context/CustomThemeContext.js +4 -0
- package/dist/esm/context/CustomThemeContext.js.map +1 -0
- package/dist/esm/context/ReqoreContext.js +22 -0
- package/dist/esm/context/ReqoreContext.js.map +1 -0
- package/dist/esm/context/ThemeContext.js +4 -0
- package/dist/esm/context/ThemeContext.js.map +1 -0
- package/dist/esm/helpers/animations.js +13 -0
- package/dist/esm/helpers/animations.js.map +1 -0
- package/dist/esm/helpers/colors.js +240 -0
- package/dist/esm/helpers/colors.js.map +1 -0
- package/dist/esm/helpers/dates.js +52 -0
- package/dist/esm/helpers/dates.js.map +1 -0
- package/dist/esm/helpers/time.js +21 -0
- package/dist/esm/helpers/time.js.map +1 -0
- package/dist/esm/helpers/utils.js +174 -0
- package/dist/esm/helpers/utils.js.map +1 -0
- package/dist/esm/hooks/useAutoFocus.js +76 -0
- package/dist/esm/hooks/useAutoFocus.js.map +1 -0
- package/dist/esm/hooks/useCloneThroughFragments.js +26 -0
- package/dist/esm/hooks/useCloneThroughFragments.js.map +1 -0
- package/dist/esm/hooks/useCombinedRefs.js +25 -0
- package/dist/esm/hooks/useCombinedRefs.js.map +1 -0
- package/dist/esm/hooks/useComponentTooltip.js +28 -0
- package/dist/esm/hooks/useComponentTooltip.js.map +1 -0
- package/dist/esm/hooks/useFocusTrap.js +115 -0
- package/dist/esm/hooks/useFocusTrap.js.map +1 -0
- package/dist/esm/hooks/useLatestZIndex.js +10 -0
- package/dist/esm/hooks/useLatestZIndex.js.map +1 -0
- package/dist/esm/hooks/useOutsideClick.js +17 -0
- package/dist/esm/hooks/useOutsideClick.js.map +1 -0
- package/dist/esm/hooks/usePaging.js +92 -0
- package/dist/esm/hooks/usePaging.js.map +1 -0
- package/dist/esm/hooks/useQueryWithDelay.js +19 -0
- package/dist/esm/hooks/useQueryWithDelay.js.map +1 -0
- package/dist/esm/hooks/useReqore.js +10 -0
- package/dist/esm/hooks/useReqore.js.map +1 -0
- package/dist/esm/hooks/useReqoreContext.js +12 -0
- package/dist/esm/hooks/useReqoreContext.js.map +1 -0
- package/dist/esm/hooks/useReqoreEffect.js +21 -0
- package/dist/esm/hooks/useReqoreEffect.js.map +1 -0
- package/dist/esm/hooks/useTextareaAutoSize.js +16 -0
- package/dist/esm/hooks/useTextareaAutoSize.js.map +1 -0
- package/dist/esm/hooks/useTheme.js +39 -0
- package/dist/esm/hooks/useTheme.js.map +1 -0
- package/dist/esm/hooks/useWhyDidYouUpdate.js +32 -0
- package/dist/esm/hooks/useWhyDidYouUpdate.js.map +1 -0
- package/dist/esm/index.js +92 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/styles.js +122 -0
- package/dist/esm/styles.js.map +1 -0
- package/dist/esm/types/global.js +2 -0
- package/dist/esm/types/global.js.map +1 -0
- package/dist/esm/types/icons.js +2 -0
- package/dist/esm/types/icons.js.map +1 -0
- package/package.json +6 -2
- package/tests.json +1 -1
- package/tsconfig.esm.json +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Slider/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo } from 'react';
|
|
3
|
+
import styled, { css } from 'styled-components';
|
|
4
|
+
import { LINE_SIZE_TO_NUMBER, TEXT_FROM_SIZE } from '../../constants/sizes';
|
|
5
|
+
import { changeLightness } from '../../helpers/colors';
|
|
6
|
+
import { useReqoreTheme } from '../../hooks/useTheme';
|
|
7
|
+
import { StyledEffect } from '../Effect';
|
|
8
|
+
export const StyledSpacer = styled.div `
|
|
9
|
+
display: ${({ horizontal }) => (horizontal ? 'inline-flex' : 'flex')};
|
|
10
|
+
vertical-align: middle;
|
|
11
|
+
align-items: ${({ align }) => {
|
|
12
|
+
if (align === 'start')
|
|
13
|
+
return 'flex-start';
|
|
14
|
+
if (align === 'center')
|
|
15
|
+
return 'center';
|
|
16
|
+
if (align === 'end')
|
|
17
|
+
return 'flex-end';
|
|
18
|
+
return 'center';
|
|
19
|
+
}};
|
|
20
|
+
|
|
21
|
+
${({ horizontal, vertical }) => {
|
|
22
|
+
if (horizontal) {
|
|
23
|
+
return css `
|
|
24
|
+
flex-flow: row;
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
if (vertical) {
|
|
28
|
+
return css `
|
|
29
|
+
flex-flow: column;
|
|
30
|
+
`;
|
|
31
|
+
}
|
|
32
|
+
}}
|
|
33
|
+
|
|
34
|
+
flex-shrink: 0;
|
|
35
|
+
`;
|
|
36
|
+
export const StyledSpace = styled.div `
|
|
37
|
+
display: inline-block;
|
|
38
|
+
flex: 0 0 auto;
|
|
39
|
+
|
|
40
|
+
${({ horizontal, vertical, width, height, lineSize }) => {
|
|
41
|
+
if (horizontal) {
|
|
42
|
+
return css `
|
|
43
|
+
width: ${width / 2 - lineSize / 2}px;
|
|
44
|
+
height: ${height ? height : `${TEXT_FROM_SIZE.normal}px`};
|
|
45
|
+
`;
|
|
46
|
+
}
|
|
47
|
+
if (vertical) {
|
|
48
|
+
return css `
|
|
49
|
+
width: ${width ? width : '100%'};
|
|
50
|
+
height: ${height / 2 - lineSize / 2}px;
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
}}
|
|
54
|
+
`;
|
|
55
|
+
export const StyledLine = styled(StyledEffect) `
|
|
56
|
+
flex-shrink: 0;
|
|
57
|
+
background-color: ${({ theme, lineSize }) => lineSize === 'none' ? 'transparent' : changeLightness(theme.main, 0.2)};
|
|
58
|
+
|
|
59
|
+
${({ horizontal, vertical, width, height, lineSize }) => {
|
|
60
|
+
if (horizontal) {
|
|
61
|
+
return css `
|
|
62
|
+
width: ${lineSize}px;
|
|
63
|
+
height: ${height ? height : `${TEXT_FROM_SIZE.normal}px`};
|
|
64
|
+
`;
|
|
65
|
+
}
|
|
66
|
+
if (vertical) {
|
|
67
|
+
return css `
|
|
68
|
+
width: ${width ? width : '100%'};
|
|
69
|
+
height: ${lineSize}px;
|
|
70
|
+
`;
|
|
71
|
+
}
|
|
72
|
+
}}
|
|
73
|
+
`;
|
|
74
|
+
export const ReqoreSpacer = memo(({ customTheme, inheritCustomTheme, intent, lineSize = 'none', align, ...rest }) => {
|
|
75
|
+
const theme = useReqoreTheme('main', customTheme, intent, undefined, inheritCustomTheme);
|
|
76
|
+
let { horizontal, vertical } = rest;
|
|
77
|
+
// The user is using old version of the component
|
|
78
|
+
// We will assume that the user wants a spacer based on the width or height
|
|
79
|
+
if (!horizontal && !vertical) {
|
|
80
|
+
if (rest.width) {
|
|
81
|
+
horizontal = true;
|
|
82
|
+
}
|
|
83
|
+
if (rest.height) {
|
|
84
|
+
vertical = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const _lineSize = useMemo(() => (lineSize === 'none' ? 0 : LINE_SIZE_TO_NUMBER[lineSize]), [lineSize]);
|
|
88
|
+
return (_jsxs(StyledSpacer, { as: 'div', ...rest, horizontal: horizontal, vertical: vertical, align: align, className: 'reqore-spacer', children: [_jsx(StyledSpace, { ...rest, horizontal: horizontal, vertical: vertical, lineSize: _lineSize }), _jsx(StyledLine, { ...rest, horizontal: horizontal, vertical: vertical, theme: theme, lineSize: _lineSize }), _jsx(StyledSpace, { ...rest, horizontal: horizontal, vertical: vertical, lineSize: _lineSize })] }));
|
|
89
|
+
});
|
|
90
|
+
export const ReqoreHorizontalSpacer = memo(({ width = 1, lineSize = 'none', ...rest }) => {
|
|
91
|
+
return _jsx(ReqoreSpacer, { width: width, lineSize: lineSize, horizontal: true, ...rest });
|
|
92
|
+
});
|
|
93
|
+
export const ReqoreVerticalSpacer = memo(({ height = 1, lineSize = 'none', ...rest }) => {
|
|
94
|
+
return _jsx(ReqoreSpacer, { height: height, lineSize: lineSize, vertical: true, ...rest });
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Spacer/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, memo } from 'react';
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
import { TEXT_FROM_SIZE } from '../../constants/sizes';
|
|
5
|
+
import { isStringSize } from '../../helpers/utils';
|
|
6
|
+
import { useReqoreTheme } from '../../hooks/useTheme';
|
|
7
|
+
import { StyledTextEffect } from '../Effect';
|
|
8
|
+
import { ReqoreTooltipComponent } from '../TooltipComponent';
|
|
9
|
+
export const StyledSpan = styled(StyledTextEffect) `
|
|
10
|
+
color: ${({ theme, intent }) => intent ? theme.intents[intent] : theme.text?.color || 'inherit'};
|
|
11
|
+
font-size: ${({ _size }) => (isStringSize(_size) ? `${TEXT_FROM_SIZE[_size]}px` : _size)};
|
|
12
|
+
vertical-align: ${({ inline }) => (inline ? 'middle' : undefined)};
|
|
13
|
+
`;
|
|
14
|
+
export const ReqoreSpan = memo(forwardRef(({ size, children, customTheme, inheritCustomTheme, intent, className, inline = false, tooltip, ...props }, ref) => {
|
|
15
|
+
const theme = useReqoreTheme('main', customTheme, intent, undefined, inheritCustomTheme);
|
|
16
|
+
return (_jsx(ReqoreTooltipComponent, { ref: ref, as: 'span', theme: theme, color: theme.text.color, intent: intent, inline: inline, ...props, Component: StyledSpan, tooltip: tooltip, _size: size, className: `${className || ''} reqore-span`, children: children }));
|
|
17
|
+
}));
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Span/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAU,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,OAAO,EAA0B,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAY7D,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;WACvC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS;eACpD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBACtE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;CAClE,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAC5B,UAAU,CACR,CACE,EACE,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,MAAM,GAAG,KAAK,EACd,OAAO,EACP,GAAG,KAAK,EACS,EACnB,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAEzF,OAAO,CACL,KAAC,sBAAsB,IACrB,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,MAAM,EACT,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,KACV,KAAK,EACT,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,GAAG,SAAS,IAAI,EAAE,cAAc,YAE1C,QAAQ,GACc,CAC1B,CAAC;AACJ,CAAC,CACF,CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { ReqoreIcon, ReqoreP } from '../..';
|
|
4
|
+
import ReqoreControlGroup from '../ControlGroup';
|
|
5
|
+
export const ReqoreSpinner = ({ size, intent, children, type, iconColor, labelEffect, effect, iconMargin, centered, iconProps, ...rest }) => {
|
|
6
|
+
const renderContent = useCallback(() => {
|
|
7
|
+
return (_jsx(ReqoreIcon, { icon: !type ? 'LoaderLine' : `Loader${type}Line`, color: iconColor || intent, size: size, effect: effect, animation: 'spin', className: 'reqore-spinner', margin: iconMargin || (children && !centered ? 'right' : undefined), ...iconProps }));
|
|
8
|
+
}, [size, intent, type, children, iconColor, centered]);
|
|
9
|
+
if (children) {
|
|
10
|
+
return (_jsxs(ReqoreControlGroup, { ...rest, vertical: centered, horizontalAlign: centered ? 'center' : undefined, verticalAlign: 'center', children: [renderContent(), _jsx(ReqoreP, { size: size, intent: intent, effect: labelEffect, className: 'reqore-spinner-wrapper', children: children })] }));
|
|
11
|
+
}
|
|
12
|
+
return _jsx(_Fragment, { children: renderContent() });
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Spinner/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,kBAAgD,MAAM,iBAAiB,CAAC;AAkB/E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,WAAW,EACX,MAAM,EACN,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACa,EAAE,EAAE;IACxB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,EAChD,KAAK,EAAE,SAAS,IAAI,MAAM,EAC1B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAC,MAAM,EAChB,SAAS,EAAC,gBAAgB,EAC1B,MAAM,EAAE,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAC/D,SAAS,GACb,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExD,IAAI,QAAQ,EAAE;QACZ,OAAO,CACL,MAAC,kBAAkB,OACb,IAAI,EACR,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAChD,aAAa,EAAC,QAAQ,aAErB,aAAa,EAAE,EAChB,KAAC,OAAO,IACN,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,SAAS,EAAC,wBAAwB,YAEjC,QAAQ,GACD,IACS,CACtB,CAAC;KACH;IAED,OAAO,4BAAG,aAAa,EAAE,GAAI,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { rgba } from 'polished';
|
|
3
|
+
import { forwardRef, memo, useMemo } from 'react';
|
|
4
|
+
import styled, { css } from 'styled-components';
|
|
5
|
+
import { resolveRadius } from '../../constants/sizes';
|
|
6
|
+
import { changeDarkness, changeLightness, getMainBackgroundColor, getReadableColor, } from '../../helpers/colors';
|
|
7
|
+
import { alignToFlexAlign, getOneHigherSize, getOneLessSize, resolvePadding, } from '../../helpers/utils';
|
|
8
|
+
import { useReqoreTheme } from '../../hooks/useTheme';
|
|
9
|
+
import { DisabledElement, InactiveIconScale, RaisedElement, ScaleIconOnHover } from '../../styles';
|
|
10
|
+
import ReqoreControlGroup from '../ControlGroup';
|
|
11
|
+
import { patchPrimaryGradient, StyledEffect } from '../Effect';
|
|
12
|
+
import { ReqoreHeading } from '../Header';
|
|
13
|
+
import ReqoreIcon from '../Icon';
|
|
14
|
+
import { ReqoreSpan } from '../Span';
|
|
15
|
+
import { ReqoreTooltipComponent } from '../TooltipComponent';
|
|
16
|
+
const TREND_ICONS = {
|
|
17
|
+
up: 'ArrowUpSLine',
|
|
18
|
+
down: 'ArrowDownSLine',
|
|
19
|
+
neutral: 'SubtractLine',
|
|
20
|
+
};
|
|
21
|
+
const TREND_DEFAULT_INTENTS = {
|
|
22
|
+
up: 'success',
|
|
23
|
+
down: 'danger',
|
|
24
|
+
neutral: 'muted',
|
|
25
|
+
};
|
|
26
|
+
const StyledStatisticWrapper = styled(StyledEffect) `
|
|
27
|
+
/* ---- Layout --------------------------------------------------------
|
|
28
|
+
The Statistic is rendered as a real div (see the as=div on the JSX)
|
|
29
|
+
rather than the default StyledEffect span. A span containing block
|
|
30
|
+
children (the value row and the trend group are both divs) is the
|
|
31
|
+
wrong content model and produced a box that did not establish a
|
|
32
|
+
proper containment context, so overflow + min-width did not hold
|
|
33
|
+
the inner text inside the tile. With a div root the wrapper can be
|
|
34
|
+
a proper flex column container. */
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
align-items: ${({ $align }) => $align === 'center'
|
|
38
|
+
? 'center'
|
|
39
|
+
: $align === 'flex-end'
|
|
40
|
+
? 'flex-end'
|
|
41
|
+
: 'flex-start'};
|
|
42
|
+
justify-content: ${({ $align }) => $align};
|
|
43
|
+
width: ${({ $fluid }) => ($fluid ? '100%' : undefined)};
|
|
44
|
+
/* ---- Overflow safety ----------------------------------------------
|
|
45
|
+
Statistic tiles are commonly laid out inside flex or grid parents
|
|
46
|
+
(KPI strips, dashboards). Without bounding the tile intrinsic
|
|
47
|
+
width to its column, the widest unbreakable token in the value,
|
|
48
|
+
trend or label can push past the column edge and bleed into the
|
|
49
|
+
neighbouring tile. min-width 0 lets flex-shrink do its job,
|
|
50
|
+
max-width 100% caps the box at the column it lives in, and
|
|
51
|
+
overflow hidden clips any child that refuses to honour the cap.
|
|
52
|
+
With a div root these all behave as documented. */
|
|
53
|
+
min-width: 0;
|
|
54
|
+
max-width: 100%;
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
& .reqore-statistic-label,
|
|
57
|
+
& .reqore-statistic-value-row,
|
|
58
|
+
& .reqore-statistic-trend {
|
|
59
|
+
max-width: 100%;
|
|
60
|
+
min-width: 0;
|
|
61
|
+
}
|
|
62
|
+
/* The trend slot is a ReqoreControlGroup which defaults to
|
|
63
|
+
"flex: 0 0 auto" (ControlGroup/index.tsx). That kills flex-shrink
|
|
64
|
+
so the group keeps its intrinsic content width and would push the
|
|
65
|
+
tile past its grid track when the trend copy is long. Forcing the
|
|
66
|
+
group to shrink lets the text-leaf wrap rules below take effect. */
|
|
67
|
+
& .reqore-statistic-trend {
|
|
68
|
+
flex: 0 1 auto;
|
|
69
|
+
flex-wrap: wrap;
|
|
70
|
+
}
|
|
71
|
+
/* Wrap rather than ellipsis — KPI tiles benefit from the operator
|
|
72
|
+
seeing the whole sub-line rather than a clipped fragment.
|
|
73
|
+
overflow-wrap anywhere covers identifiers, URLs and long codes
|
|
74
|
+
with no natural break point. */
|
|
75
|
+
& .reqore-statistic-label,
|
|
76
|
+
& .reqore-statistic-value,
|
|
77
|
+
& .reqore-statistic-prefix,
|
|
78
|
+
& .reqore-statistic-suffix {
|
|
79
|
+
white-space: normal;
|
|
80
|
+
overflow-wrap: anywhere;
|
|
81
|
+
word-break: break-word;
|
|
82
|
+
max-width: 100%;
|
|
83
|
+
}
|
|
84
|
+
& .reqore-statistic-trend > span {
|
|
85
|
+
white-space: normal;
|
|
86
|
+
overflow-wrap: anywhere;
|
|
87
|
+
word-break: break-word;
|
|
88
|
+
min-width: 0;
|
|
89
|
+
max-width: 100%;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
${({ $hasBackground, theme, size, rounded, radiusSize, flat, intent, opacity = 1, $padded, $paddingSize, }) => $hasBackground &&
|
|
93
|
+
css `
|
|
94
|
+
background-color: ${rgba(changeDarkness(getMainBackgroundColor(theme), 0.03), opacity)};
|
|
95
|
+
border-radius: ${rounded ? resolveRadius(size, radiusSize) : 0}px;
|
|
96
|
+
border: ${flat
|
|
97
|
+
? undefined
|
|
98
|
+
: `1px solid ${changeLightness(intent ? theme.intents[intent] : getMainBackgroundColor(theme), 0.08)}`};
|
|
99
|
+
color: ${getReadableColor(theme, undefined, undefined, true)};
|
|
100
|
+
padding: ${resolvePadding({
|
|
101
|
+
padded: $padded,
|
|
102
|
+
paddingSize: $paddingSize,
|
|
103
|
+
verticalMultiplier: 3,
|
|
104
|
+
horizontalMultiplier: 5,
|
|
105
|
+
})};
|
|
106
|
+
`}
|
|
107
|
+
|
|
108
|
+
${({ $raised, $hasBackground, flat }) => $raised && $hasBackground && flat !== false && RaisedElement}
|
|
109
|
+
|
|
110
|
+
${({ $interactive, disabled }) => $interactive && !disabled
|
|
111
|
+
? css `
|
|
112
|
+
${InactiveIconScale};
|
|
113
|
+
${ScaleIconOnHover};
|
|
114
|
+
cursor: pointer;
|
|
115
|
+
transition: all 0.2s ease-out;
|
|
116
|
+
|
|
117
|
+
&:active {
|
|
118
|
+
transform: scale(0.98);
|
|
119
|
+
}
|
|
120
|
+
`
|
|
121
|
+
: undefined}
|
|
122
|
+
|
|
123
|
+
${({ disabled }) => disabled &&
|
|
124
|
+
css `
|
|
125
|
+
${DisabledElement};
|
|
126
|
+
`}
|
|
127
|
+
`;
|
|
128
|
+
const StyledStatisticValueRow = styled.div `
|
|
129
|
+
display: flex;
|
|
130
|
+
align-items: baseline;
|
|
131
|
+
gap: 4px;
|
|
132
|
+
flex-wrap: nowrap;
|
|
133
|
+
`;
|
|
134
|
+
const ReqoreStatistic = memo(forwardRef(({ value, label, icon, iconColor, iconProps, prefix, suffix, trend, valueEffect, labelEffect, effect, align = 'center', size = 'normal', customTheme, inheritCustomTheme, intent, fluid, flat, disabled, tooltip, rounded, radiusSize, transparent, opacity, raised, padded = true, paddingSize, className, ...rest }, ref) => {
|
|
135
|
+
const theme = useReqoreTheme('main', customTheme, intent, undefined, inheritCustomTheme);
|
|
136
|
+
const secondarySize = useMemo(() => getOneLessSize(size), [size]);
|
|
137
|
+
const flexAlign = useMemo(() => alignToFlexAlign(align), [align]);
|
|
138
|
+
const interactive = useMemo(() => !!(rest.onClick || rest.onDoubleClick || rest.onContextMenu), [rest.onClick, rest.onDoubleClick, rest.onContextMenu]);
|
|
139
|
+
const hasBackground = useMemo(() => !!(effect || rounded || flat !== undefined || transparent || opacity !== undefined || raised), [effect, rounded, flat, transparent, opacity, raised]);
|
|
140
|
+
const trendIntent = useMemo(() => (trend ? trend.intent || TREND_DEFAULT_INTENTS[trend.direction] : undefined), [trend]);
|
|
141
|
+
const trendIcon = useMemo(() => (trend ? trend.icon || TREND_ICONS[trend.direction] : undefined), [trend]);
|
|
142
|
+
const transformedEffect = useMemo(() => {
|
|
143
|
+
if (!effect)
|
|
144
|
+
return undefined;
|
|
145
|
+
const newEffect = { ...effect };
|
|
146
|
+
if (newEffect.gradient && intent) {
|
|
147
|
+
newEffect.gradient = patchPrimaryGradient(newEffect.gradient, {
|
|
148
|
+
borderColor: theme.intents[intent],
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return newEffect;
|
|
152
|
+
}, [effect, intent, theme]);
|
|
153
|
+
return (_jsx(ReqoreTooltipComponent, { ...rest,
|
|
154
|
+
// Render as a real block-level `<div>`. The base styled
|
|
155
|
+
// element (`StyledEffect`) is a `<span>`, which is wrong
|
|
156
|
+
// here — Statistic's children are block-level (the value
|
|
157
|
+
// row is a `<div>`, the trend group is a `<div>`), and an
|
|
158
|
+
// inline-flex `<span>` containing block children breaks
|
|
159
|
+
// HTML's content model. Browsers tolerate it but the
|
|
160
|
+
// resulting box doesn't establish containment cleanly,
|
|
161
|
+
// which is why `overflow: hidden` + `min-width: 0` didn't
|
|
162
|
+
// hold their text inside the tile.
|
|
163
|
+
as: 'div', Component: StyledStatisticWrapper, tooltip: tooltip, ref: ref, theme: theme, size: size, "$fluid": fluid, disabled: disabled, "$hasBackground": hasBackground, "$interactive": interactive, "$align": flexAlign, rounded: rounded, radiusSize: radiusSize, flat: flat, intent: intent, opacity: transparent ? 0 : opacity, "$raised": raised, "$padded": padded, "$paddingSize": paddingSize ?? size, effect: transformedEffect, className: `${className || ''} reqore-statistic`, children: _jsxs(ReqoreControlGroup, { vertical: true, horizontalAlign: flexAlign, className: 'reqore-statistic-content', children: [icon && (_jsx(ReqoreIcon, { ...iconProps, icon: icon, size: size, color: iconColor, intent: iconColor ? undefined : intent, className: 'reqore-statistic-icon' })), label && (_jsx(ReqoreSpan, { size: secondarySize, className: 'reqore-statistic-label', effect: { opacity: 0.7, uppercase: true, spaced: 1, ...labelEffect }, children: label })), _jsxs(StyledStatisticValueRow, { className: 'reqore-statistic-value-row', children: [prefix && (_jsx(ReqoreHeading, { size: getOneHigherSize(size), className: 'reqore-statistic-prefix', effect: { opacity: 0.6 }, children: prefix })), _jsx(ReqoreHeading, { size: getOneHigherSize(size), className: 'reqore-statistic-value', effect: valueEffect, children: value }), suffix && (_jsx(ReqoreHeading, { size: getOneHigherSize(size), className: 'reqore-statistic-suffix', effect: { opacity: 0.6 }, children: suffix }))] }), trend && (_jsxs(ReqoreControlGroup, { gapSize: 'micro', verticalAlign: 'center', className: 'reqore-statistic-trend', children: [_jsx(ReqoreIcon, { icon: trendIcon, size: secondarySize, intent: trendIntent }), trend.value !== undefined && (_jsx(ReqoreSpan, { size: secondarySize, intent: trendIntent, children: trend.value }))] }))] }) }));
|
|
164
|
+
}));
|
|
165
|
+
export default ReqoreStatistic;
|
|
166
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Statistic/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import count from 'lodash/size';
|
|
3
|
+
import { forwardRef, memo, useCallback, useEffect, useMemo } from 'react';
|
|
4
|
+
import { FixedSizeList as List } from 'react-window';
|
|
5
|
+
import styled, { css } from 'styled-components';
|
|
6
|
+
import { TABLE_SIZE_TO_PX } from '../../constants/sizes';
|
|
7
|
+
import { useCombinedRefs } from '../../hooks/useCombinedRefs';
|
|
8
|
+
import { getTotalColumnsWidth } from './helpers';
|
|
9
|
+
import ReqoreTableRow from './row';
|
|
10
|
+
const StyledList = styled(List) ``;
|
|
11
|
+
const StyledNonVirtualizedBody = styled.div `
|
|
12
|
+
${({ height, minWidth }) => css `
|
|
13
|
+
overflow: auto;
|
|
14
|
+
${height || height === 0
|
|
15
|
+
? css `
|
|
16
|
+
height: ${height}px;
|
|
17
|
+
`
|
|
18
|
+
: ''}
|
|
19
|
+
> * {
|
|
20
|
+
min-width: ${minWidth}px;
|
|
21
|
+
}
|
|
22
|
+
`}
|
|
23
|
+
`;
|
|
24
|
+
const ReqoreTableBody = forwardRef(({ data, height, size = 'normal', headerRef, virtualized = true, onScrollChange, rowHeight: rowHeightOverride, ...rest }, ref) => {
|
|
25
|
+
const { targetRef } = useCombinedRefs(ref);
|
|
26
|
+
const rowHeight = useMemo(() => {
|
|
27
|
+
if (typeof rowHeightOverride === 'number' && rowHeightOverride > 0) {
|
|
28
|
+
return rowHeightOverride;
|
|
29
|
+
}
|
|
30
|
+
return rest.flat ? TABLE_SIZE_TO_PX[size] : TABLE_SIZE_TO_PX[size] + 1;
|
|
31
|
+
}, [rowHeightOverride, size, rest.flat]);
|
|
32
|
+
const itemCount = useMemo(() => count(data), [data]);
|
|
33
|
+
const totalColumnsWidth = useMemo(() => getTotalColumnsWidth(rest.columns), [rest.columns]);
|
|
34
|
+
const itemData = useMemo(() => {
|
|
35
|
+
return {
|
|
36
|
+
data,
|
|
37
|
+
size,
|
|
38
|
+
...rest,
|
|
39
|
+
};
|
|
40
|
+
}, [data, size, rest]);
|
|
41
|
+
// Sync body horizontal scroll to the header and notify vertical scroll state
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
const el = targetRef.current;
|
|
44
|
+
if (!el) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const handleScroll = () => {
|
|
48
|
+
if (headerRef.current) {
|
|
49
|
+
headerRef.current.scrollLeft = el.scrollLeft;
|
|
50
|
+
}
|
|
51
|
+
onScrollChange?.(el.scrollTop > 0);
|
|
52
|
+
};
|
|
53
|
+
el.addEventListener('scroll', handleScroll, { passive: true });
|
|
54
|
+
return () => el.removeEventListener('scroll', handleScroll);
|
|
55
|
+
}, [headerRef, onScrollChange, targetRef]);
|
|
56
|
+
const measuredHeight = useMemo(() => {
|
|
57
|
+
if ((!height && height !== 0) || height > itemCount * rowHeight) {
|
|
58
|
+
return itemCount * rowHeight;
|
|
59
|
+
}
|
|
60
|
+
return height;
|
|
61
|
+
}, [height, itemCount, rowHeight]);
|
|
62
|
+
const renderNonVirtualizedRow = useCallback((_item, index) => (_jsx(ReqoreTableRow, { data: itemData, index: index }, index)), [itemData]);
|
|
63
|
+
if (!virtualized) {
|
|
64
|
+
// Non-virtualized rows can wrap and exceed the fixed `rowHeight`, so pinning a pixel
|
|
65
|
+
// height would force a vertical scrollbar. Only set a height when the caller explicitly
|
|
66
|
+
// requested one — otherwise let the body grow to fit its content.
|
|
67
|
+
return (_jsx(StyledNonVirtualizedBody, { className: 'reqore-table-body', ref: targetRef, height: height || height === 0 ? measuredHeight : undefined, minWidth: totalColumnsWidth, children: data.map(renderNonVirtualizedRow) }));
|
|
68
|
+
}
|
|
69
|
+
return (_jsx(StyledList, { outerRef: targetRef, itemCount: itemCount, height: measuredHeight, className: 'reqore-table-body', itemSize: rowHeight, itemData: itemData, width: '100%', children: ReqoreTableRow }));
|
|
70
|
+
});
|
|
71
|
+
export default memo(ReqoreTableBody);
|
|
72
|
+
//# sourceMappingURL=body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../src/components/Table/body.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { lighten, rgba } from 'polished';
|
|
3
|
+
import { forwardRef, memo, useCallback, useLayoutEffect, useRef, useState } from 'react';
|
|
4
|
+
import styled, { css } from 'styled-components';
|
|
5
|
+
import { TEXT_FROM_SIZE } from '../../constants/sizes';
|
|
6
|
+
import { changeLightness, getReadableColorFrom } from '../../helpers/colors';
|
|
7
|
+
import { alignToFlexAlign } from '../../helpers/utils';
|
|
8
|
+
import ReqoreButton from '../Button';
|
|
9
|
+
import { ReqoreTooltipComponent } from '../TooltipComponent';
|
|
10
|
+
export const StyledTableCell = styled.div `
|
|
11
|
+
${({ width, minWidth, maxWidth, grow }) => css `
|
|
12
|
+
width: ${width}px;
|
|
13
|
+
min-width: ${minWidth}px;
|
|
14
|
+
max-width: ${maxWidth}px;
|
|
15
|
+
|
|
16
|
+
flex-grow: ${grow || (width ? undefined : 1)};
|
|
17
|
+
`}
|
|
18
|
+
|
|
19
|
+
${({ theme, align, interactive, interactiveCell, intent, size, flat, striped, even, selected, selectedIntent, disabled, hovered, padded, wrap, pin, pinOffset, pinEdge, maxHeight, }) => {
|
|
20
|
+
const getOriginalBackgroundColor = () => {
|
|
21
|
+
let color = theme.main;
|
|
22
|
+
// Is there any intent
|
|
23
|
+
if (intent || (selected && selectedIntent)) {
|
|
24
|
+
color = theme.intents[intent || selectedIntent];
|
|
25
|
+
}
|
|
26
|
+
return color;
|
|
27
|
+
};
|
|
28
|
+
const getBackgroundColor = () => {
|
|
29
|
+
const color = getOriginalBackgroundColor();
|
|
30
|
+
let opacity = 0;
|
|
31
|
+
// Is there any intent
|
|
32
|
+
if (intent || (selected && selectedIntent)) {
|
|
33
|
+
opacity += 0.02;
|
|
34
|
+
}
|
|
35
|
+
// Is the table striped and this row odd
|
|
36
|
+
if (striped && !even) {
|
|
37
|
+
opacity += 0.05;
|
|
38
|
+
}
|
|
39
|
+
// Is this row selected
|
|
40
|
+
if (selected) {
|
|
41
|
+
opacity += 0.02;
|
|
42
|
+
}
|
|
43
|
+
// Is this row hovered
|
|
44
|
+
if (hovered) {
|
|
45
|
+
opacity += 0.08;
|
|
46
|
+
}
|
|
47
|
+
// Pinned cells must paint opaque — otherwise non-pinned cells scrolling underneath show through
|
|
48
|
+
if (opacity === 0) {
|
|
49
|
+
return pin ? theme.main : 'transparent';
|
|
50
|
+
}
|
|
51
|
+
return changeLightness(color, opacity);
|
|
52
|
+
};
|
|
53
|
+
const backgroundColor = getBackgroundColor();
|
|
54
|
+
const displayedBackgroundColor = backgroundColor === 'transparent'
|
|
55
|
+
? theme.main
|
|
56
|
+
: rgba(backgroundColor, 0.3);
|
|
57
|
+
// Pinned cells need an opaque paint so non-pinned cells scrolling underneath don't show
|
|
58
|
+
// through. We layer the semi-transparent displayed color over a solid theme.main base.
|
|
59
|
+
const pinnedBackground = pin
|
|
60
|
+
? `linear-gradient(${displayedBackgroundColor}, ${displayedBackgroundColor}), ${theme.main}`
|
|
61
|
+
: undefined;
|
|
62
|
+
return css `
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: ${maxHeight ? 'flex-start' : 'center'};
|
|
65
|
+
justify-content: ${align ? alignToFlexAlign(align) : 'flex-start'};
|
|
66
|
+
flex-shrink: 0;
|
|
67
|
+
align-self: stretch;
|
|
68
|
+
border-bottom: ${!flat ? '1px solid ' : undefined};
|
|
69
|
+
|
|
70
|
+
${maxHeight &&
|
|
71
|
+
css `
|
|
72
|
+
position: relative;
|
|
73
|
+
max-height: ${maxHeight}px;
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
`}
|
|
76
|
+
|
|
77
|
+
padding: ${!padded || padded === 'both' || padded === 'vertical' ? (wrap ? '6px' : 0) : undefined}
|
|
78
|
+
${!padded || padded === 'both' || padded === 'horizontal' ? '10px' : undefined};
|
|
79
|
+
font-size: ${TEXT_FROM_SIZE[size]}px;
|
|
80
|
+
background: ${pinnedBackground ??
|
|
81
|
+
(backgroundColor === 'transparent' ? 'transparent' : displayedBackgroundColor)};
|
|
82
|
+
color: ${getReadableColorFrom(getOriginalBackgroundColor(), !hovered)};
|
|
83
|
+
border-color: ${changeLightness(displayedBackgroundColor, 0.1)};
|
|
84
|
+
transition: background-color 0.2s ease-out;
|
|
85
|
+
opacity: ${disabled ? 0.2 : 1};
|
|
86
|
+
pointer-events: ${disabled ? 'none' : undefined};
|
|
87
|
+
cursor: ${interactive || interactiveCell ? 'pointer' : 'default'};
|
|
88
|
+
|
|
89
|
+
${pin &&
|
|
90
|
+
css `
|
|
91
|
+
position: sticky;
|
|
92
|
+
${pin === 'left' ? `left: ${pinOffset || 0}px;` : `right: ${pinOffset || 0}px;`}
|
|
93
|
+
z-index: 2;
|
|
94
|
+
${pinEdge &&
|
|
95
|
+
css `
|
|
96
|
+
/* Use a pseudo-element instead of box-shadow so the shadow is strictly bounded to
|
|
97
|
+
the cell's height — a blurred box-shadow bleeds vertically and stacks across
|
|
98
|
+
neighboring pinned cells, producing dark bands between rows. */
|
|
99
|
+
&::after {
|
|
100
|
+
content: '';
|
|
101
|
+
position: absolute;
|
|
102
|
+
top: 0;
|
|
103
|
+
bottom: 0;
|
|
104
|
+
width: 12px;
|
|
105
|
+
pointer-events: none;
|
|
106
|
+
${pin === 'left' ? 'right: -12px;' : 'left: -12px;'}
|
|
107
|
+
background: linear-gradient(
|
|
108
|
+
to ${pin === 'left' ? 'right' : 'left'},
|
|
109
|
+
rgba(0, 0, 0, 0.35),
|
|
110
|
+
rgba(0, 0, 0, 0)
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
`}
|
|
114
|
+
`}
|
|
115
|
+
|
|
116
|
+
${interactiveCell &&
|
|
117
|
+
css `
|
|
118
|
+
&:hover {
|
|
119
|
+
/* Pinned cells rely on the layered background shorthand for their opaque base —
|
|
120
|
+
overriding just background-color would lose theme.main and let the non-pinned
|
|
121
|
+
cells scrolling underneath show through on hover. */
|
|
122
|
+
${pin
|
|
123
|
+
? css `
|
|
124
|
+
background: linear-gradient(
|
|
125
|
+
${lighten(0.1, displayedBackgroundColor)},
|
|
126
|
+
${lighten(0.1, displayedBackgroundColor)}
|
|
127
|
+
),
|
|
128
|
+
${theme.main};
|
|
129
|
+
`
|
|
130
|
+
: css `
|
|
131
|
+
background-color: ${lighten(0.1, displayedBackgroundColor)};
|
|
132
|
+
`}
|
|
133
|
+
}
|
|
134
|
+
`}
|
|
135
|
+
|
|
136
|
+
p.reqore-table-text {
|
|
137
|
+
${wrap
|
|
138
|
+
? css `
|
|
139
|
+
white-space: normal;
|
|
140
|
+
word-break: break-word;
|
|
141
|
+
overflow-wrap: anywhere;
|
|
142
|
+
`
|
|
143
|
+
: css `
|
|
144
|
+
overflow: hidden;
|
|
145
|
+
white-space: nowrap;
|
|
146
|
+
text-overflow: ellipsis;
|
|
147
|
+
`}
|
|
148
|
+
margin: 0;
|
|
149
|
+
padding: 0;
|
|
150
|
+
}
|
|
151
|
+
`;
|
|
152
|
+
}}
|
|
153
|
+
`;
|
|
154
|
+
const StyledCellExpandOverlay = styled.div `
|
|
155
|
+
position: absolute;
|
|
156
|
+
left: 0;
|
|
157
|
+
right: 0;
|
|
158
|
+
bottom: 0;
|
|
159
|
+
display: flex;
|
|
160
|
+
align-items: flex-end;
|
|
161
|
+
justify-content: center;
|
|
162
|
+
padding: 4px 6px;
|
|
163
|
+
pointer-events: none;
|
|
164
|
+
z-index: 1;
|
|
165
|
+
height: 36px;
|
|
166
|
+
background: ${({ theme }) => `linear-gradient(to bottom, ${rgba(theme.main, 0)} 0%, ${theme.main} 80%)`};
|
|
167
|
+
|
|
168
|
+
> * {
|
|
169
|
+
pointer-events: auto;
|
|
170
|
+
}
|
|
171
|
+
`;
|
|
172
|
+
export const ReqoreTableBodyCell = memo(forwardRef((props, ref) => {
|
|
173
|
+
const { expandHeightButtonProps, ...cellStyleProps } = props;
|
|
174
|
+
const { maxHeight, children, size } = cellStyleProps;
|
|
175
|
+
const [expanded, setExpanded] = useState(false);
|
|
176
|
+
const [isOverflowing, setIsOverflowing] = useState(false);
|
|
177
|
+
const localRef = useRef(null);
|
|
178
|
+
const setRefs = useCallback((el) => {
|
|
179
|
+
localRef.current = el;
|
|
180
|
+
if (typeof ref === 'function') {
|
|
181
|
+
ref(el);
|
|
182
|
+
}
|
|
183
|
+
else if (ref) {
|
|
184
|
+
ref.current = el;
|
|
185
|
+
}
|
|
186
|
+
}, [ref]);
|
|
187
|
+
// Expansion is a one-way action, so once expanded the overlay hides and the cell grows
|
|
188
|
+
// naturally — no need to keep measuring.
|
|
189
|
+
useLayoutEffect(() => {
|
|
190
|
+
if (!maxHeight || expanded) {
|
|
191
|
+
setIsOverflowing(false);
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
const el = localRef.current;
|
|
195
|
+
if (!el) {
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
const check = () => {
|
|
199
|
+
setIsOverflowing(el.scrollHeight > el.clientHeight + 1);
|
|
200
|
+
};
|
|
201
|
+
check();
|
|
202
|
+
const observer = new ResizeObserver(check);
|
|
203
|
+
observer.observe(el);
|
|
204
|
+
return () => observer.disconnect();
|
|
205
|
+
}, [maxHeight, expanded, children]);
|
|
206
|
+
const effectiveMaxHeight = expanded ? undefined : maxHeight;
|
|
207
|
+
const showOverlay = !!maxHeight && !expanded && isOverflowing;
|
|
208
|
+
return (_jsxs(ReqoreTooltipComponent, { Component: StyledTableCell, ...cellStyleProps, maxHeight: effectiveMaxHeight, ref: setRefs, children: [children, showOverlay && (_jsx(StyledCellExpandOverlay, { className: 'reqore-table-cell-expand', onClick: (e) => e.stopPropagation(), children: _jsx(ReqoreButton, { compact: true, size: size === 'micro' || size === 'tiny' ? 'tiny' : 'small', rightIcon: 'ArrowDownSLine', ...expandHeightButtonProps, onClick: (e) => {
|
|
209
|
+
e.stopPropagation();
|
|
210
|
+
expandHeightButtonProps?.onClick?.(e);
|
|
211
|
+
setExpanded(true);
|
|
212
|
+
}, children: expandHeightButtonProps?.children ?? 'Show more' }) }))] }));
|
|
213
|
+
}));
|
|
214
|
+
//# sourceMappingURL=cell.js.map
|