@react-querybuilder/bootstrap 7.0.2 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,6 +23,7 @@ declare const bootstrapControlElements: {
23
23
  };
24
24
  };
25
25
  declare const bootstrapControlClassnames: {
26
+ actionElement: string;
26
27
  addGroup: string;
27
28
  addRule: string;
28
29
  cloneGroup: string;
@@ -31,11 +32,8 @@ declare const bootstrapControlClassnames: {
31
32
  lockRule: string;
32
33
  removeGroup: string;
33
34
  removeRule: string;
34
- combinators: string;
35
- fields: string;
36
- operators: string;
37
35
  value: string;
38
- valueSource: string;
36
+ valueSelector: string;
39
37
  };
40
38
  declare const bootstrapTranslations: {
41
39
  removeGroup: {
@@ -167,19 +167,17 @@ var bootstrapControlElements = {
167
167
  valueEditor: BootstrapValueEditor
168
168
  };
169
169
  var bootstrapControlClassnames = {
170
- addGroup: "btn btn-secondary btn-sm",
171
- addRule: "btn btn-primary btn-sm",
172
- cloneGroup: "btn btn-secondary btn-sm",
173
- cloneRule: "btn btn-secondary btn-sm",
174
- lockGroup: "btn btn-secondary btn-sm",
175
- lockRule: "btn btn-secondary btn-sm",
176
- removeGroup: "btn btn-danger btn-sm",
177
- removeRule: "btn btn-danger btn-sm",
178
- combinators: "form-select form-select-sm",
179
- fields: "form-select form-select-sm",
180
- operators: "form-select form-select-sm",
170
+ actionElement: "btn btn-sm",
171
+ addGroup: "btn-secondary",
172
+ addRule: "btn-primary",
173
+ cloneGroup: "btn-secondary",
174
+ cloneRule: "btn-secondary",
175
+ lockGroup: "btn-secondary",
176
+ lockRule: "btn-secondary",
177
+ removeGroup: "btn-danger",
178
+ removeRule: "btn-danger",
181
179
  value: "form-control form-control-sm",
182
- valueSource: "form-select form-select-sm"
180
+ valueSelector: "form-select form-select-sm"
183
181
  };
184
182
  var bootstrapTranslations = {
185
183
  removeGroup: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-x" }) },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,SAAuB;AAEvB,IAAAC,6BAAyC;;;ACFzC,YAAuB;AACvB,mBAAsB;AAGf,IAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAsB;AACpB,QAAM,SAAK,oBAAM;AAEjB,SACE,oCAAC,SAAI,WAAW,iCAAiC,SAAS,MACxD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAU;AAAA,MACV,MAAK;AAAA,MACL,UAAU,OAAK,eAAe,EAAE,OAAO,OAAO;AAAA,MAC9C,SAAS,CAAC,CAAC;AAAA,MACX;AAAA;AAAA,EACF,GACA,oCAAC,WAAM,OAAc,SAAS,IAAI,WAAU,sBACzC,KACH,CACF;AAEJ;AAEA,mBAAmB,cAAc;;;AC/BjC,IAAAC,SAAuB;AAEvB,gCAMO;AAEA,IAAM,uBAAuB,CAAC,UAA4B;AAC/D,QAAM,EAAE,cAAc,kBAAkB,QAAI,0CAAe;AAAA,IACzD,gBAAgB,MAAM;AAAA,IACtB,WAAW,MAAM;AAAA,IACjB,UAAU,MAAM;AAAA,IAChB,OAAO,MAAM;AAAA,IACb,MAAM,MAAM;AAAA,IACZ,eAAe,MAAM;AAAA,IACrB,cAAc,MAAM;AAAA,IACpB,QAAQ,MAAM;AAAA,EAChB,CAAC;AAED,QAAM,EAAE,mBAAmB,oBAAoB,wCAAc,IAAI;AAEjE,MAAI,MAAM,aAAa,UAAU,MAAM,aAAa,WAAW;AAC7D,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,MAAM,WAAW,eAAe;AAExD,OACG,MAAM,aAAa,aAAa,MAAM,aAAa,kBACnD,MAAM,SAAS,YAAY,MAAM,SAAS,SAC3C;AACA,UAAM,UAAU,CAAC,QAAQ,IAAI,EAAE,IAAI,CAAC,KAAK,MAAM;AAC7C,UAAI,MAAM,SAAS,QAAQ;AACzB,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,MAAM,MAAM,aAAa;AAAA,YACzB,aAAa;AAAA,YACb,OAAO,aAAa,CAAC,KAAK;AAAA,YAC1B,WAAW,GAAG,6CAAmB,aAAa;AAAA,YAC9C,UAAU,MAAM;AAAA,YAChB,UAAU,OAAK,kBAAkB,EAAE,OAAO,OAAO,CAAC;AAAA;AAAA,QACpD;AAAA,MAEJ;AACA,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW,GAAG,6CAAmB,aAAa;AAAA,UAC9C,gBAAgB,OAAK,kBAAkB,GAAG,CAAC;AAAA,UAC3C,UAAU,MAAM;AAAA,UAChB,OAAO,aAAa,CAAC,SAAK,0CAAe,MAAM,MAAM;AAAA,UACrD,SAAS,MAAM,UAAU,CAAC;AAAA,UAC1B,eAAe,MAAM;AAAA;AAAA,MACvB;AAAA,IAEJ,CAAC;AAED,WACE,qCAAC,UAAK,eAAa,MAAM,QAAQ,WAAW,6CAAmB,OAAO,OAAO,MAAM,SAChF,QAAQ,CAAC,GACT,MAAM,WACN,QAAQ,CAAC,CACZ;AAAA,EAEJ;AAEA,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AAAA,IACL,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAQ;AAAA,UACP,GAAG;AAAA,UACJ,WAAW,GAAG,MAAM,SAAS;AAAA;AAAA,MAC/B;AAAA,IAGJ,KAAK;AACH,aACE,qCAAC,UAAK,WAAW,gCAAgC,MAAM,SAAS,MAC9D;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,OAAO,MAAM;AAAA,UACb,UAAU,MAAM;AAAA,UAChB,UAAU,OAAK,MAAM,eAAe,EAAE,OAAO,OAAO;AAAA,UACpD,SAAS,CAAC,CAAC,MAAM;AAAA;AAAA,MACnB,CACF;AAAA,IAGJ,KAAK;AACH,aAAO,qCAAC,yCAAY,UAAQ,MAAE,GAAG,OAAO,WAAW,oBAAoB,MAAM,SAAS,IAAI;AAAA,IAE5F,KAAK;AACH,aACE,qCAAC,UAAK,OAAO,MAAM,OAAO,WAAW,6CAAmB,SACrD,MAAM,QAAQ,IAAI,OACjB,qCAAC,SAAI,KAAK,EAAE,MAAM,WAAU,kCAC1B;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,IAAI,EAAE;AAAA,UACN,OAAO,EAAE;AAAA,UACT,SAAS,MAAM,UAAU,EAAE;AAAA,UAC3B,UAAU,MAAM;AAAA,UAChB,UAAU,OAAK,MAAM,eAAe,EAAE,OAAO,KAAK;AAAA;AAAA,MACpD,GACA,qCAAC,WAAM,WAAU,oBAAmB,SAAS,EAAE,QAC5C,EAAE,KACL,CACF,CACD,CACH;AAAA,EAEN;AAEA,SAAO,qCAAC,yCAAY,UAAQ,MAAE,GAAG,OAAO;AAC1C;AAEA,qBAAqB,cAAc;;;AFpH5B,IAAM,2BAA2B;AAAA,EACtC,WAAW;AAAA,EACX,aAAa;AACf;AAEO,IAAM,6BAA6B;AAAA,EACxC,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,aAAa;AACf;AAEO,IAAM,wBAAwB;AAAA,EACnC,aAAa,EAAE,OAAO,qCAAC,OAAE,WAAU,WAAU,EAAG;AAAA,EAChD,YAAY,EAAE,OAAO,qCAAC,OAAE,WAAU,WAAU,EAAG;AAAA,EAC/C,WAAW,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACjD,gBAAgB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACtD,YAAY,EAAE,OAAO,qCAAC,OAAE,WAAU,uBAAsB,EAAG;AAAA,EAC3D,WAAW,EAAE,OAAO,qCAAC,OAAE,WAAU,gBAAe,EAAG;AAAA,EACnD,UAAU,EAAE,OAAO,qCAAC,OAAE,WAAU,gBAAe,EAAG;AAAA,EAClD,mBAAmB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACzD,kBAAkB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACxD,eAAe,EAAE,OAAO,qCAAC,OAAE,WAAU,4BAA2B,EAAG;AAAA,EACnE,iBAAiB,EAAE,OAAO,qCAAC,OAAE,WAAU,8BAA6B,EAAG;AACzE;AAEO,IAAM,4BAAwB,qDAAyB;AAAA,EAC5D,KAAK;AAAA,EACL,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,cAAc;AAChB,CAAC;","names":["React","import_react_querybuilder","React"]}
1
+ {"version":3,"sources":["../../src/index.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n value: 'form-control form-control-sm',\n valueSelector: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","import_react_querybuilder","React"]}
@@ -23,6 +23,7 @@ declare const bootstrapControlElements: {
23
23
  };
24
24
  };
25
25
  declare const bootstrapControlClassnames: {
26
+ actionElement: string;
26
27
  addGroup: string;
27
28
  addRule: string;
28
29
  cloneGroup: string;
@@ -31,11 +32,8 @@ declare const bootstrapControlClassnames: {
31
32
  lockRule: string;
32
33
  removeGroup: string;
33
34
  removeRule: string;
34
- combinators: string;
35
- fields: string;
36
- operators: string;
37
35
  value: string;
38
- valueSource: string;
36
+ valueSelector: string;
39
37
  };
40
38
  declare const bootstrapTranslations: {
41
39
  removeGroup: {
@@ -1,2 +1,2 @@
1
- "use strict";var x=Object.create;var u=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var B=(e,t)=>{for(var l in t)u(e,l,{get:t[l],enumerable:!0})},N=(e,t,l,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of A(t))!E.call(e,n)&&n!==l&&u(e,n,{get:()=>t[n],enumerable:!(i=T(t,n))||i.enumerable});return e};var y=(e,t,l)=>(l=e!=null?x(R(e)):{},N(t||!e||!e.__esModule?u(l,"default",{value:e,enumerable:!0}):l,e)),V=e=>N(u({},"__esModule",{value:!0}),e);var G={};B(G,{BootstrapNotToggle:()=>d,BootstrapValueEditor:()=>f,QueryBuilderBootstrap:()=>w,bootstrapControlClassnames:()=>p,bootstrapControlElements:()=>v,bootstrapTranslations:()=>C});module.exports=V(G);var r=y(require("react")),g=require("react-querybuilder");var b=y(require("react")),k=require("react"),d=({className:e,handleOnChange:t,title:l,label:i,checked:n,disabled:o})=>{let c=(0,k.useId)();return b.createElement("div",{className:`form-check-inline form-switch ${e}`},b.createElement("input",{id:c,className:"form-check-input",type:"checkbox",onChange:m=>t(m.target.checked),checked:!!n,disabled:o}),b.createElement("label",{title:l,htmlFor:c,className:"form-check-label"},i))};d.displayName="BootstrapNotToggle";var s=y(require("react")),a=require("react-querybuilder"),f=e=>{let{valueAsArray:t,multiValueHandler:l}=(0,a.useValueEditor)({handleOnChange:e.handleOnChange,inputType:e.inputType,operator:e.operator,value:e.value,type:e.type,listsAsArrays:e.listsAsArrays,parseNumbers:e.parseNumbers,values:e.values}),{selectorComponent:i=a.ValueSelector}=e;if(e.operator==="null"||e.operator==="notNull")return null;let n=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){let o=["from","to"].map((c,m)=>e.type==="text"?s.createElement("input",{key:c,type:e.inputType||"text",placeholder:n,value:t[m]??"",className:`${a.standardClassnames.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:h=>l(h.target.value,m)}):s.createElement(i,{...e,key:c,className:`${a.standardClassnames.valueListItem} form-select form-select-sm`,handleOnChange:h=>l(h,m),disabled:e.disabled,value:t[m]??(0,a.getFirstOption)(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays}));return s.createElement("span",{"data-testid":e.testID,className:a.standardClassnames.value,title:e.title},o[0],e.separator,o[1])}switch(e.type){case"select":case"multiselect":return s.createElement(a.ValueEditor,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return s.createElement("span",{className:`custom-control custom-switch ${e.className}`},s.createElement("input",{type:"checkbox",className:"form-check-input custom-control-input",title:e.title,disabled:e.disabled,onChange:o=>e.handleOnChange(o.target.checked),checked:!!e.value}));case"checkbox":return s.createElement(a.ValueEditor,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return s.createElement("span",{title:e.title,className:a.standardClassnames.value},e.values?.map(o=>s.createElement("div",{key:o.name,className:"form-check form-check-inline"},s.createElement("input",{className:"form-check-input",type:"radio",id:o.name,value:o.name,checked:e.value===o.name,disabled:e.disabled,onChange:c=>e.handleOnChange(c.target.value)}),s.createElement("label",{className:"form-check-label",htmlFor:o.name},o.label))))}return s.createElement(a.ValueEditor,{skipHook:!0,...e})};f.displayName="BootstrapValueEditor";var v={notToggle:d,valueEditor:f},p={addGroup:"btn btn-secondary btn-sm",addRule:"btn btn-primary btn-sm",cloneGroup:"btn btn-secondary btn-sm",cloneRule:"btn btn-secondary btn-sm",lockGroup:"btn btn-secondary btn-sm",lockRule:"btn btn-secondary btn-sm",removeGroup:"btn btn-danger btn-sm",removeRule:"btn btn-danger btn-sm",combinators:"form-select form-select-sm",fields:"form-select form-select-sm",operators:"form-select form-select-sm",value:"form-control form-control-sm",valueSource:"form-select form-select-sm"},C={removeGroup:{label:r.createElement("i",{className:"bi bi-x"})},removeRule:{label:r.createElement("i",{className:"bi bi-x"})},cloneRule:{label:r.createElement("i",{className:"bi bi-copy"})},cloneRuleGroup:{label:r.createElement("i",{className:"bi bi-copy"})},dragHandle:{label:r.createElement("i",{className:"bi bi-grip-vertical"})},lockGroup:{label:r.createElement("i",{className:"bi bi-unlock"})},lockRule:{label:r.createElement("i",{className:"bi bi-unlock"})},lockGroupDisabled:{label:r.createElement("i",{className:"bi bi-lock"})},lockRuleDisabled:{label:r.createElement("i",{className:"bi bi-lock"})},shiftActionUp:{label:r.createElement("i",{className:"bi bi-chevron-compact-up"})},shiftActionDown:{label:r.createElement("i",{className:"bi bi-chevron-compact-down"})}},w=(0,g.getCompatContextProvider)({key:"bootstrap",controlClassnames:p,controlElements:v,translations:C});0&&(module.exports={BootstrapNotToggle,BootstrapValueEditor,QueryBuilderBootstrap,bootstrapControlClassnames,bootstrapControlElements,bootstrapTranslations});
1
+ "use strict";var x=Object.create;var u=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var B=(e,a)=>{for(var l in a)u(e,l,{get:a[l],enumerable:!0})},N=(e,a,l,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of A(a))!E.call(e,i)&&i!==l&&u(e,i,{get:()=>a[i],enumerable:!(c=T(a,i))||c.enumerable});return e};var y=(e,a,l)=>(l=e!=null?x(R(e)):{},N(a||!e||!e.__esModule?u(l,"default",{value:e,enumerable:!0}):l,e)),V=e=>N(u({},"__esModule",{value:!0}),e);var G={};B(G,{BootstrapNotToggle:()=>b,BootstrapValueEditor:()=>f,QueryBuilderBootstrap:()=>w,bootstrapControlClassnames:()=>p,bootstrapControlElements:()=>v,bootstrapTranslations:()=>C});module.exports=V(G);var r=y(require("react")),g=require("react-querybuilder");var d=y(require("react")),k=require("react"),b=({className:e,handleOnChange:a,title:l,label:c,checked:i,disabled:o})=>{let n=(0,k.useId)();return d.createElement("div",{className:`form-check-inline form-switch ${e}`},d.createElement("input",{id:n,className:"form-check-input",type:"checkbox",onChange:m=>a(m.target.checked),checked:!!i,disabled:o}),d.createElement("label",{title:l,htmlFor:n,className:"form-check-label"},c))};b.displayName="BootstrapNotToggle";var s=y(require("react")),t=require("react-querybuilder"),f=e=>{let{valueAsArray:a,multiValueHandler:l}=(0,t.useValueEditor)({handleOnChange:e.handleOnChange,inputType:e.inputType,operator:e.operator,value:e.value,type:e.type,listsAsArrays:e.listsAsArrays,parseNumbers:e.parseNumbers,values:e.values}),{selectorComponent:c=t.ValueSelector}=e;if(e.operator==="null"||e.operator==="notNull")return null;let i=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){let o=["from","to"].map((n,m)=>e.type==="text"?s.createElement("input",{key:n,type:e.inputType||"text",placeholder:i,value:a[m]??"",className:`${t.standardClassnames.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:h=>l(h.target.value,m)}):s.createElement(c,{...e,key:n,className:`${t.standardClassnames.valueListItem} form-select form-select-sm`,handleOnChange:h=>l(h,m),disabled:e.disabled,value:a[m]??(0,t.getFirstOption)(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays}));return s.createElement("span",{"data-testid":e.testID,className:t.standardClassnames.value,title:e.title},o[0],e.separator,o[1])}switch(e.type){case"select":case"multiselect":return s.createElement(t.ValueEditor,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return s.createElement("span",{className:`custom-control custom-switch ${e.className}`},s.createElement("input",{type:"checkbox",className:"form-check-input custom-control-input",title:e.title,disabled:e.disabled,onChange:o=>e.handleOnChange(o.target.checked),checked:!!e.value}));case"checkbox":return s.createElement(t.ValueEditor,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return s.createElement("span",{title:e.title,className:t.standardClassnames.value},e.values?.map(o=>s.createElement("div",{key:o.name,className:"form-check form-check-inline"},s.createElement("input",{className:"form-check-input",type:"radio",id:o.name,value:o.name,checked:e.value===o.name,disabled:e.disabled,onChange:n=>e.handleOnChange(n.target.value)}),s.createElement("label",{className:"form-check-label",htmlFor:o.name},o.label))))}return s.createElement(t.ValueEditor,{skipHook:!0,...e})};f.displayName="BootstrapValueEditor";var v={notToggle:b,valueEditor:f},p={actionElement:"btn btn-sm",addGroup:"btn-secondary",addRule:"btn-primary",cloneGroup:"btn-secondary",cloneRule:"btn-secondary",lockGroup:"btn-secondary",lockRule:"btn-secondary",removeGroup:"btn-danger",removeRule:"btn-danger",value:"form-control form-control-sm",valueSelector:"form-select form-select-sm"},C={removeGroup:{label:r.createElement("i",{className:"bi bi-x"})},removeRule:{label:r.createElement("i",{className:"bi bi-x"})},cloneRule:{label:r.createElement("i",{className:"bi bi-copy"})},cloneRuleGroup:{label:r.createElement("i",{className:"bi bi-copy"})},dragHandle:{label:r.createElement("i",{className:"bi bi-grip-vertical"})},lockGroup:{label:r.createElement("i",{className:"bi bi-unlock"})},lockRule:{label:r.createElement("i",{className:"bi bi-unlock"})},lockGroupDisabled:{label:r.createElement("i",{className:"bi bi-lock"})},lockRuleDisabled:{label:r.createElement("i",{className:"bi bi-lock"})},shiftActionUp:{label:r.createElement("i",{className:"bi bi-chevron-compact-up"})},shiftActionDown:{label:r.createElement("i",{className:"bi bi-chevron-compact-down"})}},w=(0,g.getCompatContextProvider)({key:"bootstrap",controlClassnames:p,controlElements:v,translations:C});0&&(module.exports={BootstrapNotToggle,BootstrapValueEditor,QueryBuilderBootstrap,bootstrapControlClassnames,bootstrapControlElements,bootstrapTranslations});
2
2
  //# sourceMappingURL=react-querybuilder_bootstrap.cjs.production.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["src_exports","__export","BootstrapNotToggle","BootstrapValueEditor","QueryBuilderBootstrap","bootstrapControlClassnames","bootstrapControlElements","bootstrapTranslations","__toCommonJS","React","import_react_querybuilder","React","import_react","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","React","import_react_querybuilder","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","bootstrapTranslations","QueryBuilderBootstrap"]}
1
+ {"version":3,"sources":["../../src/index.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n value: 'form-control form-control-sm',\n valueSelector: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,yBAAAC,EAAA,0BAAAC,EAAA,+BAAAC,EAAA,6BAAAC,EAAA,0BAAAC,IAAA,eAAAC,EAAAR,GAAA,IAAAS,EAAuB,oBAEvBC,EAAyC,8BCFzC,IAAAC,EAAuB,oBACvBC,EAAsB,iBAGTC,EAAqB,CAAC,CACjC,UAAAC,EACA,eAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EACA,SAAAC,CACF,IAAsB,CACpB,IAAMC,KAAK,SAAM,EAEjB,OACE,gBAAC,OAAI,UAAW,iCAAiCN,CAAS,IACxD,gBAAC,SACC,GAAIM,EACJ,UAAU,mBACV,KAAK,WACL,SAAUC,GAAKN,EAAeM,EAAE,OAAO,OAAO,EAC9C,QAAS,CAAC,CAACH,EACX,SAAUC,EACZ,EACA,gBAAC,SAAM,MAAOH,EAAO,QAASI,EAAI,UAAU,oBACzCH,CACH,CACF,CAEJ,EAEAJ,EAAmB,YAAc,qBC/BjC,IAAAS,EAAuB,oBAEvBC,EAMO,8BAEMC,EAAwBC,GAA4B,CAC/D,GAAM,CAAE,aAAAC,EAAc,kBAAAC,CAAkB,KAAI,kBAAe,CACzD,eAAgBF,EAAM,eACtB,UAAWA,EAAM,UACjB,SAAUA,EAAM,SAChB,MAAOA,EAAM,MACb,KAAMA,EAAM,KACZ,cAAeA,EAAM,cACrB,aAAcA,EAAM,aACpB,OAAQA,EAAM,MAChB,CAAC,EAEK,CAAE,kBAAmBG,EAAoB,eAAc,EAAIH,EAEjE,GAAIA,EAAM,WAAa,QAAUA,EAAM,WAAa,UAClD,OAAO,KAGT,IAAMI,EAAkBJ,EAAM,WAAW,aAAe,GAExD,IACGA,EAAM,WAAa,WAAaA,EAAM,WAAa,gBACnDA,EAAM,OAAS,UAAYA,EAAM,OAAS,QAC3C,CACA,IAAMK,EAAU,CAAC,OAAQ,IAAI,EAAE,IAAI,CAACC,EAAKC,IACnCP,EAAM,OAAS,OAEf,gBAAC,SACC,IAAKM,EACL,KAAMN,EAAM,WAAa,OACzB,YAAaI,EACb,MAAOH,EAAaM,CAAC,GAAK,GAC1B,UAAW,GAAG,qBAAmB,aAAa,gCAC9C,SAAUP,EAAM,SAChB,SAAUQ,GAAKN,EAAkBM,EAAE,OAAO,MAAOD,CAAC,EACpD,EAIF,gBAACJ,EAAA,CACE,GAAGH,EACJ,IAAKM,EACL,UAAW,GAAG,qBAAmB,aAAa,8BAC9C,eAAgBG,GAAKP,EAAkBO,EAAGF,CAAC,EAC3C,SAAUP,EAAM,SAChB,MAAOC,EAAaM,CAAC,MAAK,kBAAeP,EAAM,MAAM,EACrD,QAASA,EAAM,QAAU,CAAC,EAC1B,cAAeA,EAAM,cACvB,CAEH,EAED,OACE,gBAAC,QAAK,cAAaA,EAAM,OAAQ,UAAW,qBAAmB,MAAO,MAAOA,EAAM,OAChFK,EAAQ,CAAC,EACTL,EAAM,UACNK,EAAQ,CAAC,CACZ,CAEJ,CAEA,OAAQL,EAAM,KAAM,CAClB,IAAK,SACL,IAAK,cACH,OACE,gBAAC,eACC,SAAQ,GACP,GAAGA,EACJ,UAAW,GAAGA,EAAM,SAAS,8BAC/B,EAGJ,IAAK,SACH,OACE,gBAAC,QAAK,UAAW,gCAAgCA,EAAM,SAAS,IAC9D,gBAAC,SACC,KAAK,WACL,UAAU,wCACV,MAAOA,EAAM,MACb,SAAUA,EAAM,SAChB,SAAUQ,GAAKR,EAAM,eAAeQ,EAAE,OAAO,OAAO,EACpD,QAAS,CAAC,CAACR,EAAM,MACnB,CACF,EAGJ,IAAK,WACH,OAAO,gBAAC,eAAY,SAAQ,GAAE,GAAGA,EAAO,UAAW,oBAAoBA,EAAM,SAAS,GAAI,EAE5F,IAAK,QACH,OACE,gBAAC,QAAK,MAAOA,EAAM,MAAO,UAAW,qBAAmB,OACrDA,EAAM,QAAQ,IAAIS,GACjB,gBAAC,OAAI,IAAKA,EAAE,KAAM,UAAU,gCAC1B,gBAAC,SACC,UAAU,mBACV,KAAK,QACL,GAAIA,EAAE,KACN,MAAOA,EAAE,KACT,QAAST,EAAM,QAAUS,EAAE,KAC3B,SAAUT,EAAM,SAChB,SAAUQ,GAAKR,EAAM,eAAeQ,EAAE,OAAO,KAAK,EACpD,EACA,gBAAC,SAAM,UAAU,mBAAmB,QAASC,EAAE,MAC5CA,EAAE,KACL,CACF,CACD,CACH,CAEN,CAEA,OAAO,gBAAC,eAAY,SAAQ,GAAE,GAAGT,EAAO,CAC1C,EAEAD,EAAqB,YAAc,uBFpH5B,IAAMW,EAA2B,CACtC,UAAWC,EACX,YAAaC,CACf,EAEaC,EAA6B,CACxC,cAAe,aACf,SAAU,gBACV,QAAS,cACT,WAAY,gBACZ,UAAW,gBACX,UAAW,gBACX,SAAU,gBACV,YAAa,aACb,WAAY,aACZ,MAAO,+BACP,cAAe,4BACjB,EAEaC,EAAwB,CACnC,YAAa,CAAE,MAAO,gBAAC,KAAE,UAAU,UAAU,CAAG,EAChD,WAAY,CAAE,MAAO,gBAAC,KAAE,UAAU,UAAU,CAAG,EAC/C,UAAW,CAAE,MAAO,gBAAC,KAAE,UAAU,aAAa,CAAG,EACjD,eAAgB,CAAE,MAAO,gBAAC,KAAE,UAAU,aAAa,CAAG,EACtD,WAAY,CAAE,MAAO,gBAAC,KAAE,UAAU,sBAAsB,CAAG,EAC3D,UAAW,CAAE,MAAO,gBAAC,KAAE,UAAU,eAAe,CAAG,EACnD,SAAU,CAAE,MAAO,gBAAC,KAAE,UAAU,eAAe,CAAG,EAClD,kBAAmB,CAAE,MAAO,gBAAC,KAAE,UAAU,aAAa,CAAG,EACzD,iBAAkB,CAAE,MAAO,gBAAC,KAAE,UAAU,aAAa,CAAG,EACxD,cAAe,CAAE,MAAO,gBAAC,KAAE,UAAU,2BAA2B,CAAG,EACnE,gBAAiB,CAAE,MAAO,gBAAC,KAAE,UAAU,6BAA6B,CAAG,CACzE,EAEaC,KAAwB,4BAAyB,CAC5D,IAAK,YACL,kBAAmBF,EACnB,gBAAiBH,EACjB,aAAcI,CAChB,CAAC","names":["src_exports","__export","BootstrapNotToggle","BootstrapValueEditor","QueryBuilderBootstrap","bootstrapControlClassnames","bootstrapControlElements","bootstrapTranslations","__toCommonJS","React","import_react_querybuilder","React","import_react","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","React","import_react_querybuilder","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","bootstrapTranslations","QueryBuilderBootstrap"]}
@@ -23,6 +23,7 @@ declare const bootstrapControlElements: {
23
23
  };
24
24
  };
25
25
  declare const bootstrapControlClassnames: {
26
+ actionElement: string;
26
27
  addGroup: string;
27
28
  addRule: string;
28
29
  cloneGroup: string;
@@ -31,11 +32,8 @@ declare const bootstrapControlClassnames: {
31
32
  lockRule: string;
32
33
  removeGroup: string;
33
34
  removeRule: string;
34
- combinators: string;
35
- fields: string;
36
- operators: string;
37
35
  value: string;
38
- valueSource: string;
36
+ valueSelector: string;
39
37
  };
40
38
  declare const bootstrapTranslations: {
41
39
  removeGroup: {
@@ -23,6 +23,7 @@ declare const bootstrapControlElements: {
23
23
  };
24
24
  };
25
25
  declare const bootstrapControlClassnames: {
26
+ actionElement: string;
26
27
  addGroup: string;
27
28
  addRule: string;
28
29
  cloneGroup: string;
@@ -31,11 +32,8 @@ declare const bootstrapControlClassnames: {
31
32
  lockRule: string;
32
33
  removeGroup: string;
33
34
  removeRule: string;
34
- combinators: string;
35
- fields: string;
36
- operators: string;
37
35
  value: string;
38
- valueSource: string;
36
+ valueSelector: string;
39
37
  };
40
38
  declare const bootstrapTranslations: {
41
39
  removeGroup: {
@@ -155,19 +155,17 @@ var bootstrapControlElements = {
155
155
  valueEditor: BootstrapValueEditor
156
156
  };
157
157
  var bootstrapControlClassnames = {
158
- addGroup: "btn btn-secondary btn-sm",
159
- addRule: "btn btn-primary btn-sm",
160
- cloneGroup: "btn btn-secondary btn-sm",
161
- cloneRule: "btn btn-secondary btn-sm",
162
- lockGroup: "btn btn-secondary btn-sm",
163
- lockRule: "btn btn-secondary btn-sm",
164
- removeGroup: "btn btn-danger btn-sm",
165
- removeRule: "btn btn-danger btn-sm",
166
- combinators: "form-select form-select-sm",
167
- fields: "form-select form-select-sm",
168
- operators: "form-select form-select-sm",
158
+ actionElement: "btn btn-sm",
159
+ addGroup: "btn-secondary",
160
+ addRule: "btn-primary",
161
+ cloneGroup: "btn-secondary",
162
+ cloneRule: "btn-secondary",
163
+ lockGroup: "btn-secondary",
164
+ lockRule: "btn-secondary",
165
+ removeGroup: "btn-danger",
166
+ removeRule: "btn-danger",
169
167
  value: "form-control form-control-sm",
170
- valueSource: "form-select form-select-sm"
168
+ valueSelector: "form-select form-select-sm"
171
169
  };
172
170
  var bootstrapTranslations = {
173
171
  removeGroup: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-x" }) },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","React","_a","_b","_c"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n value: 'form-control form-control-sm',\n valueSelector: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,YAAYA,YAAW;AAEvB,SAAS,gCAAgC;;;ACFzC,YAAY,WAAW;AACvB,SAAS,aAAa;AAGf,IAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAsB;AACpB,QAAM,KAAK,MAAM;AAEjB,SACE,oCAAC,SAAI,WAAW,iCAAiC,SAAS,MACxD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAU;AAAA,MACV,MAAK;AAAA,MACL,UAAU,OAAK,eAAe,EAAE,OAAO,OAAO;AAAA,MAC9C,SAAS,CAAC,CAAC;AAAA,MACX;AAAA;AAAA,EACF,GACA,oCAAC,WAAM,OAAc,SAAS,IAAI,WAAU,sBACzC,KACH,CACF;AAEJ;AAEA,mBAAmB,cAAc;;;AC/BjC,YAAYC,YAAW;AAEvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,IAAM,uBAAuB,CAAC,UAA4B;AAVjE;AAWE,QAAM,EAAE,cAAc,kBAAkB,IAAI,eAAe;AAAA,IACzD,gBAAgB,MAAM;AAAA,IACtB,WAAW,MAAM;AAAA,IACjB,UAAU,MAAM;AAAA,IAChB,OAAO,MAAM;AAAA,IACb,MAAM,MAAM;AAAA,IACZ,eAAe,MAAM;AAAA,IACrB,cAAc,MAAM;AAAA,IACpB,QAAQ,MAAM;AAAA,EAChB,CAAC;AAED,QAAM,EAAE,mBAAmB,oBAAoB,cAAc,IAAI;AAEjE,MAAI,MAAM,aAAa,UAAU,MAAM,aAAa,WAAW;AAC7D,WAAO;AAAA,EACT;AAEA,QAAM,mBAAkB,iBAAM,cAAN,mBAAiB,gBAAjB,YAAgC;AAExD,OACG,MAAM,aAAa,aAAa,MAAM,aAAa,kBACnD,MAAM,SAAS,YAAY,MAAM,SAAS,SAC3C;AACA,UAAM,UAAU,CAAC,QAAQ,IAAI,EAAE,IAAI,CAAC,KAAK,MAAM;AAlCnD,UAAAC,KAAAC,KAAAC;AAmCM,UAAI,MAAM,SAAS,QAAQ;AACzB,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,MAAM,MAAM,aAAa;AAAA,YACzB,aAAa;AAAA,YACb,QAAOF,MAAA,aAAa,CAAC,MAAd,OAAAA,MAAmB;AAAA,YAC1B,WAAW,GAAG,mBAAmB,aAAa;AAAA,YAC9C,UAAU,MAAM;AAAA,YAChB,UAAU,OAAK,kBAAkB,EAAE,OAAO,OAAO,CAAC;AAAA;AAAA,QACpD;AAAA,MAEJ;AACA,aACE;AAAA,QAAC;AAAA,yCACK,QADL;AAAA,UAEC;AAAA,UACA,WAAW,GAAG,mBAAmB,aAAa;AAAA,UAC9C,gBAAgB,OAAK,kBAAkB,GAAG,CAAC;AAAA,UAC3C,UAAU,MAAM;AAAA,UAChB,QAAOC,MAAA,aAAa,CAAC,MAAd,OAAAA,MAAmB,eAAe,MAAM,MAAM;AAAA,UACrD,UAASC,MAAA,MAAM,WAAN,OAAAA,MAAgB,CAAC;AAAA,UAC1B,eAAe,MAAM;AAAA;AAAA,MACvB;AAAA,IAEJ,CAAC;AAED,WACE,qCAAC,UAAK,eAAa,MAAM,QAAQ,WAAW,mBAAmB,OAAO,OAAO,MAAM,SAChF,QAAQ,CAAC,GACT,MAAM,WACN,QAAQ,CAAC,CACZ;AAAA,EAEJ;AAEA,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AAAA,IACL,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAQ;AAAA,WACJ,QAFL;AAAA,UAGC,WAAW,GAAG,MAAM,SAAS;AAAA;AAAA,MAC/B;AAAA,IAGJ,KAAK;AACH,aACE,qCAAC,UAAK,WAAW,gCAAgC,MAAM,SAAS,MAC9D;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,OAAO,MAAM;AAAA,UACb,UAAU,MAAM;AAAA,UAChB,UAAU,OAAK,MAAM,eAAe,EAAE,OAAO,OAAO;AAAA,UACpD,SAAS,CAAC,CAAC,MAAM;AAAA;AAAA,MACnB,CACF;AAAA,IAGJ,KAAK;AACH,aAAO,qCAAC,4CAAY,UAAQ,QAAK,QAAzB,EAAgC,WAAW,oBAAoB,MAAM,SAAS,KAAI;AAAA,IAE5F,KAAK;AACH,aACE,qCAAC,UAAK,OAAO,MAAM,OAAO,WAAW,mBAAmB,UACrD,WAAM,WAAN,mBAAc,IAAI,OACjB,qCAAC,SAAI,KAAK,EAAE,MAAM,WAAU,kCAC1B;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,IAAI,EAAE;AAAA,UACN,OAAO,EAAE;AAAA,UACT,SAAS,MAAM,UAAU,EAAE;AAAA,UAC3B,UAAU,MAAM;AAAA,UAChB,UAAU,OAAK,MAAM,eAAe,EAAE,OAAO,KAAK;AAAA;AAAA,MACpD,GACA,qCAAC,WAAM,WAAU,oBAAmB,SAAS,EAAE,QAC5C,EAAE,KACL,CACF,EAEJ;AAAA,EAEN;AAEA,SAAO,qCAAC,8BAAY,UAAQ,QAAK,MAAO;AAC1C;AAEA,qBAAqB,cAAc;;;AFpH5B,IAAM,2BAA2B;AAAA,EACtC,WAAW;AAAA,EACX,aAAa;AACf;AAEO,IAAM,6BAA6B;AAAA,EACxC,eAAe;AAAA,EACf,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,eAAe;AACjB;AAEO,IAAM,wBAAwB;AAAA,EACnC,aAAa,EAAE,OAAO,qCAAC,OAAE,WAAU,WAAU,EAAG;AAAA,EAChD,YAAY,EAAE,OAAO,qCAAC,OAAE,WAAU,WAAU,EAAG;AAAA,EAC/C,WAAW,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACjD,gBAAgB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACtD,YAAY,EAAE,OAAO,qCAAC,OAAE,WAAU,uBAAsB,EAAG;AAAA,EAC3D,WAAW,EAAE,OAAO,qCAAC,OAAE,WAAU,gBAAe,EAAG;AAAA,EACnD,UAAU,EAAE,OAAO,qCAAC,OAAE,WAAU,gBAAe,EAAG;AAAA,EAClD,mBAAmB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACzD,kBAAkB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACxD,eAAe,EAAE,OAAO,qCAAC,OAAE,WAAU,4BAA2B,EAAG;AAAA,EACnE,iBAAiB,EAAE,OAAO,qCAAC,OAAE,WAAU,8BAA6B,EAAG;AACzE;AAEO,IAAM,wBAAwB,yBAAyB;AAAA,EAC5D,KAAK;AAAA,EACL,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,cAAc;AAChB,CAAC;","names":["React","React","_a","_b","_c"]}
@@ -134,19 +134,17 @@ var bootstrapControlElements = {
134
134
  valueEditor: BootstrapValueEditor
135
135
  };
136
136
  var bootstrapControlClassnames = {
137
- addGroup: "btn btn-secondary btn-sm",
138
- addRule: "btn btn-primary btn-sm",
139
- cloneGroup: "btn btn-secondary btn-sm",
140
- cloneRule: "btn btn-secondary btn-sm",
141
- lockGroup: "btn btn-secondary btn-sm",
142
- lockRule: "btn btn-secondary btn-sm",
143
- removeGroup: "btn btn-danger btn-sm",
144
- removeRule: "btn btn-danger btn-sm",
145
- combinators: "form-select form-select-sm",
146
- fields: "form-select form-select-sm",
147
- operators: "form-select form-select-sm",
137
+ actionElement: "btn btn-sm",
138
+ addGroup: "btn-secondary",
139
+ addRule: "btn-primary",
140
+ cloneGroup: "btn-secondary",
141
+ cloneRule: "btn-secondary",
142
+ lockGroup: "btn-secondary",
143
+ lockRule: "btn-secondary",
144
+ removeGroup: "btn-danger",
145
+ removeRule: "btn-danger",
148
146
  value: "form-control form-control-sm",
149
- valueSource: "form-select form-select-sm"
147
+ valueSelector: "form-select form-select-sm"
150
148
  };
151
149
  var bootstrapTranslations = {
152
150
  removeGroup: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-x" }) },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","React"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n value: 'form-control form-control-sm',\n valueSelector: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","React"]}
@@ -23,6 +23,7 @@ declare const bootstrapControlElements: {
23
23
  };
24
24
  };
25
25
  declare const bootstrapControlClassnames: {
26
+ actionElement: string;
26
27
  addGroup: string;
27
28
  addRule: string;
28
29
  cloneGroup: string;
@@ -31,11 +32,8 @@ declare const bootstrapControlClassnames: {
31
32
  lockRule: string;
32
33
  removeGroup: string;
33
34
  removeRule: string;
34
- combinators: string;
35
- fields: string;
36
- operators: string;
37
35
  value: string;
38
- valueSource: string;
36
+ valueSelector: string;
39
37
  };
40
38
  declare const bootstrapTranslations: {
41
39
  removeGroup: {
@@ -1,2 +1,2 @@
1
- import*as l from"react";import{getCompatContextProvider as v}from"react-querybuilder";import*as c from"react";import{useId as y}from"react";var d=({className:e,handleOnChange:r,title:n,label:m,checked:u,disabled:t})=>{let o=y();return c.createElement("div",{className:`form-check-inline form-switch ${e}`},c.createElement("input",{id:o,className:"form-check-input",type:"checkbox",onChange:s=>r(s.target.checked),checked:!!u,disabled:t}),c.createElement("label",{title:n,htmlFor:o,className:"form-check-label"},m))};d.displayName="BootstrapNotToggle";import*as a from"react";import{getFirstOption as N,standardClassnames as i,useValueEditor as k,ValueEditor as f,ValueSelector as g}from"react-querybuilder";var h=e=>{let{valueAsArray:r,multiValueHandler:n}=k({handleOnChange:e.handleOnChange,inputType:e.inputType,operator:e.operator,value:e.value,type:e.type,listsAsArrays:e.listsAsArrays,parseNumbers:e.parseNumbers,values:e.values}),{selectorComponent:m=g}=e;if(e.operator==="null"||e.operator==="notNull")return null;let u=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){let t=["from","to"].map((o,s)=>e.type==="text"?a.createElement("input",{key:o,type:e.inputType||"text",placeholder:u,value:r[s]??"",className:`${i.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:b=>n(b.target.value,s)}):a.createElement(m,{...e,key:o,className:`${i.valueListItem} form-select form-select-sm`,handleOnChange:b=>n(b,s),disabled:e.disabled,value:r[s]??N(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays}));return a.createElement("span",{"data-testid":e.testID,className:i.value,title:e.title},t[0],e.separator,t[1])}switch(e.type){case"select":case"multiselect":return a.createElement(f,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return a.createElement("span",{className:`custom-control custom-switch ${e.className}`},a.createElement("input",{type:"checkbox",className:"form-check-input custom-control-input",title:e.title,disabled:e.disabled,onChange:t=>e.handleOnChange(t.target.checked),checked:!!e.value}));case"checkbox":return a.createElement(f,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return a.createElement("span",{title:e.title,className:i.value},e.values?.map(t=>a.createElement("div",{key:t.name,className:"form-check form-check-inline"},a.createElement("input",{className:"form-check-input",type:"radio",id:t.name,value:t.name,checked:e.value===t.name,disabled:e.disabled,onChange:o=>e.handleOnChange(o.target.value)}),a.createElement("label",{className:"form-check-label",htmlFor:t.name},t.label))))}return a.createElement(f,{skipHook:!0,...e})};h.displayName="BootstrapValueEditor";var p={notToggle:d,valueEditor:h},C={addGroup:"btn btn-secondary btn-sm",addRule:"btn btn-primary btn-sm",cloneGroup:"btn btn-secondary btn-sm",cloneRule:"btn btn-secondary btn-sm",lockGroup:"btn btn-secondary btn-sm",lockRule:"btn btn-secondary btn-sm",removeGroup:"btn btn-danger btn-sm",removeRule:"btn btn-danger btn-sm",combinators:"form-select form-select-sm",fields:"form-select form-select-sm",operators:"form-select form-select-sm",value:"form-control form-control-sm",valueSource:"form-select form-select-sm"},x={removeGroup:{label:l.createElement("i",{className:"bi bi-x"})},removeRule:{label:l.createElement("i",{className:"bi bi-x"})},cloneRule:{label:l.createElement("i",{className:"bi bi-copy"})},cloneRuleGroup:{label:l.createElement("i",{className:"bi bi-copy"})},dragHandle:{label:l.createElement("i",{className:"bi bi-grip-vertical"})},lockGroup:{label:l.createElement("i",{className:"bi bi-unlock"})},lockRule:{label:l.createElement("i",{className:"bi bi-unlock"})},lockGroupDisabled:{label:l.createElement("i",{className:"bi bi-lock"})},lockRuleDisabled:{label:l.createElement("i",{className:"bi bi-lock"})},shiftActionUp:{label:l.createElement("i",{className:"bi bi-chevron-compact-up"})},shiftActionDown:{label:l.createElement("i",{className:"bi bi-chevron-compact-down"})}},G=v({key:"bootstrap",controlClassnames:C,controlElements:p,translations:x});export{d as BootstrapNotToggle,h as BootstrapValueEditor,G as QueryBuilderBootstrap,C as bootstrapControlClassnames,p as bootstrapControlElements,x as bootstrapTranslations};
1
+ import*as l from"react";import{getCompatContextProvider as v}from"react-querybuilder";import*as n from"react";import{useId as y}from"react";var b=({className:e,handleOnChange:r,title:i,label:m,checked:u,disabled:a})=>{let o=y();return n.createElement("div",{className:`form-check-inline form-switch ${e}`},n.createElement("input",{id:o,className:"form-check-input",type:"checkbox",onChange:s=>r(s.target.checked),checked:!!u,disabled:a}),n.createElement("label",{title:i,htmlFor:o,className:"form-check-label"},m))};b.displayName="BootstrapNotToggle";import*as t from"react";import{getFirstOption as N,standardClassnames as c,useValueEditor as k,ValueEditor as f,ValueSelector as g}from"react-querybuilder";var h=e=>{let{valueAsArray:r,multiValueHandler:i}=k({handleOnChange:e.handleOnChange,inputType:e.inputType,operator:e.operator,value:e.value,type:e.type,listsAsArrays:e.listsAsArrays,parseNumbers:e.parseNumbers,values:e.values}),{selectorComponent:m=g}=e;if(e.operator==="null"||e.operator==="notNull")return null;let u=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){let a=["from","to"].map((o,s)=>e.type==="text"?t.createElement("input",{key:o,type:e.inputType||"text",placeholder:u,value:r[s]??"",className:`${c.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:d=>i(d.target.value,s)}):t.createElement(m,{...e,key:o,className:`${c.valueListItem} form-select form-select-sm`,handleOnChange:d=>i(d,s),disabled:e.disabled,value:r[s]??N(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays}));return t.createElement("span",{"data-testid":e.testID,className:c.value,title:e.title},a[0],e.separator,a[1])}switch(e.type){case"select":case"multiselect":return t.createElement(f,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return t.createElement("span",{className:`custom-control custom-switch ${e.className}`},t.createElement("input",{type:"checkbox",className:"form-check-input custom-control-input",title:e.title,disabled:e.disabled,onChange:a=>e.handleOnChange(a.target.checked),checked:!!e.value}));case"checkbox":return t.createElement(f,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return t.createElement("span",{title:e.title,className:c.value},e.values?.map(a=>t.createElement("div",{key:a.name,className:"form-check form-check-inline"},t.createElement("input",{className:"form-check-input",type:"radio",id:a.name,value:a.name,checked:e.value===a.name,disabled:e.disabled,onChange:o=>e.handleOnChange(o.target.value)}),t.createElement("label",{className:"form-check-label",htmlFor:a.name},a.label))))}return t.createElement(f,{skipHook:!0,...e})};h.displayName="BootstrapValueEditor";var p={notToggle:b,valueEditor:h},C={actionElement:"btn btn-sm",addGroup:"btn-secondary",addRule:"btn-primary",cloneGroup:"btn-secondary",cloneRule:"btn-secondary",lockGroup:"btn-secondary",lockRule:"btn-secondary",removeGroup:"btn-danger",removeRule:"btn-danger",value:"form-control form-control-sm",valueSelector:"form-select form-select-sm"},x={removeGroup:{label:l.createElement("i",{className:"bi bi-x"})},removeRule:{label:l.createElement("i",{className:"bi bi-x"})},cloneRule:{label:l.createElement("i",{className:"bi bi-copy"})},cloneRuleGroup:{label:l.createElement("i",{className:"bi bi-copy"})},dragHandle:{label:l.createElement("i",{className:"bi bi-grip-vertical"})},lockGroup:{label:l.createElement("i",{className:"bi bi-unlock"})},lockRule:{label:l.createElement("i",{className:"bi bi-unlock"})},lockGroupDisabled:{label:l.createElement("i",{className:"bi bi-lock"})},lockRuleDisabled:{label:l.createElement("i",{className:"bi bi-lock"})},shiftActionUp:{label:l.createElement("i",{className:"bi bi-chevron-compact-up"})},shiftActionDown:{label:l.createElement("i",{className:"bi bi-chevron-compact-down"})}},G=v({key:"bootstrap",controlClassnames:C,controlElements:p,translations:x});export{b as BootstrapNotToggle,h as BootstrapValueEditor,G as QueryBuilderBootstrap,C as bootstrapControlClassnames,p as bootstrapControlElements,x as bootstrapTranslations};
2
2
  //# sourceMappingURL=react-querybuilder_bootstrap.production.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","getCompatContextProvider","React","useId","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","React","getFirstOption","standardClassnames","useValueEditor","ValueEditor","ValueSelector","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","bootstrapTranslations","QueryBuilderBootstrap","getCompatContextProvider"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, FullField, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls<FullField, string>>;\n\nexport const bootstrapControlClassnames = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n value: 'form-control form-control-sm',\n valueSelector: 'form-select form-select-sm',\n} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","getCompatContextProvider","React","useId","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","React","getFirstOption","standardClassnames","useValueEditor","ValueEditor","ValueSelector","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","bootstrapTranslations","QueryBuilderBootstrap","getCompatContextProvider"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-querybuilder/bootstrap",
3
3
  "description": "Custom Bootstrap components for react-querybuilder",
4
- "version": "7.0.2",
4
+ "version": "7.1.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -39,23 +39,23 @@
39
39
  },
40
40
  "devDependencies": {
41
41
  "@popperjs/core": "^2.11.8",
42
- "@testing-library/react": "^14.2.1",
43
- "@types/react": "^18.2.65",
42
+ "@testing-library/react": "^14.2.2",
43
+ "@types/react": "^18.2.73",
44
44
  "@vitejs/plugin-react-swc": "^3.6.0",
45
45
  "bootstrap": "^5.3.3",
46
46
  "bootstrap-icons": "^1.11.3",
47
47
  "react": "^18.2.0",
48
48
  "react-dom": "^18.2.0",
49
- "react-querybuilder": "^7.0.2",
49
+ "react-querybuilder": "^7.1.0",
50
50
  "rollup-plugin-visualizer": "^5.12.0",
51
- "typescript": "^5.4.2",
52
- "vite": "^5.1.6"
51
+ "typescript": "^5.4.3",
52
+ "vite": "^5.2.7"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "bootstrap": ">=5",
56
56
  "bootstrap-icons": ">=1.7.0",
57
- "react": ">=16.8.0",
58
- "react-querybuilder": "^7.0.2"
57
+ "react": ">=18",
58
+ "react-querybuilder": "^7.1.0"
59
59
  },
60
- "gitHead": "9ce2ce38dc792ef1630b8543e290d3ff20011a30"
60
+ "gitHead": "853546b1d9c2f81aa35d868956fb9091b8cff11d"
61
61
  }