@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
104 lines (103 loc) • 3.66 kB
JavaScript
"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 CounterLabel = require("../utils/CounterLabel.cjs");
const setId = require("../utils/setId.cjs");
const BulkActions_styles = require("./BulkActions.styles.cjs");
const Button = require("../Button/Button.cjs");
const CheckBox = require("../CheckBox/CheckBox.cjs");
const ActionsGeneric = require("../ActionsGeneric/ActionsGeneric.cjs");
const HvBulkActions = React.forwardRef(function HvBulkActions2(props, ref) {
const {
id,
className,
classes: classesProp,
selectAllPagesLabel,
actionsDisabled,
maxVisibleActions,
checkboxProps,
actions,
numTotal = 0,
numSelected = 0,
selectAllConjunctionLabel = "/",
showSelectAllPages = false,
semantic = true,
actionsCallback,
// TODO - remove in v6
onAction,
onSelectAll,
onSelectAllPages,
...others
} = uikitReactUtils.useDefaultProps("HvBulkActions", props);
const { classes, cx } = BulkActions_styles.useClasses(classesProp);
const { activeTheme } = uikitReactUtils.useTheme();
const anySelected = numSelected > 0;
const isSemantic = semantic && anySelected;
return /* @__PURE__ */ jsxRuntime.jsxs(
"div",
{
ref,
id,
className: cx(
classes.root,
{ [classes.semantic]: isSemantic },
className
),
...others,
children: [
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.selectAllContainer, children: [
/* @__PURE__ */ jsxRuntime.jsx(
CheckBox.HvCheckBox,
{
id: setId.setId(id, "select"),
className: classes.selectAll,
checked: numSelected > 0,
semantic: isSemantic,
onChange: onSelectAll,
indeterminate: numSelected > 0 && numSelected < numTotal,
label: /* @__PURE__ */ jsxRuntime.jsx(
CounterLabel.CounterLabel,
{
selected: numSelected,
total: numTotal,
conjunctionLabel: selectAllConjunctionLabel
}
),
...checkboxProps
}
),
showSelectAllPages && anySelected && numSelected < numTotal && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
/* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.divider }),
/* @__PURE__ */ jsxRuntime.jsx(
Button.HvButton,
{
id: setId.setId(id, "pages"),
className: classes.selectAllPages,
variant: isSemantic ? activeTheme?.bulkActions.actionButtonVariant : "secondaryGhost",
onClick: onSelectAllPages,
children: selectAllPagesLabel ?? `Select all ${numTotal} items`
}
)
] })
] }),
/* @__PURE__ */ jsxRuntime.jsx(
ActionsGeneric.HvActionsGeneric,
{
id: setId.setId(id, "actions"),
classes: { root: classes.actions },
variant: isSemantic ? activeTheme?.bulkActions.actionButtonVariant : "secondaryGhost",
actions,
disabled: actionsDisabled ?? numSelected === 0,
actionsCallback,
onAction,
maxVisibleActions
}
)
]
}
);
});
exports.bulkActionsClasses = BulkActions_styles.staticClasses;
exports.HvBulkActions = HvBulkActions;