UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

101 lines (100 loc) 3.35 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const jsxRuntime = require("react/jsx-runtime"); const React = require("react"); const uikitReactUtils = require("@hitachivantara/uikit-react-utils"); const AppSwitcher_styles = require("./AppSwitcher.styles.cjs"); const Action = require("./Action/Action.cjs"); const Panel = require("../Panel/Panel.cjs"); const Typography = require("../Typography/Typography.cjs"); const OverflowTooltip = require("../OverflowTooltip/OverflowTooltip.cjs"); const ListContainer = require("../ListContainer/ListContainer.cjs"); const HvAppSwitcher = React.forwardRef(function HvAppSwitcher2(props, ref) { const { className, classes: classesProp, layout = "single", title, applications, onActionClickedCallback = () => { }, isActionSelectedCallback = () => false, header, footer, isOpen, ...others } = uikitReactUtils.useDefaultProps("HvAppSwitcher", props); const { classes, cx } = AppSwitcher_styles.useClasses(classesProp); const panelActions = React.useMemo( () => applications?.map((application) => { if (application.name) { return /* @__PURE__ */ jsxRuntime.jsx( Action.HvAppSwitcherAction, { application, onClickCallback: onActionClickedCallback, isSelectedCallback: isActionSelectedCallback, classes: { root: classes.item, selected: classes.itemSelected, disabled: classes.itemDisabled, typography: classes.itemTrigger, icon: classes.itemIcon, title: classes.itemTitle, iconInfo: classes.itemInfoIcon } }, application.id || `${application.name}_${application.url}` ); } return void 0; }), [applications, classes, isActionSelectedCallback, onActionClickedCallback] ); return /* @__PURE__ */ jsxRuntime.jsxs( Panel.HvPanel, { ref, className: cx( classes.root, classes[layout], { [classes.open]: !!isOpen, [classes.closed]: isOpen === false }, className ), ...others, children: [ header && /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { component: "div", variant: "label", className: classes.title, children: header }) || title && /* @__PURE__ */ jsxRuntime.jsx( OverflowTooltip.HvOverflowTooltip, { className: classes.title, data: title, placement: "top-start", classes: { tooltipAnchorParagraph: classes.titleAnchor } } ), /* @__PURE__ */ jsxRuntime.jsx( ListContainer.HvListContainer, { condensed: true, disableGutters: true, className: classes.actionsContainer, children: panelActions } ), footer && /* @__PURE__ */ jsxRuntime.jsx( Typography.HvTypography, { component: "div", variant: "label", className: classes.footerContainer, children: footer } ) ] } ); }); exports.appSwitcherClasses = AppSwitcher_styles.staticClasses; exports.HvAppSwitcher = HvAppSwitcher;