{"version":3,"file":"AutoFilterForm-CylJajXV.cjs","names":["defaultFilterRegistry","filterLabel","filterWidgetKind","joinRelativeToken","RELATIVE_PRESET_LABEL_KEYS","RELATIVE_PRESETS","renderRegisteredFilter","splitRelativeToken","filterOpLabel","listFilterValues","useBooleanFilterWidget","useFilterOptions","useRangeFilterWidget","useTextFilterWidget","Autocomplete","CircularProgress","FormControl","FormLabel","MenuItem","Stack","TextField","ChecklistFilter","FILTER_SELECT_SLOTS","native","MenuProps","sx","zIndex","scalarText","value","String","TextFilter","t0","$","_c","def","source","labels","label","ops","opLabelKeys","op","needsValue","write","t1","Symbol","for","width","t2","mb","t3","t4","flexWrap","t5","e","next","find","choice","target","t6","operator","select","htmlInput","t7","flex","t8","t9","choice_0","map","t10","placeholder","e_0","minWidth","t11","t12","BooleanFilter","inputLabel","shrink","boolAny","boolTrue","boolFalse","SelectFilter","options","loading","extra","key","setExtra","_temp","option","MultiSelectFilter","selected","filter","includes","chosen","_","_temp4","listbox","style","maxHeight","overflow","params","_temp2","_temp3","option_1","left","right","option_0","RelativeTokenField","onValue","preset","n","counted","found","p","opRelative","p_0","Number","min","RangeFilter","inputType","arity","setOp","a","b","boundType","caption","commit","input","bounds","raw","from","raw_0","to","raw_1","undefined","raw_2","candidate","candidate_0","t13","t14","FilterField","registry","custom","AutoFilterForm","defs"],"sources":["../src/components/AutoFilterForm.tsx"],"sourcesContent":["import {\n  defaultFilterRegistry,\n  type FilterDef,\n  filterLabel,\n  type FilterTypeRegistry,\n  type FilterValue,\n  filterWidgetKind,\n  joinRelativeToken,\n  RELATIVE_PRESET_LABEL_KEYS,\n  RELATIVE_PRESETS,\n  renderRegisteredFilter,\n  splitRelativeToken,\n  type TableLabels,\n  type TableSource,\n} from \"@adapttable/core\";\nimport {\n  filterOpLabel,\n  listFilterValues,\n  useBooleanFilterWidget,\n  useFilterOptions,\n  useRangeFilterWidget,\n  useTextFilterWidget,\n} from \"@adapttable/react\";\nimport {\n  Autocomplete,\n  CircularProgress,\n  FormControl,\n  FormLabel,\n  MenuItem,\n  Stack,\n  TextField,\n} from \"@mui/material\";\nimport type { ReactElement, ReactNode } from \"react\";\n\nimport { ChecklistFilter } from \"./ChecklistFilter\";\n\n/** Above the filter popover (`zIndex: 10050`) so a MenuItem is clickable. */\nconst FILTER_SELECT_SLOTS = {\n  native: false,\n  MenuProps: { sx: { zIndex: 10051 } },\n} as const;\n\n/** The slice of the source the auto-built form reads and writes. */\ntype FilterBag<TRow> = Pick<\n  TableSource<TRow>,\n  \"extra\" | \"setExtra\" | \"setExtras\" | \"allFilteredRows\" | \"facets\"\n>;\n\n/** Props for `AutoFilterForm`. */\nexport interface AutoFilterFormProps<TRow> {\n  /** The resolved declarative definitions, in render order. */\n  defs: readonly FilterDef<TRow>[];\n  /** The filter bag the widgets read from and write to. */\n  source: FilterBag<TRow>;\n  /** Resolved labels for the operator-first range widgets. */\n  labels: Required<TableLabels>;\n  /** Type registry; defaults to the built-ins. */\n  registry?: FilterTypeRegistry;\n}\n\n/** Props for one rendered filter widget. */\ninterface FieldProps<TRow> {\n  def: FilterDef<TRow>;\n  source: FilterBag<TRow>;\n}\n\n/** Field props for the widgets that also render resolved labels. */\ninterface LabeledFieldProps<TRow> extends FieldProps<TRow> {\n  labels: Required<TableLabels>;\n}\n\n/** A scalar filter value as input text (arrays/blanks render empty). */\nfunction scalarText(value: FilterValue): string {\n  return typeof value === \"string\" || typeof value === \"number\"\n    ? String(value)\n    : \"\";\n}\n\nfunction TextFilter<TRow>({\n  def,\n  source,\n  labels,\n}: Readonly<LabeledFieldProps<TRow>>) {\n  const { label, ops, opLabelKeys, op, value, needsValue, write } =\n    useTextFilterWidget(def, source);\n  return (\n    <FormControl component=\"fieldset\" variant=\"standard\" sx={{ width: \"100%\" }}>\n      <FormLabel component=\"legend\" sx={{ mb: 3 }}>\n        {label}\n      </FormLabel>\n      <Stack direction=\"row\" spacing={1} useFlexGap sx={{ flexWrap: \"wrap\" }}>\n        <TextField\n          select\n          size=\"small\"\n          value={op}\n          onChange={(e) => {\n            const next = ops.find((choice) => choice === e.target.value);\n            if (next) write(next, value);\n          }}\n          data-adapttable-part=\"filter-operator\"\n          slotProps={{\n            select: FILTER_SELECT_SLOTS,\n            htmlInput: { \"aria-label\": labels.operator },\n          }}\n          sx={{ flex: \"0 0 8.5rem\", width: \"8.5rem\" }}\n        >\n          {ops.map((choice) => (\n            <MenuItem key={choice} value={choice}>\n              {filterOpLabel(labels, opLabelKeys[choice])}\n            </MenuItem>\n          ))}\n        </TextField>\n        {needsValue && (\n          <TextField\n            size=\"small\"\n            placeholder={def.placeholder}\n            value={value}\n            onChange={(e) => write(op, e.target.value)}\n            slotProps={{\n              htmlInput: {\n                \"aria-label\": labels.value,\n                \"data-adapttable-part\": \"filter-input\",\n              },\n            }}\n            sx={{ flex: \"1 1 7rem\", minWidth: \"7rem\" }}\n          />\n        )}\n      </Stack>\n    </FormControl>\n  );\n}\n\nfunction BooleanFilter<TRow>({\n  def,\n  source,\n  labels,\n}: Readonly<LabeledFieldProps<TRow>>) {\n  const { label, choice, write } = useBooleanFilterWidget(def, source);\n  return (\n    <TextField\n      select\n      size=\"small\"\n      label={label}\n      value={choice}\n      onChange={(e) => {\n        const next = e.target.value;\n        if (next === \"\" || next === \"true\" || next === \"false\") write(next);\n      }}\n      data-adapttable-part=\"filter-select\"\n      slotProps={{\n        select: FILTER_SELECT_SLOTS,\n        inputLabel: { shrink: true },\n      }}\n    >\n      <MenuItem value=\"\">{labels.boolAny}</MenuItem>\n      <MenuItem value=\"true\">{labels.boolTrue}</MenuItem>\n      <MenuItem value=\"false\">{labels.boolFalse}</MenuItem>\n    </TextField>\n  );\n}\n\nfunction SelectFilter<TRow>({ def, source }: Readonly<FieldProps<TRow>>) {\n  // The options source may be an array OR an async loader — never map it\n  // directly. The hook resolves both (and reports loader progress).\n  const { options, loading } = useFilterOptions(def);\n  return (\n    <TextField\n      select\n      size=\"small\"\n      label={filterLabel(def)}\n      value={scalarText(source.extra[def.key])}\n      onChange={(e) => source.setExtra(def.key, e.target.value)}\n      slotProps={{\n        select: FILTER_SELECT_SLOTS,\n        inputLabel: { shrink: true },\n      }}\n    >\n      <MenuItem value=\"\">All</MenuItem>\n      {loading && (\n        <MenuItem value=\"\" disabled>\n          …\n        </MenuItem>\n      )}\n      {options.map((option) => (\n        <MenuItem key={option.value} value={option.value}>\n          {option.label}\n        </MenuItem>\n      ))}\n    </TextField>\n  );\n}\n\nfunction MultiSelectFilter<TRow>({ def, source }: Readonly<FieldProps<TRow>>) {\n  const label = filterLabel(def);\n  const { options, loading } = useFilterOptions(def);\n  const selected = listFilterValues(source.extra[def.key]);\n  const chosen = options.filter((option) => selected.includes(option.value));\n  return (\n    <>\n      {loading ? <CircularProgress color=\"inherit\" size={16} /> : null}\n      <Autocomplete\n        multiple\n        options={[...options]}\n        getOptionLabel={(option) => option.label}\n        isOptionEqualToValue={(left, right) => left.value === right.value}\n        value={chosen}\n        onChange={(_, next) =>\n          source.setExtra(\n            def.key,\n            next.map((option) => option.value)\n          )\n        }\n        loading={loading}\n        slotProps={{\n          listbox: { style: { maxHeight: 240, overflow: \"auto\" } },\n        }}\n        renderInput={(params) => (\n          <TextField {...params} size=\"small\" label={label} />\n        )}\n      />\n    </>\n  );\n}\n\nfunction RelativeTokenField({\n  labels,\n  value,\n  onValue,\n}: Readonly<{\n  labels: Required<TableLabels>;\n  value: string;\n  onValue: (next: string) => void;\n}>) {\n  const { preset, n } = splitRelativeToken(value);\n  const counted = preset === \"last\" || preset === \"next\";\n  return (\n    <>\n      <TextField\n        select\n        size=\"small\"\n        value={preset}\n        onChange={(e) => {\n          const found = RELATIVE_PRESETS.find((p) => p === e.target.value);\n          if (found) onValue(joinRelativeToken(found, n));\n        }}\n        slotProps={{\n          select: FILTER_SELECT_SLOTS,\n          htmlInput: { \"aria-label\": labels.opRelative },\n        }}\n        sx={{ flex: \"1 1 8.5rem\", minWidth: \"8.5rem\" }}\n      >\n        {RELATIVE_PRESETS.map((p) => (\n          <MenuItem key={p} value={p}>\n            {labels[RELATIVE_PRESET_LABEL_KEYS[p]]}\n          </MenuItem>\n        ))}\n      </TextField>\n      {counted && (\n        <TextField\n          size=\"small\"\n          type=\"number\"\n          value={n}\n          onChange={(e) =>\n            onValue(joinRelativeToken(preset, Number(e.target.value)))\n          }\n          slotProps={{\n            htmlInput: { min: 1, \"aria-label\": labels.value },\n          }}\n          sx={{ flex: \"0 0 4.5rem\", width: \"4.5rem\" }}\n        />\n      )}\n    </>\n  );\n}\n\n/**\n * Operator-first range widget: a comparison select, then one value input —\n * or a From/To pair for \"between\". The operator is persisted as `f_<key>Op`.\n */\nfunction RangeFilter<TRow>({\n  def,\n  source,\n  labels,\n}: Readonly<LabeledFieldProps<TRow>>) {\n  const { label, ops, opLabelKeys, inputType, arity, op, setOp, a, b, write } =\n    useRangeFilterWidget(def, source);\n  const boundType = inputType === \"text\" ? \"text\" : inputType;\n  const input = (\n    caption: string,\n    value: string,\n    commit: (raw: string) => void\n  ) => (\n    <TextField\n      size=\"small\"\n      sx={{ flex: \"1 1 7rem\", minWidth: \"7rem\" }}\n      type={boundType}\n      placeholder={caption}\n      value={value}\n      onChange={(e) => commit(e.target.value)}\n      slotProps={{ htmlInput: { \"aria-label\": caption } }}\n    />\n  );\n  let bounds: ReactNode = null;\n  if (arity === \"two\") {\n    bounds = (\n      <>\n        {input(labels.from, a, (raw) => write(op, raw, b))}\n        {input(labels.to, b, (raw) => write(op, a, raw))}\n      </>\n    );\n  } else if (op === \"relative\") {\n    bounds = (\n      <RelativeTokenField\n        labels={labels}\n        value={a}\n        onValue={(raw) => write(op, raw, \"\")}\n      />\n    );\n  } else if (op !== undefined && arity !== \"none\") {\n    bounds = input(labels.value, a, (raw) => write(op, raw, \"\"));\n  }\n  return (\n    <FormControl component=\"fieldset\" variant=\"standard\" sx={{ width: \"100%\" }}>\n      <FormLabel component=\"legend\" sx={{ mb: 3 }}>\n        {label}\n      </FormLabel>\n      <Stack direction=\"row\" spacing={1} useFlexGap sx={{ flexWrap: \"wrap\" }}>\n        <TextField\n          select\n          size=\"small\"\n          value={op ?? \"\"}\n          onChange={(e) => {\n            const next = ops.find((candidate) => candidate === e.target.value);\n            setOp(next);\n            write(next, a, b);\n          }}\n          data-adapttable-part=\"filter-operator\"\n          slotProps={{\n            select: FILTER_SELECT_SLOTS,\n            htmlInput: { \"aria-label\": labels.operator },\n          }}\n          sx={{ flex: \"0 0 8.5rem\", width: \"8.5rem\" }}\n        >\n          <MenuItem value=\"\" />\n          {ops.map((candidate) => (\n            <MenuItem key={candidate} value={candidate}>\n              {filterOpLabel(\n                labels,\n                opLabelKeys[candidate as keyof typeof opLabelKeys]\n              )}\n            </MenuItem>\n          ))}\n        </TextField>\n        {bounds}\n      </Stack>\n    </FormControl>\n  );\n}\n\nfunction FilterField<TRow>({\n  def,\n  source,\n  labels,\n  registry,\n}: Readonly<\n  LabeledFieldProps<TRow> & { registry: FilterTypeRegistry }\n>): ReactElement | null {\n  const custom = renderRegisteredFilter(def, source, labels, registry);\n  if (custom) return custom as ReactElement;\n  switch (filterWidgetKind(def, registry)) {\n    case \"text\":\n      return <TextFilter def={def} source={source} labels={labels} />;\n    case \"boolean\":\n      return <BooleanFilter def={def} source={source} labels={labels} />;\n    case \"select\":\n      return <SelectFilter def={def} source={source} />;\n    case \"multiSelect\":\n      return <MultiSelectFilter def={def} source={source} />;\n    case \"checklist\":\n      return <ChecklistFilter def={def} source={source} labels={labels} />;\n    case \"dateRange\":\n    case \"numberRange\":\n      return <RangeFilter def={def} source={source} labels={labels} />;\n    default:\n      return null;\n  }\n}\n\n/**\n * The auto-built filter form: one MUI widget per declarative definition,\n * reading and writing the source's extra-filter bag (so chips, URL state\n * and — on frontend data — the row predicate all stay in sync). Operator\n * and value share a row; MUI selects stay inline inside the popover.\n *\n * @typeParam TRow - The row type.\n */\nexport function AutoFilterForm<TRow>({\n  defs,\n  source,\n  labels,\n  registry = defaultFilterRegistry,\n}: Readonly<AutoFilterFormProps<TRow>>) {\n  return (\n    <Stack spacing={3}>\n      {defs.map((def) => (\n        <FilterField\n          key={def.key}\n          def={def}\n          source={source}\n          labels={labels}\n          registry={registry}\n        />\n      ))}\n    </Stack>\n  );\n}\n"],"mappings":"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"}