@hitachivantara/uikit-react-lab 5.24.3 → 5.26.0

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.
Files changed (44) hide show
  1. package/dist/cjs/Flow/DroppableFlow.cjs +2 -2
  2. package/dist/cjs/Flow/DroppableFlow.cjs.map +1 -1
  3. package/dist/cjs/Flow/Flow.styles.cjs +2 -18
  4. package/dist/cjs/Flow/Flow.styles.cjs.map +1 -1
  5. package/dist/cjs/Flow/Node/BaseNode.cjs +77 -47
  6. package/dist/cjs/Flow/Node/BaseNode.cjs.map +1 -1
  7. package/dist/cjs/Flow/Node/BaseNode.styles.cjs +39 -7
  8. package/dist/cjs/Flow/Node/BaseNode.styles.cjs.map +1 -1
  9. package/dist/cjs/Flow/Node/Node.cjs +1 -5
  10. package/dist/cjs/Flow/Node/Node.cjs.map +1 -1
  11. package/dist/cjs/Flow/Node/Node.styles.cjs +7 -1
  12. package/dist/cjs/Flow/Node/Node.styles.cjs.map +1 -1
  13. package/dist/cjs/Flow/Node/utils.cjs +55 -0
  14. package/dist/cjs/Flow/Node/utils.cjs.map +1 -0
  15. package/dist/cjs/Flow/hooks/useFlowNode.cjs.map +1 -1
  16. package/dist/cjs/Flow/nodes/DashboardNode.cjs +4 -13
  17. package/dist/cjs/Flow/nodes/DashboardNode.cjs.map +1 -1
  18. package/dist/cjs/Flow/nodes/DashboardNode.styles.cjs +17 -0
  19. package/dist/cjs/Flow/nodes/DashboardNode.styles.cjs.map +1 -0
  20. package/dist/cjs/index.cjs +2 -1
  21. package/dist/cjs/index.cjs.map +1 -1
  22. package/dist/esm/Flow/DroppableFlow.js +2 -2
  23. package/dist/esm/Flow/DroppableFlow.js.map +1 -1
  24. package/dist/esm/Flow/Flow.styles.js +2 -18
  25. package/dist/esm/Flow/Flow.styles.js.map +1 -1
  26. package/dist/esm/Flow/Node/BaseNode.js +76 -46
  27. package/dist/esm/Flow/Node/BaseNode.js.map +1 -1
  28. package/dist/esm/Flow/Node/BaseNode.styles.js +39 -7
  29. package/dist/esm/Flow/Node/BaseNode.styles.js.map +1 -1
  30. package/dist/esm/Flow/Node/Node.js +1 -5
  31. package/dist/esm/Flow/Node/Node.js.map +1 -1
  32. package/dist/esm/Flow/Node/Node.styles.js +7 -1
  33. package/dist/esm/Flow/Node/Node.styles.js.map +1 -1
  34. package/dist/esm/Flow/Node/utils.js +55 -0
  35. package/dist/esm/Flow/Node/utils.js.map +1 -0
  36. package/dist/esm/Flow/hooks/useFlowNode.js.map +1 -1
  37. package/dist/esm/Flow/nodes/DashboardNode.js +4 -12
  38. package/dist/esm/Flow/nodes/DashboardNode.js.map +1 -1
  39. package/dist/esm/Flow/nodes/DashboardNode.styles.js +17 -0
  40. package/dist/esm/Flow/nodes/DashboardNode.styles.js.map +1 -0
  41. package/dist/esm/index.js +15 -14
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/types/index.d.ts +108 -24
  44. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sources":["../../../../src/Flow/Node/Node.tsx"],"sourcesContent":["import React, { isValidElement, useState } from \"react\";\n\nimport {\n ExtractNames,\n HvActionGeneric,\n HvActionsGenericProps,\n HvButton,\n HvButtonProps,\n HvDropDownMenu,\n HvTooltip,\n HvTypography,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Down, Info, Up } from \"@hitachivantara/uikit-react-icons\";\n\nimport { useFlowContext, useFlowNode } from \"../hooks\";\nimport { HvFlowNodeInput, HvFlowNodeOutput, HvFlowNodeParam } from \"../types\";\nimport { staticClasses, useClasses } from \"./Node.styles\";\nimport ParamRenderer from \"./Parameters/ParamRenderer\";\nimport {\n HvFlowBaseNode,\n HvFlowBaseNodeProps,\n HvFlowBaseNodeClasses,\n} from \"./BaseNode\";\n\nexport { staticClasses as flowNodeClasses };\n\nexport interface HvFlowNodeClasses\n extends ExtractNames<typeof useClasses>,\n HvFlowBaseNodeClasses {}\n\nexport type HvFlowNodeDefaults = {\n title?: string;\n subTitle?: string;\n color?: string;\n icon?: React.ReactNode;\n};\n\nexport interface HvFlowNodeProps<T = any> extends HvFlowBaseNodeProps<T> {\n /** Node description */\n description?: string;\n /** Node actions */\n actions?: HvActionGeneric[]; // HvFlowNodeActions[];\n /** Node action callback */\n actionCallback?: HvActionsGenericProps[\"actionsCallback\"];\n /** Node maximum number of actions visible */\n maxVisibleActions?: number;\n /** Node expanded */\n expanded?: boolean;\n /** Node parameters */\n params?: HvFlowNodeParam[];\n /** A set of node default values for when there are no groups to fetch this data from. */\n nodeDefaults?: HvFlowNodeDefaults;\n /** Props to be passed to the expand parameters button. */\n expandParamsButtonProps?: HvButtonProps;\n /** Node outputs. */\n outputs?: HvFlowNodeOutput[];\n /** Node inputs. */\n inputs?: HvFlowNodeInput[];\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFlowNodeClasses;\n}\n\nconst renderedIcon = (actionIcon: HvActionGeneric[\"icon\"]) =>\n isValidElement(actionIcon) ? actionIcon : (actionIcon as Function)?.();\n\nexport const HvFlowNode = ({\n id,\n type,\n headerItems,\n description,\n actions,\n outputs,\n inputs,\n actionCallback,\n maxVisibleActions = 1,\n expanded = false,\n params,\n nodeDefaults,\n classes: classesProp,\n children,\n expandParamsButtonProps,\n ...props\n}: HvFlowNodeProps<unknown>) => {\n const { classes } = useClasses(classesProp as HvFlowNodeClasses);\n\n const [showParams, setShowParams] = useState(expanded);\n\n const node = useFlowNode(id);\n\n const { nodeGroups, nodeTypes, defaultActions } = useFlowContext();\n\n const subtitle = nodeTypes?.[type].meta?.label || nodeDefaults?.subTitle;\n const groupId = nodeTypes?.[type].meta?.groupId;\n\n const group = (groupId && nodeGroups && nodeGroups[groupId]) || undefined;\n const groupLabel = group?.label || nodeDefaults?.title;\n const icon = group?.icon || nodeDefaults?.icon;\n const color = group?.color || nodeDefaults?.color;\n\n const actsVisible = actions?.slice(0, maxVisibleActions);\n const actsDropdown = actions?.slice(maxVisibleActions);\n\n const hasParams = !!(params && params.length > 0);\n\n return (\n <HvFlowBaseNode\n id={id}\n type={type}\n title={groupLabel}\n icon={icon}\n color={color}\n inputs={inputs}\n outputs={outputs}\n nodeActions={defaultActions}\n classes={classesProp as HvFlowBaseNodeClasses}\n headerItems={\n <>\n {headerItems}\n {description && (\n <HvTooltip title={description}>\n <div>\n <Info color=\"base_dark\" />\n </div>\n </HvTooltip>\n )}\n {hasParams && (\n <HvButton\n icon\n overrideIconColors={false}\n onClick={() => setShowParams((p) => !p)}\n aria-label={showParams ? \"Collapse\" : \"Expand\"}\n {...expandParamsButtonProps}\n >\n {showParams ? (\n <Up role=\"none\" color=\"base_dark\" />\n ) : (\n <Down role=\"none\" color=\"base_dark\" />\n )}\n </HvButton>\n )}\n </>\n }\n {...props}\n >\n {(subtitle || actsVisible?.length || actsDropdown?.length) && (\n <div className={classes.subtitleContainer}>\n {subtitle && (\n <div>\n <HvTypography>{subtitle}</HvTypography>\n </div>\n )}\n <div className={classes.actions}>\n {actions?.length && actions?.length > 0 && (\n <>\n {actsVisible?.map((action) => (\n <HvTooltip key={action.id} title={action.label}>\n <HvButton\n icon\n onClick={(event) => {\n actionCallback?.(event, id, action);\n }}\n aria-label={action.label}\n >\n {renderedIcon(action.icon)}\n </HvButton>\n </HvTooltip>\n ))}\n\n {actsDropdown && actsDropdown.length > 0 && (\n <HvDropDownMenu\n keepOpened={false}\n dataList={actsDropdown?.map((action) => ({\n id: action.id,\n label: action.label,\n }))}\n onClick={(event, action) => {\n actionCallback?.(event, id, action as HvActionGeneric);\n }}\n />\n )}\n </>\n )}\n </div>\n </div>\n )}\n {children}\n {showParams && params && (\n <div className={classes.paramsContainer}>\n <ParamRenderer params={params} data={node?.data} />\n </div>\n )}\n </HvFlowBaseNode>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA8DA,MAAM,eAAe,CAAC,eACpB,eAAe,UAAU,IAAI,aAAc;AAEtC,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAgC;AAC9B,QAAM,EAAE,QAAA,IAAY,WAAW,WAAgC;AAE/D,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,QAAQ;AAE/C,QAAA,OAAO,YAAY,EAAE;AAE3B,QAAM,EAAE,YAAY,WAAW,mBAAmB,eAAe;AAEjE,QAAM,WAAW,YAAY,IAAI,EAAE,MAAM,SAAS,cAAc;AAChE,QAAM,UAAU,YAAY,IAAI,EAAE,MAAM;AAExC,QAAM,QAAS,WAAW,cAAc,WAAW,OAAO,KAAM;AAC1D,QAAA,aAAa,OAAO,SAAS,cAAc;AAC3C,QAAA,OAAO,OAAO,QAAQ,cAAc;AACpC,QAAA,QAAQ,OAAO,SAAS,cAAc;AAE5C,QAAM,cAAc,SAAS,MAAM,GAAG,iBAAiB;AACjD,QAAA,eAAe,SAAS,MAAM,iBAAiB;AAErD,QAAM,YAAY,CAAC,EAAE,UAAU,OAAO,SAAS;AAG7C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa;AAAA,MACb,SAAS;AAAA,MACT,aAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,QAAA;AAAA,QACA,eACC,oBAAC,WAAU,EAAA,OAAO,aAChB,UAAA,oBAAC,OACC,EAAA,UAAA,oBAAC,MAAK,EAAA,OAAM,YAAY,CAAA,EAC1B,CAAA,GACF;AAAA,QAED,aACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,oBAAoB;AAAA,YACpB,SAAS,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;AAAA,YACtC,cAAY,aAAa,aAAa;AAAA,YACrC,GAAG;AAAA,YAEH,UACC,aAAA,oBAAC,IAAG,EAAA,MAAK,QAAO,OAAM,YAAY,CAAA,IAEjC,oBAAA,MAAA,EAAK,MAAK,QAAO,OAAM,aAAY;AAAA,UAAA;AAAA,QAExC;AAAA,MAAA,GAEJ;AAAA,MAED,GAAG;AAAA,MAEF,UAAA;AAAA,SAAY,YAAA,aAAa,UAAU,cAAc,gCAChD,OAAI,EAAA,WAAW,QAAQ,mBACrB,UAAA;AAAA,UAAA,YACE,oBAAA,OAAA,EACC,UAAC,oBAAA,cAAA,EAAc,mBAAS,CAAA,GAC1B;AAAA,UAEF,oBAAC,OAAI,EAAA,WAAW,QAAQ,SACrB,mBAAS,UAAU,SAAS,SAAS,KAEjC,qBAAA,UAAA,EAAA,UAAA;AAAA,YAAA,aAAa,IAAI,CAAC,+BAChB,WAA0B,EAAA,OAAO,OAAO,OACvC,UAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAI;AAAA,gBACJ,SAAS,CAAC,UAAU;AACD,mCAAA,OAAO,IAAI,MAAM;AAAA,gBACpC;AAAA,gBACA,cAAY,OAAO;AAAA,gBAElB,UAAA,aAAa,OAAO,IAAI;AAAA,cAAA;AAAA,YAAA,KARb,OAAO,EAUvB,CACD;AAAA,YAEA,gBAAgB,aAAa,SAAS,KACrC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,YAAY;AAAA,gBACZ,UAAU,cAAc,IAAI,CAAC,YAAY;AAAA,kBACvC,IAAI,OAAO;AAAA,kBACX,OAAO,OAAO;AAAA,gBAAA,EACd;AAAA,gBACF,SAAS,CAAC,OAAO,WAAW;AACT,mCAAA,OAAO,IAAI,MAAyB;AAAA,gBACvD;AAAA,cAAA;AAAA,YACF;AAAA,UAAA,EAAA,CAEJ,EAEJ,CAAA;AAAA,QAAA,GACF;AAAA,QAED;AAAA,QACA,cAAc,UACZ,oBAAA,OAAA,EAAI,WAAW,QAAQ,iBACtB,UAAA,oBAAC,eAAc,EAAA,QAAgB,MAAM,MAAM,KAAM,CAAA,GACnD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"Node.js","sources":["../../../../src/Flow/Node/Node.tsx"],"sourcesContent":["import React, { isValidElement, useState } from \"react\";\nimport {\n ExtractNames,\n HvActionGeneric,\n HvActionsGenericProps,\n HvButton,\n HvButtonProps,\n HvDropDownMenu,\n HvTooltip,\n HvTypography,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Down, Info, Up } from \"@hitachivantara/uikit-react-icons\";\n\nimport { useFlowContext, useFlowNode } from \"../hooks\";\nimport { HvFlowNodeParam } from \"../types\";\nimport { staticClasses, useClasses } from \"./Node.styles\";\nimport ParamRenderer from \"./Parameters/ParamRenderer\";\nimport { HvFlowBaseNode, HvFlowBaseNodeProps } from \"./BaseNode\";\n\nexport { staticClasses as flowNodeClasses };\n\nexport type HvFlowNodeClasses = ExtractNames<typeof useClasses>;\n\nexport type HvFlowNodeDefaults = {\n title?: string;\n subTitle?: string;\n color?: string;\n icon?: React.ReactNode;\n};\n\nexport interface HvFlowNodeProps<T = any> extends HvFlowBaseNodeProps<T> {\n /** Node description */\n description?: string;\n /** Node actions */\n actions?: HvActionGeneric[];\n /** Node action callback */\n actionCallback?: HvActionsGenericProps[\"actionsCallback\"];\n /** Node maximum number of actions visible */\n maxVisibleActions?: number;\n /** Node expanded */\n expanded?: boolean;\n /** Node parameters */\n params?: HvFlowNodeParam[];\n /** A set of node default values for when there are no groups to fetch this data from. */\n nodeDefaults?: HvFlowNodeDefaults;\n /** Props to be passed to the expand parameters button. */\n expandParamsButtonProps?: HvButtonProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFlowNodeClasses;\n}\n\nconst renderedIcon = (actionIcon: HvActionGeneric[\"icon\"]) =>\n isValidElement(actionIcon) ? actionIcon : (actionIcon as Function)?.();\n\nexport const HvFlowNode = ({\n id,\n type,\n headerItems,\n description,\n actions,\n actionCallback,\n maxVisibleActions = 1,\n expanded = false,\n params,\n nodeDefaults,\n classes: classesProp,\n children,\n expandParamsButtonProps,\n ...props\n}: HvFlowNodeProps<unknown>) => {\n const { classes } = useClasses(classesProp);\n\n const [showParams, setShowParams] = useState(expanded);\n\n const node = useFlowNode(id);\n\n const { nodeGroups, nodeTypes, defaultActions } = useFlowContext();\n\n const subtitle = nodeTypes?.[type].meta?.label || nodeDefaults?.subTitle;\n const groupId = nodeTypes?.[type].meta?.groupId;\n\n const group = (groupId && nodeGroups && nodeGroups[groupId]) || undefined;\n const groupLabel = group?.label || nodeDefaults?.title;\n const icon = group?.icon || nodeDefaults?.icon;\n const color = group?.color || nodeDefaults?.color;\n\n const actsVisible = actions?.slice(0, maxVisibleActions);\n const actsDropdown = actions?.slice(maxVisibleActions);\n\n const hasParams = !!(params && params.length > 0);\n\n return (\n <HvFlowBaseNode\n id={id}\n type={type}\n title={groupLabel}\n icon={icon}\n color={color}\n nodeActions={defaultActions}\n classes={classes}\n headerItems={\n <>\n {headerItems}\n {description && (\n <HvTooltip title={description}>\n <div>\n <Info color=\"base_dark\" />\n </div>\n </HvTooltip>\n )}\n {hasParams && (\n <HvButton\n icon\n overrideIconColors={false}\n onClick={() => setShowParams((p) => !p)}\n aria-label={showParams ? \"Collapse\" : \"Expand\"}\n {...expandParamsButtonProps}\n >\n {showParams ? (\n <Up role=\"none\" color=\"base_dark\" />\n ) : (\n <Down role=\"none\" color=\"base_dark\" />\n )}\n </HvButton>\n )}\n </>\n }\n {...props}\n >\n {(subtitle || actsVisible?.length || actsDropdown?.length) && (\n <div className={classes.subtitleContainer}>\n {subtitle && (\n <div>\n <HvTypography>{subtitle}</HvTypography>\n </div>\n )}\n <div className={classes.actions}>\n {actions?.length && actions?.length > 0 && (\n <>\n {actsVisible?.map((action) => (\n <HvTooltip key={action.id} title={action.label}>\n <HvButton\n icon\n onClick={(event) => {\n actionCallback?.(event, id, action);\n }}\n aria-label={action.label}\n >\n {renderedIcon(action.icon)}\n </HvButton>\n </HvTooltip>\n ))}\n\n {actsDropdown && actsDropdown.length > 0 && (\n <HvDropDownMenu\n keepOpened={false}\n dataList={actsDropdown?.map((action) => ({\n id: action.id,\n label: action.label,\n }))}\n onClick={(event, action) => {\n actionCallback?.(event, id, action as HvActionGeneric);\n }}\n />\n )}\n </>\n )}\n </div>\n </div>\n )}\n {children}\n {showParams && params && (\n <div className={classes.paramsContainer}>\n <ParamRenderer params={params} data={node?.data} />\n </div>\n )}\n </HvFlowBaseNode>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import { createClasses, theme } from "@hitachivantara/uikit-react-core";
2
+ import { staticClasses as staticClasses$1 } from "./BaseNode.styles.js";
3
+ const baseClasses = Object.fromEntries(
4
+ Object.keys(staticClasses$1).map((key) => [key, {}])
5
+ );
2
6
  const { staticClasses, useClasses } = createClasses("HvFlowNode", {
3
7
  subtitleContainer: {
4
8
  minHeight: 48,
@@ -23,7 +27,9 @@ const { staticClasses, useClasses } = createClasses("HvFlowNode", {
23
27
  flexDirection: "column",
24
28
  gap: theme.space.xs,
25
29
  padding: theme.space.sm
26
- }
30
+ },
31
+ // Spread here to know if we are overriding classes from parents
32
+ ...baseClasses
27
33
  });
28
34
  export {
29
35
  staticClasses,
@@ -1 +1 @@
1
- {"version":3,"file":"Node.styles.js","sources":["../../../../src/Flow/Node/Node.styles.tsx"],"sourcesContent":["import { createClasses, theme } from \"@hitachivantara/uikit-react-core\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvFlowNode\", {\n subtitleContainer: {\n minHeight: 48,\n padding: theme.spacing(\n theme.space.xs,\n theme.space.xs,\n theme.space.xs,\n theme.space.sm\n ),\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n actions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n paramsContainer: {\n borderTop: `1px solid ${theme.colors.atmo4}`,\n display: \"flex\",\n flexDirection: \"column\",\n gap: theme.space.xs,\n padding: theme.space.sm,\n },\n});\n"],"names":[],"mappings":";AAEO,MAAM,EAAE,eAAe,eAAe,cAAc,cAAc;AAAA,EACvE,mBAAmB;AAAA,IACjB,WAAW;AAAA,IACX,SAAS,MAAM;AAAA,MACb,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,IACd;AAAA,IACA,SAAS;AAAA,IACT,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,YAAY;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IACf,WAAW,aAAa,MAAM,OAAO,KAAK;AAAA,IAC1C,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAK,MAAM,MAAM;AAAA,IACjB,SAAS,MAAM,MAAM;AAAA,EACvB;AACF,CAAC;"}
1
+ {"version":3,"file":"Node.styles.js","sources":["../../../../src/Flow/Node/Node.styles.tsx"],"sourcesContent":["import { createClasses, theme } from \"@hitachivantara/uikit-react-core\";\n\nimport { staticClasses as baseNodeClasses } from \"./BaseNode.styles\";\n\nconst baseClasses = Object.fromEntries(\n Object.keys(baseNodeClasses).map((key) => [key, {}])\n) as Record<keyof typeof baseNodeClasses, {}>;\n\nexport const { staticClasses, useClasses } = createClasses(\"HvFlowNode\", {\n subtitleContainer: {\n minHeight: 48,\n padding: theme.spacing(\n theme.space.xs,\n theme.space.xs,\n theme.space.xs,\n theme.space.sm\n ),\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n actions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n paramsContainer: {\n borderTop: `1px solid ${theme.colors.atmo4}`,\n display: \"flex\",\n flexDirection: \"column\",\n gap: theme.space.xs,\n padding: theme.space.sm,\n },\n // Spread here to know if we are overriding classes from parents\n ...baseClasses,\n});\n"],"names":["baseNodeClasses"],"mappings":";;AAIA,MAAM,cAAc,OAAO;AAAA,EACzB,OAAO,KAAKA,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA,CAAE,CAAC;AACrD;AAEO,MAAM,EAAE,eAAe,eAAe,cAAc,cAAc;AAAA,EACvE,mBAAmB;AAAA,IACjB,WAAW;AAAA,IACX,SAAS,MAAM;AAAA,MACb,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,IACd;AAAA,IACA,SAAS;AAAA,IACT,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,YAAY;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,iBAAiB;AAAA,IACf,WAAW,aAAa,MAAM,OAAO,KAAK;AAAA,IAC1C,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAK,MAAM,MAAM;AAAA,IACjB,SAAS,MAAM,MAAM;AAAA,EACvB;AAAA;AAAA,EAEA,GAAG;AACL,CAAC;"}
@@ -0,0 +1,55 @@
1
+ import { isValidElement } from "react";
2
+ const isInputGroup = (input) => {
3
+ return "inputs" in input;
4
+ };
5
+ const isOutputGroup = (output) => {
6
+ return "outputs" in output;
7
+ };
8
+ const isConnected = (id, type, handleId, edges) => {
9
+ if (type === "target") {
10
+ return edges.some((e) => e.target === id && e.targetHandle === handleId);
11
+ }
12
+ if (type === "source") {
13
+ return edges.some((e) => e.source === id && e.sourceHandle === handleId);
14
+ }
15
+ return false;
16
+ };
17
+ const renderedIcon = (actionIcon) => isValidElement(actionIcon) ? actionIcon : actionIcon?.();
18
+ const identifyHandles = (handles) => {
19
+ let idx = 0;
20
+ return handles?.map(
21
+ (handle) => {
22
+ if (isInputGroup(handle)) {
23
+ return {
24
+ ...handle,
25
+ inputs: handle.inputs.map((x) => {
26
+ const identifiedHandle2 = x.id != null ? x : { ...x, id: String(idx) };
27
+ idx += 1;
28
+ return identifiedHandle2;
29
+ })
30
+ };
31
+ }
32
+ if (isOutputGroup(handle)) {
33
+ return {
34
+ ...handle,
35
+ outputs: handle.outputs.map((x) => {
36
+ const identifiedHandle2 = x.id != null ? x : { ...x, id: String(idx) };
37
+ idx += 1;
38
+ return identifiedHandle2;
39
+ })
40
+ };
41
+ }
42
+ const identifiedHandle = handle.id != null ? handle : { ...handle, id: String(idx) };
43
+ idx += 1;
44
+ return identifiedHandle;
45
+ }
46
+ );
47
+ };
48
+ export {
49
+ identifyHandles,
50
+ isConnected,
51
+ isInputGroup,
52
+ isOutputGroup,
53
+ renderedIcon
54
+ };
55
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/Flow/Node/utils.ts"],"sourcesContent":["import { isValidElement } from \"react\";\nimport { Edge } from \"reactflow\";\nimport { HvActionGeneric } from \"@hitachivantara/uikit-react-core\";\n\nimport {\n HvFlowNodeInput,\n HvFlowNodeInputGroup,\n HvFlowNodeOutput,\n HvFlowNodeOutputGroup,\n} from \"../types\";\n\nexport const isInputGroup = (\n input: HvFlowNodeInput | HvFlowNodeInputGroup\n): input is HvFlowNodeInputGroup => {\n return \"inputs\" in input;\n};\n\nexport const isOutputGroup = (\n output: HvFlowNodeOutput | HvFlowNodeOutputGroup\n): output is HvFlowNodeOutputGroup => {\n return \"outputs\" in output;\n};\n\nexport const isConnected = (\n id: string,\n type: \"target\" | \"source\",\n handleId: string,\n edges: Edge[]\n) => {\n if (type === \"target\") {\n return edges.some((e) => e.target === id && e.targetHandle === handleId);\n }\n if (type === \"source\") {\n return edges.some((e) => e.source === id && e.sourceHandle === handleId);\n }\n\n return false;\n};\n\nexport const renderedIcon = (actionIcon: HvActionGeneric[\"icon\"]) =>\n isValidElement(actionIcon) ? actionIcon : (actionIcon as Function)?.();\n\nexport const identifyHandles = (\n handles?:\n | (HvFlowNodeInput | HvFlowNodeInputGroup)[]\n | (HvFlowNodeOutput | HvFlowNodeOutputGroup)[]\n) => {\n let idx = 0;\n\n return handles?.map(\n (\n handle:\n | HvFlowNodeOutput\n | HvFlowNodeOutputGroup\n | HvFlowNodeInput\n | HvFlowNodeInputGroup\n ) => {\n if (isInputGroup(handle)) {\n return {\n ...handle,\n inputs: handle.inputs.map((x) => {\n const identifiedHandle =\n x.id != null ? x : { ...x, id: String(idx) };\n idx += 1;\n return identifiedHandle;\n }),\n } satisfies HvFlowNodeInputGroup;\n }\n\n if (isOutputGroup(handle)) {\n return {\n ...handle,\n outputs: handle.outputs.map((x) => {\n const identifiedHandle =\n x.id != null ? x : { ...x, id: String(idx) };\n idx += 1;\n return identifiedHandle;\n }),\n } satisfies HvFlowNodeOutputGroup;\n }\n\n const identifiedHandle =\n handle.id != null ? handle : { ...handle, id: String(idx) };\n idx += 1;\n return identifiedHandle;\n }\n );\n};\n"],"names":["identifiedHandle"],"mappings":";AAWa,MAAA,eAAe,CAC1B,UACkC;AAClC,SAAO,YAAY;AACrB;AAEa,MAAA,gBAAgB,CAC3B,WACoC;AACpC,SAAO,aAAa;AACtB;AAEO,MAAM,cAAc,CACzB,IACA,MACA,UACA,UACG;AACH,MAAI,SAAS,UAAU;AACd,WAAA,MAAM,KAAK,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE,iBAAiB,QAAQ;AAAA,EACzE;AACA,MAAI,SAAS,UAAU;AACd,WAAA,MAAM,KAAK,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE,iBAAiB,QAAQ;AAAA,EACzE;AAEO,SAAA;AACT;AAEO,MAAM,eAAe,CAAC,eAC3B,eAAe,UAAU,IAAI,aAAc,aAA0B;AAE1D,MAAA,kBAAkB,CAC7B,YAGG;AACH,MAAI,MAAM;AAEV,SAAO,SAAS;AAAA,IACd,CACE,WAKG;AACC,UAAA,aAAa,MAAM,GAAG;AACjB,eAAA;AAAA,UACL,GAAG;AAAA,UACH,QAAQ,OAAO,OAAO,IAAI,CAAC,MAAM;AACzBA,kBAAAA,oBACJ,EAAE,MAAM,OAAO,IAAI,EAAE,GAAG,GAAG,IAAI,OAAO,GAAG,EAAE;AACtC,mBAAA;AACAA,mBAAAA;AAAAA,UAAA,CACR;AAAA,QAAA;AAAA,MAEL;AAEI,UAAA,cAAc,MAAM,GAAG;AAClB,eAAA;AAAA,UACL,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,MAAM;AAC3BA,kBAAAA,oBACJ,EAAE,MAAM,OAAO,IAAI,EAAE,GAAG,GAAG,IAAI,OAAO,GAAG,EAAE;AACtC,mBAAA;AACAA,mBAAAA;AAAAA,UAAA,CACR;AAAA,QAAA;AAAA,MAEL;AAEM,YAAA,mBACJ,OAAO,MAAM,OAAO,SAAS,EAAE,GAAG,QAAQ,IAAI,OAAO,GAAG,EAAE;AACrD,aAAA;AACA,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFlowNode.js","sources":["../../../../src/Flow/hooks/useFlowNode.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport {\n Node,\n Edge,\n ReactFlowState,\n useStore,\n useNodes,\n useEdges,\n useReactFlow,\n useNodeId,\n} from \"reactflow\";\n\nexport function useFlowNode<T extends Node = Node>(id: string) {\n const nodeSelector = useCallback(\n (state: ReactFlowState) =>\n state.getNodes().find((n: Node): n is T => n.id === id),\n [id]\n );\n return useStore<T | undefined>(nodeSelector);\n}\n\nexport function useFlowNodeInputEdges(id: string) {\n const inputEdgesSelector = useCallback(\n (state: ReactFlowState) => state.edges.filter((e: Edge) => e.target === id),\n [id]\n );\n return useStore(inputEdgesSelector);\n}\n\nexport function useFlowNodeOutputEdges(id: string) {\n const outputEdgesSelector = useCallback(\n (state: ReactFlowState) => state.edges.filter((e: Edge) => e.source === id),\n [id]\n );\n return useStore(outputEdgesSelector);\n}\n\nexport function useFlowNodeEdges(id: string) {\n const edgesSelector = useCallback(\n (state: ReactFlowState) =>\n state.edges.filter((e: Edge) => e.source === id || e.target === id),\n [id]\n );\n return useStore(edgesSelector);\n}\n\nexport function useFlowNodeParents(id: string) {\n const inputEdges = useFlowNodeInputEdges(id);\n const parentNodesSelector = useCallback(\n (state: ReactFlowState) => {\n return inputEdges\n .map((e) => state.getNodes().find((n: Node) => n.id === e.source))\n .filter((n): n is Node => n !== null);\n },\n [inputEdges]\n );\n return useStore(parentNodesSelector);\n}\n\nexport function useFlowInputNodes<T = any>(id: string) {\n const nodes = useNodes();\n const edges = useEdges();\n\n return useMemo(() => {\n return edges\n .filter((e) => e.target === id)\n .map((e) => nodes.find((n) => n.id === e.source))\n .filter((n): n is Node<T> => n !== null);\n }, [edges, id, nodes]);\n}\n\nexport function useFlowOutputNodes<T = any>(id: string) {\n const nodes = useNodes();\n const edges = useEdges();\n\n return useMemo(() => {\n return edges\n .filter((e) => e.source === id)\n .map((e) => nodes.find((n) => n.id === e.target))\n .filter((n): n is Node<T> => n !== null);\n }, [edges, id, nodes]);\n}\n\n/** Utilities to manipulate a node in the flow */\nexport function useFlowNodeUtils() {\n const nodeId = useNodeId();\n const reactFlowInstance = useReactFlow();\n\n /** Mutate the node's `.data` object */\n const setNodeData = useCallback(\n (setNewData: (newData?: any) => any) => {\n if (!nodeId) return;\n\n reactFlowInstance.setNodes((nodes) => {\n return nodes.map((n) => {\n if (n.id === nodeId) {\n return { ...n, data: setNewData(n.data) };\n }\n return n;\n });\n });\n },\n [nodeId, reactFlowInstance]\n );\n\n return useMemo(\n () => ({\n setNodeData,\n }),\n [setNodeData]\n );\n}\n"],"names":[],"mappings":";;AAYO,SAAS,YAAmC,IAAY;AAC7D,QAAM,eAAe;AAAA,IACnB,CAAC,UACC,MAAM,WAAW,KAAK,CAAC,MAAoB,EAAE,OAAO,EAAE;AAAA,IACxD,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAwB,YAAY;AAC7C;AAEO,SAAS,sBAAsB,IAAY;AAChD,QAAM,qBAAqB;AAAA,IACzB,CAAC,UAA0B,MAAM,MAAM,OAAO,CAAC,MAAY,EAAE,WAAW,EAAE;AAAA,IAC1E,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAS,kBAAkB;AACpC;AAEO,SAAS,uBAAuB,IAAY;AACjD,QAAM,sBAAsB;AAAA,IAC1B,CAAC,UAA0B,MAAM,MAAM,OAAO,CAAC,MAAY,EAAE,WAAW,EAAE;AAAA,IAC1E,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAS,mBAAmB;AACrC;AAEO,SAAS,iBAAiB,IAAY;AAC3C,QAAM,gBAAgB;AAAA,IACpB,CAAC,UACC,MAAM,MAAM,OAAO,CAAC,MAAY,EAAE,WAAW,MAAM,EAAE,WAAW,EAAE;AAAA,IACpE,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAS,aAAa;AAC/B;AAEO,SAAS,mBAAmB,IAAY;AACvC,QAAA,aAAa,sBAAsB,EAAE;AAC3C,QAAM,sBAAsB;AAAA,IAC1B,CAAC,UAA0B;AAClB,aAAA,WACJ,IAAI,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK,CAAC,MAAY,EAAE,OAAO,EAAE,MAAM,CAAC,EAChE,OAAO,CAAC,MAAiB,MAAM,IAAI;AAAA,IACxC;AAAA,IACA,CAAC,UAAU;AAAA,EAAA;AAEb,SAAO,SAAS,mBAAmB;AACrC;AAEO,SAAS,kBAA2B,IAAY;AACrD,QAAM,QAAQ;AACd,QAAM,QAAQ;AAEd,SAAO,QAAQ,MAAM;AACZ,WAAA,MACJ,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAC7B,IAAI,CAAC,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC/C,OAAO,CAAC,MAAoB,MAAM,IAAI;AAAA,EACxC,GAAA,CAAC,OAAO,IAAI,KAAK,CAAC;AACvB;AAEO,SAAS,mBAA4B,IAAY;AACtD,QAAM,QAAQ;AACd,QAAM,QAAQ;AAEd,SAAO,QAAQ,MAAM;AACZ,WAAA,MACJ,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAC7B,IAAI,CAAC,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC/C,OAAO,CAAC,MAAoB,MAAM,IAAI;AAAA,EACxC,GAAA,CAAC,OAAO,IAAI,KAAK,CAAC;AACvB;AAGO,SAAS,mBAAmB;AACjC,QAAM,SAAS;AACf,QAAM,oBAAoB;AAG1B,QAAM,cAAc;AAAA,IAClB,CAAC,eAAuC;AACtC,UAAI,CAAC;AAAQ;AAEK,wBAAA,SAAS,CAAC,UAAU;AAC7B,eAAA,MAAM,IAAI,CAAC,MAAM;AAClB,cAAA,EAAE,OAAO,QAAQ;AACnB,mBAAO,EAAE,GAAG,GAAG,MAAM,WAAW,EAAE,IAAI;UACxC;AACO,iBAAA;AAAA,QAAA,CACR;AAAA,MAAA,CACF;AAAA,IACH;AAAA,IACA,CAAC,QAAQ,iBAAiB;AAAA,EAAA;AAGrB,SAAA;AAAA,IACL,OAAO;AAAA,MACL;AAAA,IAAA;AAAA,IAEF,CAAC,WAAW;AAAA,EAAA;AAEhB;"}
1
+ {"version":3,"file":"useFlowNode.js","sources":["../../../../src/Flow/hooks/useFlowNode.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport {\n Node,\n Edge,\n ReactFlowState,\n useStore,\n useNodes,\n useEdges,\n useReactFlow,\n useNodeId,\n} from \"reactflow\";\n\nexport function useFlowNode<T extends Node = Node>(id: string) {\n const nodeSelector = useCallback(\n (state: ReactFlowState) =>\n state.getNodes().find((n: Node): n is T => n.id === id),\n [id]\n );\n return useStore<T | undefined>(nodeSelector);\n}\n\nexport function useFlowNodeInputEdges(id: string) {\n const inputEdgesSelector = useCallback(\n (state: ReactFlowState) => state.edges.filter((e: Edge) => e.target === id),\n [id]\n );\n return useStore(inputEdgesSelector);\n}\n\nexport function useFlowNodeOutputEdges(id: string) {\n const outputEdgesSelector = useCallback(\n (state: ReactFlowState) => state.edges.filter((e: Edge) => e.source === id),\n [id]\n );\n return useStore(outputEdgesSelector);\n}\n\nexport function useFlowNodeEdges(id: string) {\n const edgesSelector = useCallback(\n (state: ReactFlowState) =>\n state.edges.filter((e: Edge) => e.source === id || e.target === id),\n [id]\n );\n return useStore(edgesSelector);\n}\n\nexport function useFlowNodeParents(id: string) {\n const inputEdges = useFlowNodeInputEdges(id);\n const parentNodesSelector = useCallback(\n (state: ReactFlowState) => {\n return inputEdges\n .map((e) => state.getNodes().find((n: Node) => n.id === e.source))\n .filter((n): n is Node => n !== null);\n },\n [inputEdges]\n );\n return useStore(parentNodesSelector);\n}\n\nexport function useFlowInputNodes<T = any>(id: string) {\n const nodes = useNodes();\n const edges = useEdges();\n\n return useMemo(() => {\n return edges\n .filter((e) => e.target === id)\n .map((e) => nodes.find((n) => n.id === e.source))\n .filter((n): n is Node<T> => n !== null);\n }, [edges, id, nodes]);\n}\n\nexport function useFlowOutputNodes<T = any>(id: string) {\n const nodes = useNodes();\n const edges = useEdges();\n\n return useMemo(() => {\n return edges\n .filter((e) => e.source === id)\n .map((e) => nodes.find((n) => n.id === e.target))\n .filter((n): n is Node<T> => n !== null);\n }, [edges, id, nodes]);\n}\n\n/** Utilities to manipulate a node in the flow */\nexport function useFlowNodeUtils<NodeData = any>() {\n const nodeId = useNodeId();\n const reactFlowInstance = useReactFlow<NodeData>();\n\n /** Mutate the node's `.data` object */\n const setNodeData = useCallback(\n (setNewData: (newData?: NodeData) => NodeData) => {\n if (!nodeId) return;\n\n reactFlowInstance.setNodes((nodes) => {\n return nodes.map((n) => {\n if (n.id === nodeId) {\n return { ...n, data: setNewData(n.data) };\n }\n return n;\n });\n });\n },\n [nodeId, reactFlowInstance]\n );\n\n return useMemo(\n () => ({\n setNodeData,\n }),\n [setNodeData]\n );\n}\n"],"names":[],"mappings":";;AAYO,SAAS,YAAmC,IAAY;AAC7D,QAAM,eAAe;AAAA,IACnB,CAAC,UACC,MAAM,WAAW,KAAK,CAAC,MAAoB,EAAE,OAAO,EAAE;AAAA,IACxD,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAwB,YAAY;AAC7C;AAEO,SAAS,sBAAsB,IAAY;AAChD,QAAM,qBAAqB;AAAA,IACzB,CAAC,UAA0B,MAAM,MAAM,OAAO,CAAC,MAAY,EAAE,WAAW,EAAE;AAAA,IAC1E,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAS,kBAAkB;AACpC;AAEO,SAAS,uBAAuB,IAAY;AACjD,QAAM,sBAAsB;AAAA,IAC1B,CAAC,UAA0B,MAAM,MAAM,OAAO,CAAC,MAAY,EAAE,WAAW,EAAE;AAAA,IAC1E,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAS,mBAAmB;AACrC;AAEO,SAAS,iBAAiB,IAAY;AAC3C,QAAM,gBAAgB;AAAA,IACpB,CAAC,UACC,MAAM,MAAM,OAAO,CAAC,MAAY,EAAE,WAAW,MAAM,EAAE,WAAW,EAAE;AAAA,IACpE,CAAC,EAAE;AAAA,EAAA;AAEL,SAAO,SAAS,aAAa;AAC/B;AAEO,SAAS,mBAAmB,IAAY;AACvC,QAAA,aAAa,sBAAsB,EAAE;AAC3C,QAAM,sBAAsB;AAAA,IAC1B,CAAC,UAA0B;AAClB,aAAA,WACJ,IAAI,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK,CAAC,MAAY,EAAE,OAAO,EAAE,MAAM,CAAC,EAChE,OAAO,CAAC,MAAiB,MAAM,IAAI;AAAA,IACxC;AAAA,IACA,CAAC,UAAU;AAAA,EAAA;AAEb,SAAO,SAAS,mBAAmB;AACrC;AAEO,SAAS,kBAA2B,IAAY;AACrD,QAAM,QAAQ;AACd,QAAM,QAAQ;AAEd,SAAO,QAAQ,MAAM;AACZ,WAAA,MACJ,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAC7B,IAAI,CAAC,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC/C,OAAO,CAAC,MAAoB,MAAM,IAAI;AAAA,EACxC,GAAA,CAAC,OAAO,IAAI,KAAK,CAAC;AACvB;AAEO,SAAS,mBAA4B,IAAY;AACtD,QAAM,QAAQ;AACd,QAAM,QAAQ;AAEd,SAAO,QAAQ,MAAM;AACZ,WAAA,MACJ,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAC7B,IAAI,CAAC,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC/C,OAAO,CAAC,MAAoB,MAAM,IAAI;AAAA,EACxC,GAAA,CAAC,OAAO,IAAI,KAAK,CAAC;AACvB;AAGO,SAAS,mBAAmC;AACjD,QAAM,SAAS;AACf,QAAM,oBAAoB;AAG1B,QAAM,cAAc;AAAA,IAClB,CAAC,eAAiD;AAChD,UAAI,CAAC;AAAQ;AAEK,wBAAA,SAAS,CAAC,UAAU;AAC7B,eAAA,MAAM,IAAI,CAAC,MAAM;AAClB,cAAA,EAAE,OAAO,QAAQ;AACnB,mBAAO,EAAE,GAAG,GAAG,MAAM,WAAW,EAAE,IAAI;UACxC;AACO,iBAAA;AAAA,QAAA,CACR;AAAA,MAAA,CACF;AAAA,IACH;AAAA,IACA,CAAC,QAAQ,iBAAiB;AAAA,EAAA;AAGrB,SAAA;AAAA,IACL,OAAO;AAAA,MACL;AAAA,IAAA;AAAA,IAEF,CAAC,WAAW;AAAA,EAAA;AAEhB;"}
@@ -1,18 +1,10 @@
1
1
  import { jsxs, jsx } from "@emotion/react/jsx-runtime";
2
- import { createClasses, theme, useLabels, HvDialog, HvDialogTitle, HvDialogContent, HvEmptyState, HvDialogActions, HvButton } from "@hitachivantara/uikit-react-core";
2
+ import { useLabels, HvDialog, HvDialogTitle, HvDialogContent, HvEmptyState, HvDialogActions, HvButton } from "@hitachivantara/uikit-react-core";
3
3
  import { Info } from "@hitachivantara/uikit-react-icons";
4
+ import { useClasses } from "./DashboardNode.styles.js";
5
+ import { staticClasses } from "./DashboardNode.styles.js";
4
6
  import { HvFlowNode } from "../Node/Node.js";
5
7
  import { HvDashboard } from "../../Dashboard/Dashboard.js";
6
- const { staticClasses, useClasses } = createClasses("HvDashboardNode", {
7
- actions: {
8
- display: "flex",
9
- justifyContent: "space-around",
10
- padding: theme.space.xs
11
- },
12
- empty: {
13
- padding: theme.spacing("sm", 0, 0, 0)
14
- }
15
- });
16
8
  const DEFAULT_LABELS = {
17
9
  emptyMessage: "No visualizations connected to the dashboard.",
18
10
  dialogTitle: "Configure dashboard",
@@ -39,7 +31,7 @@ const HvDashboardNode = (props) => {
39
31
  const labels = useLabels(DEFAULT_LABELS, labelsProp);
40
32
  const { classes } = useClasses(classesProp);
41
33
  return /* @__PURE__ */ jsxs(HvFlowNode, { id, classes, ...others, children: [
42
- children && /* @__PURE__ */ jsx("div", { className: classes.actions, children }),
34
+ children,
43
35
  /* @__PURE__ */ jsxs(
44
36
  HvDialog,
45
37
  {
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNode.js","sources":["../../../../src/Flow/nodes/DashboardNode.tsx"],"sourcesContent":["import {\n ExtractNames,\n HvButton,\n HvDialog,\n HvDialogActions,\n HvDialogContent,\n HvDialogProps,\n HvDialogTitle,\n HvEmptyState,\n createClasses,\n theme,\n useLabels,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvDashboard, HvDashboardProps } from \"../../Dashboard\";\nimport { HvFlowNode, HvFlowNodeProps, HvFlowNodeClasses } from \"../Node\";\n\nconst { staticClasses, useClasses } = createClasses(\"HvDashboardNode\", {\n actions: {\n display: \"flex\",\n justifyContent: \"space-around\",\n padding: theme.space.xs,\n },\n empty: {\n padding: theme.spacing(\"sm\", 0, 0, 0),\n },\n});\n\nexport { staticClasses as hvDashboardNodeClasses };\n\nconst DEFAULT_LABELS = {\n emptyMessage: \"No visualizations connected to the dashboard.\",\n dialogTitle: \"Configure dashboard\",\n dialogSubtitle: \"Please configure the layout of your dashboard as needed.\",\n dialogApply: \"Apply\",\n dialogCancel: \"Cancel\",\n};\n\nexport interface HvDashboardNodeClasses\n extends ExtractNames<typeof useClasses>,\n HvFlowNodeClasses {}\n\nexport interface HvDashboardNodeProps\n extends HvFlowNodeProps,\n Pick<HvDialogProps, \"open\" | \"onClose\">,\n Pick<HvDashboardProps, \"layout\"> {\n classes?: HvDashboardNodeClasses;\n labels?: Partial<typeof DEFAULT_LABELS>;\n previewItems?: React.ReactNode;\n onApply?: () => void;\n onCancel?: () => void;\n\n dashboardProps?: Omit<HvDashboardProps, \"children\">;\n dialogProps?: HvDialogProps;\n}\n\nexport const HvDashboardNode = (props: HvDashboardNodeProps) => {\n const {\n id,\n open,\n layout,\n labels: labelsProp,\n classes: classesProp,\n previewItems,\n children,\n dialogProps,\n dashboardProps,\n onApply,\n onCancel,\n onClose,\n ...others\n } = props;\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const { classes } = useClasses(classesProp);\n\n return (\n <HvFlowNode id={id} classes={classes as any} {...others}>\n {children && <div className={classes.actions}>{children}</div>}\n <HvDialog\n open={open}\n maxWidth=\"lg\"\n fullWidth\n onClose={onClose}\n {...dialogProps}\n >\n <HvDialogTitle variant=\"info\">{labels?.dialogTitle}</HvDialogTitle>\n <HvDialogContent indentContent>\n {labels?.dialogSubtitle}\n {layout && layout?.length > 0 ? (\n <HvDashboard\n cols={12}\n layout={layout}\n compactType=\"vertical\"\n rowHeight={80}\n margin={[16, 16]}\n containerPadding={[0, 16]}\n {...dashboardProps}\n >\n {previewItems}\n </HvDashboard>\n ) : (\n <HvEmptyState\n className={classes.empty}\n icon={<Info role=\"none\" />}\n message={labels?.emptyMessage}\n />\n )}\n </HvDialogContent>\n <HvDialogActions>\n <HvButton variant=\"primary\" onClick={onApply}>\n {labels?.dialogApply}\n </HvButton>\n <HvButton variant=\"secondarySubtle\" onClick={onCancel}>\n {labels?.dialogCancel}\n </HvButton>\n </HvDialogActions>\n </HvDialog>\n </HvFlowNode>\n );\n};\n"],"names":[],"mappings":";;;;;AAkBA,MAAM,EAAE,eAAe,eAAe,cAAc,mBAAmB;AAAA,EACrE,SAAS;AAAA,IACP,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,SAAS,MAAM,MAAM;AAAA,EACvB;AAAA,EACA,OAAO;AAAA,IACL,SAAS,MAAM,QAAQ,MAAM,GAAG,GAAG,CAAC;AAAA,EACtC;AACF,CAAC;AAID,MAAM,iBAAiB;AAAA,EACrB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,cAAc;AAChB;AAoBa,MAAA,kBAAkB,CAAC,UAAgC;AACxD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACD,IAAA;AACE,QAAA,SAAS,UAAU,gBAAgB,UAAU;AACnD,QAAM,EAAE,QAAA,IAAY,WAAW,WAAW;AAE1C,SACG,qBAAA,YAAA,EAAW,IAAQ,SAA0B,GAAG,QAC9C,UAAA;AAAA,IAAA,YAAa,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAS;AAAA,IACxD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,UAAS;AAAA,QACT,WAAS;AAAA,QACT;AAAA,QACC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA,oBAAC,eAAc,EAAA,SAAQ,QAAQ,UAAA,QAAQ,aAAY;AAAA,UACnD,qBAAC,iBAAgB,EAAA,eAAa,MAC3B,UAAA;AAAA,YAAQ,QAAA;AAAA,YACR,UAAU,QAAQ,SAAS,IAC1B;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM;AAAA,gBACN;AAAA,gBACA,aAAY;AAAA,gBACZ,WAAW;AAAA,gBACX,QAAQ,CAAC,IAAI,EAAE;AAAA,gBACf,kBAAkB,CAAC,GAAG,EAAE;AAAA,gBACvB,GAAG;AAAA,gBAEH,UAAA;AAAA,cAAA;AAAA,YAAA,IAGH;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,QAAQ;AAAA,gBACnB,MAAM,oBAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,gBACxB,SAAS,QAAQ;AAAA,cAAA;AAAA,YACnB;AAAA,UAAA,GAEJ;AAAA,+BACC,iBACC,EAAA,UAAA;AAAA,YAAA,oBAAC,YAAS,SAAQ,WAAU,SAAS,SAClC,kBAAQ,aACX;AAAA,gCACC,UAAS,EAAA,SAAQ,mBAAkB,SAAS,UAC1C,kBAAQ,cACX;AAAA,UAAA,GACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"DashboardNode.js","sources":["../../../../src/Flow/nodes/DashboardNode.tsx"],"sourcesContent":["import {\n ExtractNames,\n HvButton,\n HvDialog,\n HvDialogActions,\n HvDialogContent,\n HvDialogProps,\n HvDialogTitle,\n HvEmptyState,\n useLabels,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvDashboard, HvDashboardProps } from \"../../Dashboard\";\nimport { HvFlowNode, HvFlowNodeProps } from \"../Node\";\nimport { staticClasses, useClasses } from \"./DashboardNode.styles\";\n\nexport { staticClasses as hvDashboardNodeClasses };\n\nconst DEFAULT_LABELS = {\n emptyMessage: \"No visualizations connected to the dashboard.\",\n dialogTitle: \"Configure dashboard\",\n dialogSubtitle: \"Please configure the layout of your dashboard as needed.\",\n dialogApply: \"Apply\",\n dialogCancel: \"Cancel\",\n};\n\nexport type HvDashboardNodeClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDashboardNodeProps\n extends HvFlowNodeProps,\n Pick<HvDialogProps, \"open\" | \"onClose\">,\n Pick<HvDashboardProps, \"layout\"> {\n classes?: HvDashboardNodeClasses;\n labels?: Partial<typeof DEFAULT_LABELS>;\n previewItems?: React.ReactNode;\n onApply?: () => void;\n onCancel?: () => void;\n\n dashboardProps?: Omit<HvDashboardProps, \"children\">;\n dialogProps?: HvDialogProps;\n}\n\nexport const HvDashboardNode = (props: HvDashboardNodeProps) => {\n const {\n id,\n open,\n layout,\n labels: labelsProp,\n classes: classesProp,\n previewItems,\n children,\n dialogProps,\n dashboardProps,\n onApply,\n onCancel,\n onClose,\n ...others\n } = props;\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const { classes } = useClasses(classesProp);\n\n return (\n <HvFlowNode id={id} classes={classes} {...others}>\n {children}\n <HvDialog\n open={open}\n maxWidth=\"lg\"\n fullWidth\n onClose={onClose}\n {...dialogProps}\n >\n <HvDialogTitle variant=\"info\">{labels?.dialogTitle}</HvDialogTitle>\n <HvDialogContent indentContent>\n {labels?.dialogSubtitle}\n {layout && layout?.length > 0 ? (\n <HvDashboard\n cols={12}\n layout={layout}\n compactType=\"vertical\"\n rowHeight={80}\n margin={[16, 16]}\n containerPadding={[0, 16]}\n {...dashboardProps}\n >\n {previewItems}\n </HvDashboard>\n ) : (\n <HvEmptyState\n className={classes.empty}\n icon={<Info role=\"none\" />}\n message={labels?.emptyMessage}\n />\n )}\n </HvDialogContent>\n <HvDialogActions>\n <HvButton variant=\"primary\" onClick={onApply}>\n {labels?.dialogApply}\n </HvButton>\n <HvButton variant=\"secondarySubtle\" onClick={onCancel}>\n {labels?.dialogCancel}\n </HvButton>\n </HvDialogActions>\n </HvDialog>\n </HvFlowNode>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAmBA,MAAM,iBAAiB;AAAA,EACrB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,cAAc;AAChB;AAkBa,MAAA,kBAAkB,CAAC,UAAgC;AACxD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACD,IAAA;AACE,QAAA,SAAS,UAAU,gBAAgB,UAAU;AACnD,QAAM,EAAE,QAAA,IAAY,WAAW,WAAW;AAE1C,SACG,qBAAA,YAAA,EAAW,IAAQ,SAAmB,GAAG,QACvC,UAAA;AAAA,IAAA;AAAA,IACD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,UAAS;AAAA,QACT,WAAS;AAAA,QACT;AAAA,QACC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA,oBAAC,eAAc,EAAA,SAAQ,QAAQ,UAAA,QAAQ,aAAY;AAAA,UACnD,qBAAC,iBAAgB,EAAA,eAAa,MAC3B,UAAA;AAAA,YAAQ,QAAA;AAAA,YACR,UAAU,QAAQ,SAAS,IAC1B;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM;AAAA,gBACN;AAAA,gBACA,aAAY;AAAA,gBACZ,WAAW;AAAA,gBACX,QAAQ,CAAC,IAAI,EAAE;AAAA,gBACf,kBAAkB,CAAC,GAAG,EAAE;AAAA,gBACvB,GAAG;AAAA,gBAEH,UAAA;AAAA,cAAA;AAAA,YAAA,IAGH;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,QAAQ;AAAA,gBACnB,MAAM,oBAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,gBACxB,SAAS,QAAQ;AAAA,cAAA;AAAA,YACnB;AAAA,UAAA,GAEJ;AAAA,+BACC,iBACC,EAAA,UAAA;AAAA,YAAA,oBAAC,YAAS,SAAQ,WAAU,SAAS,SAClC,kBAAQ,aACX;AAAA,gCACC,UAAS,EAAA,SAAQ,mBAAkB,SAAS,UAC1C,kBAAQ,cACX;AAAA,UAAA,GACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -0,0 +1,17 @@
1
+ import { createClasses, theme } from "@hitachivantara/uikit-react-core";
2
+ import { staticClasses as staticClasses$1 } from "../Node/Node.styles.js";
3
+ const baseClasses = Object.fromEntries(
4
+ Object.keys(staticClasses$1).map((key) => [key, {}])
5
+ );
6
+ const { staticClasses, useClasses } = createClasses("HvDashboardNode", {
7
+ empty: {
8
+ padding: theme.spacing("sm", 0, 0, 0)
9
+ },
10
+ // Spread here to know if we are overriding classes from parents
11
+ ...baseClasses
12
+ });
13
+ export {
14
+ staticClasses,
15
+ useClasses
16
+ };
17
+ //# sourceMappingURL=DashboardNode.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardNode.styles.js","sources":["../../../../src/Flow/nodes/DashboardNode.styles.tsx"],"sourcesContent":["import { createClasses, theme } from \"@hitachivantara/uikit-react-core\";\n\nimport { staticClasses as nodeClasses } from \"../Node/Node.styles\";\n\nconst baseClasses = Object.fromEntries(\n Object.keys(nodeClasses).map((key) => [key, {}])\n) as Record<keyof typeof nodeClasses, {}>;\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDashboardNode\", {\n empty: {\n padding: theme.spacing(\"sm\", 0, 0, 0),\n },\n // Spread here to know if we are overriding classes from parents\n ...baseClasses,\n});\n"],"names":["nodeClasses"],"mappings":";;AAIA,MAAM,cAAc,OAAO;AAAA,EACzB,OAAO,KAAKA,eAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA,CAAE,CAAC;AACjD;AAEO,MAAM,EAAE,eAAe,eAAe,cAAc,mBAAmB;AAAA,EAC5E,OAAO;AAAA,IACL,SAAS,MAAM,QAAQ,MAAM,GAAG,GAAG,CAAC;AAAA,EACtC;AAAA;AAAA,EAEA,GAAG;AACL,CAAC;"}
package/dist/esm/index.js CHANGED
@@ -17,22 +17,23 @@ import { staticClasses as staticClasses7 } from "./Flow/Node/BaseNode.styles.js"
17
17
  import { HvFlowBaseNode } from "./Flow/Node/BaseNode.js";
18
18
  import { staticClasses as staticClasses8 } from "./Flow/Node/Node.styles.js";
19
19
  import { HvFlowNode } from "./Flow/Node/Node.js";
20
- import { HvDashboardNode, hvDashboardNodeClasses } from "./Flow/nodes/DashboardNode.js";
20
+ import { staticClasses as staticClasses9 } from "./Flow/nodes/DashboardNode.styles.js";
21
+ import { HvDashboardNode } from "./Flow/nodes/DashboardNode.js";
21
22
  import { useFlowInputNodes, useFlowNode, useFlowNodeEdges, useFlowNodeInputEdges, useFlowNodeOutputEdges, useFlowNodeParents, useFlowNodeUtils, useFlowOutputNodes } from "./Flow/hooks/useFlowNode.js";
22
23
  import { useFlowContext } from "./Flow/hooks/useFlowContext.js";
23
24
  import { useFlowNodeMeta } from "./Flow/hooks/useFlowNodeMeta.js";
24
- import { staticClasses as staticClasses9 } from "./StepNavigation/StepNavigation.styles.js";
25
+ import { staticClasses as staticClasses10 } from "./StepNavigation/StepNavigation.styles.js";
25
26
  import { HvStepNavigation } from "./StepNavigation/StepNavigation.js";
26
- import { staticClasses as staticClasses10 } from "./Wizard/Wizard.styles.js";
27
+ import { staticClasses as staticClasses11 } from "./Wizard/Wizard.styles.js";
27
28
  import { HvWizard } from "./Wizard/Wizard.js";
28
- import { staticClasses as staticClasses11 } from "./Wizard/WizardActions/WizardActions.styles.js";
29
+ import { staticClasses as staticClasses12 } from "./Wizard/WizardActions/WizardActions.styles.js";
29
30
  import { HvWizardActions } from "./Wizard/WizardActions/WizardActions.js";
30
- import { staticClasses as staticClasses12 } from "./Wizard/WizardContainer/WizardContainer.styles.js";
31
+ import { staticClasses as staticClasses13 } from "./Wizard/WizardContainer/WizardContainer.styles.js";
31
32
  import { HvWizardContainer } from "./Wizard/WizardContainer/WizardContainer.js";
32
- import { staticClasses as staticClasses13 } from "./Wizard/WizardContent/WizardContent.styles.js";
33
+ import { staticClasses as staticClasses14 } from "./Wizard/WizardContent/WizardContent.styles.js";
33
34
  import { HvWizardContent } from "./Wizard/WizardContent/WizardContent.js";
34
35
  import { default as default2 } from "./Wizard/WizardContext/WizardContext.js";
35
- import { staticClasses as staticClasses14 } from "./Wizard/WizardTitle/WizardTitle.styles.js";
36
+ import { staticClasses as staticClasses15 } from "./Wizard/WizardTitle/WizardTitle.styles.js";
36
37
  import { HvWizardTitle } from "./Wizard/WizardTitle/WizardTitle.js";
37
38
  export {
38
39
  HvBlade,
@@ -62,8 +63,8 @@ export {
62
63
  staticClasses5 as flowMinimapClasses,
63
64
  staticClasses8 as flowNodeClasses,
64
65
  staticClasses6 as flowSidebarClasses,
65
- hvDashboardNodeClasses,
66
- staticClasses9 as stepNavigationClasses,
66
+ staticClasses9 as hvDashboardNodeClasses,
67
+ staticClasses10 as stepNavigationClasses,
67
68
  useFlowContext,
68
69
  useFlowInputNodes,
69
70
  useFlowNode,
@@ -74,10 +75,10 @@ export {
74
75
  useFlowNodeParents,
75
76
  useFlowNodeUtils,
76
77
  useFlowOutputNodes,
77
- staticClasses11 as wizardActionsClasses,
78
- staticClasses10 as wizardClasses,
79
- staticClasses12 as wizardContainerClasses,
80
- staticClasses13 as wizardContentClasses,
81
- staticClasses14 as wizardTitleClasses
78
+ staticClasses12 as wizardActionsClasses,
79
+ staticClasses11 as wizardClasses,
80
+ staticClasses13 as wizardContainerClasses,
81
+ staticClasses14 as wizardContentClasses,
82
+ staticClasses15 as wizardTitleClasses
82
83
  };
83
84
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -70,13 +70,17 @@ export declare const flowBaseNodeClasses: {
70
70
  mandatory: "HvFlowBaseNode-mandatory";
71
71
  footerContainer: "HvFlowBaseNode-footerContainer";
72
72
  inputContainer: "HvFlowBaseNode-inputContainer";
73
+ handle: "HvFlowBaseNode-handle";
73
74
  contentContainer: "HvFlowBaseNode-contentContainer";
74
75
  headerContainer: "HvFlowBaseNode-headerContainer";
75
76
  inputsTitleContainer: "HvFlowBaseNode-inputsTitleContainer";
76
77
  outputsTitleContainer: "HvFlowBaseNode-outputsTitleContainer";
77
78
  inputsContainer: "HvFlowBaseNode-inputsContainer";
78
79
  outputsContainer: "HvFlowBaseNode-outputsContainer";
80
+ inputGroupContainer: "HvFlowBaseNode-inputGroupContainer";
81
+ outputGroupContainer: "HvFlowBaseNode-outputGroupContainer";
79
82
  outputContainer: "HvFlowBaseNode-outputContainer";
83
+ handleConnected: "HvFlowBaseNode-handleConnected";
80
84
  };
81
85
 
82
86
  export declare const flowClasses: {
@@ -88,7 +92,24 @@ export declare const flowMinimapClasses: {
88
92
  };
89
93
 
90
94
  export declare const flowNodeClasses: {
95
+ root: "HvFlowNode-root";
96
+ title: "HvFlowNode-title";
97
+ titleContainer: "HvFlowNode-titleContainer";
98
+ mandatory: "HvFlowNode-mandatory";
91
99
  actions: "HvFlowNode-actions";
100
+ footerContainer: "HvFlowNode-footerContainer";
101
+ inputContainer: "HvFlowNode-inputContainer";
102
+ handle: "HvFlowNode-handle";
103
+ contentContainer: "HvFlowNode-contentContainer";
104
+ headerContainer: "HvFlowNode-headerContainer";
105
+ inputsTitleContainer: "HvFlowNode-inputsTitleContainer";
106
+ outputsTitleContainer: "HvFlowNode-outputsTitleContainer";
107
+ inputsContainer: "HvFlowNode-inputsContainer";
108
+ outputsContainer: "HvFlowNode-outputsContainer";
109
+ inputGroupContainer: "HvFlowNode-inputGroupContainer";
110
+ outputGroupContainer: "HvFlowNode-outputGroupContainer";
111
+ outputContainer: "HvFlowNode-outputContainer";
112
+ handleConnected: "HvFlowNode-handleConnected";
92
113
  subtitleContainer: "HvFlowNode-subtitleContainer";
93
114
  paramsContainer: "HvFlowNode-paramsContainer";
94
115
  };
@@ -254,12 +275,30 @@ export declare type HvDashboardClasses = ExtractNames<typeof useClasses_3>;
254
275
 
255
276
  export declare const HvDashboardNode: (props: HvDashboardNodeProps) => JSX_2.Element;
256
277
 
257
- export declare interface HvDashboardNodeClasses extends ExtractNames<typeof useClasses_9>, HvFlowNodeClasses {
258
- }
278
+ export declare type HvDashboardNodeClasses = ExtractNames<typeof useClasses_9>;
259
279
 
260
280
  export declare const hvDashboardNodeClasses: {
281
+ root: "HvDashboardNode-root";
282
+ title: "HvDashboardNode-title";
283
+ titleContainer: "HvDashboardNode-titleContainer";
284
+ mandatory: "HvDashboardNode-mandatory";
261
285
  empty: "HvDashboardNode-empty";
262
286
  actions: "HvDashboardNode-actions";
287
+ footerContainer: "HvDashboardNode-footerContainer";
288
+ inputContainer: "HvDashboardNode-inputContainer";
289
+ handle: "HvDashboardNode-handle";
290
+ contentContainer: "HvDashboardNode-contentContainer";
291
+ headerContainer: "HvDashboardNode-headerContainer";
292
+ inputsTitleContainer: "HvDashboardNode-inputsTitleContainer";
293
+ outputsTitleContainer: "HvDashboardNode-outputsTitleContainer";
294
+ inputsContainer: "HvDashboardNode-inputsContainer";
295
+ outputsContainer: "HvDashboardNode-outputsContainer";
296
+ inputGroupContainer: "HvDashboardNode-inputGroupContainer";
297
+ outputGroupContainer: "HvDashboardNode-outputGroupContainer";
298
+ outputContainer: "HvDashboardNode-outputContainer";
299
+ handleConnected: "HvDashboardNode-handleConnected";
300
+ subtitleContainer: "HvDashboardNode-subtitleContainer";
301
+ paramsContainer: "HvDashboardNode-paramsContainer";
263
302
  };
264
303
 
265
304
  export declare interface HvDashboardNodeProps extends HvFlowNodeProps, Pick<HvDialogProps, "open" | "onClose">, Pick<HvDashboardProps, "layout"> {
@@ -347,9 +386,9 @@ export declare interface HvFlowBaseNodeProps<T = any> extends Omit<HvBaseProps,
347
386
  /** Header items */
348
387
  headerItems?: React_2.ReactNode;
349
388
  /** Node inputs */
350
- inputs?: HvFlowNodeInput[];
389
+ inputs?: (HvFlowNodeInput | HvFlowNodeInputGroup)[];
351
390
  /** Node outputs */
352
- outputs?: HvFlowNodeOutput[];
391
+ outputs?: (HvFlowNodeOutput | HvFlowNodeOutputGroup)[];
353
392
  /** Node actions */
354
393
  nodeActions?: HvFlowNodeAction[];
355
394
  /** The content of the Node footer */
@@ -425,14 +464,13 @@ export declare interface HvFlowMinimapProps<NodeData = any> extends Omit<MiniMap
425
464
  classes?: HvFlowMinimapClasses;
426
465
  }
427
466
 
428
- export declare const HvFlowNode: ({ id, type, headerItems, description, actions, outputs, inputs, actionCallback, maxVisibleActions, expanded, params, nodeDefaults, classes: classesProp, children, expandParamsButtonProps, ...props }: HvFlowNodeProps<unknown>) => JSX_2.Element;
467
+ export declare const HvFlowNode: ({ id, type, headerItems, description, actions, actionCallback, maxVisibleActions, expanded, params, nodeDefaults, classes: classesProp, children, expandParamsButtonProps, ...props }: HvFlowNodeProps<unknown>) => JSX_2.Element;
429
468
 
430
469
  export declare interface HvFlowNodeAction extends HvActionGeneric {
431
470
  callback?: (node: Node_2) => void;
432
471
  }
433
472
 
434
- export declare interface HvFlowNodeClasses extends ExtractNames<typeof useClasses_8>, HvFlowBaseNodeClasses {
435
- }
473
+ export declare type HvFlowNodeClasses = ExtractNames<typeof useClasses_8>;
436
474
 
437
475
  export declare interface HvFlowNodeComponentClass<GroupId extends keyof any = string, NodeData = any> extends ComponentClass<NodeProps>, NodeExtras<GroupId, NodeData> {
438
476
  }
@@ -460,29 +498,39 @@ export declare interface HvFlowNodeGroup {
460
498
 
461
499
  export declare type HvFlowNodeGroups<GroupId extends keyof any = string> = Record<GroupId, HvFlowNodeGroup>;
462
500
 
463
- export declare type HvFlowNodeInput = {
501
+ export declare interface HvFlowNodeInput {
464
502
  id?: string;
465
- label: string;
503
+ label: React.ReactNode;
466
504
  isMandatory?: boolean;
467
505
  accepts?: string[];
468
506
  maxConnections?: number;
469
- };
507
+ }
508
+
509
+ export declare interface HvFlowNodeInputGroup {
510
+ label: React.ReactNode;
511
+ inputs: HvFlowNodeInput[];
512
+ }
470
513
 
471
514
  export declare interface HvFlowNodeMeta {
472
515
  label: string;
473
- inputs?: HvFlowNodeInput[];
474
- outputs?: HvFlowNodeOutput[];
516
+ inputs?: (HvFlowNodeInput | HvFlowNodeInputGroup)[];
517
+ outputs?: (HvFlowNodeOutput | HvFlowNodeOutputGroup)[];
475
518
  }
476
519
 
477
520
  export declare type HvFlowNodeMetaRegistry = Record<string, HvFlowNodeMeta>;
478
521
 
479
- export declare type HvFlowNodeOutput = {
522
+ export declare interface HvFlowNodeOutput {
480
523
  id?: string;
481
- label: string;
524
+ label: React.ReactNode;
482
525
  isMandatory?: boolean;
483
526
  provides?: string;
484
527
  maxConnections?: number;
485
- };
528
+ }
529
+
530
+ export declare interface HvFlowNodeOutputGroup {
531
+ label: React.ReactNode;
532
+ outputs: HvFlowNodeOutput[];
533
+ }
486
534
 
487
535
  export declare type HvFlowNodeParam = HvFlowNodeSelectParam | HvFlowNodeTextParam | HvFlowNodeSliderParam;
488
536
 
@@ -503,10 +551,6 @@ export declare interface HvFlowNodeProps<T = any> extends HvFlowBaseNodeProps<T>
503
551
  nodeDefaults?: HvFlowNodeDefaults;
504
552
  /** Props to be passed to the expand parameters button. */
505
553
  expandParamsButtonProps?: HvButtonProps;
506
- /** Node outputs. */
507
- outputs?: HvFlowNodeOutput[];
508
- /** Node inputs. */
509
- inputs?: HvFlowNodeInput[];
510
554
  /** A Jss Object used to override or extend the styles applied to the component. */
511
555
  classes?: HvFlowNodeClasses;
512
556
  }
@@ -980,7 +1024,7 @@ declare const useClasses_6: (classesProp?: Partial<Record<"description" | "title
980
1024
  cx: (...args: any) => string;
981
1025
  };
982
1026
 
983
- declare const useClasses_7: (classesProp?: Partial<Record<"root" | "title" | "titleContainer" | "mandatory" | "footerContainer" | "inputContainer" | "contentContainer" | "headerContainer" | "inputsTitleContainer" | "outputsTitleContainer" | "inputsContainer" | "outputsContainer" | "outputContainer", string>>, addStatic?: boolean) => {
1027
+ declare const useClasses_7: (classesProp?: Partial<Record<"root" | "title" | "titleContainer" | "mandatory" | "footerContainer" | "inputContainer" | "handle" | "contentContainer" | "headerContainer" | "inputsTitleContainer" | "outputsTitleContainer" | "inputsContainer" | "outputsContainer" | "inputGroupContainer" | "outputGroupContainer" | "outputContainer" | "handleConnected", string>>, addStatic?: boolean) => {
984
1028
  classes: {
985
1029
  root: string;
986
1030
  title: string;
@@ -988,13 +1032,17 @@ declare const useClasses_7: (classesProp?: Partial<Record<"root" | "title" | "ti
988
1032
  mandatory: string;
989
1033
  footerContainer: string;
990
1034
  inputContainer: string;
1035
+ handle: string;
991
1036
  contentContainer: string;
992
1037
  headerContainer: string;
993
1038
  inputsTitleContainer: string;
994
1039
  outputsTitleContainer: string;
995
1040
  inputsContainer: string;
996
1041
  outputsContainer: string;
1042
+ inputGroupContainer: string;
1043
+ outputGroupContainer: string;
997
1044
  outputContainer: string;
1045
+ handleConnected: string;
998
1046
  };
999
1047
  css: {
1000
1048
  (template: TemplateStringsArray, ...args: CSSInterpolation[]): string;
@@ -1003,9 +1051,26 @@ declare const useClasses_7: (classesProp?: Partial<Record<"root" | "title" | "ti
1003
1051
  cx: (...args: any) => string;
1004
1052
  };
1005
1053
 
1006
- declare const useClasses_8: (classesProp?: Partial<Record<"actions" | "subtitleContainer" | "paramsContainer", string>>, addStatic?: boolean) => {
1054
+ declare const useClasses_8: (classesProp?: Partial<Record<"root" | "title" | "titleContainer" | "mandatory" | "actions" | "footerContainer" | "inputContainer" | "handle" | "contentContainer" | "headerContainer" | "inputsTitleContainer" | "outputsTitleContainer" | "inputsContainer" | "outputsContainer" | "inputGroupContainer" | "outputGroupContainer" | "outputContainer" | "handleConnected" | "subtitleContainer" | "paramsContainer", string>>, addStatic?: boolean) => {
1007
1055
  classes: {
1056
+ root: string;
1057
+ title: string;
1058
+ titleContainer: string;
1059
+ mandatory: string;
1008
1060
  actions: string;
1061
+ footerContainer: string;
1062
+ inputContainer: string;
1063
+ handle: string;
1064
+ contentContainer: string;
1065
+ headerContainer: string;
1066
+ inputsTitleContainer: string;
1067
+ outputsTitleContainer: string;
1068
+ inputsContainer: string;
1069
+ outputsContainer: string;
1070
+ inputGroupContainer: string;
1071
+ outputGroupContainer: string;
1072
+ outputContainer: string;
1073
+ handleConnected: string;
1009
1074
  subtitleContainer: string;
1010
1075
  paramsContainer: string;
1011
1076
  };
@@ -1016,10 +1081,29 @@ declare const useClasses_8: (classesProp?: Partial<Record<"actions" | "subtitleC
1016
1081
  cx: (...args: any) => string;
1017
1082
  };
1018
1083
 
1019
- declare const useClasses_9: (classesProp?: Partial<Record<"empty" | "actions", string>>, addStatic?: boolean) => {
1084
+ declare const useClasses_9: (classesProp?: Partial<Record<"root" | "title" | "titleContainer" | "mandatory" | "empty" | "actions" | "footerContainer" | "inputContainer" | "handle" | "contentContainer" | "headerContainer" | "inputsTitleContainer" | "outputsTitleContainer" | "inputsContainer" | "outputsContainer" | "inputGroupContainer" | "outputGroupContainer" | "outputContainer" | "handleConnected" | "subtitleContainer" | "paramsContainer", string>>, addStatic?: boolean) => {
1020
1085
  classes: {
1086
+ root: string;
1087
+ title: string;
1088
+ titleContainer: string;
1089
+ mandatory: string;
1021
1090
  empty: string;
1022
1091
  actions: string;
1092
+ footerContainer: string;
1093
+ inputContainer: string;
1094
+ handle: string;
1095
+ contentContainer: string;
1096
+ headerContainer: string;
1097
+ inputsTitleContainer: string;
1098
+ outputsTitleContainer: string;
1099
+ inputsContainer: string;
1100
+ outputsContainer: string;
1101
+ inputGroupContainer: string;
1102
+ outputGroupContainer: string;
1103
+ outputContainer: string;
1104
+ handleConnected: string;
1105
+ subtitleContainer: string;
1106
+ paramsContainer: string;
1023
1107
  };
1024
1108
  css: {
1025
1109
  (template: TemplateStringsArray, ...args: CSSInterpolation[]): string;
@@ -1045,8 +1129,8 @@ export declare function useFlowNodeOutputEdges(id: string): Edge<any>[];
1045
1129
  export declare function useFlowNodeParents(id: string): Node_2<any, string | undefined>[];
1046
1130
 
1047
1131
  /** Utilities to manipulate a node in the flow */
1048
- export declare function useFlowNodeUtils(): {
1049
- setNodeData: (setNewData: (newData?: any) => any) => void;
1132
+ export declare function useFlowNodeUtils<NodeData = any>(): {
1133
+ setNodeData: (setNewData: (newData?: NodeData) => NodeData) => void;
1050
1134
  };
1051
1135
 
1052
1136
  export declare function useFlowOutputNodes<T = any>(id: string): Node_2<T, string | undefined>[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-lab",
3
- "version": "5.24.3",
3
+ "version": "5.26.0",
4
4
  "private": false,
5
5
  "author": "Hitachi Vantara UI Kit Team",
6
6
  "description": "Contributed React components for the NEXT UI Kit.",
@@ -32,8 +32,8 @@
32
32
  "@dnd-kit/core": "^6.1.0",
33
33
  "@dnd-kit/modifiers": "^6.0.1",
34
34
  "@emotion/css": "^11.11.0",
35
- "@hitachivantara/uikit-react-core": "^5.44.6",
36
- "@hitachivantara/uikit-react-icons": "^5.8.0",
35
+ "@hitachivantara/uikit-react-core": "^5.44.7",
36
+ "@hitachivantara/uikit-react-icons": "^5.8.1",
37
37
  "@hitachivantara/uikit-styles": "^5.17.2",
38
38
  "@types/react-grid-layout": "^1.3.5",
39
39
  "lodash": "^4.17.21",
@@ -50,7 +50,7 @@
50
50
  "access": "public",
51
51
  "directory": "package"
52
52
  },
53
- "gitHead": "4828c1d153d4e136e9f519f2e1e1b1f7e10a89ae",
53
+ "gitHead": "f5fea985b044df120c0a87b71bd840700f5e4e8c",
54
54
  "main": "dist/cjs/index.cjs",
55
55
  "exports": {
56
56
  ".": {