{"version":3,"file":"bulk-actions-BbsABDs9.cjs","names":["useBulkActionRunner","bulkActionErrorMessage","offersAllMatching","resolveDisabledReason","Button","Stack","Tooltip","Typography","BulkBar","t0","$","_c","selection","total","bulkActions","confirm","labels","selectedIds","selectedCount","visibleIds","allMatching","selectAllMatching","clear","t1","outcome","status","t2","cancel","cancelLabel","onComplete","pending","error","run","t3","errorMessage","T0","T1","t10","t11","t12","t13","t14","t15","t4","t5","t6","t7","t8","t9","ids","t16","showBanner","Symbol","for","alignItems","justifyContent","flexWrap","t17","t18","t19","t20","allMatchingSelected","clearAll","pageSelected","length","t21","map","action","reason","disabledReason","key","color","icon","undefined","label","errorTitle","BULK_BAR","extendFeature","slotRender","bulkActions","core","BulkBar","actions","props"],"sources":["../src/components/BulkActionBar.tsx","../src/bulk-actions.tsx"],"sourcesContent":["/** Selection bar with the bulk actions and cross-page banner. */\nimport { useBulkActionRunner } from \"@adapttable/react\";\nimport {\n  bulkActionErrorMessage,\n  type BulkBarChromeProps,\n  offersAllMatching,\n  resolveDisabledReason,\n} from \"@adapttable/react/adapter\";\nimport { Button, Stack, Tooltip, Typography } from \"@mui/material\";\nimport type { ReactNode } from \"react\";\n\n/** Selection toolbar. */\nexport function BulkBar({\n  selection,\n  total,\n  bulkActions,\n  confirm,\n  labels,\n}: Readonly<BulkBarChromeProps>) {\n  const {\n    selectedIds,\n    selectedCount,\n    visibleIds,\n    allMatching,\n    selectAllMatching,\n    clear,\n  } = selection;\n  const { pending, error, run } = useBulkActionRunner({\n    confirm,\n    cancelLabel: labels.cancel,\n    // Clear only on success — a failed run keeps the selection for retry.\n    onComplete: (outcome) => {\n      if (outcome.status === \"success\") clear();\n    },\n  });\n  if (selectedCount === 0) return null;\n  const errorMessage = bulkActionErrorMessage(error);\n  const ids = [...selectedIds];\n  // Offer \"select all N matching\" only when the whole page is selected and\n  // more rows match beyond it; once active, show the cross-page scope.\n  const showBanner = offersAllMatching(selection, total);\n  return (\n    <Stack\n      data-adapttable-part=\"bulk-bar\"\n      direction=\"row\"\n      spacing={1}\n      useFlexGap\n      sx={{\n        alignItems: \"center\",\n        justifyContent: \"space-between\",\n        flexWrap: \"wrap\",\n      }}\n    >\n      <Stack\n        direction=\"row\"\n        spacing={1}\n        useFlexGap\n        data-adapttable-part=\"select-all-banner\"\n        sx={{ alignItems: \"center\", flexWrap: \"wrap\" }}\n      >\n        <Typography variant=\"body2\">\n          {labels.selectedCount(selectedCount)}\n        </Typography>\n        {showBanner &&\n          (allMatching ? (\n            <>\n              <Typography\n                variant=\"body2\"\n                color=\"text.secondary\"\n                data-adapttable-part=\"select-all-text\"\n              >\n                {labels.allMatchingSelected(total)}\n              </Typography>\n              <Button\n                size=\"small\"\n                variant=\"text\"\n                data-adapttable-part=\"select-all-button\"\n                onClick={clear}\n                disabled={pending !== null}\n              >\n                {labels.clearAll}\n              </Button>\n            </>\n          ) : (\n            <>\n              <Typography\n                variant=\"body2\"\n                color=\"text.secondary\"\n                data-adapttable-part=\"select-all-text\"\n              >\n                {labels.pageSelected(visibleIds.length)}\n              </Typography>\n              <Button\n                size=\"small\"\n                variant=\"text\"\n                data-adapttable-part=\"select-all-button\"\n                onClick={selectAllMatching}\n                disabled={pending !== null}\n              >\n                {labels.selectAllMatching(total)}\n              </Button>\n            </>\n          ))}\n      </Stack>\n      <Stack direction=\"row\" spacing={1} useFlexGap sx={{ flexWrap: \"wrap\" }}>\n        <Button\n          size=\"small\"\n          variant=\"text\"\n          onClick={clear}\n          disabled={pending !== null}\n        >\n          {labels.clearAll}\n        </Button>\n        {bulkActions.map((action) => {\n          const reason = resolveDisabledReason(action.disabledReason?.(ids));\n          return (\n            <Tooltip key={action.key} title={reason ?? \"\"}>\n              <span>\n                <Button\n                  data-adapttable-part=\"bulk-button\"\n                  size=\"small\"\n                  variant=\"contained\"\n                  color={action.color as \"primary\" | undefined}\n                  startIcon={action.icon as ReactNode}\n                  disabled={reason !== undefined || pending !== null}\n                  onClick={() =>\n                    run(\n                      action,\n                      ids,\n                      allMatching ? { allMatching: true, total } : undefined\n                    )\n                  }\n                >\n                  {action.label}\n                </Button>\n              </span>\n            </Tooltip>\n          );\n        })}\n        {errorMessage !== null && (\n          <Typography\n            data-adapttable-part=\"bulk-error\"\n            variant=\"body2\"\n            color=\"error\"\n            role=\"alert\"\n          >\n            {`${labels.errorTitle}: ${errorMessage}`}\n          </Typography>\n        )}\n      </Stack>\n    </Stack>\n  );\n}\n","import {\n  BULK_BAR,\n  extendFeature,\n  slotRender,\n  type StaticTableFeature,\n} from \"@adapttable/react/adapter\";\nimport {\n  type BulkAction,\n  bulkActions as core,\n} from \"@adapttable/react/features\";\n\nimport { BulkBar } from \"./components/BulkActionBar\";\n\n/**\n * Actions that run against the selected rows, drawn with MUI's own bar.\n *\n * Concatenate onto the core live render — replacing `renders` would drop\n * `SELECTION_LIVE`.\n *\n * @public\n */\nexport function bulkActions(\n  actions: readonly BulkAction[]\n): StaticTableFeature {\n  return extendFeature(core(actions), [\n    slotRender(BULK_BAR, (props) => <BulkBar {...props} />),\n  ]);\n}\n"],"mappings":"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"}