@qoretechnologies/reqore 0.36.4 → 0.36.6
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/__tests__/breadcrumbs.test.tsx +1 -2
- package/__tests__/control_group.test.tsx +0 -1
- package/dist/components/Breadcrumbs/index.d.ts +3 -0
- package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.js +11 -22
- package/dist/components/Breadcrumbs/index.js.map +1 -1
- package/dist/components/Breadcrumbs/item.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/item.js +6 -1
- package/dist/components/Breadcrumbs/item.js.map +1 -1
- package/dist/components/Button/index.d.ts +2 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +4 -1
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/ControlGroup/index.d.ts +2 -1
- package/dist/components/ControlGroup/index.d.ts.map +1 -1
- package/dist/components/ControlGroup/index.js +29 -14
- package/dist/components/ControlGroup/index.js.map +1 -1
- package/dist/components/Input/index.d.ts +2 -3
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Panel/index.d.ts +2 -0
- package/dist/components/Panel/index.d.ts.map +1 -1
- package/dist/components/Panel/index.js +5 -3
- package/dist/components/Panel/index.js.map +1 -1
- package/dist/components/Table/header.d.ts +1 -1
- package/dist/components/Table/header.d.ts.map +1 -1
- package/dist/components/Table/header.js +2 -2
- package/dist/components/Table/header.js.map +1 -1
- package/dist/components/Table/headerCell.d.ts +3 -3
- package/dist/components/Table/headerCell.d.ts.map +1 -1
- package/dist/components/Table/headerCell.js +5 -6
- package/dist/components/Table/headerCell.js.map +1 -1
- package/dist/components/Table/index.d.ts +3 -2
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/Table/index.js.map +1 -1
- package/dist/helpers/utils.d.ts +2 -0
- package/dist/helpers/utils.d.ts.map +1 -1
- package/dist/helpers/utils.js +25 -1
- package/dist/helpers/utils.js.map +1 -1
- package/dist/hooks/usePopover.d.ts +1 -0
- package/dist/hooks/usePopover.d.ts.map +1 -1
- package/dist/hooks/usePopover.js +1 -1
- package/dist/hooks/usePopover.js.map +1 -1
- package/dist/hooks/useTooltip.d.ts.map +1 -1
- package/dist/hooks/useTooltip.js +3 -2
- package/dist/hooks/useTooltip.js.map +1 -1
- package/package.json +2 -1
- package/src/components/Breadcrumbs/index.tsx +21 -40
- package/src/components/Breadcrumbs/item.tsx +6 -0
- package/src/components/Button/index.tsx +3 -1
- package/src/components/ControlGroup/index.tsx +54 -24
- package/src/components/Input/index.tsx +4 -2
- package/src/components/Panel/index.tsx +16 -3
- package/src/components/Table/header.tsx +9 -12
- package/src/components/Table/headerCell.tsx +151 -144
- package/src/components/Table/index.tsx +4 -2
- package/src/helpers/utils.ts +22 -0
- package/src/hooks/usePopover.tsx +2 -1
- package/src/hooks/useTooltip.ts +7 -3
- package/src/stories/ControlGroup/ControlGroup.stories.tsx +1 -1
- package/src/stories/Panel/Panel.stories.tsx +55 -0
- package/src/stories/Table/Table.stories.tsx +23 -1
- package/tests.json +1 -1
- package/src/stories/Table/Tests.stories.tsx +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltip.d.ts","sourceRoot":"","sources":["../../src/hooks/useTooltip.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrE,eAAO,MAAM,UAAU,kBACN,WAAW,GAAG,SAAS,YAC5B,kBAAkB,KAC3B,
|
|
1
|
+
{"version":3,"file":"useTooltip.d.ts","sourceRoot":"","sources":["../../src/hooks/useTooltip.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrE,eAAO,MAAM,UAAU,kBACN,WAAW,GAAG,SAAS,YAC5B,kBAAkB,KAC3B,IAsBF,CAAC"}
|
package/dist/hooks/useTooltip.js
CHANGED
|
@@ -20,12 +20,13 @@ var usePopover_1 = __importDefault(require("./usePopover"));
|
|
|
20
20
|
var useTooltip = function (targetElement, tooltip) {
|
|
21
21
|
var _a = (0, react_1.useState)(undefined), element = _a[0], setElement = _a[1];
|
|
22
22
|
var _b = (0, react_1.useState)(undefined), data = _b[0], setData = _b[1];
|
|
23
|
+
var content = (0, react_1.useMemo)(function () { return (typeof tooltip === 'object' ? tooltip === null || tooltip === void 0 ? void 0 : tooltip.content : tooltip); }, [tooltip]);
|
|
23
24
|
(0, react_1.useEffect)(function () {
|
|
24
|
-
if (targetElement &&
|
|
25
|
+
if (targetElement && content) {
|
|
25
26
|
setElement(targetElement);
|
|
26
27
|
setData(tooltip);
|
|
27
28
|
}
|
|
28
|
-
}, [targetElement
|
|
29
|
+
}, [targetElement, content]);
|
|
29
30
|
var popoverData = typeof data === 'string' ? { content: data } : data;
|
|
30
31
|
(0, usePopover_1["default"])(__assign(__assign({}, popoverData), { targetElement: element, show: !!(popoverData === null || popoverData === void 0 ? void 0 : popoverData.content) }));
|
|
31
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltip.js","sourceRoot":"","sources":["../../src/hooks/useTooltip.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"useTooltip.js","sourceRoot":"","sources":["../../src/hooks/useTooltip.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAAqD;AAErD,4DAAsC;AAE/B,IAAM,UAAU,GAAG,UACxB,aAAsC,EACtC,OAA4B;IAEtB,IAAA,KAAwB,IAAA,gBAAQ,EAA0B,SAAS,CAAC,EAAnE,OAAO,QAAA,EAAE,UAAU,QAAgD,CAAC;IACrE,IAAA,KAAkB,IAAA,gBAAQ,EAAsC,SAAS,CAAC,EAAzE,IAAI,QAAA,EAAE,OAAO,QAA4D,CAAC;IACjF,IAAM,OAAO,GAAG,IAAA,eAAO,EACrB,cAAM,OAAA,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAA1D,CAA0D,EAChE,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAA,iBAAS,EAAC;QACR,IAAI,aAAa,IAAI,OAAO,EAAE;YAC5B,UAAU,CAAC,aAAa,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;SAClB;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7B,IAAM,WAAW,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,IAAA,uBAAU,wBACL,WAAW,KACd,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAA,IAC5B,CAAC;AACL,CAAC,CAAC;AAzBW,QAAA,UAAU,cAyBrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qoretechnologies/reqore",
|
|
3
|
-
"version": "0.36.
|
|
3
|
+
"version": "0.36.6",
|
|
4
4
|
"description": "ReQore is a highly theme-able and modular UI library for React",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
"@react-spring/web": "^9.6.1",
|
|
97
97
|
"classnames": "^2.2.6",
|
|
98
98
|
"epoch-timeago": "^1.1.9",
|
|
99
|
+
"fast-json-stable-stringify": "^2.1.0",
|
|
99
100
|
"lodash": "^4.17.21",
|
|
100
101
|
"polished": "^4.2.2",
|
|
101
102
|
"re-resizable": "^6.9.0",
|
|
@@ -2,12 +2,11 @@ import { isArray } from 'lodash';
|
|
|
2
2
|
import React, { useMemo } from 'react';
|
|
3
3
|
import { useMeasure } from 'react-use';
|
|
4
4
|
import styled, { css } from 'styled-components';
|
|
5
|
-
import {
|
|
5
|
+
import { ReqoreDropdown } from '../..';
|
|
6
6
|
import {
|
|
7
7
|
ICON_FROM_SIZE,
|
|
8
8
|
MARGIN_FROM_SIZE,
|
|
9
9
|
PADDING_FROM_SIZE,
|
|
10
|
-
TABS_SIZE_TO_PX,
|
|
11
10
|
TEXT_FROM_SIZE,
|
|
12
11
|
TSizes,
|
|
13
12
|
} from '../../constants/sizes';
|
|
@@ -16,13 +15,12 @@ import { changeLightness, getReadableColor, getReadableColorFrom } from '../../h
|
|
|
16
15
|
import { calculateStringSizeInPixels } from '../../helpers/utils';
|
|
17
16
|
import { useReqoreTheme } from '../../hooks/useTheme';
|
|
18
17
|
import { IReqoreButtonProps } from '../Button';
|
|
18
|
+
import { IReqoreDropdownItem } from '../Dropdown/list';
|
|
19
19
|
import ReqoreIcon from '../Icon';
|
|
20
|
-
import ReqoreMenu from '../Menu';
|
|
21
|
-
import ReqoreMenuItem from '../Menu/item';
|
|
22
20
|
import { IReqoreTabsListItem } from '../Tabs';
|
|
23
21
|
import { StyledTabListItem } from '../Tabs/item';
|
|
24
22
|
import ReqoreTabsList, { StyledReqoreTabsList, getTabsLength } from '../Tabs/list';
|
|
25
|
-
import ReqoreBreadcrumbsItem
|
|
23
|
+
import ReqoreBreadcrumbsItem from './item';
|
|
26
24
|
|
|
27
25
|
export interface IReqoreBreadcrumbItemTabs {
|
|
28
26
|
tabs: IReqoreTabsListItem[];
|
|
@@ -46,6 +44,11 @@ export interface IReqoreBreadcrumbsProps extends React.HTMLAttributes<HTMLDivEle
|
|
|
46
44
|
customTheme?: IReqoreBreadcrumbsTheme;
|
|
47
45
|
size?: TSizes;
|
|
48
46
|
flat?: boolean;
|
|
47
|
+
|
|
48
|
+
responsive?: boolean;
|
|
49
|
+
|
|
50
|
+
padded?: boolean;
|
|
51
|
+
margin?: 'top' | 'bottom' | 'both' | 'none';
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
interface IStyledBreadcrumbs extends Omit<IReqoreBreadcrumbsProps, 'items'> {
|
|
@@ -53,12 +56,12 @@ interface IStyledBreadcrumbs extends Omit<IReqoreBreadcrumbsProps, 'items'> {
|
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
const StyledReqoreBreadcrumbs = styled.div<IStyledBreadcrumbs>`
|
|
56
|
-
${({ theme, size, flat }: IStyledBreadcrumbs) => css`
|
|
57
|
-
width: 100
|
|
58
|
-
|
|
59
|
-
margin: ${MARGIN_FROM_SIZE[size!]}px
|
|
59
|
+
${({ theme, size, flat, padded = true, margin = 'both', responsive }: IStyledBreadcrumbs) => css`
|
|
60
|
+
width: ${responsive ? '100%' : undefined};
|
|
61
|
+
margin-top: ${margin === 'both' || margin === 'top' ? MARGIN_FROM_SIZE[size!] : 0}px;
|
|
62
|
+
margin-bottom: $ ${margin === 'both' || margin === 'bottom' ? MARGIN_FROM_SIZE[size!] : 0}px;
|
|
60
63
|
display: flex;
|
|
61
|
-
padding: 0 ${PADDING_FROM_SIZE[size!]}px;
|
|
64
|
+
padding: 0 ${padded ? PADDING_FROM_SIZE[size!] : 0}px;
|
|
62
65
|
justify-content: space-between;
|
|
63
66
|
border-bottom: ${flat ? undefined : `1px solid ${changeLightness(theme.main, 0.05)}`};
|
|
64
67
|
background-color: ${({ theme }: { theme: IReqoreTheme }) =>
|
|
@@ -166,13 +169,14 @@ const ReqoreBreadcrumbs: React.FC<IReqoreBreadcrumbsProps> = ({
|
|
|
166
169
|
customTheme,
|
|
167
170
|
flat,
|
|
168
171
|
size = 'normal',
|
|
172
|
+
responsive = true,
|
|
169
173
|
...rest
|
|
170
174
|
}: IReqoreBreadcrumbsProps) => {
|
|
171
175
|
const [ref, { width }] = useMeasure();
|
|
172
176
|
const theme = useReqoreTheme('breadcrumbs', customTheme);
|
|
173
177
|
const transformedItems = useMemo(
|
|
174
|
-
() => getTransformedItems(items, _testWidth || width, size),
|
|
175
|
-
[items, width, _testWidth]
|
|
178
|
+
() => (responsive ? getTransformedItems(items, _testWidth || width, size) : items),
|
|
179
|
+
[items, width, _testWidth, size]
|
|
176
180
|
);
|
|
177
181
|
|
|
178
182
|
const renderItem = (item: IReqoreBreadcrumbItem | IReqoreBreadcrumbItem[], index: number) => {
|
|
@@ -180,36 +184,12 @@ const ReqoreBreadcrumbs: React.FC<IReqoreBreadcrumbsProps> = ({
|
|
|
180
184
|
return (
|
|
181
185
|
<React.Fragment key={index}>
|
|
182
186
|
<ReqoreIcon icon='ArrowRightSLine' size={size} key={'icon' + index} margin='both' />
|
|
183
|
-
<
|
|
184
|
-
key={index}
|
|
185
|
-
|
|
186
|
-
isReqoreComponent
|
|
187
|
-
componentProps={
|
|
188
|
-
{
|
|
189
|
-
icon: 'MoreFill',
|
|
190
|
-
interactive: true,
|
|
191
|
-
} as IReqoreBreadcrumbItemProps
|
|
192
|
-
}
|
|
187
|
+
<ReqoreDropdown
|
|
188
|
+
key={`dropdown-${index}`}
|
|
189
|
+
icon='MoreFill'
|
|
193
190
|
handler='hoverStay'
|
|
194
191
|
delay={500}
|
|
195
|
-
|
|
196
|
-
<ReqoreMenu>
|
|
197
|
-
{item.map(({ icon, label, as, tooltip, props }) => (
|
|
198
|
-
<ReqoreMenuItem
|
|
199
|
-
{...props}
|
|
200
|
-
icon={icon}
|
|
201
|
-
as={as}
|
|
202
|
-
onClick={(event) => {
|
|
203
|
-
props?.onClick?.(event);
|
|
204
|
-
}}
|
|
205
|
-
tooltip={tooltip}
|
|
206
|
-
key={index + (label || icon || '')}
|
|
207
|
-
>
|
|
208
|
-
{label}
|
|
209
|
-
</ReqoreMenuItem>
|
|
210
|
-
))}
|
|
211
|
-
</ReqoreMenu>
|
|
212
|
-
}
|
|
192
|
+
items={item as IReqoreDropdownItem[]}
|
|
213
193
|
/>
|
|
214
194
|
</React.Fragment>
|
|
215
195
|
);
|
|
@@ -250,6 +230,7 @@ const ReqoreBreadcrumbs: React.FC<IReqoreBreadcrumbsProps> = ({
|
|
|
250
230
|
flat={flat}
|
|
251
231
|
theme={theme}
|
|
252
232
|
size={size}
|
|
233
|
+
responsive={responsive}
|
|
253
234
|
>
|
|
254
235
|
<div key='reqore-breadcrumbs-left-wrapper'>
|
|
255
236
|
{transformedItems.map(
|
|
@@ -79,7 +79,8 @@ export interface IReqoreButtonProps
|
|
|
79
79
|
descriptionEffect?: IReqoreEffect;
|
|
80
80
|
label?: React.HTMLAttributes<HTMLButtonElement>['children'];
|
|
81
81
|
as?: string | React.ElementType;
|
|
82
|
-
grow?: 1 | 2 | 3 | 4;
|
|
82
|
+
grow?: 0 | 1 | 2 | 3 | 4;
|
|
83
|
+
shrink?: 0 | 1 | 2 | 3 | 4;
|
|
83
84
|
rounded?: boolean;
|
|
84
85
|
}
|
|
85
86
|
|
|
@@ -132,6 +133,7 @@ export const StyledButton = styled(StyledEffect)<IReqoreButtonStyle>`
|
|
|
132
133
|
: null}
|
|
133
134
|
|
|
134
135
|
flex: ${({ fluid, fixed }) => (fixed ? '0 0 auto' : fluid ? '1 auto' : '0 0 auto')};
|
|
136
|
+
flex-shrink: ${({ shrink }) => shrink};
|
|
135
137
|
flex-grow: ${({ grow }) => grow};
|
|
136
138
|
align-self: ${({ fixed, fluid }) => (fixed ? 'flex-start' : fluid ? 'stretch' : undefined)};
|
|
137
139
|
|
|
@@ -45,6 +45,7 @@ export interface IReqoreControlGroupProps
|
|
|
45
45
|
isLastInFirstGroup?: boolean;
|
|
46
46
|
isLastInLastGroup?: boolean;
|
|
47
47
|
isFirstInLastGroup?: boolean;
|
|
48
|
+
isMasterGroupRounded?: boolean;
|
|
48
49
|
childrenCount?: number;
|
|
49
50
|
childId?: number;
|
|
50
51
|
isChild?: boolean;
|
|
@@ -131,6 +132,7 @@ const ReqoreControlGroup = memo(
|
|
|
131
132
|
stack,
|
|
132
133
|
isInsideStackGroup,
|
|
133
134
|
isInsideVerticalGroup,
|
|
135
|
+
isMasterGroupRounded,
|
|
134
136
|
intent,
|
|
135
137
|
customTheme,
|
|
136
138
|
isFirst,
|
|
@@ -246,7 +248,14 @@ const ReqoreControlGroup = memo(
|
|
|
246
248
|
: isLastGroup && (isLast || isLast !== false) && index === realChildCount - 1;
|
|
247
249
|
};
|
|
248
250
|
|
|
249
|
-
const getBorderTopLeftRadius = (
|
|
251
|
+
const getBorderTopLeftRadius = (
|
|
252
|
+
index: number,
|
|
253
|
+
isChildRounded?: boolean
|
|
254
|
+
): number | undefined => {
|
|
255
|
+
if (isMasterGroupRounded === false || isChildRounded === false) {
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
|
|
250
259
|
const _isFirstGroup =
|
|
251
260
|
!isInsideStackGroup || childrenCount === 1 ? true : isChild ? isFirstGroup : index === 0;
|
|
252
261
|
|
|
@@ -258,7 +267,14 @@ const ReqoreControlGroup = memo(
|
|
|
258
267
|
return undefined;
|
|
259
268
|
};
|
|
260
269
|
|
|
261
|
-
const getBorderTopRightRadius = (
|
|
270
|
+
const getBorderTopRightRadius = (
|
|
271
|
+
index: number,
|
|
272
|
+
isChildRounded?: boolean
|
|
273
|
+
): number | undefined => {
|
|
274
|
+
if (isMasterGroupRounded === false || isChildRounded === false) {
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
|
|
262
278
|
// If this group is not vertical we need to style the very last item
|
|
263
279
|
if (!isVertical || !isStack) {
|
|
264
280
|
const _isLastGroup =
|
|
@@ -284,7 +300,14 @@ const ReqoreControlGroup = memo(
|
|
|
284
300
|
return undefined;
|
|
285
301
|
};
|
|
286
302
|
|
|
287
|
-
const getBorderBottomLeftRadius = (
|
|
303
|
+
const getBorderBottomLeftRadius = (
|
|
304
|
+
index: number,
|
|
305
|
+
isChildRounded?: boolean
|
|
306
|
+
): number | undefined => {
|
|
307
|
+
if (isMasterGroupRounded === false || isChildRounded === false) {
|
|
308
|
+
return undefined;
|
|
309
|
+
}
|
|
310
|
+
|
|
288
311
|
// If this group is not vertical we need to style the very first item
|
|
289
312
|
if (!isVertical || !isStack) {
|
|
290
313
|
const _isFirstGroup =
|
|
@@ -306,7 +329,14 @@ const ReqoreControlGroup = memo(
|
|
|
306
329
|
return undefined;
|
|
307
330
|
};
|
|
308
331
|
|
|
309
|
-
const getBorderBottomRightRadius = (
|
|
332
|
+
const getBorderBottomRightRadius = (
|
|
333
|
+
index: number,
|
|
334
|
+
isChildRounded?: boolean
|
|
335
|
+
): number | undefined => {
|
|
336
|
+
if (isMasterGroupRounded === false || isChildRounded === false) {
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
|
|
310
340
|
const _isLastGroup =
|
|
311
341
|
!isInsideStackGroup || childrenCount === 1
|
|
312
342
|
? true
|
|
@@ -334,7 +364,7 @@ const ReqoreControlGroup = memo(
|
|
|
334
364
|
|
|
335
365
|
let newProps = {
|
|
336
366
|
...child.props,
|
|
337
|
-
key: child.props.reactKey ||
|
|
367
|
+
key: child.props.reactKey || _index,
|
|
338
368
|
minimal:
|
|
339
369
|
child.props?.minimal || child.props?.minimal === false
|
|
340
370
|
? child.props.minimal
|
|
@@ -354,18 +384,20 @@ const ReqoreControlGroup = memo(
|
|
|
354
384
|
newProps = {
|
|
355
385
|
...newProps,
|
|
356
386
|
style: {
|
|
357
|
-
borderTopLeftRadius:
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
borderTopRightRadius:
|
|
362
|
-
child.props?.rounded === false ? undefined : getBorderTopRightRadius(index),
|
|
363
|
-
borderBottomRightRadius:
|
|
364
|
-
child.props?.rounded === false ? undefined : getBorderBottomRightRadius(index),
|
|
387
|
+
borderTopLeftRadius: getBorderTopLeftRadius(index, child.props?.rounded),
|
|
388
|
+
borderBottomLeftRadius: getBorderBottomLeftRadius(index, child.props?.rounded),
|
|
389
|
+
borderTopRightRadius: getBorderTopRightRadius(index, child.props?.rounded),
|
|
390
|
+
borderBottomRightRadius: getBorderBottomRightRadius(index, child.props?.rounded),
|
|
365
391
|
...(child.props?.style || {}),
|
|
366
392
|
},
|
|
367
393
|
isChild: true,
|
|
368
|
-
rounded:
|
|
394
|
+
rounded:
|
|
395
|
+
isMasterGroupRounded === false
|
|
396
|
+
? false
|
|
397
|
+
: child.props?.rounded || child.props?.rounded === false
|
|
398
|
+
? child.props.rounded
|
|
399
|
+
: !isStack,
|
|
400
|
+
isMasterGroupRounded: isChild ? isMasterGroupRounded : rounded,
|
|
369
401
|
isInsideStackGroup: isStack,
|
|
370
402
|
isInsideVerticalGroup: isVertical,
|
|
371
403
|
isFirst: isChild ? getIsFirst(index) : undefined,
|
|
@@ -410,6 +442,7 @@ const ReqoreControlGroup = memo(
|
|
|
410
442
|
minimal,
|
|
411
443
|
size,
|
|
412
444
|
intent,
|
|
445
|
+
rounded,
|
|
413
446
|
]
|
|
414
447
|
);
|
|
415
448
|
|
|
@@ -431,13 +464,14 @@ const ReqoreControlGroup = memo(
|
|
|
431
464
|
icon='MenuLine'
|
|
432
465
|
customTheme={customTheme}
|
|
433
466
|
tooltip={{
|
|
434
|
-
|
|
467
|
+
handler: 'click',
|
|
468
|
+
content: (
|
|
469
|
+
<ReqoreControlGroup fluid wrap>
|
|
470
|
+
{overflownChildren}
|
|
471
|
+
</ReqoreControlGroup>
|
|
472
|
+
),
|
|
435
473
|
}}
|
|
436
474
|
active={isOverflownDialogOpen}
|
|
437
|
-
onClick={(e: React.MouseEvent<HTMLButtonElement>) => {
|
|
438
|
-
e.stopPropagation();
|
|
439
|
-
setIsOverflownDialogOpen(!isOverflownDialogOpen);
|
|
440
|
-
}}
|
|
441
475
|
flat
|
|
442
476
|
fixed
|
|
443
477
|
/>,
|
|
@@ -460,11 +494,7 @@ const ReqoreControlGroup = memo(
|
|
|
460
494
|
label='Hidden items'
|
|
461
495
|
minSize='100px'
|
|
462
496
|
size='auto'
|
|
463
|
-
>
|
|
464
|
-
<ReqoreControlGroup fluid wrap>
|
|
465
|
-
{overflownChildren}
|
|
466
|
-
</ReqoreControlGroup>
|
|
467
|
-
</ReqoreDrawer>
|
|
497
|
+
></ReqoreDrawer>
|
|
468
498
|
) : null}
|
|
469
499
|
<StyledReqoreControlGroup
|
|
470
500
|
as='div'
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
IReqoreReadOnly,
|
|
23
23
|
IWithReqoreCustomTheme,
|
|
24
24
|
IWithReqoreEffect,
|
|
25
|
+
IWithReqoreTooltip,
|
|
25
26
|
} from '../../types/global';
|
|
26
27
|
import { IReqoreIconName } from '../../types/icons';
|
|
27
28
|
import { StyledEffect, TReqoreEffectColor } from '../Effect';
|
|
@@ -34,9 +35,10 @@ export interface IReqoreInputProps
|
|
|
34
35
|
IReqoreReadOnly,
|
|
35
36
|
IReqoreIntent,
|
|
36
37
|
IWithReqoreCustomTheme,
|
|
37
|
-
IWithReqoreEffect
|
|
38
|
+
IWithReqoreEffect,
|
|
39
|
+
IWithReqoreTooltip {
|
|
38
40
|
autoFocus?: boolean;
|
|
39
|
-
|
|
41
|
+
|
|
40
42
|
width?: number;
|
|
41
43
|
size?: TSizes;
|
|
42
44
|
minimal?: boolean;
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
IWithReqoreTooltip,
|
|
38
38
|
} from '../../types/global';
|
|
39
39
|
import { IReqoreIconName } from '../../types/icons';
|
|
40
|
+
import ReqoreBreadcrumbs, { IReqoreBreadcrumbsProps } from '../Breadcrumbs';
|
|
40
41
|
import ReqoreButton, { ButtonBadge, IReqoreButtonProps, TReqoreBadge } from '../Button';
|
|
41
42
|
import { StyledCollectionItemContent } from '../Collection/item';
|
|
42
43
|
import ReqoreControlGroup from '../ControlGroup';
|
|
@@ -91,6 +92,8 @@ export interface IReqorePanelProps
|
|
|
91
92
|
collapseButtonProps?: IReqoreButtonProps;
|
|
92
93
|
disabled?: boolean;
|
|
93
94
|
|
|
95
|
+
breadcrumbs?: IReqoreBreadcrumbsProps;
|
|
96
|
+
|
|
94
97
|
onClose?: () => void;
|
|
95
98
|
closeButtonProps?: IReqoreButtonProps;
|
|
96
99
|
|
|
@@ -349,6 +352,7 @@ export const ReqorePanel = forwardRef<HTMLDivElement, IReqorePanelProps>(
|
|
|
349
352
|
getContentRef,
|
|
350
353
|
headerProps = {},
|
|
351
354
|
disabled,
|
|
355
|
+
breadcrumbs,
|
|
352
356
|
...rest
|
|
353
357
|
}: IReqorePanelProps,
|
|
354
358
|
ref
|
|
@@ -376,6 +380,7 @@ export const ReqorePanel = forwardRef<HTMLDivElement, IReqorePanelProps>(
|
|
|
376
380
|
const hasTitleBar: boolean = useMemo(
|
|
377
381
|
() =>
|
|
378
382
|
!!label ||
|
|
383
|
+
!!breadcrumbs ||
|
|
379
384
|
collapsible ||
|
|
380
385
|
!!onClose ||
|
|
381
386
|
!!size(actions.filter(isActionShown)) ||
|
|
@@ -386,8 +391,8 @@ export const ReqorePanel = forwardRef<HTMLDivElement, IReqorePanelProps>(
|
|
|
386
391
|
|
|
387
392
|
// Return true if the card has a title bar, otherwise return false.
|
|
388
393
|
const hasTitleHeader: boolean = useMemo(
|
|
389
|
-
() => !!label || !!badge || !!icon,
|
|
390
|
-
[label, icon, badge]
|
|
394
|
+
() => !!label || !!badge || !!icon || !!breadcrumbs,
|
|
395
|
+
[label, icon, badge, breadcrumbs]
|
|
391
396
|
);
|
|
392
397
|
|
|
393
398
|
const isSmall = useMemo(
|
|
@@ -649,7 +654,15 @@ export const ReqorePanel = forwardRef<HTMLDivElement, IReqorePanelProps>(
|
|
|
649
654
|
>
|
|
650
655
|
{hasTitleHeader && (
|
|
651
656
|
<StyledPanelTitleHeader>
|
|
652
|
-
{
|
|
657
|
+
{breadcrumbs ? (
|
|
658
|
+
<ReqoreBreadcrumbs
|
|
659
|
+
{...breadcrumbs}
|
|
660
|
+
padded={false}
|
|
661
|
+
margin='none'
|
|
662
|
+
flat
|
|
663
|
+
responsive={false}
|
|
664
|
+
/>
|
|
665
|
+
) : icon || iconImage || label ? (
|
|
653
666
|
<StyledPanelTitleHeaderContent
|
|
654
667
|
size={panelSize}
|
|
655
668
|
{...headerProps}
|
|
@@ -25,7 +25,7 @@ export interface IReqoreCustomHeaderCellProps
|
|
|
25
25
|
'sortData' | 'onSortChange' | 'onColumnsUpdate' | 'onFilterChange'
|
|
26
26
|
>,
|
|
27
27
|
Omit<IReqoreTableColumn, 'cell' | 'header'>,
|
|
28
|
-
Omit<IReqoreButtonProps, 'maxWidth'> {
|
|
28
|
+
Omit<IReqoreButtonProps, 'maxWidth' | 'content'> {
|
|
29
29
|
hasColumns?: boolean;
|
|
30
30
|
}
|
|
31
31
|
export interface IReqoreCustomHeaderCellComponent extends React.FC<IReqoreCustomHeaderCellProps> {}
|
|
@@ -165,20 +165,17 @@ const ReqoreTableHeader = forwardRef<HTMLDivElement, IReqoreTableSectionProps>(
|
|
|
165
165
|
|
|
166
166
|
const renderColumns = (columns: IReqoreTableColumn[]) =>
|
|
167
167
|
getOnlyShownColumns(columns).map(
|
|
168
|
-
(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
},
|
|
176
|
-
index
|
|
177
|
-
) =>
|
|
168
|
+
({
|
|
169
|
+
grow,
|
|
170
|
+
align,
|
|
171
|
+
dataId,
|
|
172
|
+
header: { columns, onClick, component: headerComponent, ...rest },
|
|
173
|
+
...colRest
|
|
174
|
+
}) =>
|
|
178
175
|
columns ? (
|
|
179
176
|
<StyledColumnGroup
|
|
180
177
|
grow={getOnlyShownColumns(columns).reduce((gr, col) => gr + col.grow, 0)}
|
|
181
|
-
key={
|
|
178
|
+
key={dataId}
|
|
182
179
|
className='reqore-table-column-group'
|
|
183
180
|
width={getOnlyShownColumns(columns).reduce(
|
|
184
181
|
(wid, col) => wid + (col.resizedWidth || col.width || 80),
|