UNPKG

@react-awesome-query-builder/antd

Version:
144 lines (128 loc) 4.51 kB
import React from "react"; import { BasicConfig, Utils } from "@react-awesome-query-builder/ui"; import en_US from "antd/es/locale/en_US"; import {default as AntdWidgets} from "../widgets"; import { normalizeListValues } from "../utils/stuff"; import { generateCssVars } from "../utils/theming"; const settings = { ...BasicConfig.settings, renderField: (props, {RCE, W: {FieldSelect}}) => RCE(FieldSelect, props), // renderField: (props, {RCE, W: {FieldDropdown}}) => RCE(FieldDropdown, props), // renderField: (props, {RCE, W: {FieldCascader}}) => RCE(FieldCascader, props), // renderField: (props, {RCE, W: {FieldTreeSelect}}) => RCE(FieldTreeSelect, props), renderOperator: (props, {RCE, W: {FieldSelect}}) => RCE(FieldSelect, props), // renderOperator: (props, {RCE, W: {FieldDropdown}}) => RCE(FieldDropdown, props), renderFunc: (props, {RCE, W: {FieldSelect}}) => RCE(FieldSelect, props), renderConjs: (props, {RCE, W: {Conjs}}) => RCE(Conjs, props), renderSwitch: (props, {RCE, W: {Switch}}) => RCE(Switch, props), renderButton: (props, {RCE, W: {Button}}) => RCE(Button, props), renderIcon: (props, {RCE, W: {Icon}}) => RCE(Icon, props), renderButtonGroup: (props, {RCE, W: {ButtonGroup}}) => RCE(ButtonGroup, props), renderValueSources: (props, {RCE, W: {ValueSources}}) => RCE(ValueSources, props), renderProvider: (props, {RCE, W: {Provider}}) => RCE(Provider, props), useConfirm: ({W: {useConfirm}}) => useConfirm(), renderConfirm: (props, {W: {Confirm}}) => Confirm(props), // localization locale: { ...BasicConfig.settings.locale, // antd: en_US, }, removeInvalidMultiSelectValuesOnLoad: false, // can be removed manually in UI normalizeListValues: function(...args) { return this.utils.normalizeListValues.call(null, ...args); }, }; const widgets = { ...BasicConfig.widgets, text: { ...BasicConfig.widgets.text, factory: (props, {RCE, W: {TextWidget}}) => RCE(TextWidget, props), }, textarea: { ...BasicConfig.widgets.textarea, factory: (props, {RCE, W: {TextAreaWidget}}) => RCE(TextAreaWidget, props), }, number: { ...BasicConfig.widgets.number, factory: (props, {RCE, W: {NumberWidget}}) => RCE(NumberWidget, props), }, price: { ...BasicConfig.widgets.price, factory: (props, {RCE, W: {PriceWidget}}) => RCE(PriceWidget, props), }, multiselect: { ...BasicConfig.widgets.multiselect, factory: (props, {RCE, W: {AutocompleteWidget, MultiSelectWidget}}) => { return (props.asyncFetch || props.showSearch) ? RCE(AutocompleteWidget, {...props, multiple: true}) : RCE(MultiSelectWidget, props); }, }, select: { ...BasicConfig.widgets.select, factory: (props, {RCE, W: {AutocompleteWidget, SelectWidget}}) => { return (props.asyncFetch || props.showSearch || props.allowCustomValues) ? RCE(AutocompleteWidget, props) : RCE(SelectWidget, props); }, }, slider: { ...BasicConfig.widgets.slider, factory: (props, {RCE, W: {SliderWidget}}) => RCE(SliderWidget, props), }, boolean: { ...BasicConfig.widgets.boolean, factory: (props, {RCE, W: {BooleanWidget}}) => RCE(BooleanWidget, props), }, date: { ...BasicConfig.widgets.date, factory: (props, {RCE, W: {DateWidget}}) => RCE(DateWidget, props), }, time: { ...BasicConfig.widgets.time, factory: (props, {RCE, W: {TimeWidget}}) => RCE(TimeWidget, props), }, datetime: { ...BasicConfig.widgets.datetime, factory: (props, {RCE, W: {DateTimeWidget}}) => RCE(DateTimeWidget, props), }, rangeslider: { ...BasicConfig.widgets.rangeslider, factory: (props, {RCE, W: {RangeWidget}}) => RCE(RangeWidget, props), }, treeselect: { ...BasicConfig.widgets.treeselect, factory: (props, {RCE, W: {TreeSelectWidget}}) => RCE(TreeSelectWidget, props), }, treemultiselect: { ...BasicConfig.widgets.treemultiselect, factory: (props, {RCE, W: {TreeSelectWidget}}) => RCE(TreeSelectWidget, {...props, treeMultiple: true}), }, }; const types = { ...BasicConfig.types, }; const ctx = { ...BasicConfig.ctx, utils: { ...BasicConfig.ctx.utils, normalizeListValues, }, W: { ...BasicConfig.ctx.W, ...AntdWidgets, }, generateCssVars, }; let config = { ...BasicConfig, ctx, types, widgets, settings, }; config = Utils.ConfigMixins.addMixins(config, [ "rangeslider", "treeselect", "treemultiselect", "rangeable__date", ]); export default config;