@availity/mui-breadcrumbs 0.1.9 → 0.2.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/CHANGELOG.md +18 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.js +18 -13
- package/dist/index.mjs +18 -13
- package/package.json +1 -1
- package/src/lib/Breadcrumbs.test.tsx +34 -0
- package/src/lib/Breadcrumbs.tsx +19 -11
package/CHANGELOG.md
CHANGED
|
@@ -2,12 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.2.1](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.2.0...@availity/mui-breadcrumbs@0.2.1) (2024-01-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **mui-breadcrumbs:** change how target is passed ([ac9b41c](https://github.com/Availity/element/commit/ac9b41c74a31aeb3a08cae67751d34c6fb98f9df))
|
|
11
|
+
* **mui-breadcrumbs:** set default target on link to _top ([087d5d1](https://github.com/Availity/element/commit/087d5d15a05c59d15fc68284d7b362b14276a4cf))
|
|
12
|
+
|
|
13
|
+
## [0.2.0](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.1.9...@availity/mui-breadcrumbs@0.2.0) (2023-12-14)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* add form story ([11d1f6c](https://github.com/Availity/element/commit/11d1f6c6191540bf02ff42d4056ac553eecc8c73))
|
|
19
|
+
|
|
5
20
|
## [0.1.9](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.1.8...@availity/mui-breadcrumbs@0.1.9) (2023-11-16)
|
|
6
21
|
|
|
7
22
|
### Dependency Updates
|
|
8
23
|
|
|
9
|
-
|
|
10
|
-
|
|
24
|
+
- `mui-icon` updated to version `0.7.3`
|
|
25
|
+
- `mui-link` updated to version `0.2.4`
|
|
26
|
+
|
|
11
27
|
## [0.1.8](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.1.7...@availity/mui-breadcrumbs@0.1.8) (2023-11-08)
|
|
12
28
|
|
|
13
29
|
### Dependency Updates
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ interface Crumb {
|
|
|
5
5
|
name: string;
|
|
6
6
|
/** The url for navigating to the ancestor page. */
|
|
7
7
|
url: string;
|
|
8
|
+
/** The target on the Link component
|
|
9
|
+
* @default _top
|
|
10
|
+
*/
|
|
11
|
+
target?: string;
|
|
8
12
|
}
|
|
9
13
|
interface BreadcrumbsProps extends Omit<BreadcrumbsProps$1, 'separator' | 'slotProps' | 'slots'> {
|
|
10
14
|
/** The name of the active page (the page the user is currently on). */
|
package/dist/index.js
CHANGED
|
@@ -29,6 +29,19 @@ var import_material = require("@mui/material");
|
|
|
29
29
|
var import_mui_icon = require("@availity/mui-icon");
|
|
30
30
|
var import_mui_link = require("@availity/mui-link");
|
|
31
31
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
32
|
+
var Breadcrumb = ({ name, url, target = "_top" }) => {
|
|
33
|
+
const props = {
|
|
34
|
+
"aria-label": name,
|
|
35
|
+
children: name
|
|
36
|
+
};
|
|
37
|
+
return url ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_link.Link, {
|
|
38
|
+
...props,
|
|
39
|
+
href: url,
|
|
40
|
+
target
|
|
41
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
|
|
42
|
+
...props
|
|
43
|
+
});
|
|
44
|
+
};
|
|
32
45
|
var Breadcrumbs = ({
|
|
33
46
|
active,
|
|
34
47
|
children,
|
|
@@ -37,18 +50,6 @@ var Breadcrumbs = ({
|
|
|
37
50
|
homeUrl = "/public/apps/dashboard",
|
|
38
51
|
...rest
|
|
39
52
|
}) => {
|
|
40
|
-
const renderBreadCrumb = ({ name = emptyState, url }) => {
|
|
41
|
-
const props = {
|
|
42
|
-
"aria-label": name,
|
|
43
|
-
children: name
|
|
44
|
-
};
|
|
45
|
-
return url ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_link.Link, {
|
|
46
|
-
...props,
|
|
47
|
-
href: url
|
|
48
|
-
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
|
|
49
|
-
...props
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
53
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Breadcrumbs, {
|
|
53
54
|
...rest,
|
|
54
55
|
separator: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_icon.NavigateNextIcon, {
|
|
@@ -63,7 +64,11 @@ var Breadcrumbs = ({
|
|
|
63
64
|
loadApp: false,
|
|
64
65
|
children: "Home"
|
|
65
66
|
}),
|
|
66
|
-
crumbs && crumbs.length > 0 && crumbs.map((
|
|
67
|
+
crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url, target }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Breadcrumb, {
|
|
68
|
+
name,
|
|
69
|
+
url,
|
|
70
|
+
target
|
|
71
|
+
}, name)),
|
|
67
72
|
children,
|
|
68
73
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
|
|
69
74
|
children: active || emptyState
|
package/dist/index.mjs
CHANGED
|
@@ -3,6 +3,19 @@ import { Breadcrumbs as MuiBreadcrumbs, Typography } from "@mui/material";
|
|
|
3
3
|
import { NavigateNextIcon, MoreHorizontalIcon } from "@availity/mui-icon";
|
|
4
4
|
import { Link } from "@availity/mui-link";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
var Breadcrumb = ({ name, url, target = "_top" }) => {
|
|
7
|
+
const props = {
|
|
8
|
+
"aria-label": name,
|
|
9
|
+
children: name
|
|
10
|
+
};
|
|
11
|
+
return url ? /* @__PURE__ */ jsx(Link, {
|
|
12
|
+
...props,
|
|
13
|
+
href: url,
|
|
14
|
+
target
|
|
15
|
+
}) : /* @__PURE__ */ jsx(Typography, {
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
};
|
|
6
19
|
var Breadcrumbs = ({
|
|
7
20
|
active,
|
|
8
21
|
children,
|
|
@@ -11,18 +24,6 @@ var Breadcrumbs = ({
|
|
|
11
24
|
homeUrl = "/public/apps/dashboard",
|
|
12
25
|
...rest
|
|
13
26
|
}) => {
|
|
14
|
-
const renderBreadCrumb = ({ name = emptyState, url }) => {
|
|
15
|
-
const props = {
|
|
16
|
-
"aria-label": name,
|
|
17
|
-
children: name
|
|
18
|
-
};
|
|
19
|
-
return url ? /* @__PURE__ */ jsx(Link, {
|
|
20
|
-
...props,
|
|
21
|
-
href: url
|
|
22
|
-
}) : /* @__PURE__ */ jsx(Typography, {
|
|
23
|
-
...props
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
27
|
return /* @__PURE__ */ jsxs(MuiBreadcrumbs, {
|
|
27
28
|
...rest,
|
|
28
29
|
separator: /* @__PURE__ */ jsx(NavigateNextIcon, {
|
|
@@ -37,7 +38,11 @@ var Breadcrumbs = ({
|
|
|
37
38
|
loadApp: false,
|
|
38
39
|
children: "Home"
|
|
39
40
|
}),
|
|
40
|
-
crumbs && crumbs.length > 0 && crumbs.map((
|
|
41
|
+
crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url, target }) => /* @__PURE__ */ jsx(Breadcrumb, {
|
|
42
|
+
name,
|
|
43
|
+
url,
|
|
44
|
+
target
|
|
45
|
+
}, name)),
|
|
41
46
|
children,
|
|
42
47
|
/* @__PURE__ */ jsx(Typography, {
|
|
43
48
|
children: active || emptyState
|
package/package.json
CHANGED
|
@@ -104,5 +104,39 @@ describe('Breadcrumbs', () => {
|
|
|
104
104
|
expect(currentPageBreadcrumb).not.toHaveAttribute('href');
|
|
105
105
|
expect(currentPageBreadcrumb).toHaveTextContent('...');
|
|
106
106
|
});
|
|
107
|
+
|
|
108
|
+
test('crumb should have default target of _top', () => {
|
|
109
|
+
const { getByTestId } = render(
|
|
110
|
+
<Breadcrumbs
|
|
111
|
+
data-testid="testBreadcrumbs"
|
|
112
|
+
crumbs={[
|
|
113
|
+
{ name: 'Grand Parent', url: '/grandparent' },
|
|
114
|
+
{ name: 'Parent', url: '/grandparent/parent' },
|
|
115
|
+
]}
|
|
116
|
+
/>
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
const breadcrumbs = getByTestId('testBreadcrumbs').getElementsByClassName('MuiBreadcrumbs-li');
|
|
120
|
+
const grandparentBreadcrumb = breadcrumbs[1].getElementsByTagName('a')[0];
|
|
121
|
+
|
|
122
|
+
expect(grandparentBreadcrumb).toHaveAttribute('target', '_top');
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
test('crumb should set target to what is passed in config', () => {
|
|
126
|
+
const { getByTestId } = render(
|
|
127
|
+
<Breadcrumbs
|
|
128
|
+
data-testid="testBreadcrumbs"
|
|
129
|
+
crumbs={[
|
|
130
|
+
{ name: 'Grand Parent', url: '/grandparent', target: '_self' },
|
|
131
|
+
{ name: 'Parent', url: '/grandparent/parent' },
|
|
132
|
+
]}
|
|
133
|
+
/>
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
const breadcrumbs = getByTestId('testBreadcrumbs').getElementsByClassName('MuiBreadcrumbs-li');
|
|
137
|
+
const grandparentBreadcrumb = breadcrumbs[1].getElementsByTagName('a')[0];
|
|
138
|
+
|
|
139
|
+
expect(grandparentBreadcrumb).toHaveAttribute('target', '_self');
|
|
140
|
+
});
|
|
107
141
|
});
|
|
108
142
|
});
|
package/src/lib/Breadcrumbs.tsx
CHANGED
|
@@ -7,6 +7,10 @@ interface Crumb {
|
|
|
7
7
|
name: string;
|
|
8
8
|
/** The url for navigating to the ancestor page. */
|
|
9
9
|
url: string;
|
|
10
|
+
/** The target on the Link component
|
|
11
|
+
* @default _top
|
|
12
|
+
*/
|
|
13
|
+
target?: string;
|
|
10
14
|
}
|
|
11
15
|
|
|
12
16
|
export interface BreadcrumbsProps extends Omit<MuiBreadcrumbsProps, 'separator' | 'slotProps' | 'slots'> {
|
|
@@ -26,6 +30,15 @@ export interface BreadcrumbsProps extends Omit<MuiBreadcrumbsProps, 'separator'
|
|
|
26
30
|
homeUrl?: string;
|
|
27
31
|
}
|
|
28
32
|
|
|
33
|
+
const Breadcrumb = ({ name, url, target = '_top' }: Crumb) => {
|
|
34
|
+
const props = {
|
|
35
|
+
'aria-label': name,
|
|
36
|
+
children: name,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
return url ? <Link {...props} href={url} target={target} /> : <Typography {...props} />;
|
|
40
|
+
};
|
|
41
|
+
|
|
29
42
|
export const Breadcrumbs = ({
|
|
30
43
|
active,
|
|
31
44
|
children,
|
|
@@ -34,15 +47,6 @@ export const Breadcrumbs = ({
|
|
|
34
47
|
homeUrl = '/public/apps/dashboard',
|
|
35
48
|
...rest
|
|
36
49
|
}: BreadcrumbsProps): JSX.Element => {
|
|
37
|
-
const renderBreadCrumb = ({ name = emptyState, url }: Crumb) => {
|
|
38
|
-
const props = {
|
|
39
|
-
'aria-label': name,
|
|
40
|
-
children: name,
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
return url ? <Link {...props} href={url} /> : <Typography {...props} />;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
50
|
return (
|
|
47
51
|
<MuiBreadcrumbs
|
|
48
52
|
{...rest}
|
|
@@ -53,9 +57,13 @@ export const Breadcrumbs = ({
|
|
|
53
57
|
<Link aria-label="Home" href={homeUrl} loadApp={false}>
|
|
54
58
|
Home
|
|
55
59
|
</Link>
|
|
56
|
-
{crumbs &&
|
|
60
|
+
{crumbs &&
|
|
61
|
+
crumbs.length > 0 &&
|
|
62
|
+
crumbs.map(({ name = emptyState, url, target }) => (
|
|
63
|
+
<Breadcrumb name={name} url={url} target={target} key={name} />
|
|
64
|
+
))}
|
|
57
65
|
{children}
|
|
58
|
-
|
|
66
|
+
<Typography>{active || emptyState}</Typography>
|
|
59
67
|
</MuiBreadcrumbs>
|
|
60
68
|
);
|
|
61
69
|
};
|