{"version":3,"file":"react-querybuilder_mantine.mjs","names":[],"sources":["../src/MantineActionElement.tsx","../src/MantineNotToggle.tsx","../src/MantineShiftActions.tsx","../src/utils.ts","../src/MantineValueEditor.tsx","../src/MantineValueSelector.tsx","../src/index.ts"],"sourcesContent":["import type { ButtonProps } from '@mantine/core';\nimport { Button } from '@mantine/core';\nimport * as React from 'react';\nimport type { ActionProps } from 'react-querybuilder';\n\n/**\n * @group Props\n */\nexport interface MantineActionProps extends ActionProps, Partial<ButtonProps> {}\n\n/**\n * @group Components\n */\nexport const MantineActionElement = ({\n  className,\n  handleOnClick,\n  label,\n  title,\n  disabled,\n  disabledTranslation,\n  testID,\n  rules: _rules,\n  ruleOrGroup: _rg,\n  path: _path,\n  level: _level,\n  context: _context,\n  validation: _validation,\n  schema: _schema,\n  ...otherProps\n}: MantineActionProps): React.JSX.Element => (\n  <Button\n    {...otherProps}\n    data-testid={testID}\n    type=\"button\"\n    className={className}\n    title={disabledTranslation && disabled ? disabledTranslation.title : title}\n    onClick={(e: React.MouseEvent) => handleOnClick(e)}\n    disabled={disabled && !disabledTranslation}>\n    {disabledTranslation && disabled ? disabledTranslation.label : label}\n  </Button>\n);\n","import type { SwitchProps } from '@mantine/core';\nimport { Switch } from '@mantine/core';\nimport * as React from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Props\n */\nexport interface MantineNotToggleProps extends NotToggleProps, Partial<SwitchProps> {}\n\n/**\n * @group Components\n */\nexport const MantineNotToggle = ({\n  className,\n  handleOnChange,\n  label,\n  checked,\n  title,\n  disabled,\n  testID,\n  path: _path,\n  level: _level,\n  context: _context,\n  validation: _validation,\n  schema: _schema,\n  ruleGroup: _ruleGroup,\n  ...otherProps\n}: MantineNotToggleProps): React.JSX.Element => (\n  <Switch\n    {...otherProps}\n    data-testid={testID}\n    label={label}\n    className={className}\n    title={title}\n    disabled={disabled}\n    checked={checked}\n    onChange={e => handleOnChange(e.target.checked)}\n  />\n);\n","import { Button } from '@mantine/core';\nimport * as React from 'react';\nimport type { ShiftActionsProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const MantineShiftActions = ({\n  shiftUp,\n  shiftDown,\n  shiftUpDisabled,\n  shiftDownDisabled,\n  disabled,\n  className,\n  labels,\n  titles,\n  testID,\n}: ShiftActionsProps): React.JSX.Element => (\n  <div data-testid={testID} className={className}>\n    <Button\n      type=\"button\"\n      size=\"compact-xs\"\n      disabled={disabled || shiftUpDisabled}\n      onClick={shiftUp}\n      title={titles?.shiftUp}>\n      {labels?.shiftUp}\n    </Button>\n    <Button\n      type=\"button\"\n      size=\"compact-xs\"\n      disabled={disabled || shiftDownDisabled}\n      onClick={shiftDown}\n      title={titles?.shiftDown}>\n      {labels?.shiftDown}\n    </Button>\n  </div>\n);\n","import type { ComboboxData } from '@mantine/core';\nimport type { FullOption, FullOptionList } from 'react-querybuilder';\nimport { isOptionGroupArray, parseNumber, uniqOptList } from 'react-querybuilder';\n\nexport const optionListToComboboxData = (list: FullOptionList<FullOption>): ComboboxData => {\n  const uniqList = uniqOptList(list);\n  return isOptionGroupArray(uniqList)\n    ? uniqList.map(og => ({ ...og, group: og.label, items: og.options }))\n    : uniqList.map(opt => ({ name: opt.name, value: opt.name, label: opt.label }));\n};\n\n// oxlint-disable-next-line typescript/no-explicit-any\nexport const toNumberInputValue = (val: number | string): any => {\n  if (typeof val === 'number') return val;\n  const valParsed = parseNumber(val, { parseNumbers: 'native' });\n  if (!Number.isNaN(valParsed)) return valParsed;\n  return '';\n};\n","import { Checkbox, NumberInput, Radio, Switch, Textarea, TextInput } from '@mantine/core';\nimport type { DatesRangeValue, DateValue } from '@mantine/dates';\nimport { DatePickerInput, DateTimePicker } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { getFirstOption, useValueEditor, ValueEditor } from 'react-querybuilder';\nimport { toNumberInputValue } from './utils';\n\n/**\n * @group Props\n */\nexport interface MantineValueEditorProps extends ValueEditorProps {\n  extraProps?: Record<string, unknown>;\n}\n\nconst dateFormat = 'YYYY-MM-DD';\nconst dateTimeLocalFormat = `${dateFormat}THH:mm:ss`;\nconst withinPortalFalse = { withinPortal: false } as const;\n\n/**\n * @group Components\n */\nexport const MantineValueEditor = (allProps: MantineValueEditorProps): React.JSX.Element | null => {\n  const {\n    fieldData,\n    operator,\n    value,\n    handleOnChange,\n    title,\n    className,\n    type,\n    values = [],\n    listsAsArrays,\n    separator,\n    valueSource: _vs,\n    disabled,\n    testID,\n    selectorComponent: SelectorComponent = allProps.schema.controls.valueSelector,\n    validation: _validation,\n    extraProps,\n    inputType,\n    parseNumbers: _parseNumbers,\n    ...propsForValueSelector\n  } = allProps;\n\n  const {\n    valueAsArray,\n    multiValueHandler,\n    valueListItemClassName,\n    inputTypeCoerced,\n    bigIntValueHandler,\n  } = useValueEditor(allProps);\n\n  if (operator === 'null' || operator === 'notNull') {\n    return null;\n  }\n\n  const placeHolderText = fieldData?.placeholder ?? '';\n\n  if (\n    (operator === 'between' || operator === 'notBetween') &&\n    (type === 'select' || type === 'text') &&\n    // Date and time ranges are handled differently in Mantine--see below\n    inputTypeCoerced !== 'date'\n  ) {\n    const editors = ['from', 'to'].map((key, i) => {\n      if (inputTypeCoerced === 'number') {\n        return (\n          <NumberInput\n            key={key}\n            placeholder={placeHolderText}\n            value={toNumberInputValue(valueAsArray[i])}\n            className={`${valueListItemClassName} input`}\n            disabled={disabled}\n            onChange={v => multiValueHandler(toNumberInputValue(v), i)}\n            {...extraProps}\n          />\n        );\n      }\n      if (inputTypeCoerced === 'datetime-local') {\n        const dateTime = dayjs(valueAsArray[i]);\n        const dateTimeValue = dateTime.isValid() ? dateTime.toDate() : null;\n        return (\n          <DateTimePicker\n            key={key}\n            value={dateTimeValue}\n            className={valueListItemClassName}\n            disabled={disabled}\n            withSeconds\n            onChange={d =>\n              multiValueHandler(\n                d ? dayjs(d).format(dateTimeLocalFormat) : /* v8 ignore next -- @preserve */ '',\n                i\n              )\n            }\n            popoverProps={withinPortalFalse}\n            {...extraProps}\n          />\n        );\n      }\n      if (type === 'text') {\n        return (\n          <TextInput\n            key={key}\n            type={inputTypeCoerced}\n            placeholder={placeHolderText}\n            value={valueAsArray[i] ?? ''}\n            className={`${valueListItemClassName} input`}\n            disabled={disabled}\n            onChange={e => multiValueHandler(e.target.value, i)}\n            {...extraProps}\n          />\n        );\n      }\n      return (\n        <SelectorComponent\n          key={key}\n          {...propsForValueSelector}\n          className={valueListItemClassName}\n          handleOnChange={v => multiValueHandler(v, i)}\n          disabled={disabled}\n          value={valueAsArray[i] ?? getFirstOption(values)}\n          options={values}\n          listsAsArrays={listsAsArrays}\n        />\n      );\n    });\n\n    return (\n      <span data-testid={testID} className={className} title={title}>\n        {editors[0]}\n        {separator}\n        {editors[1]}\n      </span>\n    );\n  }\n\n  switch (type) {\n    case 'select':\n    case 'multiselect':\n      return <ValueEditor {...allProps} skipHook />;\n\n    case 'textarea':\n      return (\n        <Textarea\n          className={className}\n          value={value}\n          title={title}\n          placeholder={placeHolderText}\n          disabled={disabled}\n          onChange={e => handleOnChange(e.target.value)}\n          {...extraProps}\n        />\n      );\n\n    case 'switch':\n      return (\n        <Switch\n          className={className}\n          title={title}\n          checked={value}\n          disabled={disabled}\n          onChange={e => handleOnChange(e.target.checked)}\n          {...extraProps}\n        />\n      );\n\n    case 'checkbox':\n      return (\n        <Checkbox\n          className={className}\n          title={title}\n          checked={value}\n          disabled={disabled}\n          onChange={e => handleOnChange(e.target.checked)}\n          {...extraProps}\n        />\n      );\n\n    case 'radio':\n      return (\n        <Radio.Group\n          className={className}\n          title={title}\n          value={value}\n          onChange={handleOnChange}\n          {...extraProps}>\n          {values.map(v => (\n            <Radio key={v.name} value={v.name} label={v.label} disabled={disabled} />\n          ))}\n        </Radio.Group>\n      );\n  }\n\n  if (inputTypeCoerced === 'date' || inputTypeCoerced === 'datetime-local') {\n    if (operator === 'between' || operator === 'notBetween') {\n      const twoDateArray = [null, null].map((defaultValue, i) => {\n        if (!valueAsArray[i]) return defaultValue;\n        let date = dayjs(valueAsArray[i]);\n        if (!date.isValid()) {\n          date = dayjs(`${dayjs().format('YYYY-MM-DD')}T${valueAsArray[i]}`);\n        }\n        return date.isValid() ? date.toDate() : defaultValue;\n      }) as [DateValue, DateValue];\n\n      return (\n        <DatePickerInput\n          data-testid={testID}\n          type=\"range\"\n          value={twoDateArray}\n          className={className}\n          disabled={disabled}\n          onChange={(dates: DatesRangeValue) => {\n            const dateArray = dates.map(d => (d ? dayjs(d).format(dateFormat) : ''));\n            handleOnChange(listsAsArrays ? dateArray : dateArray.join(','));\n          }}\n          popoverProps={withinPortalFalse}\n          {...extraProps}\n        />\n      );\n    }\n\n    if (inputTypeCoerced === 'datetime-local') {\n      return (\n        <DateTimePicker\n          data-testid={testID}\n          value={!!value && dayjs(value).isValid() ? dayjs(value).toDate() : null}\n          className={className}\n          disabled={disabled}\n          withSeconds\n          onChange={d =>\n            handleOnChange(\n              d ? dayjs(d).format(dateTimeLocalFormat) : /* v8 ignore next -- @preserve */ ''\n            )\n          }\n          popoverProps={withinPortalFalse}\n          {...extraProps}\n        />\n      );\n    }\n\n    return (\n      <DatePickerInput\n        data-testid={testID}\n        type=\"default\"\n        value={!!value && dayjs(value).isValid() ? dayjs(value).toDate() : null}\n        className={className}\n        disabled={disabled}\n        onChange={d =>\n          handleOnChange(d ? dayjs(d).format(dateFormat) : /* v8 ignore next -- @preserve */ '')\n        }\n        popoverProps={withinPortalFalse}\n        {...extraProps}\n      />\n    );\n  }\n\n  if (inputType === 'bigint') {\n    return (\n      <TextInput\n        data-testid={testID}\n        type={inputTypeCoerced}\n        placeholder={placeHolderText}\n        value={`${value}`}\n        title={title}\n        className={className}\n        disabled={disabled}\n        onChange={e => bigIntValueHandler(e.target.value)}\n        {...extraProps}\n      />\n    );\n  }\n\n  if (inputTypeCoerced === 'number') {\n    return (\n      <NumberInput\n        data-testid={testID}\n        title={title}\n        className={className}\n        placeholder={placeHolderText}\n        disabled={disabled}\n        value={toNumberInputValue(value)}\n        onChange={v => handleOnChange(toNumberInputValue(v))}\n        {...extraProps}\n      />\n    );\n  }\n\n  return (\n    <TextInput\n      data-testid={testID}\n      title={title}\n      className={className}\n      placeholder={placeHolderText}\n      type={inputTypeCoerced}\n      disabled={disabled}\n      value={value}\n      onChange={e => handleOnChange(e.target.value)}\n      {...extraProps}\n    />\n  );\n};\n","import type { MultiSelectProps, SelectProps } from '@mantine/core';\nimport { MultiSelect, Select } from '@mantine/core';\nimport * as React from 'react';\nimport type { VersatileSelectorProps } from 'react-querybuilder';\nimport { useValueSelector } from 'react-querybuilder';\nimport { optionListToComboboxData } from './utils';\n\n/**\n * @group Props\n */\nexport type MantineValueSelectorProps = VersatileSelectorProps & Partial<SelectProps>;\n\n/**\n * @group Components\n */\nexport const MantineValueSelector = ({\n  className,\n  handleOnChange,\n  options,\n  value,\n  title,\n  disabled,\n  multiple,\n  listsAsArrays,\n  testID,\n  field: _field,\n  fieldData: _fieldData,\n  rule: _rule,\n  ruleGroup: _ruleGroup,\n  rules: _rules,\n  path: _path,\n  level: _level,\n  context: _context,\n  validation: _validation,\n  schema: _schema,\n  ...otherProps\n}: MantineValueSelectorProps): React.JSX.Element => {\n  const { onChange, val } = useValueSelector({ handleOnChange, listsAsArrays, multiple, value });\n\n  const data = React.useMemo(() => optionListToComboboxData(options), [options]);\n\n  // v8 ignore next\n  const changeHandler = (v: string | string[] | null) =>\n    onChange(v ?? val ?? /* v8 ignore start -- @preserve */ '' /* v8 ignore stop -- @preserve */);\n\n  return multiple ? (\n    <MultiSelect\n      comboboxProps={{ withinPortal: false }}\n      {...(otherProps as MultiSelectProps)}\n      data-testid={testID}\n      title={title}\n      className={className}\n      data={data}\n      disabled={disabled}\n      value={val as string[]}\n      onChange={changeHandler}\n    />\n  ) : (\n    <Select\n      comboboxProps={{ withinPortal: false }}\n      {...otherProps}\n      data-testid={testID}\n      title={title}\n      className={className}\n      value={val as string}\n      data={data}\n      disabled={disabled}\n      onChange={changeHandler}\n    />\n  );\n};\n","import type {\n  ControlElementsProp,\n  FullField,\n  QueryBuilderContextProvider,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { MantineActionElement } from './MantineActionElement';\nimport { MantineNotToggle } from './MantineNotToggle';\nimport { MantineShiftActions } from './MantineShiftActions';\nimport { MantineValueEditor } from './MantineValueEditor';\nimport { MantineValueSelector } from './MantineValueSelector';\n\nexport * from './MantineActionElement';\nexport * from './MantineNotToggle';\nexport * from './MantineShiftActions';\nexport * from './MantineValueEditor';\nexport * from './MantineValueSelector';\n\n/**\n * @group Props\n */\nexport const mantineControlElements: ControlElementsProp<FullField, string> = {\n  actionElement: MantineActionElement,\n  notToggle: MantineNotToggle,\n  shiftActions: MantineShiftActions,\n  valueEditor: MantineValueEditor,\n  valueSelector: MantineValueSelector,\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderMantine: QueryBuilderContextProvider = getCompatContextProvider({\n  controlElements: mantineControlElements,\n});\n"],"mappings":"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"}