UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

104 lines (103 loc) 3.66 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 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;