@coocoon/react-awesome-query-builder
Version:
User-friendly query builder for React. Demo: https://ukrbublik.github.io/react-awesome-query-builder
98 lines (91 loc) • 2.85 kB
JavaScript
import * as Widgets from "../components/widgets";
import React from "react";
const {
VanillaFieldSelect,
VanillaConjs,
VanillaButton,
VanillaButtonGroup,
VanillaProvider,
VanillaValueSources,
vanillaConfirm,
VanillaSwitch,
} = Widgets;
export const settings = {
formatField: (field, parts, label2, fieldDefinition, config, isForDisplay) => {
if (isForDisplay)
return label2;
else
return field;
},
renderField: (props) => <VanillaFieldSelect {...props} />,
renderOperator: (props) => <VanillaFieldSelect {...props} />,
renderFunc: (props) => <VanillaFieldSelect {...props} />,
renderConjs: (props) => <VanillaConjs {...props} />,
renderSwitch: (props) => <VanillaSwitch {...props} />,
renderButton: (props) => <VanillaButton {...props} />,
renderButtonGroup: (props) => <VanillaButtonGroup {...props} />,
renderProvider: (props) => <VanillaProvider {...props} />,
renderValueSources: (props) => <VanillaValueSources {...props} />,
renderConfirm: vanillaConfirm,
renderSwitchPrefix: () => <>{"Conditions"}</>,
valueSourcesInfo: {
value: {},
},
fieldSeparator: ".",
fieldSeparatorDisplay: ".",
renderSize: "small",
maxLabelsLength: 100,
canReorder: true,
canRegroup: true,
showLock: false,
canDeleteLocked: false,
showNot: true,
canLeaveEmptyGroup: true,
shouldCreateEmptyGroup: false,
forceShowConj: false,
canShortMongoQuery: true,
removeEmptyGroupsOnLoad: true,
removeIncompleteRulesOnLoad: false,
groupActionsPosition: "topRight", // oneOf [topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight]
setOpOnChangeField: ["keep", "default"], // 'default' (default if present), 'keep' (keep prev from last field), 'first', 'none'
groupOperators: ["some", "all", "none"],
convertableWidgets: {
"number": ["slider", "rangeslider"],
"slider": ["number", "rangeslider"],
"rangeslider": ["number", "slider"],
"text": ["textarea"],
"textarea": ["text"]
},
// localization
locale: {
moment: "en",
},
valueLabel: "Value",
valuePlaceholder: "Value",
fieldLabel: "Field",
operatorLabel: "Operator",
funcLabel: "Function",
fieldPlaceholder: "Select field",
funcPlaceholder: "Select function",
operatorPlaceholder: "Select operator",
lockLabel: "Lock",
lockedLabel: "Locked",
deleteLabel: null,
addGroupLabel: "Add group",
addCaseLabel: "Add condition",
addDefaultCaseLabel: "Add default condition",
defaultCaseLabel: "Default:",
addRuleLabel: "Add rule",
addSubRuleLabel: "Add sub rule",
delGroupLabel: "",
notLabel: "Not",
valueSourcesPopupTitle: "Select value source",
removeRuleConfirmOptions: null,
removeGroupConfirmOptions: null,
defaultGroupConjunction: "AND",
jsonLogic: {
groupVarKey: "var",
altVarKey: "var",
lockedOp: "locked"
}
};