@luscii-healthtech/web-ui 23.1.0 → 23.1.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/Breadcrumbs/Breadcrumbs.types.d.ts +16 -2
- package/dist/index.development.js +37 -9
- package/dist/index.development.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/web-ui.esm.js +1 -1
- package/dist/web-ui.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import Text from "../Text/Text";
|
|
3
|
+
type RenderBreadcrumb = (props: {
|
|
4
|
+
name: string;
|
|
5
|
+
link?: string;
|
|
6
|
+
textProps: React.ComponentProps<typeof Text>;
|
|
7
|
+
}) => React.ReactNode;
|
|
8
|
+
export type Crumb = {
|
|
9
|
+
render: RenderBreadcrumb;
|
|
10
|
+
key?: string;
|
|
11
|
+
name: never;
|
|
12
|
+
link: never;
|
|
13
|
+
} | {
|
|
2
14
|
name: string;
|
|
3
15
|
key?: string;
|
|
4
16
|
link?: string;
|
|
5
|
-
}
|
|
17
|
+
};
|
|
6
18
|
export interface BreadcrumbProps {
|
|
7
19
|
crumbs: Crumb[];
|
|
8
20
|
truncateAfter?: number;
|
|
21
|
+
renderItem?: RenderBreadcrumb;
|
|
9
22
|
}
|
|
10
23
|
export type BreadcrumbDividerProps = {
|
|
11
24
|
onClick: () => void;
|
|
12
25
|
truncatedCrumbs: Crumb[];
|
|
13
26
|
};
|
|
14
27
|
export declare const isBreadcrumbDividerProps: (subject: unknown) => subject is BreadcrumbDividerProps;
|
|
28
|
+
export {};
|
|
@@ -4125,12 +4125,40 @@ const isBreadcrumbDividerProps = (subject) => {
|
|
|
4125
4125
|
return typeof possibleSubject.onClick === "function" && Array.isArray(possibleSubject.truncatedCrumbs);
|
|
4126
4126
|
};
|
|
4127
4127
|
|
|
4128
|
-
const BreadcrumbItem = (
|
|
4129
|
-
return React__namespace.default.createElement(
|
|
4130
|
-
|
|
4131
|
-
{
|
|
4132
|
-
React__namespace.default.createElement(
|
|
4133
|
-
)
|
|
4128
|
+
const BreadcrumbItem = (props) => {
|
|
4129
|
+
return React__namespace.default.createElement(
|
|
4130
|
+
"li",
|
|
4131
|
+
{ className: "ui-flex ui-flex-row ui-items-center ui-slash-split" },
|
|
4132
|
+
React__namespace.default.createElement(BreadcrumbContent, Object.assign({}, props))
|
|
4133
|
+
);
|
|
4134
|
+
};
|
|
4135
|
+
const linkTextProps = {
|
|
4136
|
+
variant: "base",
|
|
4137
|
+
color: "blue-800",
|
|
4138
|
+
className: "ui-whitespace-no-wrap ui-max-w-xs ui-truncate"
|
|
4139
|
+
};
|
|
4140
|
+
const defaultTextProps = {
|
|
4141
|
+
variant: "strong",
|
|
4142
|
+
color: "base",
|
|
4143
|
+
className: "ui-whitespace-no-wrap ui-w-full ui-max-w-xs ui-truncate"
|
|
4144
|
+
};
|
|
4145
|
+
const BreadcrumbContent = (_a) => {
|
|
4146
|
+
var { name, link } = _a, props = __rest(_a, ["name", "link"]);
|
|
4147
|
+
if ("render" in props && !!props.render) {
|
|
4148
|
+
return React__namespace.default.createElement(React__namespace.default.Fragment, null, props.render({
|
|
4149
|
+
name,
|
|
4150
|
+
link,
|
|
4151
|
+
textProps: link ? linkTextProps : defaultTextProps
|
|
4152
|
+
}));
|
|
4153
|
+
}
|
|
4154
|
+
if (link) {
|
|
4155
|
+
return React__namespace.default.createElement(
|
|
4156
|
+
router.Link,
|
|
4157
|
+
{ to: link },
|
|
4158
|
+
React__namespace.default.createElement(Text, Object.assign({}, linkTextProps), name)
|
|
4159
|
+
);
|
|
4160
|
+
}
|
|
4161
|
+
return React__namespace.default.createElement(Text, Object.assign({}, defaultTextProps), name);
|
|
4134
4162
|
};
|
|
4135
4163
|
const BreadcrumbDividerItem = ({ onClick, truncatedCrumbs }) => {
|
|
4136
4164
|
return React__namespace.default.createElement(
|
|
@@ -4139,12 +4167,12 @@ const BreadcrumbDividerItem = ({ onClick, truncatedCrumbs }) => {
|
|
|
4139
4167
|
React__namespace.default.createElement(
|
|
4140
4168
|
"button",
|
|
4141
4169
|
{ onClick, title: truncatedCrumbs.map((crumb) => crumb.name).join(" / "), className: "ui-px-1" },
|
|
4142
|
-
React__namespace.default.createElement(Text, {
|
|
4170
|
+
React__namespace.default.createElement(Text, { color: "blue-800", type: "strong" }, "\u2026")
|
|
4143
4171
|
)
|
|
4144
4172
|
);
|
|
4145
4173
|
};
|
|
4146
4174
|
|
|
4147
|
-
const Breadcrumbs = ({ crumbs, truncateAfter = Infinity }) => {
|
|
4175
|
+
const Breadcrumbs = ({ crumbs, truncateAfter = Infinity, renderItem }) => {
|
|
4148
4176
|
const [head, ...tail] = crumbs;
|
|
4149
4177
|
const [isTruncated, setIsTruncated] = React.useState(tail.length > truncateAfter);
|
|
4150
4178
|
const truncatedCrumbs = [];
|
|
@@ -4165,7 +4193,7 @@ const Breadcrumbs = ({ crumbs, truncateAfter = Infinity }) => {
|
|
|
4165
4193
|
dividerProps,
|
|
4166
4194
|
...tail
|
|
4167
4195
|
];
|
|
4168
|
-
return React__namespace.default.createElement("ul", { "data-test-id": "breadcrumbs", className: "ui-flex ui-flex-row ui-flex-wrap ui-items-center" }, (isTruncated ? crumbsAndDivider : crumbs).map((crumbOrDividerProps) => isBreadcrumbDividerProps(crumbOrDividerProps) ? React__namespace.default.createElement(BreadcrumbDividerItem, Object.assign({ key: `divider-${truncatedCrumbs.map((crumb) => crumb.name).join("-")}` }, crumbOrDividerProps)) : React__namespace.default.createElement(BreadcrumbItem, Object.assign({ key: crumbOrDividerProps.key || crumbOrDividerProps.name }, crumbOrDividerProps))));
|
|
4196
|
+
return React__namespace.default.createElement("ul", { "data-test-id": "breadcrumbs", className: "ui-flex ui-flex-row ui-flex-wrap ui-items-center" }, (isTruncated ? crumbsAndDivider : crumbs).map((crumbOrDividerProps) => isBreadcrumbDividerProps(crumbOrDividerProps) ? React__namespace.default.createElement(BreadcrumbDividerItem, Object.assign({ key: `divider-${truncatedCrumbs.map((crumb) => crumb.name).join("-")}` }, crumbOrDividerProps)) : React__namespace.default.createElement(BreadcrumbItem, Object.assign({ key: crumbOrDividerProps.key || crumbOrDividerProps.name }, crumbOrDividerProps, { render: renderItem }))));
|
|
4169
4197
|
};
|
|
4170
4198
|
|
|
4171
4199
|
const TabbarItem = ({ title, index, isSelected, onSelect, className, badgeCount = 0, isLoading = false, dataTestId = "" }) => {
|