@hitachivantara/uikit-react-lab 5.11.2 → 5.12.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/cjs/components/Flow/Controls/Controls.cjs +8 -8
- package/dist/cjs/components/Flow/Controls/Controls.cjs.map +1 -1
- package/dist/cjs/components/Flow/DroppableFlow.cjs +19 -16
- package/dist/cjs/components/Flow/DroppableFlow.cjs.map +1 -1
- package/dist/cjs/components/Flow/Empty/Empty.cjs.map +1 -1
- package/dist/cjs/components/Flow/Flow.styles.cjs.map +1 -1
- package/dist/cjs/components/Flow/Node/Node.cjs +18 -19
- package/dist/cjs/components/Flow/Node/Node.cjs.map +1 -1
- package/dist/cjs/components/Flow/Node/Node.styles.cjs +3 -1
- package/dist/cjs/components/Flow/Node/Node.styles.cjs.map +1 -1
- package/dist/cjs/components/Flow/Node/Parameters/Select.cjs +2 -3
- package/dist/cjs/components/Flow/Node/Parameters/Select.cjs.map +1 -1
- package/dist/cjs/components/Flow/Node/Parameters/Text.cjs +1 -1
- package/dist/cjs/components/Flow/Node/Parameters/Text.cjs.map +1 -1
- package/dist/cjs/components/Flow/Sidebar/Sidebar.cjs +14 -10
- package/dist/cjs/components/Flow/Sidebar/Sidebar.cjs.map +1 -1
- package/dist/cjs/components/Flow/Sidebar/SidebarGroup/SidebarGroup.cjs +2 -2
- package/dist/cjs/components/Flow/Sidebar/SidebarGroup/SidebarGroup.cjs.map +1 -1
- package/dist/cjs/components/Flow/Sidebar/SidebarGroup/SidebarGroupItem/DraggableSidebarGroupItem.cjs +2 -3
- package/dist/cjs/components/Flow/Sidebar/SidebarGroup/SidebarGroupItem/DraggableSidebarGroupItem.cjs.map +1 -1
- package/dist/cjs/components/Flow/Sidebar/utils.cjs +3 -4
- package/dist/cjs/components/Flow/Sidebar/utils.cjs.map +1 -1
- package/dist/cjs/components/StepNavigation/DefaultNavigation/DefaultNavigation.cjs +1 -1
- package/dist/cjs/components/StepNavigation/DefaultNavigation/DefaultNavigation.cjs.map +1 -1
- package/dist/cjs/components/StepNavigation/DefaultNavigation/utils.cjs.map +1 -1
- package/dist/cjs/components/StepNavigation/SimpleNavigation/SimpleNavigation.cjs +1 -1
- package/dist/cjs/components/StepNavigation/SimpleNavigation/SimpleNavigation.cjs.map +1 -1
- package/dist/cjs/components/StepNavigation/SimpleNavigation/utils.cjs.map +1 -1
- package/dist/cjs/components/StepNavigation/StepNavigation.cjs +3 -3
- package/dist/cjs/components/StepNavigation/StepNavigation.cjs.map +1 -1
- package/dist/cjs/components/Wizard/Wizard.cjs +1 -1
- package/dist/cjs/components/Wizard/Wizard.cjs.map +1 -1
- package/dist/cjs/components/Wizard/WizardActions/WizardActions.cjs +3 -4
- package/dist/cjs/components/Wizard/WizardActions/WizardActions.cjs.map +1 -1
- package/dist/cjs/components/Wizard/WizardContent/WizardContent.cjs +4 -6
- package/dist/cjs/components/Wizard/WizardContent/WizardContent.cjs.map +1 -1
- package/dist/cjs/components/Wizard/WizardTitle/WizardTitle.cjs +1 -1
- package/dist/cjs/components/Wizard/WizardTitle/WizardTitle.cjs.map +1 -1
- package/dist/esm/components/Flow/Controls/Controls.js +8 -8
- package/dist/esm/components/Flow/Controls/Controls.js.map +1 -1
- package/dist/esm/components/Flow/DroppableFlow.js +19 -16
- package/dist/esm/components/Flow/DroppableFlow.js.map +1 -1
- package/dist/esm/components/Flow/Empty/Empty.js.map +1 -1
- package/dist/esm/components/Flow/Flow.styles.js.map +1 -1
- package/dist/esm/components/Flow/Node/Node.js +18 -19
- package/dist/esm/components/Flow/Node/Node.js.map +1 -1
- package/dist/esm/components/Flow/Node/Node.styles.js +3 -1
- package/dist/esm/components/Flow/Node/Node.styles.js.map +1 -1
- package/dist/esm/components/Flow/Node/Parameters/Select.js +2 -3
- package/dist/esm/components/Flow/Node/Parameters/Select.js.map +1 -1
- package/dist/esm/components/Flow/Node/Parameters/Text.js +1 -1
- package/dist/esm/components/Flow/Node/Parameters/Text.js.map +1 -1
- package/dist/esm/components/Flow/Sidebar/Sidebar.js +15 -11
- package/dist/esm/components/Flow/Sidebar/Sidebar.js.map +1 -1
- package/dist/esm/components/Flow/Sidebar/SidebarGroup/SidebarGroup.js +2 -2
- package/dist/esm/components/Flow/Sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
- package/dist/esm/components/Flow/Sidebar/SidebarGroup/SidebarGroupItem/DraggableSidebarGroupItem.js +2 -3
- package/dist/esm/components/Flow/Sidebar/SidebarGroup/SidebarGroupItem/DraggableSidebarGroupItem.js.map +1 -1
- package/dist/esm/components/Flow/Sidebar/utils.js +3 -4
- package/dist/esm/components/Flow/Sidebar/utils.js.map +1 -1
- package/dist/esm/components/StepNavigation/DefaultNavigation/DefaultNavigation.js +1 -1
- package/dist/esm/components/StepNavigation/DefaultNavigation/DefaultNavigation.js.map +1 -1
- package/dist/esm/components/StepNavigation/DefaultNavigation/utils.js.map +1 -1
- package/dist/esm/components/StepNavigation/SimpleNavigation/SimpleNavigation.js +1 -1
- package/dist/esm/components/StepNavigation/SimpleNavigation/SimpleNavigation.js.map +1 -1
- package/dist/esm/components/StepNavigation/SimpleNavigation/utils.js.map +1 -1
- package/dist/esm/components/StepNavigation/StepNavigation.js +3 -3
- package/dist/esm/components/StepNavigation/StepNavigation.js.map +1 -1
- package/dist/esm/components/Wizard/Wizard.js +1 -1
- package/dist/esm/components/Wizard/Wizard.js.map +1 -1
- package/dist/esm/components/Wizard/WizardActions/WizardActions.js +3 -4
- package/dist/esm/components/Wizard/WizardActions/WizardActions.js.map +1 -1
- package/dist/esm/components/Wizard/WizardContent/WizardContent.js +4 -6
- package/dist/esm/components/Wizard/WizardContent/WizardContent.js.map +1 -1
- package/dist/esm/components/Wizard/WizardTitle/WizardTitle.js +1 -1
- package/dist/esm/components/Wizard/WizardTitle/WizardTitle.js.map +1 -1
- package/dist/types/index.d.ts +14 -1
- package/package.json +5 -5
|
@@ -41,6 +41,9 @@ const HvFlowSidebar = ({
|
|
|
41
41
|
const unfilteredGroups = React.useMemo(() => utils.buildGroups(nodeGroups, nodeTypes), [nodeGroups, nodeTypes]);
|
|
42
42
|
const [groups, setGroups] = React.useState(unfilteredGroups);
|
|
43
43
|
const [draggingLabel, setDraggingLabel] = React.useState(void 0);
|
|
44
|
+
React.useEffect(() => {
|
|
45
|
+
setGroups(unfilteredGroups);
|
|
46
|
+
}, [unfilteredGroups]);
|
|
44
47
|
const labels = uikitReactCore.useLabels(DEFAULT_LABELS, labelsProps);
|
|
45
48
|
const drawerElementId = uikitReactCore.useUniqueId(id, "hvFlowSidebarDrawer");
|
|
46
49
|
const groupsElementId = uikitReactCore.useUniqueId(id, "hvFlowSidebarGroups");
|
|
@@ -50,9 +53,8 @@ const HvFlowSidebar = ({
|
|
|
50
53
|
id: drawerElementId
|
|
51
54
|
});
|
|
52
55
|
const handleDragStart = (event) => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
setDraggingLabel((_b = event.active.data.current.hvFlow) == null ? void 0 : _b.label);
|
|
56
|
+
if (event.active.data.current?.hvFlow) {
|
|
57
|
+
setDraggingLabel(event.active.data.current.hvFlow?.label);
|
|
56
58
|
}
|
|
57
59
|
};
|
|
58
60
|
const handleDragEnd = () => {
|
|
@@ -75,7 +77,7 @@ const HvFlowSidebar = ({
|
|
|
75
77
|
return acc;
|
|
76
78
|
}, {}) : unfilteredGroups;
|
|
77
79
|
setGroups(gps);
|
|
78
|
-
setExpandedNodeGroups
|
|
80
|
+
setExpandedNodeGroups?.(value ? Object.keys(gps) : []);
|
|
79
81
|
};
|
|
80
82
|
const handleDebouncedSearch = debounce__default.default(handleSearch, 500);
|
|
81
83
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -88,14 +90,16 @@ const HvFlowSidebar = ({
|
|
|
88
90
|
] }),
|
|
89
91
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.contentContainer, children: [
|
|
90
92
|
/* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvTypography, { className: classes.description, children: description }),
|
|
91
|
-
/* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvInput, { className: classes.searchRoot, type: "search", placeholder: labels
|
|
93
|
+
/* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvInput, { className: classes.searchRoot, type: "search", placeholder: labels?.searchPlaceholder, "aria-label": labels?.searchAriaLabel, "aria-controls": groupsElementId, "aria-owns": groupsElementId, onChange: handleDebouncedSearch, inputProps: {
|
|
92
94
|
autoComplete: "off"
|
|
93
95
|
} }),
|
|
94
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { id: groupsElementId, className: classes.groupsContainer, children: Object.entries(groups).map((obj) =>
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { id: groupsElementId, className: classes.groupsContainer, children: Object.entries(groups).map((obj) => {
|
|
97
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SidebarGroup.HvFlowSidebarGroup, { id: obj[0], expandButtonProps: {
|
|
98
|
+
"aria-label": labels?.expandGroupButtonAriaLabel
|
|
99
|
+
}, itemProps: {
|
|
100
|
+
"aria-roledescription": labels?.itemAriaRoleDescription
|
|
101
|
+
}, ...obj[1] }, obj[0]);
|
|
102
|
+
}) })
|
|
99
103
|
] })
|
|
100
104
|
] }) }),
|
|
101
105
|
/* @__PURE__ */ jsxRuntime.jsx(core.DragOverlay, { modifiers: [modifiers.restrictToWindowEdges], children: draggingLabel ? /* @__PURE__ */ jsxRuntime.jsx(SidebarGroupItem.HvFlowSidebarGroupItem, { label: draggingLabel, isDragging: true }) : null })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.cjs","sources":["../../../../../src/components/Flow/Sidebar/Sidebar.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\n\nimport debounce from \"lodash/debounce\";\n\nimport {\n DndContextProps,\n DragOverlay,\n useDndMonitor,\n useDroppable,\n} from \"@dnd-kit/core\";\nimport { restrictToWindowEdges } from \"@dnd-kit/modifiers\";\n\nimport {\n ExtractNames,\n HvDrawer,\n HvDrawerProps,\n HvInput,\n HvInputProps,\n HvTypography,\n useLabels,\n useUniqueId,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Add } from \"@hitachivantara/uikit-react-icons\";\n\nimport { staticClasses, useClasses } from \"./Sidebar.styles\";\nimport { HvFlowSidebarGroup } from \"./SidebarGroup\";\nimport { useFlowContext } from \"../hooks\";\nimport { buildGroups } from \"./utils\";\nimport { HvFlowSidebarGroupItem } from \"./SidebarGroup/SidebarGroupItem\";\n\nexport { staticClasses as flowSidebarClasses };\n\nexport type HvFlowSidebarClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFlowSidebarProps\n extends Omit<HvDrawerProps, \"classes\" | \"title\"> {\n /** Sidebar title. */\n title?: string;\n /** Sidebar description. */\n description?: string;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFlowSidebarClasses;\n /** Labels used on the sidebar. */\n labels?: {\n itemAriaRoleDescription?: string;\n expandGroupButtonAriaLabel?: string;\n searchPlaceholder?: string;\n searchAriaLabel?: string;\n };\n}\n\nconst DEFAULT_LABELS: HvFlowSidebarProps[\"labels\"] = {\n itemAriaRoleDescription: \"Draggable\",\n expandGroupButtonAriaLabel: \"Expand group\",\n searchPlaceholder: \"Search node...\",\n searchAriaLabel: \"Search node...\",\n};\n\nexport const HvFlowSidebar = ({\n id,\n title,\n description,\n anchor = \"right\",\n buttonTitle = \"Close\",\n classes: classesProp,\n labels: labelsProps,\n ...others\n}: HvFlowSidebarProps) => {\n const { classes } = useClasses(classesProp);\n\n const { nodeGroups, nodeTypes, setExpandedNodeGroups } = useFlowContext();\n\n const unfilteredGroups = useMemo(\n () => buildGroups(nodeGroups, nodeTypes),\n [nodeGroups, nodeTypes]\n );\n\n const [groups, setGroups] = useState(unfilteredGroups);\n const [draggingLabel, setDraggingLabel] = useState(undefined);\n\n const labels = useLabels(DEFAULT_LABELS, labelsProps);\n\n const drawerElementId = useUniqueId(id, \"hvFlowSidebarDrawer\");\n const groupsElementId = useUniqueId(id, \"hvFlowSidebarGroups\");\n\n // The sidebar is droppable to distinguish between the canvas and the sidebar\n // Otherwise items dropped inside the sidebar will be added to the canvas\n const { setNodeRef } = useDroppable({\n id: drawerElementId,\n });\n\n const handleDragStart: DndContextProps[\"onDragStart\"] = (event) => {\n if (event.active.data.current?.hvFlow) {\n setDraggingLabel(event.active.data.current.hvFlow?.label);\n }\n };\n\n const handleDragEnd: DndContextProps[\"onDragEnd\"] = () => {\n setDraggingLabel(undefined);\n };\n\n useDndMonitor({\n onDragEnd: handleDragEnd,\n onDragStart: handleDragStart,\n });\n\n const handleSearch: HvInputProps[\"onChange\"] = (event, value) => {\n const gps = value\n ? Object.entries(unfilteredGroups).reduce((acc, curr) => {\n // Filter nodes by search\n const filteredNodes = curr[1].nodes.filter((obj) =>\n obj.label.toLocaleLowerCase().includes(value.toLocaleLowerCase())\n );\n const nodesCount = filteredNodes.length;\n\n // Only show groups with nodes\n if (nodesCount > 0) {\n acc[curr[0]] = {\n ...curr[1],\n nodes: filteredNodes,\n };\n }\n\n return acc;\n }, {})\n : unfilteredGroups;\n\n setGroups(gps);\n setExpandedNodeGroups?.(value ? Object.keys(gps) : []);\n };\n\n const handleDebouncedSearch = debounce(handleSearch, 500);\n\n return (\n <>\n <HvDrawer\n BackdropComponent={undefined}\n variant=\"persistent\"\n classes={{\n paper: classes.drawerPaper,\n }}\n anchor={anchor}\n buttonTitle={buttonTitle}\n {...others}\n >\n <div id={drawerElementId} ref={setNodeRef}>\n <div className={classes.titleContainer}>\n <Add role=\"none\" />\n <HvTypography variant=\"title3\">{title}</HvTypography>\n </div>\n <div className={classes.contentContainer}>\n <HvTypography className={classes.description}>\n {description}\n </HvTypography>\n <HvInput\n className={classes.searchRoot}\n type=\"search\"\n placeholder={labels?.searchPlaceholder}\n aria-label={labels?.searchAriaLabel}\n aria-controls={groupsElementId}\n aria-owns={groupsElementId}\n onChange={handleDebouncedSearch}\n inputProps={{ autoComplete: \"off\" }}\n />\n <ul id={groupsElementId} className={classes.groupsContainer}>\n {Object.entries(groups).map((obj) => (\n <HvFlowSidebarGroup\n key={obj[0]}\n id={obj[0]}\n expandButtonProps={{\n \"aria-label\": labels?.expandGroupButtonAriaLabel,\n }}\n itemProps={{\n \"aria-roledescription\": labels?.itemAriaRoleDescription,\n }}\n {...obj[1]}\n />\n ))}\n </ul>\n </div>\n </div>\n </HvDrawer>\n <DragOverlay modifiers={[restrictToWindowEdges]}>\n {draggingLabel ? (\n <HvFlowSidebarGroupItem label={draggingLabel} isDragging />\n ) : null}\n </DragOverlay>\n </>\n );\n};\n"],"names":["DEFAULT_LABELS","itemAriaRoleDescription","expandGroupButtonAriaLabel","searchPlaceholder","searchAriaLabel","HvFlowSidebar","id","title","description","anchor","buttonTitle","classes","classesProp","labels","labelsProps","others","useClasses","nodeGroups","nodeTypes","setExpandedNodeGroups","useFlowContext","unfilteredGroups","useMemo","buildGroups","groups","setGroups","useState","draggingLabel","setDraggingLabel","undefined","useLabels","drawerElementId","useUniqueId","groupsElementId","setNodeRef","useDroppable","handleDragStart","event","active","data","current","hvFlow","label","handleDragEnd","useDndMonitor","onDragEnd","onDragStart","handleSearch","value","gps","Object","entries","reduce","acc","curr","filteredNodes","nodes","filter","obj","toLocaleLowerCase","includes","nodesCount","length","keys","handleDebouncedSearch","debounce","jsxs","Fragment","jsx","HvDrawer","paper","drawerPaper","titleContainer","Add","HvTypography","contentContainer","HvInput","searchRoot","autoComplete","groupsContainer","map","HvFlowSidebarGroup","DragOverlay","restrictToWindowEdges","HvFlowSidebarGroupItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sidebar.cjs","sources":["../../../../../src/components/Flow/Sidebar/Sidebar.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\n\nimport debounce from \"lodash/debounce\";\n\nimport {\n DndContextProps,\n DragOverlay,\n useDndMonitor,\n useDroppable,\n} from \"@dnd-kit/core\";\nimport { restrictToWindowEdges } from \"@dnd-kit/modifiers\";\n\nimport {\n ExtractNames,\n HvDrawer,\n HvDrawerProps,\n HvInput,\n HvInputProps,\n HvTypography,\n useLabels,\n useUniqueId,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Add } from \"@hitachivantara/uikit-react-icons\";\n\nimport { staticClasses, useClasses } from \"./Sidebar.styles\";\nimport { HvFlowSidebarGroup } from \"./SidebarGroup\";\nimport { useFlowContext } from \"../hooks\";\nimport { buildGroups } from \"./utils\";\nimport { HvFlowSidebarGroupItem } from \"./SidebarGroup/SidebarGroupItem\";\n\nexport { staticClasses as flowSidebarClasses };\n\nexport type HvFlowSidebarClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFlowSidebarProps\n extends Omit<HvDrawerProps, \"classes\" | \"title\"> {\n /** Sidebar title. */\n title?: string;\n /** Sidebar description. */\n description?: string;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFlowSidebarClasses;\n /** Labels used on the sidebar. */\n labels?: {\n itemAriaRoleDescription?: string;\n expandGroupButtonAriaLabel?: string;\n searchPlaceholder?: string;\n searchAriaLabel?: string;\n };\n}\n\nconst DEFAULT_LABELS: HvFlowSidebarProps[\"labels\"] = {\n itemAriaRoleDescription: \"Draggable\",\n expandGroupButtonAriaLabel: \"Expand group\",\n searchPlaceholder: \"Search node...\",\n searchAriaLabel: \"Search node...\",\n};\n\nexport const HvFlowSidebar = ({\n id,\n title,\n description,\n anchor = \"right\",\n buttonTitle = \"Close\",\n classes: classesProp,\n labels: labelsProps,\n ...others\n}: HvFlowSidebarProps) => {\n const { classes } = useClasses(classesProp);\n\n const { nodeGroups, nodeTypes, setExpandedNodeGroups } = useFlowContext();\n\n const unfilteredGroups = useMemo(\n () => buildGroups(nodeGroups, nodeTypes),\n [nodeGroups, nodeTypes]\n );\n\n const [groups, setGroups] = useState(unfilteredGroups);\n const [draggingLabel, setDraggingLabel] = useState(undefined);\n\n useEffect(() => {\n setGroups(unfilteredGroups);\n }, [unfilteredGroups]);\n\n const labels = useLabels(DEFAULT_LABELS, labelsProps);\n\n const drawerElementId = useUniqueId(id, \"hvFlowSidebarDrawer\");\n const groupsElementId = useUniqueId(id, \"hvFlowSidebarGroups\");\n\n // The sidebar is droppable to distinguish between the canvas and the sidebar\n // Otherwise items dropped inside the sidebar will be added to the canvas\n const { setNodeRef } = useDroppable({\n id: drawerElementId,\n });\n\n const handleDragStart: DndContextProps[\"onDragStart\"] = (event) => {\n if (event.active.data.current?.hvFlow) {\n setDraggingLabel(event.active.data.current.hvFlow?.label);\n }\n };\n\n const handleDragEnd: DndContextProps[\"onDragEnd\"] = () => {\n setDraggingLabel(undefined);\n };\n\n useDndMonitor({\n onDragEnd: handleDragEnd,\n onDragStart: handleDragStart,\n });\n\n const handleSearch: HvInputProps[\"onChange\"] = (event, value) => {\n const gps = value\n ? Object.entries(unfilteredGroups).reduce((acc, curr) => {\n // Filter nodes by search\n const filteredNodes = curr[1].nodes.filter((obj) =>\n obj.label.toLocaleLowerCase().includes(value.toLocaleLowerCase())\n );\n const nodesCount = filteredNodes.length;\n\n // Only show groups with nodes\n if (nodesCount > 0) {\n acc[curr[0]] = {\n ...curr[1],\n nodes: filteredNodes,\n };\n }\n\n return acc;\n }, {})\n : unfilteredGroups;\n\n setGroups(gps);\n setExpandedNodeGroups?.(value ? Object.keys(gps) : []);\n };\n\n const handleDebouncedSearch = debounce(handleSearch, 500);\n\n return (\n <>\n <HvDrawer\n BackdropComponent={undefined}\n variant=\"persistent\"\n classes={{\n paper: classes.drawerPaper,\n }}\n anchor={anchor}\n buttonTitle={buttonTitle}\n {...others}\n >\n <div id={drawerElementId} ref={setNodeRef}>\n <div className={classes.titleContainer}>\n <Add role=\"none\" />\n <HvTypography variant=\"title3\">{title}</HvTypography>\n </div>\n <div className={classes.contentContainer}>\n <HvTypography className={classes.description}>\n {description}\n </HvTypography>\n <HvInput\n className={classes.searchRoot}\n type=\"search\"\n placeholder={labels?.searchPlaceholder}\n aria-label={labels?.searchAriaLabel}\n aria-controls={groupsElementId}\n aria-owns={groupsElementId}\n onChange={handleDebouncedSearch}\n inputProps={{ autoComplete: \"off\" }}\n />\n <ul id={groupsElementId} className={classes.groupsContainer}>\n {Object.entries(groups).map((obj) => {\n return (\n <HvFlowSidebarGroup\n key={obj[0]}\n id={obj[0]}\n expandButtonProps={{\n \"aria-label\": labels?.expandGroupButtonAriaLabel,\n }}\n itemProps={{\n \"aria-roledescription\": labels?.itemAriaRoleDescription,\n }}\n {...obj[1]}\n />\n );\n })}\n </ul>\n </div>\n </div>\n </HvDrawer>\n <DragOverlay modifiers={[restrictToWindowEdges]}>\n {draggingLabel ? (\n <HvFlowSidebarGroupItem label={draggingLabel} isDragging />\n ) : null}\n </DragOverlay>\n </>\n );\n};\n"],"names":["DEFAULT_LABELS","itemAriaRoleDescription","expandGroupButtonAriaLabel","searchPlaceholder","searchAriaLabel","HvFlowSidebar","id","title","description","anchor","buttonTitle","classes","classesProp","labels","labelsProps","others","useClasses","nodeGroups","nodeTypes","setExpandedNodeGroups","useFlowContext","unfilteredGroups","useMemo","buildGroups","groups","setGroups","useState","draggingLabel","setDraggingLabel","undefined","useEffect","useLabels","drawerElementId","useUniqueId","groupsElementId","setNodeRef","useDroppable","handleDragStart","event","active","data","current","hvFlow","label","handleDragEnd","useDndMonitor","onDragEnd","onDragStart","handleSearch","value","gps","Object","entries","reduce","acc","curr","filteredNodes","nodes","filter","obj","toLocaleLowerCase","includes","nodesCount","length","keys","handleDebouncedSearch","debounce","jsxs","Fragment","jsx","HvDrawer","paper","drawerPaper","titleContainer","Add","HvTypography","contentContainer","HvInput","searchRoot","autoComplete","groupsContainer","map","HvFlowSidebarGroup","DragOverlay","restrictToWindowEdges","HvFlowSidebarGroupItem"],"mappings":";;;;;;;;;;;;;;;;AAmDA,MAAMA,iBAA+C;AAAA,EACnDC,yBAAyB;AAAA,EACzBC,4BAA4B;AAAA,EAC5BC,mBAAmB;AAAA,EACnBC,iBAAiB;AACnB;AAEO,MAAMC,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAAS;AAAA,EACTC,cAAc;AAAA,EACdC,SAASC;AAAAA,EACTC,QAAQC;AAAAA,EACR,GAAGC;AACe,MAAM;AAClB,QAAA;AAAA,IAAEJ;AAAAA,EAAAA,IAAYK,eAAAA,WAAWJ,WAAW;AAEpC,QAAA;AAAA,IAAEK;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,MAA0BC,eAAe,eAAA;AAElEC,QAAAA,mBAAmBC,cACvB,MAAMC,kBAAYN,YAAYC,SAAS,GACvC,CAACD,YAAYC,SAAS,CACxB;AAEA,QAAM,CAACM,QAAQC,SAAS,IAAIC,eAASL,gBAAgB;AACrD,QAAM,CAACM,eAAeC,gBAAgB,IAAIF,MAAAA,SAASG,MAAS;AAE5DC,QAAAA,UAAU,MAAM;AACdL,cAAUJ,gBAAgB;AAAA,EAAA,GACzB,CAACA,gBAAgB,CAAC;AAEfR,QAAAA,SAASkB,eAAAA,UAAU/B,gBAAgBc,WAAW;AAE9CkB,QAAAA,kBAAkBC,eAAAA,YAAY3B,IAAI,qBAAqB;AACvD4B,QAAAA,kBAAkBD,eAAAA,YAAY3B,IAAI,qBAAqB;AAIvD,QAAA;AAAA,IAAE6B;AAAAA,MAAeC,kBAAa;AAAA,IAClC9B,IAAI0B;AAAAA,EAAAA,CACL;AAED,QAAMK,kBAAmDC,CAAU,UAAA;AACjE,QAAIA,MAAMC,OAAOC,KAAKC,SAASC,QAAQ;AACrCd,uBAAiBU,MAAMC,OAAOC,KAAKC,QAAQC,QAAQC,KAAK;AAAA,IAC1D;AAAA,EAAA;AAGF,QAAMC,gBAA8CA,MAAM;AACxDhB,qBAAiBC,MAAS;AAAA,EAAA;AAGdgB,qBAAA;AAAA,IACZC,WAAWF;AAAAA,IACXG,aAAaV;AAAAA,EAAAA,CACd;AAEKW,QAAAA,eAAyCA,CAACV,OAAOW,UAAU;AACzDC,UAAAA,MAAMD,QACRE,OAAOC,QAAQ/B,gBAAgB,EAAEgC,OAAO,CAACC,KAAKC,SAAS;AAErD,YAAMC,gBAAgBD,KAAK,CAAC,EAAEE,MAAMC,OAAQC,CAAAA,QAC1CA,IAAIhB,MAAMiB,oBAAoBC,SAASZ,MAAMW,kBAAmB,CAAA,CAClE;AACA,YAAME,aAAaN,cAAcO;AAGjC,UAAID,aAAa,GAAG;AACdP,YAAAA,KAAK,CAAC,CAAC,IAAI;AAAA,UACb,GAAGA,KAAK,CAAC;AAAA,UACTE,OAAOD;AAAAA,QAAAA;AAAAA,MAEX;AAEOF,aAAAA;AAAAA,IAAAA,GACN,CAAA,CAAE,IACLjC;AAEJI,cAAUyB,GAAG;AACb/B,4BAAwB8B,QAAQE,OAAOa,KAAKd,GAAG,IAAI,CAAA,CAAE;AAAA,EAAA;AAGjDe,QAAAA,wBAAwBC,kBAAAA,QAASlB,cAAc,GAAG;AAExD,SAEImB,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA,IAACC,eACC,UAAA,EAAA,mBAAmBzC,QACnB,SAAQ,cACR,SAAS;AAAA,MACP0C,OAAO5D,QAAQ6D;AAAAA,IACjB,GACA,QACA,aACA,GAAIzD,QAEJ,0CAAC,OAAI,EAAA,IAAIiB,iBAAiB,KAAKG,YAC7B,UAAA;AAAA,MAACgC,2BAAA,KAAA,OAAA,EAAI,WAAWxD,QAAQ8D,gBACtB,UAAA;AAAA,QAACJ,2BAAAA,IAAAK,gBAAA,KAAA,EAAI,MAAK,OAAM,CAAA;AAAA,QACfL,2BAAA,IAAAM,eAAA,cAAA,EAAa,SAAQ,UAAUpE,UAAM,OAAA;AAAA,MAAA,GACxC;AAAA,MACC4D,2BAAA,KAAA,OAAA,EAAI,WAAWxD,QAAQiE,kBACtB,UAAA;AAAA,QAAAP,2BAAA,IAACM,eAAa,cAAA,EAAA,WAAWhE,QAAQH,aAC9BA,UACH,aAAA;AAAA,uCACCqE,eAAAA,SACC,EAAA,WAAWlE,QAAQmE,YACnB,MAAK,UACL,aAAajE,QAAQV,mBACrB,cAAYU,QAAQT,iBACpB,iBAAe8B,iBACf,aAAWA,iBACX,UAAU+B,uBACV,YAAY;AAAA,UAAEc,cAAc;AAAA,QAAA,GAAQ;AAAA,QAErCV,2BAAA,IAAA,MAAA,EAAG,IAAInC,iBAAiB,WAAWvB,QAAQqE,iBACzC7B,UAAAA,OAAOC,QAAQ5B,MAAM,EAAEyD,IAAKtB,CAAQ,QAAA;AACnC,gDACGuB,aAAAA,oBAEC,EAAA,IAAIvB,IAAI,CAAC,GACT,mBAAmB;AAAA,YACjB,cAAc9C,QAAQX;AAAAA,aAExB,WAAW;AAAA,YACT,wBAAwBW,QAAQZ;AAAAA,UAAAA,GAE9B0D,GAAAA,IAAI,CAAC,EARJA,GAAAA,IAAI,CAAC,CASV;AAAA,QAEL,CAAA,GACH;AAAA,MAAA,GACF;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,IACCU,2BAAA,IAAAc,KAAA,aAAA,EAAY,WAAW,CAACC,UAAAA,qBAAqB,GAC3CzD,UAAAA,gBACE0C,2BAAAA,IAAAgB,iBAAAA,wBAAA,EAAuB,OAAO1D,eAAe,YAAU,KAAA,CAAA,IACtD,MACN;AAAA,EACF,EAAA,CAAA;AAEJ;;;"}
|
|
@@ -28,9 +28,9 @@ const HvFlowSidebarGroup = ({
|
|
|
28
28
|
expandedNodeGroups,
|
|
29
29
|
setExpandedNodeGroups
|
|
30
30
|
} = useFlowContext.useFlowContext();
|
|
31
|
-
const opened = React.useMemo(() => !!
|
|
31
|
+
const opened = React.useMemo(() => !!expandedNodeGroups?.find((groupId) => groupId === id), [expandedNodeGroups, id]);
|
|
32
32
|
const handleClick = React.useCallback(() => {
|
|
33
|
-
setExpandedNodeGroups
|
|
33
|
+
setExpandedNodeGroups?.((prev) => opened ? prev.filter((groupId) => id !== groupId) : [...prev, id]);
|
|
34
34
|
}, [id, opened, setExpandedNodeGroups]);
|
|
35
35
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cx(css({
|
|
36
36
|
borderColor: uikitStyles.getColor(color)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarGroup.cjs","sources":["../../../../../../src/components/Flow/Sidebar/SidebarGroup/SidebarGroup.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\n\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\nimport {\n ExtractNames,\n HvButton,\n HvButtonProps,\n HvTypography,\n} from \"@hitachivantara/uikit-react-core\";\nimport { getColor } from \"@hitachivantara/uikit-styles\";\n\nimport { HvFlowNodeGroup } from \"../../types\";\nimport { staticClasses, useClasses } from \"./SidebarGroup.styles\";\nimport {\n HvFlowDraggableSidebarGroupItem,\n HvFlowDraggableSidebarGroupItemProps,\n} from \"./SidebarGroupItem\";\nimport { useFlowContext } from \"../../hooks\";\n\nexport { staticClasses as flowSidebarGroupClasses };\n\nexport type HvFlowSidebarGroupClasses = ExtractNames<typeof useClasses>;\n\nexport type HvFlowSidebarGroupNodes = {\n type: string;\n label: string;\n data?: unknown;\n}[];\n\nexport interface HvFlowSidebarGroupProps extends HvFlowNodeGroup {\n /** Group id. */\n id: string;\n /** Group nodes. */\n nodes: HvFlowSidebarGroupNodes;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFlowSidebarGroupClasses;\n /** Expand button props. */\n expandButtonProps?: HvButtonProps;\n /** Item group props. */\n itemProps?: Partial<HvFlowDraggableSidebarGroupItemProps>;\n}\n\nexport const HvFlowSidebarGroup = ({\n id,\n label,\n nodes,\n color,\n description,\n icon,\n expandButtonProps,\n classes: classesProp,\n itemProps,\n}: HvFlowSidebarGroupProps) => {\n const { classes, cx, css } = useClasses(classesProp);\n\n const { expandedNodeGroups, setExpandedNodeGroups } = useFlowContext();\n\n const opened = useMemo(\n () => !!expandedNodeGroups?.find((groupId) => groupId === id),\n [expandedNodeGroups, id]\n );\n\n const handleClick = useCallback(() => {\n setExpandedNodeGroups?.((prev) =>\n opened ? prev.filter((groupId) => id !== groupId) : [...prev, id]\n );\n }, [id, opened, setExpandedNodeGroups]);\n\n return (\n <li className={cx(css({ borderColor: getColor(color) }), classes.root)}>\n <div className={classes.titleContainer}>\n <div className={classes.labelContainer}>\n <div className={classes.icon} role=\"none\">\n {icon}\n </div>\n <HvTypography variant=\"title4\">\n {nodes.length > 1 ? `${label} (${nodes.length})` : label}\n </HvTypography>\n </div>\n <HvButton\n icon\n onClick={handleClick}\n aria-expanded={opened}\n {...expandButtonProps}\n >\n {opened ? <Up role=\"none\" /> : <Down role=\"none\" />}\n </HvButton>\n </div>\n {description && (\n <div className={classes.descriptionContainer}>\n <HvTypography>{description}</HvTypography>\n </div>\n )}\n {opened && (\n <div className={classes.itemsContainer}>\n {nodes.map((obj) => (\n <HvFlowDraggableSidebarGroupItem\n key={obj.type}\n {...itemProps}\n {...obj}\n />\n ))}\n </div>\n )}\n </li>\n );\n};\n"],"names":["HvFlowSidebarGroup","id","label","nodes","color","description","icon","expandButtonProps","classes","classesProp","itemProps","cx","css","useClasses","expandedNodeGroups","setExpandedNodeGroups","useFlowContext","opened","useMemo","find","groupId","handleClick","useCallback","prev","filter","jsxs","borderColor","getColor","root","titleContainer","labelContainer","jsx","HvTypography","length","HvButton","Up","Down","descriptionContainer","itemsContainer","map","obj","HvFlowDraggableSidebarGroupItem","type"],"mappings":";;;;;;;;;;AA0CO,MAAMA,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAASC;AAAAA,EACTC;AACuB,MAAM;AACvB,QAAA;AAAA,IAAEF;AAAAA,IAASG;AAAAA,IAAIC;AAAAA,EAAAA,IAAQC,oBAAAA,WAAWJ,WAAW;AAE7C,QAAA;AAAA,IAAEK;AAAAA,IAAoBC;AAAAA,MAA0BC,eAAe,eAAA;AAErE,QAAMC,SAASC,MAAAA,QACb,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"SidebarGroup.cjs","sources":["../../../../../../src/components/Flow/Sidebar/SidebarGroup/SidebarGroup.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\n\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\nimport {\n ExtractNames,\n HvButton,\n HvButtonProps,\n HvTypography,\n} from \"@hitachivantara/uikit-react-core\";\nimport { getColor } from \"@hitachivantara/uikit-styles\";\n\nimport { HvFlowNodeGroup } from \"../../types\";\nimport { staticClasses, useClasses } from \"./SidebarGroup.styles\";\nimport {\n HvFlowDraggableSidebarGroupItem,\n HvFlowDraggableSidebarGroupItemProps,\n} from \"./SidebarGroupItem\";\nimport { useFlowContext } from \"../../hooks\";\n\nexport { staticClasses as flowSidebarGroupClasses };\n\nexport type HvFlowSidebarGroupClasses = ExtractNames<typeof useClasses>;\n\nexport type HvFlowSidebarGroupNodes = {\n type: string;\n label: string;\n data?: unknown;\n}[];\n\nexport interface HvFlowSidebarGroupProps extends HvFlowNodeGroup {\n /** Group id. */\n id: string;\n /** Group nodes. */\n nodes: HvFlowSidebarGroupNodes;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFlowSidebarGroupClasses;\n /** Expand button props. */\n expandButtonProps?: HvButtonProps;\n /** Item group props. */\n itemProps?: Partial<HvFlowDraggableSidebarGroupItemProps>;\n}\n\nexport const HvFlowSidebarGroup = ({\n id,\n label,\n nodes,\n color,\n description,\n icon,\n expandButtonProps,\n classes: classesProp,\n itemProps,\n}: HvFlowSidebarGroupProps) => {\n const { classes, cx, css } = useClasses(classesProp);\n\n const { expandedNodeGroups, setExpandedNodeGroups } = useFlowContext();\n\n const opened = useMemo(\n () => !!expandedNodeGroups?.find((groupId) => groupId === id),\n [expandedNodeGroups, id]\n );\n\n const handleClick = useCallback(() => {\n setExpandedNodeGroups?.((prev) =>\n opened ? prev.filter((groupId) => id !== groupId) : [...prev, id]\n );\n }, [id, opened, setExpandedNodeGroups]);\n\n return (\n <li className={cx(css({ borderColor: getColor(color) }), classes.root)}>\n <div className={classes.titleContainer}>\n <div className={classes.labelContainer}>\n <div className={classes.icon} role=\"none\">\n {icon}\n </div>\n <HvTypography variant=\"title4\">\n {nodes.length > 1 ? `${label} (${nodes.length})` : label}\n </HvTypography>\n </div>\n <HvButton\n icon\n onClick={handleClick}\n aria-expanded={opened}\n {...expandButtonProps}\n >\n {opened ? <Up role=\"none\" /> : <Down role=\"none\" />}\n </HvButton>\n </div>\n {description && (\n <div className={classes.descriptionContainer}>\n <HvTypography>{description}</HvTypography>\n </div>\n )}\n {opened && (\n <div className={classes.itemsContainer}>\n {nodes.map((obj) => (\n <HvFlowDraggableSidebarGroupItem\n key={obj.type}\n {...itemProps}\n {...obj}\n />\n ))}\n </div>\n )}\n </li>\n );\n};\n"],"names":["HvFlowSidebarGroup","id","label","nodes","color","description","icon","expandButtonProps","classes","classesProp","itemProps","cx","css","useClasses","expandedNodeGroups","setExpandedNodeGroups","useFlowContext","opened","useMemo","find","groupId","handleClick","useCallback","prev","filter","jsxs","borderColor","getColor","root","titleContainer","labelContainer","jsx","HvTypography","length","HvButton","Up","Down","descriptionContainer","itemsContainer","map","obj","HvFlowDraggableSidebarGroupItem","type"],"mappings":";;;;;;;;;;AA0CO,MAAMA,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAASC;AAAAA,EACTC;AACuB,MAAM;AACvB,QAAA;AAAA,IAAEF;AAAAA,IAASG;AAAAA,IAAIC;AAAAA,EAAAA,IAAQC,oBAAAA,WAAWJ,WAAW;AAE7C,QAAA;AAAA,IAAEK;AAAAA,IAAoBC;AAAAA,MAA0BC,eAAe,eAAA;AAErE,QAAMC,SAASC,MAAAA,QACb,MAAM,CAAC,CAACJ,oBAAoBK,KAAMC,CAAYA,YAAAA,YAAYnB,EAAE,GAC5D,CAACa,oBAAoBb,EAAE,CACzB;AAEMoB,QAAAA,cAAcC,MAAAA,YAAY,MAAM;AACpCP,4BAAyBQ,CACvBN,SAAAA,SAASM,KAAKC,OAAQJ,CAAYnB,YAAAA,OAAOmB,OAAO,IAAI,CAAC,GAAGG,MAAMtB,EAAE,CAClE;AAAA,EACC,GAAA,CAACA,IAAIgB,QAAQF,qBAAqB,CAAC;AAEtC,SACGU,2BAAA,KAAA,MAAA,EAAG,WAAWd,GAAGC,IAAI;AAAA,IAAEc,aAAaC,qBAASvB,KAAK;AAAA,EAAG,CAAA,GAAGI,QAAQoB,IAAI,GACnE,UAAA;AAAA,IAACH,2BAAA,KAAA,OAAA,EAAI,WAAWjB,QAAQqB,gBACtB,UAAA;AAAA,MAACJ,2BAAA,KAAA,OAAA,EAAI,WAAWjB,QAAQsB,gBACtB,UAAA;AAAA,QAAAC,+BAAC,SAAI,WAAWvB,QAAQF,MAAM,MAAK,QAChCA,UACH,MAAA;AAAA,QACCyB,2BAAA,IAAAC,eAAA,cAAA,EAAa,SAAQ,UACnB7B,UAAM8B,MAAAA,SAAS,IAAK,GAAE/B,KAAM,KAAIC,MAAM8B,MAAO,MAAK/B,OACrD;AAAA,MAAA,GACF;AAAA,MACA6B,2BAAAA,IAACG,2BACC,MAAI,MACJ,SAASb,aACT,iBAAeJ,QACf,GAAIV,mBAEHU,mBAAUc,2BAAA,IAAAI,oBAAA,EAAG,MAAK,QAAM,mCAAOC,gBAAAA,MAAK,EAAA,MAAK,QAAS,EACrD,CAAA;AAAA,IAAA,GACF;AAAA,IACC/B,8CACE,OAAI,EAAA,WAAWG,QAAQ6B,sBACtB,UAAAN,2BAAAA,IAACC,eAAAA,cAAc3B,EAAAA,UAAAA,YAAAA,CAAY,EAC7B,CAAA;AAAA,IAEDY,UACEc,2BAAAA,IAAA,OAAA,EAAI,WAAWvB,QAAQ8B,gBACrBnC,gBAAMoC,IAAKC,CAAAA,QACTT,+BAAAU,0BAAAA,iCAAA,EAEK/B,GAAAA,WACA8B,GAAAA,OAFCA,IAAIE,IAED,CAEX,GACH;AAAA,EAEJ,EAAA,CAAA;AAEJ;;;"}
|
package/dist/cjs/components/Flow/Sidebar/SidebarGroup/SidebarGroupItem/DraggableSidebarGroupItem.cjs
CHANGED
|
@@ -13,7 +13,6 @@ const HvFlowDraggableSidebarGroupItem = ({
|
|
|
13
13
|
data,
|
|
14
14
|
...others
|
|
15
15
|
}) => {
|
|
16
|
-
var _a, _b;
|
|
17
16
|
const itemRef = React.useRef(null);
|
|
18
17
|
const elementId = uikitReactCore.useUniqueId(id, `hvFlowDraggableItem-${type}`);
|
|
19
18
|
const {
|
|
@@ -31,8 +30,8 @@ const HvFlowDraggableSidebarGroupItem = ({
|
|
|
31
30
|
// Needed for the drag overlay: otherwise the item is cut by the drawer because of overflow
|
|
32
31
|
label,
|
|
33
32
|
// Item position: used to position the item when dropped
|
|
34
|
-
x:
|
|
35
|
-
y:
|
|
33
|
+
x: itemRef.current?.getBoundingClientRect().x,
|
|
34
|
+
y: itemRef.current?.getBoundingClientRect().y,
|
|
36
35
|
// Data
|
|
37
36
|
data
|
|
38
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DraggableSidebarGroupItem.cjs","sources":["../../../../../../../src/components/Flow/Sidebar/SidebarGroup/SidebarGroupItem/DraggableSidebarGroupItem.tsx"],"sourcesContent":["import { useRef } from \"react\";\n\nimport { useForkRef } from \"@mui/material\";\n\nimport { useDraggable } from \"@dnd-kit/core\";\n\nimport { useUniqueId } from \"@hitachivantara/uikit-react-core\";\n\nimport {\n HvFlowSidebarGroupItem,\n HvFlowSidebarGroupItemProps,\n} from \"./SidebarGroupItem\";\n\nexport interface HvFlowDraggableSidebarGroupItemProps\n extends HvFlowSidebarGroupItemProps {\n /** Item type. */\n type: string;\n /** Item data. */\n data?: unknown;\n}\n\nexport const HvFlowDraggableSidebarGroupItem = ({\n id,\n label,\n type,\n data,\n ...others\n}: HvFlowDraggableSidebarGroupItemProps) => {\n const itemRef = useRef<HTMLElement>(null);\n\n const elementId = useUniqueId(id, `hvFlowDraggableItem-${type}`);\n\n const { attributes, listeners, setNodeRef, isDragging, transform } =\n useDraggable({\n id: elementId,\n data: {\n hvFlow: {\n // Needed to know which item is being dragged and dropped\n type,\n // Needed for the drag overlay: otherwise the item is cut by the drawer because of overflow\n label,\n // Item position: used to position the item when dropped\n x: itemRef.current?.getBoundingClientRect().x,\n y: itemRef.current?.getBoundingClientRect().y,\n // Data\n data,\n },\n },\n });\n\n const forkedRef = useForkRef(itemRef, setNodeRef);\n\n const style = transform\n ? {\n transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,\n }\n : undefined;\n\n return (\n <HvFlowSidebarGroupItem\n ref={forkedRef}\n style={style}\n label={label}\n isDragging={isDragging}\n {...listeners}\n {...attributes}\n {...others}\n />\n );\n};\n"],"names":["HvFlowDraggableSidebarGroupItem","id","label","type","data","others","itemRef","useRef","elementId","useUniqueId","attributes","listeners","setNodeRef","isDragging","transform","useDraggable","hvFlow","x","current","getBoundingClientRect","y","forkedRef","useForkRef","style","undefined","jsx","HvFlowSidebarGroupItem"],"mappings":";;;;;;;;AAqBO,MAAMA,kCAAkCA,CAAC;AAAA,EAC9CC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACiC,MAAM
|
|
1
|
+
{"version":3,"file":"DraggableSidebarGroupItem.cjs","sources":["../../../../../../../src/components/Flow/Sidebar/SidebarGroup/SidebarGroupItem/DraggableSidebarGroupItem.tsx"],"sourcesContent":["import { useRef } from \"react\";\n\nimport { useForkRef } from \"@mui/material\";\n\nimport { useDraggable } from \"@dnd-kit/core\";\n\nimport { useUniqueId } from \"@hitachivantara/uikit-react-core\";\n\nimport {\n HvFlowSidebarGroupItem,\n HvFlowSidebarGroupItemProps,\n} from \"./SidebarGroupItem\";\n\nexport interface HvFlowDraggableSidebarGroupItemProps\n extends HvFlowSidebarGroupItemProps {\n /** Item type. */\n type: string;\n /** Item data. */\n data?: unknown;\n}\n\nexport const HvFlowDraggableSidebarGroupItem = ({\n id,\n label,\n type,\n data,\n ...others\n}: HvFlowDraggableSidebarGroupItemProps) => {\n const itemRef = useRef<HTMLElement>(null);\n\n const elementId = useUniqueId(id, `hvFlowDraggableItem-${type}`);\n\n const { attributes, listeners, setNodeRef, isDragging, transform } =\n useDraggable({\n id: elementId,\n data: {\n hvFlow: {\n // Needed to know which item is being dragged and dropped\n type,\n // Needed for the drag overlay: otherwise the item is cut by the drawer because of overflow\n label,\n // Item position: used to position the item when dropped\n x: itemRef.current?.getBoundingClientRect().x,\n y: itemRef.current?.getBoundingClientRect().y,\n // Data\n data,\n },\n },\n });\n\n const forkedRef = useForkRef(itemRef, setNodeRef);\n\n const style = transform\n ? {\n transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,\n }\n : undefined;\n\n return (\n <HvFlowSidebarGroupItem\n ref={forkedRef}\n style={style}\n label={label}\n isDragging={isDragging}\n {...listeners}\n {...attributes}\n {...others}\n />\n );\n};\n"],"names":["HvFlowDraggableSidebarGroupItem","id","label","type","data","others","itemRef","useRef","elementId","useUniqueId","attributes","listeners","setNodeRef","isDragging","transform","useDraggable","hvFlow","x","current","getBoundingClientRect","y","forkedRef","useForkRef","style","undefined","jsx","HvFlowSidebarGroupItem"],"mappings":";;;;;;;;AAqBO,MAAMA,kCAAkCA,CAAC;AAAA,EAC9CC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACiC,MAAM;AACpCC,QAAAA,UAAUC,aAAoB,IAAI;AAExC,QAAMC,YAAYC,eAAAA,YAAYR,IAAK,uBAAsBE,IAAK,EAAC;AAEzD,QAAA;AAAA,IAAEO;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAYC;AAAAA,MACrDC,kBAAa;AAAA,IACXd,IAAIO;AAAAA,IACJJ,MAAM;AAAA,MACJY,QAAQ;AAAA;AAAA,QAENb;AAAAA;AAAAA,QAEAD;AAAAA;AAAAA,QAEAe,GAAGX,QAAQY,SAASC,sBAAwBF,EAAAA;AAAAA,QAC5CG,GAAGd,QAAQY,SAASC,sBAAwBC,EAAAA;AAAAA;AAAAA,QAE5ChB;AAAAA,MACF;AAAA,IACF;AAAA,EAAA,CACD;AAEGiB,QAAAA,YAAYC,SAAAA,WAAWhB,SAASM,UAAU;AAEhD,QAAMW,QAAQT,YACV;AAAA,IACEA,WAAY,eAAcA,UAAUG,CAAE,OAAMH,UAAUM,CAAE;AAAA,EAE1DI,IAAAA;AAEJ,SACGC,2BAAA,IAAAC,iBAAA,wBAAA,EACC,KAAKL,WACL,OACA,OACA,YACIV,GAAAA,cACAD,YACAL,GAAAA,OACJ,CAAA;AAEN;;"}
|
|
@@ -4,12 +4,11 @@ const buildGroups = (nodeGroups, nodeTypes) => {
|
|
|
4
4
|
if (nodeGroups) {
|
|
5
5
|
const groups = Object.entries(nodeGroups).reduce((acc, curr) => {
|
|
6
6
|
const nodes = nodeTypes ? Object.entries(nodeTypes).reduce((accN, currN) => {
|
|
7
|
-
|
|
8
|
-
if (((_a = currN[1].meta) == null ? void 0 : _a.groupId) === curr[0]) {
|
|
7
|
+
if (currN[1].meta?.groupId === curr[0]) {
|
|
9
8
|
accN.push({
|
|
10
9
|
type: currN[0],
|
|
11
|
-
label:
|
|
12
|
-
data:
|
|
10
|
+
label: currN[1].meta?.label,
|
|
11
|
+
data: currN[1].meta?.data
|
|
13
12
|
});
|
|
14
13
|
}
|
|
15
14
|
return accN;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../../src/components/Flow/Sidebar/utils.ts"],"sourcesContent":["import { HvFlowContextValue } from \"../FlowContext\";\nimport { HvFlowNodeGroup } from \"../types\";\nimport { HvFlowSidebarGroupNodes } from \"./SidebarGroup\";\n\nexport const buildGroups = (\n nodeGroups: HvFlowContextValue[\"nodeGroups\"],\n nodeTypes: HvFlowContextValue[\"nodeTypes\"]\n): {\n [key: string]: HvFlowNodeGroup & { nodes: HvFlowSidebarGroupNodes };\n} => {\n if (nodeGroups) {\n const groups = Object.entries(nodeGroups).reduce((acc, curr) => {\n const nodes = nodeTypes\n ? Object.entries(nodeTypes).reduce(\n (accN: HvFlowSidebarGroupNodes, currN) => {\n if (currN[1].meta?.groupId === curr[0]) {\n accN.push({\n type: currN[0],\n label: currN[1].meta?.label,\n data: currN[1].meta?.data,\n });\n }\n return accN;\n },\n []\n )\n : [];\n\n acc[curr[0]] = {\n ...curr[1],\n nodes,\n };\n\n return acc;\n }, {});\n\n return groups;\n }\n\n return {};\n};\n"],"names":["buildGroups","nodeGroups","nodeTypes","groups","Object","entries","reduce","acc","curr","nodes","accN","currN","meta","groupId","push","type","label","data"],"mappings":";;AAIaA,MAAAA,cAAcA,CACzBC,YACAC,cAGG;AACH,MAAID,YAAY;AACRE,UAAAA,SAASC,OAAOC,QAAQJ,UAAU,EAAEK,OAAO,CAACC,KAAKC,SAAS;AACxDC,YAAAA,QAAQP,YACVE,OAAOC,QAAQH,SAAS,EAAEI,OACxB,CAACI,MAA+BC,UAAU
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../../src/components/Flow/Sidebar/utils.ts"],"sourcesContent":["import { HvFlowContextValue } from \"../FlowContext\";\nimport { HvFlowNodeGroup } from \"../types\";\nimport { HvFlowSidebarGroupNodes } from \"./SidebarGroup\";\n\nexport const buildGroups = (\n nodeGroups: HvFlowContextValue[\"nodeGroups\"],\n nodeTypes: HvFlowContextValue[\"nodeTypes\"]\n): {\n [key: string]: HvFlowNodeGroup & { nodes: HvFlowSidebarGroupNodes };\n} => {\n if (nodeGroups) {\n const groups = Object.entries(nodeGroups).reduce((acc, curr) => {\n const nodes = nodeTypes\n ? Object.entries(nodeTypes).reduce(\n (accN: HvFlowSidebarGroupNodes, currN) => {\n if (currN[1].meta?.groupId === curr[0]) {\n accN.push({\n type: currN[0],\n label: currN[1].meta?.label,\n data: currN[1].meta?.data,\n });\n }\n return accN;\n },\n []\n )\n : [];\n\n acc[curr[0]] = {\n ...curr[1],\n nodes,\n };\n\n return acc;\n }, {});\n\n return groups;\n }\n\n return {};\n};\n"],"names":["buildGroups","nodeGroups","nodeTypes","groups","Object","entries","reduce","acc","curr","nodes","accN","currN","meta","groupId","push","type","label","data"],"mappings":";;AAIaA,MAAAA,cAAcA,CACzBC,YACAC,cAGG;AACH,MAAID,YAAY;AACRE,UAAAA,SAASC,OAAOC,QAAQJ,UAAU,EAAEK,OAAO,CAACC,KAAKC,SAAS;AACxDC,YAAAA,QAAQP,YACVE,OAAOC,QAAQH,SAAS,EAAEI,OACxB,CAACI,MAA+BC,UAAU;AACxC,YAAIA,MAAM,CAAC,EAAEC,MAAMC,YAAYL,KAAK,CAAC,GAAG;AACtCE,eAAKI,KAAK;AAAA,YACRC,MAAMJ,MAAM,CAAC;AAAA,YACbK,OAAOL,MAAM,CAAC,EAAEC,MAAMI;AAAAA,YACtBC,MAAMN,MAAM,CAAC,EAAEC,MAAMK;AAAAA,UAAAA,CACtB;AAAA,QACH;AACOP,eAAAA;AAAAA,MAAAA,GAET,CAAA,CACF,IACA;AAEAF,UAAAA,KAAK,CAAC,CAAC,IAAI;AAAA,QACb,GAAGA,KAAK,CAAC;AAAA,QACTC;AAAAA,MAAAA;AAGKF,aAAAA;AAAAA,IACT,GAAG,CAAE,CAAA;AAEEJ,WAAAA;AAAAA,EACT;AAEA,SAAO;AACT;;"}
|
|
@@ -45,7 +45,7 @@ const HvDefaultNavigation = ({
|
|
|
45
45
|
minWidth,
|
|
46
46
|
maxWidth,
|
|
47
47
|
getColor: utils.getColor,
|
|
48
|
-
height:
|
|
48
|
+
height: activeTheme?.stepNavigation.defaultSeparatorHeight || 0
|
|
49
49
|
},
|
|
50
50
|
stepValues: {
|
|
51
51
|
minSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNavigation.cjs","sources":["../../../../../src/components/StepNavigation/DefaultNavigation/DefaultNavigation.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n HvBaseProps,\n HvTheme,\n useTheme,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { HvStep, HvStepProps } from \"./Step\";\nimport { getColor, stepSizes } from \"./utils\";\n\nexport type ComponentChildProps = {\n stepsWidth: number;\n navWidth: number;\n separatorValues: {\n minWidth: number;\n maxWidth: number;\n getColor: (state: HvStepProps[\"state\"], activeTheme: HvTheme) => any;\n height: number;\n };\n stepValues: {\n minSize: number;\n maxSize: number;\n StepComponent: React.ComponentType<HvStepProps>;\n };\n};\n\nexport interface HvDefaultNavigationProps\n extends Omit<HvBaseProps, \"children\"> {\n /** Number of steps to show on the component. */\n numSteps: number;\n /** Sets one of the standard sizes of the steps. */\n stepSize: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Returns a `ReactNode` of the titles container. */\n getTitles: (\n getTitleProps?: (params: {\n state: HvStepProps[\"state\"];\n rawTitle: string;\n number: number;\n }) => { variant?: string; title?: string }\n ) => ReactNode;\n /** Returns dynamic width values of the component (width, titleWidth, separatorWidth). */\n getDynamicValues: (stepsWidth: number) => {\n width: number;\n titleWidth: number;\n separatorWidth: number;\n };\n /** Component to render Step Navigation with props = {separatorValues, stepValues, stepsWidth} */\n children: React.FunctionComponent<ComponentChildProps>;\n}\n\nexport const HvDefaultNavigation = ({\n numSteps,\n stepSize,\n getTitles,\n getDynamicValues,\n className,\n children,\n ...other\n}: HvDefaultNavigationProps) => {\n const { activeTheme } = useTheme();\n\n // step values\n const { container: maxSize, avatar: minSize } = stepSizes[stepSize];\n const StepComponent = HvStep;\n //\n\n const stepsWidth = maxSize + minSize * (numSteps - 1);\n const { width, titleWidth, separatorWidth } = getDynamicValues(stepsWidth);\n\n // separator values\n const maxWidth = Math.max(titleWidth - minSize, separatorWidth);\n const minWidth = Math.max(\n titleWidth - (maxSize + minSize) * 0.5,\n separatorWidth\n );\n //\n\n const Steps = children;\n\n const titles = getTitles(({ state }) => ({\n variant: \"label\",\n titleWidth,\n titleDisabled: state === \"Disabled\",\n }));\n\n return (\n <div {...other}>\n <Steps\n {...{\n stepsWidth,\n navWidth: width,\n separatorValues: {\n minWidth,\n maxWidth,\n getColor,\n height: activeTheme?.stepNavigation.defaultSeparatorHeight || 0,\n },\n stepValues: {\n minSize,\n maxSize,\n StepComponent,\n },\n }}\n />\n {titles}\n </div>\n );\n};\n"],"names":["HvDefaultNavigation","numSteps","stepSize","getTitles","getDynamicValues","className","children","other","activeTheme","useTheme","container","maxSize","avatar","minSize","stepSizes","StepComponent","HvStep","stepsWidth","width","titleWidth","separatorWidth","maxWidth","Math","max","minWidth","Steps","titles","state","variant","titleDisabled","jsxs","jsx","navWidth","separatorValues","getColor","height","stepNavigation","defaultSeparatorHeight","stepValues"],"mappings":";;;;;;AAkDO,MAAMA,sBAAsBA,CAAC;AAAA,EAClCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACqB,MAAM;AACxB,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,eAAS,SAAA;AAG3B,QAAA;AAAA,IAAEC,WAAWC;AAAAA,IAASC,QAAQC;AAAAA,EAAAA,IAAYC,MAAAA,UAAUZ,QAAQ;AAClE,QAAMa,gBAAgBC,KAAAA;AAGhBC,QAAAA,aAAaN,UAAUE,WAAWZ,WAAW;AAC7C,QAAA;AAAA,IAAEiB;AAAAA,IAAOC;AAAAA,IAAYC;AAAAA,EAAAA,IAAmBhB,iBAAiBa,UAAU;AAGzE,QAAMI,WAAWC,KAAKC,IAAIJ,aAAaN,SAASO,cAAc;AAC9D,QAAMI,WAAWF,KAAKC,IACpBJ,cAAcR,UAAUE,WAAW,KACnCO,cACF;AAGA,QAAMK,QAAQnB;AAERoB,QAAAA,SAASvB,UAAU,CAAC;AAAA,IAAEwB;AAAAA,EAAAA,OAAa;AAAA,IACvCC,SAAS;AAAA,IACTT;AAAAA,IACAU,eAAeF,UAAU;AAAA,EACzB,EAAA;AAGA,SAAAG,2BAAA,KAAC,OAAI,EAAA,GAAIvB,OACP,UAAA;AAAA,IAAAwB,2BAAA,IAAC,SACK,GAAA;AAAA,MACFd;AAAAA,MACAe,UAAUd;AAAAA,MACVe,iBAAiB;AAAA,QACfT;AAAAA,QACAH;AAAAA,QAAAA,UACAa,MAAAA;AAAAA,QACAC,
|
|
1
|
+
{"version":3,"file":"DefaultNavigation.cjs","sources":["../../../../../src/components/StepNavigation/DefaultNavigation/DefaultNavigation.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n HvBaseProps,\n HvTheme,\n useTheme,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { HvStep, HvStepProps } from \"./Step\";\nimport { getColor, stepSizes } from \"./utils\";\n\nexport type ComponentChildProps = {\n stepsWidth: number;\n navWidth: number;\n separatorValues: {\n minWidth: number;\n maxWidth: number;\n getColor: (state: HvStepProps[\"state\"], activeTheme: HvTheme) => any;\n height: number;\n };\n stepValues: {\n minSize: number;\n maxSize: number;\n StepComponent: React.ComponentType<HvStepProps>;\n };\n};\n\nexport interface HvDefaultNavigationProps\n extends Omit<HvBaseProps, \"children\"> {\n /** Number of steps to show on the component. */\n numSteps: number;\n /** Sets one of the standard sizes of the steps. */\n stepSize: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Returns a `ReactNode` of the titles container. */\n getTitles: (\n getTitleProps?: (params: {\n state: HvStepProps[\"state\"];\n rawTitle: string;\n number: number;\n }) => { variant?: string; title?: string }\n ) => ReactNode;\n /** Returns dynamic width values of the component (width, titleWidth, separatorWidth). */\n getDynamicValues: (stepsWidth: number) => {\n width: number;\n titleWidth: number;\n separatorWidth: number;\n };\n /** Component to render Step Navigation with props = {separatorValues, stepValues, stepsWidth} */\n children: React.FunctionComponent<ComponentChildProps>;\n}\n\nexport const HvDefaultNavigation = ({\n numSteps,\n stepSize,\n getTitles,\n getDynamicValues,\n className,\n children,\n ...other\n}: HvDefaultNavigationProps) => {\n const { activeTheme } = useTheme();\n\n // step values\n const { container: maxSize, avatar: minSize } = stepSizes[stepSize];\n const StepComponent = HvStep;\n //\n\n const stepsWidth = maxSize + minSize * (numSteps - 1);\n const { width, titleWidth, separatorWidth } = getDynamicValues(stepsWidth);\n\n // separator values\n const maxWidth = Math.max(titleWidth - minSize, separatorWidth);\n const minWidth = Math.max(\n titleWidth - (maxSize + minSize) * 0.5,\n separatorWidth\n );\n //\n\n const Steps = children;\n\n const titles = getTitles(({ state }) => ({\n variant: \"label\",\n titleWidth,\n titleDisabled: state === \"Disabled\",\n }));\n\n return (\n <div {...other}>\n <Steps\n {...{\n stepsWidth,\n navWidth: width,\n separatorValues: {\n minWidth,\n maxWidth,\n getColor,\n height: activeTheme?.stepNavigation.defaultSeparatorHeight || 0,\n },\n stepValues: {\n minSize,\n maxSize,\n StepComponent,\n },\n }}\n />\n {titles}\n </div>\n );\n};\n"],"names":["HvDefaultNavigation","numSteps","stepSize","getTitles","getDynamicValues","className","children","other","activeTheme","useTheme","container","maxSize","avatar","minSize","stepSizes","StepComponent","HvStep","stepsWidth","width","titleWidth","separatorWidth","maxWidth","Math","max","minWidth","Steps","titles","state","variant","titleDisabled","jsxs","jsx","navWidth","separatorValues","getColor","height","stepNavigation","defaultSeparatorHeight","stepValues"],"mappings":";;;;;;AAkDO,MAAMA,sBAAsBA,CAAC;AAAA,EAClCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACqB,MAAM;AACxB,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,eAAS,SAAA;AAG3B,QAAA;AAAA,IAAEC,WAAWC;AAAAA,IAASC,QAAQC;AAAAA,EAAAA,IAAYC,MAAAA,UAAUZ,QAAQ;AAClE,QAAMa,gBAAgBC,KAAAA;AAGhBC,QAAAA,aAAaN,UAAUE,WAAWZ,WAAW;AAC7C,QAAA;AAAA,IAAEiB;AAAAA,IAAOC;AAAAA,IAAYC;AAAAA,EAAAA,IAAmBhB,iBAAiBa,UAAU;AAGzE,QAAMI,WAAWC,KAAKC,IAAIJ,aAAaN,SAASO,cAAc;AAC9D,QAAMI,WAAWF,KAAKC,IACpBJ,cAAcR,UAAUE,WAAW,KACnCO,cACF;AAGA,QAAMK,QAAQnB;AAERoB,QAAAA,SAASvB,UAAU,CAAC;AAAA,IAAEwB;AAAAA,EAAAA,OAAa;AAAA,IACvCC,SAAS;AAAA,IACTT;AAAAA,IACAU,eAAeF,UAAU;AAAA,EACzB,EAAA;AAGA,SAAAG,2BAAA,KAAC,OAAI,EAAA,GAAIvB,OACP,UAAA;AAAA,IAAAwB,2BAAA,IAAC,SACK,GAAA;AAAA,MACFd;AAAAA,MACAe,UAAUd;AAAAA,MACVe,iBAAiB;AAAA,QACfT;AAAAA,QACAH;AAAAA,QAAAA,UACAa,MAAAA;AAAAA,QACAC,QAAQ3B,aAAa4B,eAAeC,0BAA0B;AAAA,MAChE;AAAA,MACAC,YAAY;AAAA,QACVzB;AAAAA,QACAF;AAAAA,QACAI;AAAAA,MACF;AAAA,IAAA,GACA;AAAA,IAEHW;AAAAA,EACH,EAAA,CAAA;AAEJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../../src/components/StepNavigation/DefaultNavigation/utils.ts"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport type { HvStepProps } from \"./Step\";\n\nexport const getColor = (state: HvStepProps[\"state\"]) =>\n ({\n Pending: theme.colors.warning ?? \"warning\",\n Failed: theme.colors.negative ?? \"negative\",\n Completed: theme.colors.positive ?? \"positive\",\n Current: theme.colors.secondary ?? \"secondary\",\n Disabled: theme.colors.secondary_60 ?? \"secondary_60\",\n Enabled: theme.colors.secondary ?? \"secondary\",\n }[state]);\n\nexport const getSemantic = (state: HvStepProps[\"state\"]) =>\n ({\n Pending: \"warning\",\n Failed: \"negative\",\n Completed: \"positive\",\n Current: \"secondary\",\n Disabled: \"secondary_60\",\n Enabled: \"secondary\",\n }[state]);\n\nconst EXTRA_SMALL = { container: 32, avatar: 24 };\nconst SMALL = { container: 40, avatar: 32 };\nconst MEDIUM = { container: 48, avatar: 40 };\nconst LARGE = { container: 60, avatar: 52 };\nconst EXTRA_LARGE = { container: 96, avatar: 88 };\n\nexport const stepSizes = {\n xs: EXTRA_SMALL,\n sm: SMALL,\n md: MEDIUM,\n lg: LARGE,\n xl: EXTRA_LARGE,\n};\n"],"names":["getColor","state","Pending","theme","colors","warning","Failed","negative","Completed","positive","Current","secondary","Disabled","secondary_60","Enabled","getSemantic","EXTRA_SMALL","container","avatar","SMALL","MEDIUM","LARGE","EXTRA_LARGE","stepSizes","xs","sm","md","lg","xl"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../../src/components/StepNavigation/DefaultNavigation/utils.ts"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport type { HvStepProps } from \"./Step\";\n\nexport const getColor = (state: HvStepProps[\"state\"]) =>\n ({\n Pending: theme.colors.warning ?? \"warning\",\n Failed: theme.colors.negative ?? \"negative\",\n Completed: theme.colors.positive ?? \"positive\",\n Current: theme.colors.secondary ?? \"secondary\",\n Disabled: theme.colors.secondary_60 ?? \"secondary_60\",\n Enabled: theme.colors.secondary ?? \"secondary\",\n }[state]);\n\nexport const getSemantic = (state: HvStepProps[\"state\"]) =>\n ({\n Pending: \"warning\",\n Failed: \"negative\",\n Completed: \"positive\",\n Current: \"secondary\",\n Disabled: \"secondary_60\",\n Enabled: \"secondary\",\n }[state]);\n\nconst EXTRA_SMALL = { container: 32, avatar: 24 };\nconst SMALL = { container: 40, avatar: 32 };\nconst MEDIUM = { container: 48, avatar: 40 };\nconst LARGE = { container: 60, avatar: 52 };\nconst EXTRA_LARGE = { container: 96, avatar: 88 };\n\nexport const stepSizes = {\n xs: EXTRA_SMALL,\n sm: SMALL,\n md: MEDIUM,\n lg: LARGE,\n xl: EXTRA_LARGE,\n};\n"],"names":["getColor","state","Pending","theme","colors","warning","Failed","negative","Completed","positive","Current","secondary","Disabled","secondary_60","Enabled","getSemantic","EXTRA_SMALL","container","avatar","SMALL","MEDIUM","LARGE","EXTRA_LARGE","stepSizes","xs","sm","md","lg","xl"],"mappings":";;;AAIaA,MAAAA,WAAWA,CAACC,WACtB;AAAA,EACCC,SAASC,YAAMC,MAAAA,OAAOC,WAAW;AAAA,EACjCC,QAAQH,YAAMC,MAAAA,OAAOG,YAAY;AAAA,EACjCC,WAAWL,YAAMC,MAAAA,OAAOK,YAAY;AAAA,EACpCC,SAASP,YAAMC,MAAAA,OAAOO,aAAa;AAAA,EACnCC,UAAUT,YAAMC,MAAAA,OAAOS,gBAAgB;AAAA,EACvCC,SAASX,YAAMC,MAAAA,OAAOO,aAAa;AACrC,GAAEV,KAAK;AAEIc,MAAAA,cAAcA,CAACd,WACzB;AAAA,EACCC,SAAS;AAAA,EACTI,QAAQ;AAAA,EACRE,WAAW;AAAA,EACXE,SAAS;AAAA,EACTE,UAAU;AAAA,EACVE,SAAS;AACX,GAAEb,KAAK;AAET,MAAMe,cAAc;AAAA,EAAEC,WAAW;AAAA,EAAIC,QAAQ;AAAG;AAChD,MAAMC,QAAQ;AAAA,EAAEF,WAAW;AAAA,EAAIC,QAAQ;AAAG;AAC1C,MAAME,SAAS;AAAA,EAAEH,WAAW;AAAA,EAAIC,QAAQ;AAAG;AAC3C,MAAMG,QAAQ;AAAA,EAAEJ,WAAW;AAAA,EAAIC,QAAQ;AAAG;AAC1C,MAAMI,cAAc;AAAA,EAAEL,WAAW;AAAA,EAAIC,QAAQ;AAAG;AAEzC,MAAMK,YAAY;AAAA,EACvBC,IAAIR;AAAAA,EACJS,IAAIN;AAAAA,EACJO,IAAIN;AAAAA,EACJO,IAAIN;AAAAA,EACJO,IAAIN;AACN;;;;"}
|
|
@@ -43,7 +43,7 @@ const HvSimpleNavigation = ({
|
|
|
43
43
|
minWidth,
|
|
44
44
|
maxWidth,
|
|
45
45
|
getColor: utils.getColor,
|
|
46
|
-
height:
|
|
46
|
+
height: activeTheme?.stepNavigation.simpleSeparatorHeight || 0
|
|
47
47
|
},
|
|
48
48
|
stepValues: {
|
|
49
49
|
minSize: dotSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleNavigation.cjs","sources":["../../../../../src/components/StepNavigation/SimpleNavigation/SimpleNavigation.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n HvBaseProps,\n HvTheme,\n useTheme,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { HvDot, HvDotProps } from \"./Dot\";\nimport { getColor, dotSizes } from \"./utils\";\n\nexport type ComponentChildProps = {\n stepsWidth: number;\n navWidth: number;\n separatorValues: {\n minWidth: number;\n maxWidth: number;\n getColor: (state: HvDotProps[\"state\"], activeTheme: HvTheme) => any;\n height: number;\n };\n stepValues: {\n minSize: number;\n maxSize: number;\n StepComponent: React.ComponentType<HvDotProps>;\n };\n};\n\nexport interface HvSimpleNavigationProps extends Omit<HvBaseProps, \"children\"> {\n /** Sets one of the standard sizes of the steps. */\n stepSize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Number of steps to show on the component. */\n numSteps: number;\n /** Returns a `ReactNode` of the titles container. */\n getTitles: (\n getTitleProps?: (params: {\n state: HvDotProps[\"state\"];\n rawTitle: string;\n number: number;\n }) => { variant: string; title: string }\n ) => ReactNode;\n /** Returns dynamic width values of the component (width, titleWidth, separatorWidth). */\n getDynamicValues: (stepsWidth: number) => {\n width: number;\n titleWidth: number;\n separatorWidth: number;\n };\n /** Component to render Step Navigation with props = {separatorValues, stepValues, stepsWidth} */\n children: React.FunctionComponent<ComponentChildProps>;\n}\n\nexport const HvSimpleNavigation = ({\n numSteps,\n stepSize = \"sm\",\n getTitles,\n getDynamicValues,\n children,\n ...others\n}: HvSimpleNavigationProps) => {\n const { activeTheme } = useTheme();\n\n // step values\n const dotSize = dotSizes[stepSize];\n const StepComponent = HvDot;\n //\n\n const stepsWidth = (numSteps + 0.5) * dotSize;\n const { width, titleWidth, separatorWidth } = getDynamicValues(stepsWidth);\n\n // separator values\n const maxWidth = Math.max(titleWidth - dotSize, separatorWidth);\n const minWidth = Math.max(titleWidth - dotSize * 1.25, separatorWidth);\n //\n\n const Steps = children;\n\n const titles = getTitles(({ rawTitle, number }) => ({\n variant: \"label\",\n title: `${number}. ${rawTitle}`,\n titleWidth,\n }));\n\n return (\n <div {...others}>\n {titles}\n <Steps\n {...{\n stepsWidth,\n navWidth: width,\n separatorValues: {\n minWidth,\n maxWidth,\n getColor,\n height: activeTheme?.stepNavigation.simpleSeparatorHeight || 0,\n },\n stepValues: {\n minSize: dotSize,\n maxSize: 1.5 * dotSize,\n StepComponent,\n },\n }}\n />\n </div>\n );\n};\n"],"names":["HvSimpleNavigation","numSteps","stepSize","getTitles","getDynamicValues","children","others","activeTheme","useTheme","dotSize","dotSizes","StepComponent","HvDot","stepsWidth","width","titleWidth","separatorWidth","maxWidth","Math","max","minWidth","Steps","titles","rawTitle","number","variant","title","jsxs","jsx","navWidth","separatorValues","getColor","height","stepNavigation","simpleSeparatorHeight","stepValues","minSize","maxSize"],"mappings":";;;;;;AAiDO,MAAMA,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACoB,MAAM;AACvB,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,eAAS,SAAA;AAG3BC,QAAAA,UAAUC,eAASR,QAAQ;AACjC,QAAMS,gBAAgBC,IAAAA;AAGhBC,QAAAA,cAAcZ,WAAW,OAAOQ;AAChC,QAAA;AAAA,IAAEK;AAAAA,IAAOC;AAAAA,IAAYC;AAAAA,EAAAA,IAAmBZ,iBAAiBS,UAAU;AAGzE,QAAMI,WAAWC,KAAKC,IAAIJ,aAAaN,SAASO,cAAc;AAC9D,QAAMI,WAAWF,KAAKC,IAAIJ,aAAaN,UAAU,MAAMO,cAAc;AAGrE,QAAMK,QAAQhB;AAERiB,QAAAA,SAASnB,UAAU,CAAC;AAAA,IAAEoB;AAAAA,IAAUC;AAAAA,EAAAA,OAAc;AAAA,IAClDC,SAAS;AAAA,IACTC,OAAQ,GAAEF,MAAO,KAAID,QAAS;AAAA,IAC9BR;AAAAA,EACA,EAAA;AAGA,SAAAY,2BAAA,KAAC,OAAI,EAAA,GAAIrB,QACNgB,UAAAA;AAAAA,IAAAA;AAAAA,IACDM,2BAAA,IAAC,SACK,GAAA;AAAA,MACFf;AAAAA,MACAgB,UAAUf;AAAAA,MACVgB,iBAAiB;AAAA,QACfV;AAAAA,QACAH;AAAAA,QAAAA,UACAc,MAAAA;AAAAA,QACAC,
|
|
1
|
+
{"version":3,"file":"SimpleNavigation.cjs","sources":["../../../../../src/components/StepNavigation/SimpleNavigation/SimpleNavigation.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n HvBaseProps,\n HvTheme,\n useTheme,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { HvDot, HvDotProps } from \"./Dot\";\nimport { getColor, dotSizes } from \"./utils\";\n\nexport type ComponentChildProps = {\n stepsWidth: number;\n navWidth: number;\n separatorValues: {\n minWidth: number;\n maxWidth: number;\n getColor: (state: HvDotProps[\"state\"], activeTheme: HvTheme) => any;\n height: number;\n };\n stepValues: {\n minSize: number;\n maxSize: number;\n StepComponent: React.ComponentType<HvDotProps>;\n };\n};\n\nexport interface HvSimpleNavigationProps extends Omit<HvBaseProps, \"children\"> {\n /** Sets one of the standard sizes of the steps. */\n stepSize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Number of steps to show on the component. */\n numSteps: number;\n /** Returns a `ReactNode` of the titles container. */\n getTitles: (\n getTitleProps?: (params: {\n state: HvDotProps[\"state\"];\n rawTitle: string;\n number: number;\n }) => { variant: string; title: string }\n ) => ReactNode;\n /** Returns dynamic width values of the component (width, titleWidth, separatorWidth). */\n getDynamicValues: (stepsWidth: number) => {\n width: number;\n titleWidth: number;\n separatorWidth: number;\n };\n /** Component to render Step Navigation with props = {separatorValues, stepValues, stepsWidth} */\n children: React.FunctionComponent<ComponentChildProps>;\n}\n\nexport const HvSimpleNavigation = ({\n numSteps,\n stepSize = \"sm\",\n getTitles,\n getDynamicValues,\n children,\n ...others\n}: HvSimpleNavigationProps) => {\n const { activeTheme } = useTheme();\n\n // step values\n const dotSize = dotSizes[stepSize];\n const StepComponent = HvDot;\n //\n\n const stepsWidth = (numSteps + 0.5) * dotSize;\n const { width, titleWidth, separatorWidth } = getDynamicValues(stepsWidth);\n\n // separator values\n const maxWidth = Math.max(titleWidth - dotSize, separatorWidth);\n const minWidth = Math.max(titleWidth - dotSize * 1.25, separatorWidth);\n //\n\n const Steps = children;\n\n const titles = getTitles(({ rawTitle, number }) => ({\n variant: \"label\",\n title: `${number}. ${rawTitle}`,\n titleWidth,\n }));\n\n return (\n <div {...others}>\n {titles}\n <Steps\n {...{\n stepsWidth,\n navWidth: width,\n separatorValues: {\n minWidth,\n maxWidth,\n getColor,\n height: activeTheme?.stepNavigation.simpleSeparatorHeight || 0,\n },\n stepValues: {\n minSize: dotSize,\n maxSize: 1.5 * dotSize,\n StepComponent,\n },\n }}\n />\n </div>\n );\n};\n"],"names":["HvSimpleNavigation","numSteps","stepSize","getTitles","getDynamicValues","children","others","activeTheme","useTheme","dotSize","dotSizes","StepComponent","HvDot","stepsWidth","width","titleWidth","separatorWidth","maxWidth","Math","max","minWidth","Steps","titles","rawTitle","number","variant","title","jsxs","jsx","navWidth","separatorValues","getColor","height","stepNavigation","simpleSeparatorHeight","stepValues","minSize","maxSize"],"mappings":";;;;;;AAiDO,MAAMA,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACoB,MAAM;AACvB,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,eAAS,SAAA;AAG3BC,QAAAA,UAAUC,eAASR,QAAQ;AACjC,QAAMS,gBAAgBC,IAAAA;AAGhBC,QAAAA,cAAcZ,WAAW,OAAOQ;AAChC,QAAA;AAAA,IAAEK;AAAAA,IAAOC;AAAAA,IAAYC;AAAAA,EAAAA,IAAmBZ,iBAAiBS,UAAU;AAGzE,QAAMI,WAAWC,KAAKC,IAAIJ,aAAaN,SAASO,cAAc;AAC9D,QAAMI,WAAWF,KAAKC,IAAIJ,aAAaN,UAAU,MAAMO,cAAc;AAGrE,QAAMK,QAAQhB;AAERiB,QAAAA,SAASnB,UAAU,CAAC;AAAA,IAAEoB;AAAAA,IAAUC;AAAAA,EAAAA,OAAc;AAAA,IAClDC,SAAS;AAAA,IACTC,OAAQ,GAAEF,MAAO,KAAID,QAAS;AAAA,IAC9BR;AAAAA,EACA,EAAA;AAGA,SAAAY,2BAAA,KAAC,OAAI,EAAA,GAAIrB,QACNgB,UAAAA;AAAAA,IAAAA;AAAAA,IACDM,2BAAA,IAAC,SACK,GAAA;AAAA,MACFf;AAAAA,MACAgB,UAAUf;AAAAA,MACVgB,iBAAiB;AAAA,QACfV;AAAAA,QACAH;AAAAA,QAAAA,UACAc,MAAAA;AAAAA,QACAC,QAAQzB,aAAa0B,eAAeC,yBAAyB;AAAA,MAC/D;AAAA,MACAC,YAAY;AAAA,QACVC,SAAS3B;AAAAA,QACT4B,SAAS,MAAM5B;AAAAA,QACfE;AAAAA,MACF;AAAA,IAAA,GACA;AAAA,EAEN,EAAA,CAAA;AAEJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../../src/components/StepNavigation/SimpleNavigation/utils.ts"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { HvStepProps } from \"../DefaultNavigation\";\n\nexport const dotSizes = {\n xs: 8,\n sm: 10,\n md: 12,\n lg: 14,\n xl: 16,\n};\n\nexport const getColor = (state: HvStepProps[\"state\"]) =>\n state === \"Disabled\" ? theme.colors.secondary_60 : theme.colors.secondary;\n"],"names":["dotSizes","xs","sm","md","lg","xl","getColor","state","theme","colors","secondary_60","secondary"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../../src/components/StepNavigation/SimpleNavigation/utils.ts"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { HvStepProps } from \"../DefaultNavigation\";\n\nexport const dotSizes = {\n xs: 8,\n sm: 10,\n md: 12,\n lg: 14,\n xl: 16,\n};\n\nexport const getColor = (state: HvStepProps[\"state\"]) =>\n state === \"Disabled\" ? theme.colors.secondary_60 : theme.colors.secondary;\n"],"names":["dotSizes","xs","sm","md","lg","xl","getColor","state","theme","colors","secondary_60","secondary"],"mappings":";;;AAIO,MAAMA,WAAW;AAAA,EACtBC,IAAI;AAAA,EACJC,IAAI;AAAA,EACJC,IAAI;AAAA,EACJC,IAAI;AAAA,EACJC,IAAI;AACN;AAEaC,MAAAA,WAAWA,CAACC,UACvBA,UAAU,aAAaC,YAAMC,MAAAA,OAAOC,eAAeF,YAAAA,MAAMC,OAAOE;;;"}
|
|
@@ -51,7 +51,7 @@ const HvStepNavigation = ({
|
|
|
51
51
|
height: containerSize
|
|
52
52
|
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2xhYi9zcmMvY29tcG9uZW50cy9TdGVwTmF2aWdhdGlvbi9TdGVwTmF2aWdhdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUdJIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2xhYi9zcmMvY29tcG9uZW50cy9TdGVwTmF2aWdhdGlvbi9TdGVwTmF2aWdhdGlvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuXG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQge1xuICBIdkJhc2VQcm9wcyxcbiAgSHZCcmVha3BvaW50cyxcbiAgdXNlVGhlbWUsXG4gIHVzZVdpZHRoLFxuICBIdkJveCxcbiAgSHZUb29sdGlwLFxuICBIdlR5cG9ncmFwaHksXG4gIEV4dHJhY3ROYW1lcyxcbn0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1yZWFjdC1jb3JlXCI7XG5cbmltcG9ydCB7XG4gIEh2RGVmYXVsdE5hdmlnYXRpb24sXG4gIEh2RGVmYXVsdE5hdmlnYXRpb25Qcm9wcyxcbiAgSHZTdGVwUHJvcHMsXG59IGZyb20gXCIuL0RlZmF1bHROYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBIdlNpbXBsZU5hdmlnYXRpb24gfSBmcm9tIFwiLi9TaW1wbGVOYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBTRVBBUkFUT1JfV0lEVEgsIFRJVExFX01BUkdJTiwgVElUTEVfV0lEVEggfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgc3RhdGljQ2xhc3NlcywgdXNlQ2xhc3NlcyB9IGZyb20gXCIuL1N0ZXBOYXZpZ2F0aW9uLnN0eWxlc1wiO1xuXG5leHBvcnQgeyBzdGF0aWNDbGFzc2VzIGFzIHN0ZXBOYXZpZ2F0aW9uQ2xhc3NlcyB9O1xuXG5leHBvcnQgdHlwZSBIdlN0ZXBOYXZpZ2F0aW9uQ2xhc3NlcyA9IEV4dHJhY3ROYW1lczx0eXBlb2YgdXNlQ2xhc3Nlcz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHZTdGVwTmF2aWdhdGlvblByb3BzIGV4dGVuZHMgSHZCYXNlUHJvcHMge1xuICAvKiogVHlwZSBvZiBzdGVwIG5hdmlnYXRpb24uIFZhbHVlcyA9IHtcIlNpbXBsZVwiLCBcIkRlZmF1bHRcIn0gKi9cbiAgdHlwZT86IFwiU2ltcGxlXCIgfCBcIkRlZmF1bHRcIjtcbiAgLyoqIFN0ZXBzIHRvIHNob3cgb24gdGhlIGNvbXBvbmVudC4gKi9cbiAgc3RlcHM6IEFycmF5PFxuICAgIFBpY2s8XG4gICAgICBIdlN0ZXBQcm9wcyxcbiAgICAgIFwic3RhdGVcIiB8IFwidGl0bGVcIiB8IFwib25DbGlja1wiIHwgXCJjbGFzc05hbWVcIiB8IFwiZGlzYWJsZWRcIlxuICAgID4gJiB7XG4gICAgICAvKiogQ2xhc3MgbmFtZXMgdG8gb3ZlcnJpZGUgc3R5bGVzIG9uIHRoZSBzZXBhcmF0b3IgY29tcG9uZW50IGFmdGVyIHRoZSBzdGVwLiAqL1xuICAgICAgc2VwYXJhdG9yQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgLyoqIENsYXNzIG5hbWVzIHRvIG92ZXJyaWRlIHN0eWxlcyBvbiB0aGUgdGl0bGUgY29tcG9uZW50IGFib3ZlIHRoZSBzdGVwLiAqL1xuICAgICAgdGl0bGVDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgfVxuICA+O1xuICAvKiogU2V0cyBvbmUgb2YgdGhlIHN0YW5kYXJkIHNpemVzIG9mIHRoZSBzdGVwcy4gKi9cbiAgc3RlcFNpemU/OiBcInhzXCIgfCBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgfCBcInhsXCI7XG4gIC8qKiBXaWR0aCBvZiB0aGUgY29tcG9uZW50IGVsZW1lbnQgb24gZWFjaCBicmVha3BvaW50IHNjcmVlbiByZXNvbHV0aW9uLiAqL1xuICB3aWR0aD86IHsgW2JyZWFrcG9pbnQgaW4gSHZCcmVha3BvaW50c10/OiBudW1iZXIgfTtcbiAgLyoqIERlZmluZXMgZWl0aGVyIHNob3cgYSB0aXRsZSBvciBvbmx5IGEgdG9vbHRpcCBvbiBlYWNoIHN0ZXAgY29tcG9uZW50LiAqL1xuICBzaG93VGl0bGVzPzogYm9vbGVhbjtcbiAgLyoqIEEgSnNzIE9iamVjdCB1c2VkIHRvIG92ZXJyaWRlIG9yIGV4dGVuZCB0aGUgc3R5bGVzIGFwcGxpZWQgdG8gdGhlIGVtcHR5IHN0YXRlIFN0ZXBOYXZpZ2F0aW9uLiAqL1xuICBjbGFzc2VzPzogSHZTdGVwTmF2aWdhdGlvbkNsYXNzZXM7XG59XG5cbi8qKlxuICogTmF2aWdhdGlvbiBwYWdlIHdpdGggc3RlcHMuXG4gKlxuICogWW91IG5lZWQgdG8gZGVmaW5lIHRoZSA8Yj5zdGVwczxiLz4gZGlzcGxheWVkIG9uIHRoZSBjb21wb25lbnQgc28gdGhhdCBpdHNlbGYgY2FuIGJlIGRyYXduIG9uIHRoZSBVSS5cbiAqIE9uIGVhY2ggc3RlcCwgeW91IG5lZWQgdG8gZGVmaW5lIGEgPGI+c3RhdGU8L2I+IC0gJ1BlbmRpbmcnLCAnRmFpbGVkJywgJ0NvbXBsZXRlZCcsICdDdXJyZW50JywgJ0Rpc2FibGVkJyAtXG4gKiBhbmQgYSA8Yj50aXRsZTwvYj4gdG8gYmUgc2hvd24gYXMgYSB0b29sdGlwIG9yIGEgdGV4dCBhYm92ZSBvZiB0aGUgc3RlcC4gWW91IGNhbiBhbHNvOlxuICogKiBEZWZpbmUgYSA8Yj5jbGFzc05hbWU8L2I+IG9uIGVhY2ggc3RlcCBlbGVtZW50O1xuICogKiBEZWZpbmUgYSA8Yj5zZXBhcmF0b3JDbGFzc05hbWU8L2I+IHRvIHNwZWNpZnkgYSBjbGFzc05hbWUgZm9yIHRoZSBzZXBhcmF0b3IgZWxlbWVudC4gVGhlIGRlZmF1bHQgaGVpZ2h0XG4gKiB2YWx1ZXMgb2YgdGhlIHNlcGFyYXRvciBlbGVtZW50IGFyZSAycHgvM3B4IG9uICdTaW1wbGUnLydEZWZhdWx0JyBsYXlvdXRzIHJlc3BlY3RpdmVseTtcbiAqICogRGVmaW5lIGEgPGI+dGl0bGVDbGFzc05hbWU8L2I+IHRvIHNwZWNpZnkgYSBjbGFzc05hbWUgZm9yIHRoZSB0aXRsZSBhYm92ZSBlYWNoIHN0ZXAgZWxlbWVudC5cbiAqXG4gKiBGb3IgdGhlIHJvb3QgZWxlbWVudCwgeW91IGNhbjpcbiAqICogRGVmaW5lIGEgPGI+Y2xhc3NOYW1lPC9iPjtcbiAqICogQ2hvb3NlIGEgPGI+dHlwZTwvYj4gb2YgbGF5b3V0OiAnU2ltcGxlJyBvciAnRGVmYXVsdCc7XG4gKiAqIENob29zZSB0aGUgPGI+c3RlcFNpemU8L2I+IG9mIHRoZSBzdGVwIGNvbXBvbmVudDogXCJ4c1wiLCBcInNtXCIsIFwibWRcIiwgXCJsZ1wiLCBcInhsXCIuIFRoZSBkZWZhdWx0IHNpemUgd2lsbCBiZVxuICogY29ycmVzcG9uZGVudCB0byB0aGUgY3VycmVudCBtZWRpYSBicmVha3BvaW50O1xuICogKiBDaG9vc2UgZWl0aGVyIHlvdSB3YW50IHRvIDxiPnNob3dUaXRsZXM8L2I+IG5lYXIgdG8gZWFjaCBzdGVwIGNvbXBvbmVudCBvciBhIHRvb2x0aXAgb24gaG92ZXI7XG4gKiAqIERlZmluZSBhIDxiPndpZHRoPC9iPiBvZiB0aGUgY29tcG9uZW50LiBJZiB5b3UgZG9uJ3QgZGVmaW5lIGFueSB2YWx1ZSBhbmQgdGhlIHN0ZXAgY29tcG9uZW50IGhhcyBubyB0aXRsZVxuICogZGlzcGxheWVkIGFib3ZlLCB0aGUgd2lkdGggb2YgdGhlIHNlcGFyYXRvciBlbGVtZW50IHdpbGwgYmUgMTAwcHguXG4gKiBJZiB0aGUgc3RlcCBjb21wb25lbnQgaGFzIHRpdGxlcywgZWFjaCBvbmUgd2lsbCBoYXZlIDIxNXB4IG9mIHdpZHRoIGJ5IGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBjb25zdCBIdlN0ZXBOYXZpZ2F0aW9uID0gKHtcbiAgY2xhc3NOYW1lLFxuICBjbGFzc2VzOiBjbGFzc2VzUHJvcCxcbiAgd2lkdGgsXG4gIHN0ZXBzLFxuICBzdGVwU2l6ZSxcbiAgc2hvd1RpdGxlcyxcbiAgdHlwZSA9IFwiRGVmYXVsdFwiLFxuICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICAuLi5vdGhlcnNcbn06IEh2U3RlcE5hdmlnYXRpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzZXMsIGNzcywgY3ggfSA9IHVzZUNsYXNzZXMoY2xhc3Nlc1Byb3ApO1xuXG4gIGNvbnN0IHsgYWN0aXZlVGhlbWUgfSA9IHVzZVRoZW1lKCk7XG5cbiAgLy8gY3VycmVudCBicmVha3BvaW50ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnXG4gIGNvbnN0IGJyZWFrcG9pbnQgPSB1c2VXaWR0aCgpO1xuICAvLyBzdGVwIGNvbmZpZ3VyYXRpb25zXG4gIGNvbnN0IHN0ZXBTaXplS2V5ID1cbiAgICBzdGVwU2l6ZSA/PyAoW1wieHNcIiwgXCJzbVwiXS5pbmNsdWRlcyhicmVha3BvaW50KSA/IFwic21cIiA6IFwibWRcIik7XG4gIGNvbnN0IGhhc1RpdGxlcyA9IHNob3dUaXRsZXMgPz8gIVtcInhzXCIsIFwic21cIl0uaW5jbHVkZXMoYnJlYWtwb2ludCk7XG5cbiAgY29uc3Qgc3R5bGVkTGkgPSAoY29udGFpbmVyU2l6ZSkgPT5cbiAgICBzdHlsZWQoXCJsaVwiKSh7XG4gICAgICB3aWR0aDogY29udGFpbmVyU2l6ZSxcbiAgICAgIGhlaWdodDogY29udGFpbmVyU2l6ZSxcbiAgICB9KTtcblxuICBjb25zdCBzdHlsZWREaXYgPSAoY29udGFpbmVyU2l6ZSkgPT5cbiAgICBzdHlsZWQoXCJkaXZcIikoe1xuICAgICAgd2lkdGg6IGNvbnRhaW5lclNpemUsXG4gICAgICBoZWlnaHQ6IGNvbnRhaW5lclNpemUsXG4gICAgfSk7XG5cbiAgY29uc3Qgc3R5bGVkU2VwYXJhdG9yRWxlbWVudCA9IChcbiAgICB0aXRsZSxcbiAgICBzZXBhcmF0b3JDbGFzc05hbWUsXG4gICAgc2VwYXJhdG9ySGVpZ2h0LFxuICAgIHNlcGFyYXRvcldpZHRoLFxuICAgIGJhY2tncm91bmRDb2xvclxuICApID0+IHtcbiAgICBjb25zdCB3aWR0aFZhbHVlID1cbiAgICAgIHNlcGFyYXRvcldpZHRoIC1cbiAgICAgIDIgKlxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgKGFjdGl2ZVRoZW1lPy5zdGVwTmF2aWdhdGlvbi5zZXBhcmF0b3JNYXJnaW4gfHwgXCIwcHhcIikucmVwbGFjZShcbiAgICAgICAgICAgIFwicHhcIixcbiAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGxpXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGtleT17YHNlcGFyYXRvci0ke3RpdGxlfWB9XG4gICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgY3NzKHtcbiAgICAgICAgICAgIGhlaWdodDogc2VwYXJhdG9ySGVpZ2h0LFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoVmFsdWUsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgICAgICAgICBtYXJnaW46IGAwICR7dGhlbWUuc3RlcE5hdmlnYXRpb24uc2VwYXJhdG9yTWFyZ2lufWAsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2xhc3Nlcy5zZXBhcmF0b3JcbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3NlcGFyYXRvckNsYXNzTmFtZX0gLz5cbiAgICAgIDwvbGk+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBkcmF3SXRlbXMgPSAoe1xuICAgIHNlcGFyYXRvclZhbHVlczogeyBtaW5XaWR0aCwgbWF4V2lkdGgsIGdldENvbG9yLCBoZWlnaHQgfSxcbiAgICBzdGVwVmFsdWVzOiB7IG1pblNpemUsIG1heFNpemUsIFN0ZXBDb21wb25lbnQgfSxcbiAgfTogYW55KSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSBzdGVwcy5yZWR1Y2U8UmVhY3ROb2RlW10+KFxuICAgICAgKGFjYywgeyBzdGF0ZSwgdGl0bGUsIHNlcGFyYXRvckNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgaW5kZXgpOiBhbnkgPT4ge1xuICAgICAgICBjb25zdCBjb250YWluZXJTaXplID0gc3RhdGUgPT09IFwiQ3VycmVudFwiID8gbWF4U2l6ZSA6IG1pblNpemU7XG4gICAgICAgIGNvbnN0IFN0ZXBDb250YWluZXIgPSBzdHlsZWRMaShjb250YWluZXJTaXplKTtcbiAgICAgICAgY29uc3QgU3RlcCA9IHN0eWxlZERpdihNYXRoLm1heChjb250YWluZXJTaXplLCAzMCkpO1xuICAgICAgICBjb25zdCBzdGVwUHJvcHMgPSB7XG4gICAgICAgICAgLi4ue1xuICAgICAgICAgICAgc2l6ZTogc3RlcFNpemVLZXksXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgbnVtYmVyOiBpbmRleCArIDEsXG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzdGVwRWxlbWVudCA9IChcbiAgICAgICAgICA8U3RlcENvbnRhaW5lciBrZXk9e2BzdGVwLSR7dGl0bGV9YH0gY2xhc3NOYW1lPXtjbGFzc2VzLmxpfT5cbiAgICAgICAgICAgIHtoYXNUaXRsZXMgPyAoXG4gICAgICAgICAgICAgIDxTdGVwQ29tcG9uZW50XG4gICAgICAgICAgICAgICAga2V5PXtgc3RlcC0ke3RpdGxlfWB9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YCR7dGl0bGV9YH1cbiAgICAgICAgICAgICAgICB7Li4uc3RlcFByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEh2VG9vbHRpcFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9ezxIdlR5cG9ncmFwaHk+e2Ake2luZGV4ICsgMX0uICR7dGl0bGV9YH08L0h2VHlwb2dyYXBoeT59XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPFN0ZXAgY2xhc3NOYW1lPXtjbGFzc2VzLmxpfT5cbiAgICAgICAgICAgICAgICAgICAgPFN0ZXBDb21wb25lbnQgYXJpYS1sYWJlbD17YCR7dGl0bGV9YH0gey4uLnN0ZXBQcm9wc30gLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RlcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9IdlRvb2x0aXA+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3RlcENvbnRhaW5lcj5cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGluZGV4IDwgc3RlcHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGNvbnN0IHNlcGFyYXRvckVsZW1lbnQgPSBzdHlsZWRTZXBhcmF0b3JFbGVtZW50KFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBzZXBhcmF0b3JDbGFzc05hbWUsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBbc3RlcHNbaW5kZXggKyAxXS5zdGF0ZSwgc3RhdGVdLmluY2x1ZGVzKFwiQ3VycmVudFwiKVxuICAgICAgICAgICAgICA/IG1pbldpZHRoXG4gICAgICAgICAgICAgIDogbWF4V2lkdGgsXG4gICAgICAgICAgICBnZXRDb2xvcihcbiAgICAgICAgICAgICAgc3RlcHNbaW5kZXggKyAxXS5zdGF0ZSA9PT0gXCJEaXNhYmxlZFwiID8gXCJEaXNhYmxlZFwiIDogc3RhdGUsXG4gICAgICAgICAgICAgIHRoZW1lXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gWy4uLmFjYywgc3RlcEVsZW1lbnQsIHNlcGFyYXRvckVsZW1lbnRdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbLi4uYWNjLCBzdGVwRWxlbWVudF07XG4gICAgICB9LFxuICAgICAgW11cbiAgICApO1xuXG4gICAgcmV0dXJuIDxvbCBjbGFzc05hbWU9e2NsYXNzZXMub2x9PntpdGVtc308L29sPjtcbiAgfTtcblxuICBjb25zdCBnZXREeW5hbWljVmFsdWVzOiBIdkRlZmF1bHROYXZpZ2F0aW9uUHJvcHNbXCJnZXREeW5hbWljVmFsdWVzXCJdID0gKFxuICAgIHN0ZXBzV2lkdGhcbiAgKSA9PiB7XG4gICAgY29uc3QgdGhlbWVCcmVha3BvaW50cyA9IGFjdGl2ZVRoZW1lPy5icmVha3BvaW50cy52YWx1ZXMgfHwge307XG4gICAgY29uc3QgbWF4V2lkdGggPVxuICAgICAgd2lkdGg/LlticmVha3BvaW50XSA/P1xuICAgICAgTWF0aC5tYXgoXG4gICAgICAgIE51bWJlcihoYXNUaXRsZXMpICogKFRJVExFX1dJRFRIICsgVElUTEVfTUFSR0lOKSAqIHN0ZXBzLmxlbmd0aCAtXG4gICAgICAgICAgVElUTEVfTUFSR0lOLFxuICAgICAgICBTRVBBUkFUT1JfV0lEVEggKiAoc3RlcHMubGVuZ3RoIC0gMSkgKyBzdGVwc1dpZHRoXG4gICAgICApO1xuICAgIGNvbnN0IG5leHQgPSBPYmplY3Qua2V5cyh0aGVtZUJyZWFrcG9pbnRzKS5maW5kKChfLCBpbmRleCwgc2VsZikgPT5cbiAgICAgIGluZGV4IC0gMSA+PSAwID8gc2VsZltpbmRleCAtIDFdID09PSBicmVha3BvaW50IDogZmFsc2VcbiAgICApO1xuICAgIGNvbnN0IG5hdldpZHRoID0gTWF0aC5taW4oXG4gICAgICBtYXhXaWR0aCxcbiAgICAgIG5leHQgPyB0aGVtZUJyZWFrcG9pbnRzW25leHRdIDogbWF4V2lkdGhcbiAgICApO1xuICAgIGNvbnN0IHRpdGxlV2lkdGggPVxuICAgICAgTnVtYmVyKGhhc1RpdGxlcykgKiBNYXRoLmNlaWwoKG5hdldpZHRoICsgVElUTEVfTUFSR0lOKSAvIHN0ZXBzLmxlbmd0aCk7XG4gICAgY29uc3Qgc2VwYXJhdG9yV2lkdGggPVxuICAgICAgTnVtYmVyKCFoYXNUaXRsZXMpICpcbiAgICAgIE1hdGguY2VpbCgobmF2V2lkdGggLSBzdGVwc1dpZHRoKSAvIChzdGVwcy5sZW5ndGggLSAxKSk7XG4gICAgcmV0dXJuIHsgd2lkdGg6IG5hdldpZHRoLCB0aXRsZVdpZHRoLCBzZXBhcmF0b3JXaWR0aCB9O1xuICB9O1xuXG4gIGNvbnN0IGdldFRpdGxlcyA9IChnZXRUaXRsZVByb3BzKSA9PlxuICAgIGhhc1RpdGxlcyA/IChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnRpdGxlc30+XG4gICAgICAgIHtzdGVwcy5tYXAoKHsgdGl0bGU6IHJhd1RpdGxlLCBzdGF0ZSwgdGl0bGVDbGFzc05hbWUgfSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB2YXJpYW50ID0gXCJsYWJlbFwiLFxuICAgICAgICAgICAgdGl0bGUgPSByYXdUaXRsZSxcbiAgICAgICAgICAgIHRpdGxlV2lkdGggPSAwLFxuICAgICAgICAgICAgdGl0bGVEaXNhYmxlZCA9IGZhbHNlLFxuICAgICAgICAgIH0gPSBnZXRUaXRsZVByb3BzKHtcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgcmF3VGl0bGUsXG4gICAgICAgICAgICBudW1iZXI6IGluZGV4ICsgMSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8SHZUeXBvZ3JhcGh5XG4gICAgICAgICAgICAgIHZhcmlhbnQ9e3ZhcmlhbnR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgY3NzKHtcbiAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiB0aXRsZVdpZHRoIC0gVElUTEVfTUFSR0lOLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IFRJVExFX01BUkdJTixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0aXRsZUNsYXNzTmFtZVxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17dGl0bGVEaXNhYmxlZH1cbiAgICAgICAgICAgICAga2V5PXt0aXRsZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgICAgPC9IdlR5cG9ncmFwaHk+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICApIDogbnVsbDtcblxuICBjb25zdCBTdGVwTmF2aWdhdGlvbiA9IHtcbiAgICBEZWZhdWx0OiBIdkRlZmF1bHROYXZpZ2F0aW9uLFxuICAgIFNpbXBsZTogSHZTaW1wbGVOYXZpZ2F0aW9uLFxuICB9W3R5cGVdO1xuXG4gIHJldHVybiAoXG4gICAgPFN0ZXBOYXZpZ2F0aW9uXG4gICAgICBudW1TdGVwcz17c3RlcHMubGVuZ3RofVxuICAgICAgc3RlcFNpemU9e3N0ZXBTaXplS2V5fVxuICAgICAgZ2V0VGl0bGVzPXtnZXRUaXRsZXN9XG4gICAgICBnZXREeW5hbWljVmFsdWVzPXtnZXREeW5hbWljVmFsdWVzfVxuICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc2VzLnJvb3QsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ub3RoZXJzfVxuICAgID5cbiAgICAgIHsoeyBzdGVwc1dpZHRoLCBuYXZXaWR0aCwgLi4uaXRlbXNQcm9wcyB9KSA9PiAoXG4gICAgICAgIDxIdkJveFxuICAgICAgICAgIGNvbXBvbmVudD1cIm5hdlwiXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHdpZHRoOiBgJHtuYXZXaWR0aH1weGAsXG4gICAgICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgID5cbiAgICAgICAgICB7ZHJhd0l0ZW1zKGl0ZW1zUHJvcHMpfVxuICAgICAgICA8L0h2Qm94PlxuICAgICAgKX1cbiAgICA8L1N0ZXBOYXZpZ2F0aW9uPlxuICApO1xufTtcbiJdfQ== */");
|
|
53
53
|
const styledSeparatorElement = (title, separatorClassName, separatorHeight, separatorWidth, backgroundColor) => {
|
|
54
|
-
const widthValue = separatorWidth - 2 * Number((
|
|
54
|
+
const widthValue = separatorWidth - 2 * Number((activeTheme?.stepNavigation.separatorMargin || "0px").replace("px", ""));
|
|
55
55
|
return /* @__PURE__ */ jsxRuntime.jsx("li", { "aria-hidden": true, className: cx(css({
|
|
56
56
|
height: separatorHeight,
|
|
57
57
|
width: widthValue,
|
|
@@ -100,8 +100,8 @@ const HvStepNavigation = ({
|
|
|
100
100
|
return /* @__PURE__ */ jsxRuntime.jsx("ol", { className: classes.ol, children: items });
|
|
101
101
|
};
|
|
102
102
|
const getDynamicValues = (stepsWidth) => {
|
|
103
|
-
const themeBreakpoints =
|
|
104
|
-
const maxWidth =
|
|
103
|
+
const themeBreakpoints = activeTheme?.breakpoints.values || {};
|
|
104
|
+
const maxWidth = width?.[breakpoint] ?? Math.max(Number(hasTitles) * (utils.TITLE_WIDTH + utils.TITLE_MARGIN) * steps.length - utils.TITLE_MARGIN, utils.SEPARATOR_WIDTH * (steps.length - 1) + stepsWidth);
|
|
105
105
|
const next = Object.keys(themeBreakpoints).find((_, index, self) => index - 1 >= 0 ? self[index - 1] === breakpoint : false);
|
|
106
106
|
const navWidth = Math.min(maxWidth, next ? themeBreakpoints[next] : maxWidth);
|
|
107
107
|
const titleWidth = Number(hasTitles) * Math.ceil((navWidth + utils.TITLE_MARGIN) / steps.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepNavigation.cjs","sources":["../../../../src/components/StepNavigation/StepNavigation.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport {\n HvBaseProps,\n HvBreakpoints,\n useTheme,\n useWidth,\n HvBox,\n HvTooltip,\n HvTypography,\n ExtractNames,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport {\n HvDefaultNavigation,\n HvDefaultNavigationProps,\n HvStepProps,\n} from \"./DefaultNavigation\";\nimport { HvSimpleNavigation } from \"./SimpleNavigation\";\nimport { SEPARATOR_WIDTH, TITLE_MARGIN, TITLE_WIDTH } from \"./utils\";\nimport { staticClasses, useClasses } from \"./StepNavigation.styles\";\n\nexport { staticClasses as stepNavigationClasses };\n\nexport type HvStepNavigationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvStepNavigationProps extends HvBaseProps {\n /** Type of step navigation. Values = {\"Simple\", \"Default\"} */\n type?: \"Simple\" | \"Default\";\n /** Steps to show on the component. */\n steps: Array<\n Pick<\n HvStepProps,\n \"state\" | \"title\" | \"onClick\" | \"className\" | \"disabled\"\n > & {\n /** Class names to override styles on the separator component after the step. */\n separatorClassName?: string;\n /** Class names to override styles on the title component above the step. */\n titleClassName?: string;\n }\n >;\n /** Sets one of the standard sizes of the steps. */\n stepSize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Width of the component element on each breakpoint screen resolution. */\n width?: { [breakpoint in HvBreakpoints]?: number };\n /** Defines either show a title or only a tooltip on each step component. */\n showTitles?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state StepNavigation. */\n classes?: HvStepNavigationClasses;\n}\n\n/**\n * Navigation page with steps.\n *\n * You need to define the <b>steps<b/> displayed on the component so that itself can be drawn on the UI.\n * On each step, you need to define a <b>state</b> - 'Pending', 'Failed', 'Completed', 'Current', 'Disabled' -\n * and a <b>title</b> to be shown as a tooltip or a text above of the step. You can also:\n * * Define a <b>className</b> on each step element;\n * * Define a <b>separatorClassName</b> to specify a className for the separator element. The default height\n * values of the separator element are 2px/3px on 'Simple'/'Default' layouts respectively;\n * * Define a <b>titleClassName</b> to specify a className for the title above each step element.\n *\n * For the root element, you can:\n * * Define a <b>className</b>;\n * * Choose a <b>type</b> of layout: 'Simple' or 'Default';\n * * Choose the <b>stepSize</b> of the step component: \"xs\", \"sm\", \"md\", \"lg\", \"xl\". The default size will be\n * correspondent to the current media breakpoint;\n * * Choose either you want to <b>showTitles</b> near to each step component or a tooltip on hover;\n * * Define a <b>width</b> of the component. If you don't define any value and the step component has no title\n * displayed above, the width of the separator element will be 100px.\n * If the step component has titles, each one will have 215px of width by default.\n */\nexport const HvStepNavigation = ({\n className,\n classes: classesProp,\n width,\n steps,\n stepSize,\n showTitles,\n type = \"Default\",\n \"aria-label\": ariaLabel,\n ...others\n}: HvStepNavigationProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n\n const { activeTheme } = useTheme();\n\n // current breakpoint 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n const breakpoint = useWidth();\n // step configurations\n const stepSizeKey =\n stepSize ?? ([\"xs\", \"sm\"].includes(breakpoint) ? \"sm\" : \"md\");\n const hasTitles = showTitles ?? ![\"xs\", \"sm\"].includes(breakpoint);\n\n const styledLi = (containerSize) =>\n styled(\"li\")({\n width: containerSize,\n height: containerSize,\n });\n\n const styledDiv = (containerSize) =>\n styled(\"div\")({\n width: containerSize,\n height: containerSize,\n });\n\n const styledSeparatorElement = (\n title,\n separatorClassName,\n separatorHeight,\n separatorWidth,\n backgroundColor\n ) => {\n const widthValue =\n separatorWidth -\n 2 *\n Number(\n (activeTheme?.stepNavigation.separatorMargin || \"0px\").replace(\n \"px\",\n \"\"\n )\n );\n\n return (\n <li\n aria-hidden\n key={`separator-${title}`}\n className={cx(\n css({\n height: separatorHeight,\n width: widthValue,\n backgroundColor,\n margin: `0 ${theme.stepNavigation.separatorMargin}`,\n }),\n classes.separator\n )}\n >\n <div className={separatorClassName} />\n </li>\n );\n };\n\n const drawItems = ({\n separatorValues: { minWidth, maxWidth, getColor, height },\n stepValues: { minSize, maxSize, StepComponent },\n }: any) => {\n const items = steps.reduce<ReactNode[]>(\n (acc, { state, title, separatorClassName, ...props }, index): any => {\n const containerSize = state === \"Current\" ? maxSize : minSize;\n const StepContainer = styledLi(containerSize);\n const Step = styledDiv(Math.max(containerSize, 30));\n const stepProps = {\n ...{\n size: stepSizeKey,\n state,\n title,\n number: index + 1,\n ...props,\n },\n };\n const stepElement = (\n <StepContainer key={`step-${title}`} className={classes.li}>\n {hasTitles ? (\n <StepComponent\n key={`step-${title}`}\n aria-label={`${title}`}\n {...stepProps}\n />\n ) : (\n <HvTooltip\n placement=\"bottom\"\n title={<HvTypography>{`${index + 1}. ${title}`}</HvTypography>}\n >\n <div>\n <Step className={classes.li}>\n <StepComponent aria-label={`${title}`} {...stepProps} />\n </Step>\n </div>\n </HvTooltip>\n )}\n </StepContainer>\n );\n if (index < steps.length - 1) {\n const separatorElement = styledSeparatorElement(\n title,\n separatorClassName,\n height,\n [steps[index + 1].state, state].includes(\"Current\")\n ? minWidth\n : maxWidth,\n getColor(\n steps[index + 1].state === \"Disabled\" ? \"Disabled\" : state,\n theme\n )\n );\n return [...acc, stepElement, separatorElement];\n }\n return [...acc, stepElement];\n },\n []\n );\n\n return <ol className={classes.ol}>{items}</ol>;\n };\n\n const getDynamicValues: HvDefaultNavigationProps[\"getDynamicValues\"] = (\n stepsWidth\n ) => {\n const themeBreakpoints = activeTheme?.breakpoints.values || {};\n const maxWidth =\n width?.[breakpoint] ??\n Math.max(\n Number(hasTitles) * (TITLE_WIDTH + TITLE_MARGIN) * steps.length -\n TITLE_MARGIN,\n SEPARATOR_WIDTH * (steps.length - 1) + stepsWidth\n );\n const next = Object.keys(themeBreakpoints).find((_, index, self) =>\n index - 1 >= 0 ? self[index - 1] === breakpoint : false\n );\n const navWidth = Math.min(\n maxWidth,\n next ? themeBreakpoints[next] : maxWidth\n );\n const titleWidth =\n Number(hasTitles) * Math.ceil((navWidth + TITLE_MARGIN) / steps.length);\n const separatorWidth =\n Number(!hasTitles) *\n Math.ceil((navWidth - stepsWidth) / (steps.length - 1));\n return { width: navWidth, titleWidth, separatorWidth };\n };\n\n const getTitles = (getTitleProps) =>\n hasTitles ? (\n <div className={classes.titles}>\n {steps.map(({ title: rawTitle, state, titleClassName }, index) => {\n const {\n variant = \"label\",\n title = rawTitle,\n titleWidth = 0,\n titleDisabled = false,\n } = getTitleProps({\n state,\n rawTitle,\n number: index + 1,\n });\n\n return (\n <HvTypography\n variant={variant}\n className={cx(\n css({\n textAlign: \"center\",\n width: titleWidth - TITLE_MARGIN,\n marginRight: TITLE_MARGIN,\n }),\n titleClassName\n )}\n disabled={titleDisabled}\n key={title}\n >\n {title}\n </HvTypography>\n );\n })}\n </div>\n ) : null;\n\n const StepNavigation = {\n Default: HvDefaultNavigation,\n Simple: HvSimpleNavigation,\n }[type];\n\n return (\n <StepNavigation\n numSteps={steps.length}\n stepSize={stepSizeKey}\n getTitles={getTitles}\n getDynamicValues={getDynamicValues}\n className={cx(classes.root, className)}\n {...others}\n >\n {({ stepsWidth, navWidth, ...itemsProps }) => (\n <HvBox\n component=\"nav\"\n style={{\n width: `${navWidth}px`,\n margin: 0,\n }}\n aria-label={ariaLabel}\n >\n {drawItems(itemsProps)}\n </HvBox>\n )}\n </StepNavigation>\n );\n};\n"],"names":["HvStepNavigation","className","classes","classesProp","width","steps","stepSize","showTitles","type","ariaLabel","others","css","cx","useClasses","activeTheme","useTheme","breakpoint","useWidth","stepSizeKey","includes","hasTitles","styledLi","containerSize","_styled","process","env","NODE_ENV","target","label","height","styledDiv","styledSeparatorElement","title","separatorClassName","separatorHeight","separatorWidth","backgroundColor","widthValue","Number","stepNavigation","separatorMargin","replace","margin","theme","separator","jsx","drawItems","separatorValues","minWidth","maxWidth","getColor","stepValues","minSize","maxSize","StepComponent","items","reduce","acc","state","props","index","StepContainer","Step","Math","max","stepProps","size","number","stepElement","li","HvTooltip","HvTypography","length","separatorElement","ol","getDynamicValues","stepsWidth","themeBreakpoints","breakpoints","values","TITLE_WIDTH","TITLE_MARGIN","SEPARATOR_WIDTH","next","Object","keys","find","_","self","navWidth","min","titleWidth","ceil","getTitles","getTitleProps","titles","map","rawTitle","titleClassName","variant","titleDisabled","textAlign","marginRight","StepNavigation","Default","HvDefaultNavigation","Simple","HvSimpleNavigation","root","itemsProps","HvBox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StepNavigation.cjs","sources":["../../../../src/components/StepNavigation/StepNavigation.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport {\n HvBaseProps,\n HvBreakpoints,\n useTheme,\n useWidth,\n HvBox,\n HvTooltip,\n HvTypography,\n ExtractNames,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport {\n HvDefaultNavigation,\n HvDefaultNavigationProps,\n HvStepProps,\n} from \"./DefaultNavigation\";\nimport { HvSimpleNavigation } from \"./SimpleNavigation\";\nimport { SEPARATOR_WIDTH, TITLE_MARGIN, TITLE_WIDTH } from \"./utils\";\nimport { staticClasses, useClasses } from \"./StepNavigation.styles\";\n\nexport { staticClasses as stepNavigationClasses };\n\nexport type HvStepNavigationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvStepNavigationProps extends HvBaseProps {\n /** Type of step navigation. Values = {\"Simple\", \"Default\"} */\n type?: \"Simple\" | \"Default\";\n /** Steps to show on the component. */\n steps: Array<\n Pick<\n HvStepProps,\n \"state\" | \"title\" | \"onClick\" | \"className\" | \"disabled\"\n > & {\n /** Class names to override styles on the separator component after the step. */\n separatorClassName?: string;\n /** Class names to override styles on the title component above the step. */\n titleClassName?: string;\n }\n >;\n /** Sets one of the standard sizes of the steps. */\n stepSize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Width of the component element on each breakpoint screen resolution. */\n width?: { [breakpoint in HvBreakpoints]?: number };\n /** Defines either show a title or only a tooltip on each step component. */\n showTitles?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state StepNavigation. */\n classes?: HvStepNavigationClasses;\n}\n\n/**\n * Navigation page with steps.\n *\n * You need to define the <b>steps<b/> displayed on the component so that itself can be drawn on the UI.\n * On each step, you need to define a <b>state</b> - 'Pending', 'Failed', 'Completed', 'Current', 'Disabled' -\n * and a <b>title</b> to be shown as a tooltip or a text above of the step. You can also:\n * * Define a <b>className</b> on each step element;\n * * Define a <b>separatorClassName</b> to specify a className for the separator element. The default height\n * values of the separator element are 2px/3px on 'Simple'/'Default' layouts respectively;\n * * Define a <b>titleClassName</b> to specify a className for the title above each step element.\n *\n * For the root element, you can:\n * * Define a <b>className</b>;\n * * Choose a <b>type</b> of layout: 'Simple' or 'Default';\n * * Choose the <b>stepSize</b> of the step component: \"xs\", \"sm\", \"md\", \"lg\", \"xl\". The default size will be\n * correspondent to the current media breakpoint;\n * * Choose either you want to <b>showTitles</b> near to each step component or a tooltip on hover;\n * * Define a <b>width</b> of the component. If you don't define any value and the step component has no title\n * displayed above, the width of the separator element will be 100px.\n * If the step component has titles, each one will have 215px of width by default.\n */\nexport const HvStepNavigation = ({\n className,\n classes: classesProp,\n width,\n steps,\n stepSize,\n showTitles,\n type = \"Default\",\n \"aria-label\": ariaLabel,\n ...others\n}: HvStepNavigationProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n\n const { activeTheme } = useTheme();\n\n // current breakpoint 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n const breakpoint = useWidth();\n // step configurations\n const stepSizeKey =\n stepSize ?? ([\"xs\", \"sm\"].includes(breakpoint) ? \"sm\" : \"md\");\n const hasTitles = showTitles ?? ![\"xs\", \"sm\"].includes(breakpoint);\n\n const styledLi = (containerSize) =>\n styled(\"li\")({\n width: containerSize,\n height: containerSize,\n });\n\n const styledDiv = (containerSize) =>\n styled(\"div\")({\n width: containerSize,\n height: containerSize,\n });\n\n const styledSeparatorElement = (\n title,\n separatorClassName,\n separatorHeight,\n separatorWidth,\n backgroundColor\n ) => {\n const widthValue =\n separatorWidth -\n 2 *\n Number(\n (activeTheme?.stepNavigation.separatorMargin || \"0px\").replace(\n \"px\",\n \"\"\n )\n );\n\n return (\n <li\n aria-hidden\n key={`separator-${title}`}\n className={cx(\n css({\n height: separatorHeight,\n width: widthValue,\n backgroundColor,\n margin: `0 ${theme.stepNavigation.separatorMargin}`,\n }),\n classes.separator\n )}\n >\n <div className={separatorClassName} />\n </li>\n );\n };\n\n const drawItems = ({\n separatorValues: { minWidth, maxWidth, getColor, height },\n stepValues: { minSize, maxSize, StepComponent },\n }: any) => {\n const items = steps.reduce<ReactNode[]>(\n (acc, { state, title, separatorClassName, ...props }, index): any => {\n const containerSize = state === \"Current\" ? maxSize : minSize;\n const StepContainer = styledLi(containerSize);\n const Step = styledDiv(Math.max(containerSize, 30));\n const stepProps = {\n ...{\n size: stepSizeKey,\n state,\n title,\n number: index + 1,\n ...props,\n },\n };\n const stepElement = (\n <StepContainer key={`step-${title}`} className={classes.li}>\n {hasTitles ? (\n <StepComponent\n key={`step-${title}`}\n aria-label={`${title}`}\n {...stepProps}\n />\n ) : (\n <HvTooltip\n placement=\"bottom\"\n title={<HvTypography>{`${index + 1}. ${title}`}</HvTypography>}\n >\n <div>\n <Step className={classes.li}>\n <StepComponent aria-label={`${title}`} {...stepProps} />\n </Step>\n </div>\n </HvTooltip>\n )}\n </StepContainer>\n );\n if (index < steps.length - 1) {\n const separatorElement = styledSeparatorElement(\n title,\n separatorClassName,\n height,\n [steps[index + 1].state, state].includes(\"Current\")\n ? minWidth\n : maxWidth,\n getColor(\n steps[index + 1].state === \"Disabled\" ? \"Disabled\" : state,\n theme\n )\n );\n return [...acc, stepElement, separatorElement];\n }\n return [...acc, stepElement];\n },\n []\n );\n\n return <ol className={classes.ol}>{items}</ol>;\n };\n\n const getDynamicValues: HvDefaultNavigationProps[\"getDynamicValues\"] = (\n stepsWidth\n ) => {\n const themeBreakpoints = activeTheme?.breakpoints.values || {};\n const maxWidth =\n width?.[breakpoint] ??\n Math.max(\n Number(hasTitles) * (TITLE_WIDTH + TITLE_MARGIN) * steps.length -\n TITLE_MARGIN,\n SEPARATOR_WIDTH * (steps.length - 1) + stepsWidth\n );\n const next = Object.keys(themeBreakpoints).find((_, index, self) =>\n index - 1 >= 0 ? self[index - 1] === breakpoint : false\n );\n const navWidth = Math.min(\n maxWidth,\n next ? themeBreakpoints[next] : maxWidth\n );\n const titleWidth =\n Number(hasTitles) * Math.ceil((navWidth + TITLE_MARGIN) / steps.length);\n const separatorWidth =\n Number(!hasTitles) *\n Math.ceil((navWidth - stepsWidth) / (steps.length - 1));\n return { width: navWidth, titleWidth, separatorWidth };\n };\n\n const getTitles = (getTitleProps) =>\n hasTitles ? (\n <div className={classes.titles}>\n {steps.map(({ title: rawTitle, state, titleClassName }, index) => {\n const {\n variant = \"label\",\n title = rawTitle,\n titleWidth = 0,\n titleDisabled = false,\n } = getTitleProps({\n state,\n rawTitle,\n number: index + 1,\n });\n\n return (\n <HvTypography\n variant={variant}\n className={cx(\n css({\n textAlign: \"center\",\n width: titleWidth - TITLE_MARGIN,\n marginRight: TITLE_MARGIN,\n }),\n titleClassName\n )}\n disabled={titleDisabled}\n key={title}\n >\n {title}\n </HvTypography>\n );\n })}\n </div>\n ) : null;\n\n const StepNavigation = {\n Default: HvDefaultNavigation,\n Simple: HvSimpleNavigation,\n }[type];\n\n return (\n <StepNavigation\n numSteps={steps.length}\n stepSize={stepSizeKey}\n getTitles={getTitles}\n getDynamicValues={getDynamicValues}\n className={cx(classes.root, className)}\n {...others}\n >\n {({ stepsWidth, navWidth, ...itemsProps }) => (\n <HvBox\n component=\"nav\"\n style={{\n width: `${navWidth}px`,\n margin: 0,\n }}\n aria-label={ariaLabel}\n >\n {drawItems(itemsProps)}\n </HvBox>\n )}\n </StepNavigation>\n );\n};\n"],"names":["HvStepNavigation","className","classes","classesProp","width","steps","stepSize","showTitles","type","ariaLabel","others","css","cx","useClasses","activeTheme","useTheme","breakpoint","useWidth","stepSizeKey","includes","hasTitles","styledLi","containerSize","_styled","process","env","NODE_ENV","target","label","height","styledDiv","styledSeparatorElement","title","separatorClassName","separatorHeight","separatorWidth","backgroundColor","widthValue","Number","stepNavigation","separatorMargin","replace","margin","theme","separator","jsx","drawItems","separatorValues","minWidth","maxWidth","getColor","stepValues","minSize","maxSize","StepComponent","items","reduce","acc","state","props","index","StepContainer","Step","Math","max","stepProps","size","number","stepElement","li","HvTooltip","HvTypography","length","separatorElement","ol","getDynamicValues","stepsWidth","themeBreakpoints","breakpoints","values","TITLE_WIDTH","TITLE_MARGIN","SEPARATOR_WIDTH","next","Object","keys","find","_","self","navWidth","min","titleWidth","ceil","getTitles","getTitleProps","titles","map","rawTitle","titleClassName","variant","titleDisabled","textAlign","marginRight","StepNavigation","Default","HvDefaultNavigation","Simple","HvSimpleNavigation","root","itemsProps","HvBox"],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ const HvWizard = ({
|
|
|
40
40
|
const [tab, setTab] = React.useState(0);
|
|
41
41
|
const handleClose = React.useCallback((evt, reason) => {
|
|
42
42
|
if (reason !== "backdropClick") {
|
|
43
|
-
onClose
|
|
43
|
+
onClose?.(evt, reason);
|
|
44
44
|
}
|
|
45
45
|
}, [onClose]);
|
|
46
46
|
React.useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wizard.cjs","sources":["../../../../src/components/Wizard/Wizard.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport {\n ExtractNames,\n HvBaseProps,\n HvDialogProps,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { ModalProps } from \"@mui/material\";\n\nimport { HvStepNavigationProps } from \"../StepNavigation\";\nimport { HvWizardContent } from \"./WizardContent\";\nimport { HvWizardContext, HvWizardTabs } from \"./WizardContext\";\nimport { HvWizardTitle, HvWizardTitleProps } from \"./WizardTitle\";\nimport { HvWizardActions, HvWizardActionsProps } from \"./WizardActions\";\nimport { HvWizardContainer } from \"./WizardContainer\";\n\nimport { staticClasses, useClasses } from \"./Wizard.styles\";\n\nexport { staticClasses as wizardClasses };\n\nexport type HvWizardClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvWizardProps\n extends HvBaseProps,\n Pick<HvDialogProps, \"maxWidth\" | \"fullWidth\"> {\n /** Current state of the Wizard. */\n open: boolean;\n /** Function executed on close. */\n onClose: ModalProps[\"onClose\"];\n /** Function executed on submit. */\n handleSubmit: (context: HvWizardTabs) => void;\n /** Title for the wizard. */\n title?: string;\n /** An object containing all the labels for the wizard. */\n labels?: HvWizardActionsProps[\"labels\"] & HvWizardTitleProps[\"labels\"];\n /** Shows the summary button. */\n hasSummary?: boolean;\n /** The content of the summary. */\n summaryContent?: React.ReactNode;\n /** Enables the skip button. */\n skippable?: boolean;\n /** Forces minimum height to the component. */\n fixedHeight?: boolean;\n /** Whether the loading animation is shown. */\n loading?: boolean;\n /** Custom object to define type, size and width of the StepNavigation component */\n customStep?: Pick<HvStepNavigationProps, \"type\" | \"stepSize\" | \"width\">;\n /** A Jss Object used to override or extend the styles applied to the empty state Wizard. */\n classes?: HvWizardClasses;\n}\n\nexport const HvWizard = ({\n className,\n children,\n onClose,\n handleSubmit,\n title,\n open,\n skippable = true,\n loading = false,\n hasSummary = false,\n summaryContent,\n labels = {\n cancel: \"Cancel\",\n next: \"Next\",\n previous: \"Previous\",\n skip: \"Skip\",\n submit: \"Submit\",\n summary: \"Summary\",\n },\n fixedHeight = false,\n customStep,\n classes: classesProp,\n ...others\n}: HvWizardProps) => {\n const { classes } = useClasses(classesProp);\n\n const [context, setContext] = useState<HvWizardTabs>({});\n const [summary, setSummary] = useState(false);\n const [tab, setTab] = useState(0);\n\n const handleClose = useCallback(\n (evt, reason) => {\n if (reason !== \"backdropClick\") {\n onClose?.(evt, reason);\n }\n },\n [onClose]\n );\n\n // on unmount\n useEffect(() => {\n return () => {\n if (!open) {\n setContext((c) =>\n Object.entries(c).reduce(\n (acc, [key, child]) => ({\n ...acc,\n [+key]: {\n ...child,\n touched: false,\n },\n }),\n {} as HvWizardTabs\n )\n );\n setTab(0);\n }\n };\n }, [open]);\n\n const value = useMemo(\n () => ({ context, setContext, summary, setSummary, tab, setTab }),\n [context, setContext, summary, setSummary, tab, setTab]\n );\n\n return (\n <HvWizardContext.Provider value={value}>\n <HvWizardContainer\n className={className}\n classes={{ root: classes.root }}\n handleClose={handleClose}\n open={open}\n {...others}\n >\n <HvWizardTitle\n title={title}\n hasSummary={hasSummary}\n labels={labels}\n customStep={customStep}\n />\n <HvWizardContent\n loading={loading}\n fixedHeight={fixedHeight}\n summaryContent={summaryContent}\n >\n {children}\n </HvWizardContent>\n <HvWizardActions\n loading={loading}\n skippable={skippable}\n labels={labels}\n handleClose={handleClose}\n handleSubmit={handleSubmit}\n />\n </HvWizardContainer>\n </HvWizardContext.Provider>\n );\n};\n"],"names":["HvWizard","className","children","onClose","handleSubmit","title","open","skippable","loading","hasSummary","summaryContent","labels","cancel","next","previous","skip","submit","summary","fixedHeight","customStep","classes","classesProp","others","useClasses","context","setContext","useState","setSummary","tab","setTab","handleClose","useCallback","evt","reason","useEffect","c","Object","entries","reduce","acc","key","child","touched","value","useMemo","jsx","HvWizardContext","jsxs","HvWizardContainer","root","HvWizardTitle","HvWizardContent","HvWizardActions"],"mappings":";;;;;;;;;;AAoDO,MAAMA,WAAWA,CAAC;AAAA,EACvBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,YAAY;AAAA,EACZC,UAAU;AAAA,EACVC,aAAa;AAAA,EACbC;AAAAA,EACAC,SAAS;AAAA,IACPC,QAAQ;AAAA,IACRC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,MAAM;AAAA,IACNC,QAAQ;AAAA,IACRC,SAAS;AAAA,EACX;AAAA,EACAC,cAAc;AAAA,EACdC;AAAAA,EACAC,SAASC;AAAAA,EACT,GAAGC;AACU,MAAM;AACb,QAAA;AAAA,IAAEF;AAAAA,EAAAA,IAAYG,cAAAA,WAAWF,WAAW;AAE1C,QAAM,CAACG,SAASC,UAAU,IAAIC,MAAAA,SAAuB,CAAE,CAAA;AACvD,QAAM,CAACT,SAASU,UAAU,IAAID,eAAS,KAAK;AAC5C,QAAM,CAACE,KAAKC,MAAM,IAAIH,eAAS,CAAC;AAEhC,QAAMI,cAAcC,MAAAA,YAClB,CAACC,KAAKC,WAAW;AACf,QAAIA,WAAW,iBAAiB;AAC9B9B,
|
|
1
|
+
{"version":3,"file":"Wizard.cjs","sources":["../../../../src/components/Wizard/Wizard.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport {\n ExtractNames,\n HvBaseProps,\n HvDialogProps,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { ModalProps } from \"@mui/material\";\n\nimport { HvStepNavigationProps } from \"../StepNavigation\";\nimport { HvWizardContent } from \"./WizardContent\";\nimport { HvWizardContext, HvWizardTabs } from \"./WizardContext\";\nimport { HvWizardTitle, HvWizardTitleProps } from \"./WizardTitle\";\nimport { HvWizardActions, HvWizardActionsProps } from \"./WizardActions\";\nimport { HvWizardContainer } from \"./WizardContainer\";\n\nimport { staticClasses, useClasses } from \"./Wizard.styles\";\n\nexport { staticClasses as wizardClasses };\n\nexport type HvWizardClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvWizardProps\n extends HvBaseProps,\n Pick<HvDialogProps, \"maxWidth\" | \"fullWidth\"> {\n /** Current state of the Wizard. */\n open: boolean;\n /** Function executed on close. */\n onClose: ModalProps[\"onClose\"];\n /** Function executed on submit. */\n handleSubmit: (context: HvWizardTabs) => void;\n /** Title for the wizard. */\n title?: string;\n /** An object containing all the labels for the wizard. */\n labels?: HvWizardActionsProps[\"labels\"] & HvWizardTitleProps[\"labels\"];\n /** Shows the summary button. */\n hasSummary?: boolean;\n /** The content of the summary. */\n summaryContent?: React.ReactNode;\n /** Enables the skip button. */\n skippable?: boolean;\n /** Forces minimum height to the component. */\n fixedHeight?: boolean;\n /** Whether the loading animation is shown. */\n loading?: boolean;\n /** Custom object to define type, size and width of the StepNavigation component */\n customStep?: Pick<HvStepNavigationProps, \"type\" | \"stepSize\" | \"width\">;\n /** A Jss Object used to override or extend the styles applied to the empty state Wizard. */\n classes?: HvWizardClasses;\n}\n\nexport const HvWizard = ({\n className,\n children,\n onClose,\n handleSubmit,\n title,\n open,\n skippable = true,\n loading = false,\n hasSummary = false,\n summaryContent,\n labels = {\n cancel: \"Cancel\",\n next: \"Next\",\n previous: \"Previous\",\n skip: \"Skip\",\n submit: \"Submit\",\n summary: \"Summary\",\n },\n fixedHeight = false,\n customStep,\n classes: classesProp,\n ...others\n}: HvWizardProps) => {\n const { classes } = useClasses(classesProp);\n\n const [context, setContext] = useState<HvWizardTabs>({});\n const [summary, setSummary] = useState(false);\n const [tab, setTab] = useState(0);\n\n const handleClose = useCallback(\n (evt, reason) => {\n if (reason !== \"backdropClick\") {\n onClose?.(evt, reason);\n }\n },\n [onClose]\n );\n\n // on unmount\n useEffect(() => {\n return () => {\n if (!open) {\n setContext((c) =>\n Object.entries(c).reduce(\n (acc, [key, child]) => ({\n ...acc,\n [+key]: {\n ...child,\n touched: false,\n },\n }),\n {} as HvWizardTabs\n )\n );\n setTab(0);\n }\n };\n }, [open]);\n\n const value = useMemo(\n () => ({ context, setContext, summary, setSummary, tab, setTab }),\n [context, setContext, summary, setSummary, tab, setTab]\n );\n\n return (\n <HvWizardContext.Provider value={value}>\n <HvWizardContainer\n className={className}\n classes={{ root: classes.root }}\n handleClose={handleClose}\n open={open}\n {...others}\n >\n <HvWizardTitle\n title={title}\n hasSummary={hasSummary}\n labels={labels}\n customStep={customStep}\n />\n <HvWizardContent\n loading={loading}\n fixedHeight={fixedHeight}\n summaryContent={summaryContent}\n >\n {children}\n </HvWizardContent>\n <HvWizardActions\n loading={loading}\n skippable={skippable}\n labels={labels}\n handleClose={handleClose}\n handleSubmit={handleSubmit}\n />\n </HvWizardContainer>\n </HvWizardContext.Provider>\n );\n};\n"],"names":["HvWizard","className","children","onClose","handleSubmit","title","open","skippable","loading","hasSummary","summaryContent","labels","cancel","next","previous","skip","submit","summary","fixedHeight","customStep","classes","classesProp","others","useClasses","context","setContext","useState","setSummary","tab","setTab","handleClose","useCallback","evt","reason","useEffect","c","Object","entries","reduce","acc","key","child","touched","value","useMemo","jsx","HvWizardContext","jsxs","HvWizardContainer","root","HvWizardTitle","HvWizardContent","HvWizardActions"],"mappings":";;;;;;;;;;AAoDO,MAAMA,WAAWA,CAAC;AAAA,EACvBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,YAAY;AAAA,EACZC,UAAU;AAAA,EACVC,aAAa;AAAA,EACbC;AAAAA,EACAC,SAAS;AAAA,IACPC,QAAQ;AAAA,IACRC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,MAAM;AAAA,IACNC,QAAQ;AAAA,IACRC,SAAS;AAAA,EACX;AAAA,EACAC,cAAc;AAAA,EACdC;AAAAA,EACAC,SAASC;AAAAA,EACT,GAAGC;AACU,MAAM;AACb,QAAA;AAAA,IAAEF;AAAAA,EAAAA,IAAYG,cAAAA,WAAWF,WAAW;AAE1C,QAAM,CAACG,SAASC,UAAU,IAAIC,MAAAA,SAAuB,CAAE,CAAA;AACvD,QAAM,CAACT,SAASU,UAAU,IAAID,eAAS,KAAK;AAC5C,QAAM,CAACE,KAAKC,MAAM,IAAIH,eAAS,CAAC;AAEhC,QAAMI,cAAcC,MAAAA,YAClB,CAACC,KAAKC,WAAW;AACf,QAAIA,WAAW,iBAAiB;AAC9B9B,gBAAU6B,KAAKC,MAAM;AAAA,IACvB;AAAA,EAAA,GAEF,CAAC9B,OAAO,CACV;AAGA+B,QAAAA,UAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,CAAC5B,MAAM;AACG6B,mBAAAA,CAAAA,MACVC,OAAOC,QAAQF,CAAC,EAAEG,OAChB,CAACC,KAAK,CAACC,KAAKC,KAAK,OAAO;AAAA,UACtB,GAAGF;AAAAA,UACH,CAAC,CAACC,GAAG,GAAG;AAAA,YACN,GAAGC;AAAAA,YACHC,SAAS;AAAA,UACX;AAAA,QAAA,IAEF,CACF,CAAA,CACF;AACAb,eAAO,CAAC;AAAA,MACV;AAAA,IAAA;AAAA,EACF,GACC,CAACvB,IAAI,CAAC;AAEHqC,QAAAA,QAAQC,MAAAA,QACZ,OAAO;AAAA,IAAEpB;AAAAA,IAASC;AAAAA,IAAYR;AAAAA,IAASU;AAAAA,IAAYC;AAAAA,IAAKC;AAAAA,EAAAA,IACxD,CAACL,SAASC,YAAYR,SAASU,YAAYC,KAAKC,MAAM,CACxD;AAGE,SAAAgB,+BAACC,cAAAA,QAAgB,UAAhB,EAAyB,OACxB,UAACC,2BAAAA,KAAAC,gBAAA,mBAAA,EACC,WACA,SAAS;AAAA,IAAEC,MAAM7B,QAAQ6B;AAAAA,EACzB,GAAA,aACA,MACA,GAAI3B,QAEJ,UAAA;AAAA,IAAAuB,2BAAA,IAACK,YACC,eAAA,EAAA,OACA,YACA,QACA,YAAuB;AAAA,IAExBL,2BAAA,IAAAM,cAAA,iBAAA,EACC,SACA,aACA,gBAECjD,UACH;AAAA,mCACCkD,cACC,iBAAA,EAAA,SACA,WACA,QACA,aACA,cAA2B;AAAA,EAAA,EAE/B,CAAA,EACF,CAAA;AAEJ;;;"}
|
|
@@ -20,7 +20,6 @@ const HvWizardActions = ({
|
|
|
20
20
|
submit: "Submit"
|
|
21
21
|
}
|
|
22
22
|
}) => {
|
|
23
|
-
var _a;
|
|
24
23
|
const {
|
|
25
24
|
classes,
|
|
26
25
|
css,
|
|
@@ -38,7 +37,7 @@ const HvWizardActions = ({
|
|
|
38
37
|
const contextEntries = Object.entries(context);
|
|
39
38
|
if (contextEntries.length) {
|
|
40
39
|
setPages(contextEntries.length);
|
|
41
|
-
const validWizard = Object.entries(context).every(([, value]) => value
|
|
40
|
+
const validWizard = Object.entries(context).every(([, value]) => value?.valid);
|
|
42
41
|
if (validWizard !== canSubmit) {
|
|
43
42
|
setCanSubmit(validWizard);
|
|
44
43
|
}
|
|
@@ -51,7 +50,7 @@ const HvWizardActions = ({
|
|
|
51
50
|
...acc,
|
|
52
51
|
[+key]: {
|
|
53
52
|
...child,
|
|
54
|
-
valid:
|
|
53
|
+
valid: child?.valid !== false
|
|
55
54
|
}
|
|
56
55
|
}), {}));
|
|
57
56
|
setTab(lastPage);
|
|
@@ -65,7 +64,7 @@ const HvWizardActions = ({
|
|
|
65
64
|
}), children: " " }),
|
|
66
65
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.buttonsContainer, children: [
|
|
67
66
|
/* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvButton, { variant: "secondaryGhost", className: classes.buttonWidth, disabled: tab <= 0, onClick: () => setTab((t) => t - 1), startIcon: /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Backwards, {}), children: `${labels.previous ?? "Previous"}` }),
|
|
68
|
-
isLastPage ? /* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvButton, { variant: "primary", className: classes.buttonWidth, disabled: loading || !canSubmit, onClick: handleSubmitInternal, children: `${labels.submit ?? "Submit"}` }) : /* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvButton, { variant: "secondaryGhost", className: cx(classes.buttonWidth, classes.buttonSpacing), onClick: () => setTab((t) => t + 1), disabled: !skippable && !
|
|
67
|
+
isLastPage ? /* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvButton, { variant: "primary", className: classes.buttonWidth, disabled: loading || !canSubmit, onClick: handleSubmitInternal, children: `${labels.submit ?? "Submit"}` }) : /* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvButton, { variant: "secondaryGhost", className: cx(classes.buttonWidth, classes.buttonSpacing), onClick: () => setTab((t) => t + 1), disabled: !skippable && !context?.[tab]?.valid, endIcon: /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Forwards, {}), children: `${labels.next ?? "Next"}` })
|
|
69
68
|
] })
|
|
70
69
|
] });
|
|
71
70
|
};
|