@react-querybuilder/bootstrap 4.4.1 → 4.5.2

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.
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var q=Object.defineProperty,H=Object.defineProperties;var I=Object.getOwnPropertyDescriptors;var i=Object.getOwnPropertySymbols;var w=Object.prototype.hasOwnProperty,E=Object.prototype.propertyIsEnumerable;var N=(e,t,r)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))w.call(t,r)&&N(e,r,t[r]);if(i)for(var r of i(t))E.call(t,r)&&N(e,r,t[r]);return e},B=(e,t)=>H(e,I(t));var v=(e,t)=>{var r={};for(var o in e)w.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&i)for(var o of i(e))t.indexOf(o)<0&&E.call(e,o)&&(r[o]=e[o]);return r};Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var p=require("react"),P=require("react-querybuilder");function F(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var G=F(p),d={exports:{}},f={};/**
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var _=require("react"),a=require("react-querybuilder");function V(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var q=V(_),x={exports:{}},b={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,5 +6,5 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var L=G.default,V=Symbol.for("react.element"),M=Symbol.for("react.fragment"),D=Object.prototype.hasOwnProperty,O=L.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,U={key:!0,ref:!0,__self:!0,__source:!0};function $(e,t,r){var o,c={},l=null,a=null;r!==void 0&&(l=""+r),t.key!==void 0&&(l=""+t.key),t.ref!==void 0&&(a=t.ref);for(o in t)D.call(t,o)&&!U.hasOwnProperty(o)&&(c[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps,t)c[o]===void 0&&(c[o]=t[o]);return{$$typeof:V,type:e,key:l,ref:a,props:c,_owner:O.current}}f.Fragment=M;f.jsx=$;f.jsxs=$;d.exports=f;const s=d.exports.jsx,j=d.exports.jsxs,b=p.forwardRef(({className:e,title:t},r)=>s("span",{ref:r,className:e,title:t,children:s("i",{className:"bi bi-grip-vertical"})}));b.displayName="BootstrapDragHandle";const h=({className:e,handleOnChange:t,title:r,label:o,checked:c,disabled:l})=>{const a=p.useRef(`notToggle-${Math.random()}`);return j("div",{className:`form-check-inline form-switch ${e}`,children:[s("input",{id:a.current,className:"form-check-input",type:"checkbox",onChange:u=>t(u.target.checked),checked:!!c,disabled:l}),s("label",{title:r,htmlFor:a.current,className:"form-check-label",children:o})]})};h.displayName="BootstrapNotToggle";const y=Q=>{var k=Q,{fieldData:e,operator:t,value:r,handleOnChange:o,title:c,className:l,type:a,inputType:u,values:g,disabled:m}=k,S=v(k,["fieldData","operator","value","handleOnChange","title","className","type","inputType","values","disabled"]);var x;if(p.useEffect(()=>{u==="number"&&!["between","notBetween","in","notIn"].includes(t)&&typeof r=="string"&&r.includes(",")&&o("")},[u,t,r,o]),t==="null"||t==="notNull")return null;const _=(x=e==null?void 0:e.placeholder)!=null?x:"",T=["between","notBetween","in","notIn"].includes(t)?"text":u||"text";switch(a){case"select":case"multiselect":return s(P.ValueSelector,B(R({},S),{className:`${l} form-select form-select-sm`,title:c,handleOnChange:o,value:r,disabled:m,multiple:a==="multiselect",options:g}));case"textarea":return s("textarea",{value:r,title:c,className:l,disabled:m,placeholder:_,onChange:n=>o(n.target.value)});case"switch":return s("span",{className:`custom-control custom-switch ${l}`,children:s("input",{type:"checkbox",className:"form-check-input custom-control-input",title:c,disabled:m,onChange:n=>o(n.target.checked),checked:!!r})});case"checkbox":return s("input",{type:"checkbox",className:`form-check-input ${l}`,title:c,disabled:m,onChange:n=>o(n.target.checked),checked:!!r});case"radio":return s("span",{title:c,children:g.map(n=>j("div",{className:"form-check form-check-inline",children:[s("input",{className:"form-check-input",type:"radio",id:n.name,value:n.name,checked:r===n.name,disabled:m,onChange:C=>o(C.target.value)}),s("label",{className:"form-check-label",htmlFor:n.name,children:n.label})]},n.name))})}return s("input",{type:T,value:r,title:c,className:l,disabled:m,placeholder:_,onChange:n=>o(n.target.value)})};y.displayName="BootstrapValueEditor";const A={dragHandle:b,notToggle:h,valueEditor:y},J={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"};exports.BootstrapDragHandle=b;exports.BootstrapNotToggle=h;exports.BootstrapValueEditor=y;exports.bootstrapControlClassnames=J;exports.bootstrapControlElements=A;
9
+ */var I=q.default,L=Symbol.for("react.element"),H=Symbol.for("react.fragment"),P=Object.prototype.hasOwnProperty,F=I.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,G={key:!0,ref:!0,__self:!0,__source:!0};function B(o,e,c){var t,s={},n=null,u=null;c!==void 0&&(n=""+c),e.key!==void 0&&(n=""+e.key),e.ref!==void 0&&(u=e.ref);for(t in e)P.call(e,t)&&!G.hasOwnProperty(t)&&(s[t]=e[t]);if(o&&o.defaultProps)for(t in e=o.defaultProps,e)s[t]===void 0&&(s[t]=e[t]);return{$$typeof:L,type:o,key:n,ref:u,props:s,_owner:F.current}}b.Fragment=H;b.jsx=B;b.jsxs=B;x.exports=b;const l=x.exports.jsx,y=x.exports.jsxs,v=_.forwardRef(({className:o,title:e},c)=>l("span",{ref:c,className:o,title:e,children:l("i",{className:"bi bi-grip-vertical"})}));v.displayName="BootstrapDragHandle";const $=({className:o,handleOnChange:e,title:c,label:t,checked:s,disabled:n})=>{const u=_.useRef(`notToggle-${Math.random()}`);return y("div",{className:`form-check-inline form-switch ${o}`,children:[l("input",{id:u.current,className:"form-check-input",type:"checkbox",onChange:f=>e(f.target.checked),checked:!!s,disabled:n}),l("label",{title:c,htmlFor:u.current,className:"form-check-label",children:t})]})};$.displayName="BootstrapNotToggle";const w=({fieldData:o,operator:e,value:c,handleOnChange:t,title:s,className:n,type:u,inputType:f,values:i=[],listsAsArrays:p,disabled:m,testID:S,...h})=>{var E;if(a.useValueEditor({handleOnChange:t,inputType:f,operator:e,value:c}),e==="null"||e==="notNull")return null;const C=(E=o==null?void 0:o.placeholder)!=null?E:"",T=["between","notBetween","in","notIn"].includes(e)?"text":f||"text";if((e==="between"||e==="notBetween")&&u==="select"){const r=a.toArray(c),g=k=>{var R,j;const d=[k,(j=r[1])!=null?j:(R=i[0])==null?void 0:R.name,...r.slice(2)];t(p?d:a.joinWith(d,","))},N=k=>{const d=[r[0],k,...r.slice(2)];t(p?d:a.joinWith(d,","))};return y("span",{"data-testid":S,className:n,title:s,children:[l(a.ValueSelector,{...h,className:`${a.standardClassnames.valueListItem} ${n==null?void 0:n.replaceAll(a.standardClassnames.value,"")}`,handleOnChange:g,disabled:m,value:r[0],options:i,listsAsArrays:p}),l(a.ValueSelector,{...h,className:`${a.standardClassnames.valueListItem} ${n==null?void 0:n.replaceAll(a.standardClassnames.value,"")}`,handleOnChange:N,disabled:m,value:r[1],options:i,listsAsArrays:p})]})}switch(u){case"select":case"multiselect":return l(a.ValueSelector,{...h,className:`${n} form-select form-select-sm`,title:s,handleOnChange:t,value:c,disabled:m,multiple:u==="multiselect",listsAsArrays:p,options:i});case"textarea":return l("textarea",{value:c,title:s,className:n,disabled:m,placeholder:C,onChange:r=>t(r.target.value)});case"switch":return l("span",{className:`custom-control custom-switch ${n}`,children:l("input",{type:"checkbox",className:"form-check-input custom-control-input",title:s,disabled:m,onChange:r=>t(r.target.checked),checked:!!c})});case"checkbox":return l("input",{type:"checkbox",className:`form-check-input ${n}`,title:s,disabled:m,onChange:r=>t(r.target.checked),checked:!!c});case"radio":return l("span",{title:s,children:i.map(r=>y("div",{className:"form-check form-check-inline",children:[l("input",{className:"form-check-input",type:"radio",id:r.name,value:r.name,checked:c===r.name,disabled:m,onChange:g=>t(g.target.value)}),l("label",{className:"form-check-label",htmlFor:r.name,children:r.label})]},r.name))})}return l("input",{type:T,value:c,title:s,className:n,disabled:m,placeholder:C,onChange:r=>t(r.target.value)})};w.displayName="BootstrapValueEditor";const M={dragHandle:v,notToggle:$,valueEditor:w},O={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"};exports.BootstrapDragHandle=v;exports.BootstrapNotToggle=$;exports.BootstrapValueEditor=w;exports.bootstrapControlClassnames=O;exports.bootstrapControlElements=M;
10
10
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/jsx-runtime.js","../react/jsx-runtime","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as jsxRuntime from \"/Users/jake/git/react-querybuilder/node_modules/react/jsx-runtime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useRef } 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 = useRef(`notToggle-${Math.random()}`);\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id.current}\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.current} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import { useEffect } from 'react';\nimport { ValueEditorProps, ValueSelector } from 'react-querybuilder';\n\nexport const BootstrapValueEditor = ({\n fieldData,\n operator,\n value,\n handleOnChange,\n title,\n className,\n type,\n inputType,\n values,\n disabled,\n ...props\n}: ValueEditorProps) => {\n useEffect(() => {\n if (\n inputType === 'number' &&\n !['between', 'notBetween', 'in', 'notIn'].includes(operator) &&\n typeof value === 'string' &&\n value.includes(',')\n ) {\n handleOnChange('');\n }\n }, [inputType, operator, value, handleOnChange]);\n\n if (operator === 'null' || operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = fieldData?.placeholder ?? '';\n const inputTypeCoerced = ['between', 'notBetween', 'in', 'notIn'].includes(operator)\n ? 'text'\n : inputType || 'text';\n\n switch (type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueSelector\n {...props}\n className={`${className} form-select form-select-sm`}\n title={title}\n handleOnChange={handleOnChange}\n value={value}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values!}\n />\n );\n\n case 'textarea':\n return (\n <textarea\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${className}`}>\n <input\n type=\"checkbox\"\n className={`form-check-input custom-control-input`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n </span>\n );\n\n case 'checkbox':\n return (\n <input\n type=\"checkbox\"\n className={`form-check-input ${className}`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n );\n\n case 'radio':\n return (\n <span title={title}>\n {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={value === v.name}\n disabled={disabled}\n onChange={e => 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 (\n <input\n type={inputTypeCoerced}\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n","import type { Classnames, Controls } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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};\n\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n"],"names":["require$$0","jsxRuntimeModule","jsxRuntime.jsx","jsxRuntime.jsxs","BootstrapDragHandle","forwardRef","className","title","dragRef","displayName","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useRef","Math","random","_jsx","current","e","target","BootstrapValueEditor","fieldData","operator","value","type","inputType","values","props","useEffect","includes","placeHolderText","placeholder","inputTypeCoerced","ValueSelector","map","v","name"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/jsx-runtime.js","../react/jsx-runtime","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as jsxRuntime from \"/Users/jake/git/react-querybuilder/node_modules/react/jsx-runtime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useRef } 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 = useRef(`notToggle-${Math.random()}`);\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id.current}\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.current} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import {\n joinWith,\n standardClassnames as sc,\n toArray,\n useValueEditor,\n ValueSelector,\n type ValueEditorProps,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = ({\n fieldData,\n operator,\n value,\n handleOnChange,\n title,\n className,\n type,\n inputType,\n values = [],\n listsAsArrays,\n disabled,\n testID,\n ...props\n}: ValueEditorProps) => {\n useValueEditor({ handleOnChange, inputType, operator, value });\n\n if (operator === 'null' || operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = fieldData?.placeholder ?? '';\n const inputTypeCoerced = ['between', 'notBetween', 'in', 'notIn'].includes(operator)\n ? 'text'\n : inputType || 'text';\n\n if ((operator === 'between' || operator === 'notBetween') && type === 'select') {\n const valArray = toArray(value);\n const selector1handler = (v: string) => {\n const val = [v, valArray[1] ?? values[0]?.name, ...valArray.slice(2)];\n handleOnChange(listsAsArrays ? val : joinWith(val, ','));\n };\n const selector2handler = (v: string) => {\n const val = [valArray[0], v, ...valArray.slice(2)];\n handleOnChange(listsAsArrays ? val : joinWith(val, ','));\n };\n return (\n <span data-testid={testID} className={className} title={title}>\n <ValueSelector\n {...props}\n className={`${sc.valueListItem} ${className?.replaceAll(sc.value, '')}`}\n handleOnChange={selector1handler}\n disabled={disabled}\n value={valArray[0]}\n options={values}\n listsAsArrays={listsAsArrays}\n />\n <ValueSelector\n {...props}\n className={`${sc.valueListItem} ${className?.replaceAll(sc.value, '')}`}\n handleOnChange={selector2handler}\n disabled={disabled}\n value={valArray[1]}\n options={values}\n listsAsArrays={listsAsArrays}\n />\n </span>\n );\n }\n\n switch (type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueSelector\n {...props}\n className={`${className} form-select form-select-sm`}\n title={title}\n handleOnChange={handleOnChange}\n value={value}\n disabled={disabled}\n multiple={type === 'multiselect'}\n listsAsArrays={listsAsArrays}\n options={values}\n />\n );\n\n case 'textarea':\n return (\n <textarea\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${className}`}>\n <input\n type=\"checkbox\"\n className={`form-check-input custom-control-input`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n </span>\n );\n\n case 'checkbox':\n return (\n <input\n type=\"checkbox\"\n className={`form-check-input ${className}`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n );\n\n case 'radio':\n return (\n <span title={title}>\n {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={value === v.name}\n disabled={disabled}\n onChange={e => 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 (\n <input\n type={inputTypeCoerced}\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n","import type { Classnames, Controls } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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};\n\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n"],"names":["require$$0","jsxRuntimeModule","jsxRuntime.jsx","jsxRuntime.jsxs","BootstrapDragHandle","forwardRef","className","title","dragRef","displayName","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useRef","Math","random","_jsx","current","e","target","BootstrapValueEditor","fieldData","operator","value","type","inputType","values","listsAsArrays","testID","props","useValueEditor","placeHolderText","placeholder","inputTypeCoerced","includes","valArray","toArray","selector1handler","v","val","name","slice","joinWith","selector2handler","ValueSelector","sc","valueListItem","replaceAll","map"],"mappings":"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"}
package/dist/index.es.js CHANGED
@@ -1,36 +1,5 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- import require$$0, { forwardRef, useRef, useEffect } from "react";
33
- import { ValueSelector } from "react-querybuilder";
1
+ import require$$0, { forwardRef, useRef } from "react";
2
+ import { useValueEditor, toArray, ValueSelector, standardClassnames, joinWith } from "react-querybuilder";
34
3
  var jsxRuntime = { exports: {} };
35
4
  var reactJsxRuntime_production_min = {};
36
5
  /**
@@ -102,53 +71,81 @@ const BootstrapNotToggle = ({
102
71
  });
103
72
  };
104
73
  BootstrapNotToggle.displayName = "BootstrapNotToggle";
105
- const BootstrapValueEditor = (_a) => {
106
- var _b = _a, {
107
- fieldData,
108
- operator,
109
- value,
74
+ const BootstrapValueEditor = ({
75
+ fieldData,
76
+ operator,
77
+ value,
78
+ handleOnChange,
79
+ title,
80
+ className,
81
+ type,
82
+ inputType,
83
+ values = [],
84
+ listsAsArrays,
85
+ disabled,
86
+ testID,
87
+ ...props
88
+ }) => {
89
+ var _a;
90
+ useValueEditor({
110
91
  handleOnChange,
111
- title,
112
- className,
113
- type,
114
92
  inputType,
115
- values,
116
- disabled
117
- } = _b, props = __objRest(_b, [
118
- "fieldData",
119
- "operator",
120
- "value",
121
- "handleOnChange",
122
- "title",
123
- "className",
124
- "type",
125
- "inputType",
126
- "values",
127
- "disabled"
128
- ]);
129
- var _a2;
130
- useEffect(() => {
131
- if (inputType === "number" && !["between", "notBetween", "in", "notIn"].includes(operator) && typeof value === "string" && value.includes(",")) {
132
- handleOnChange("");
133
- }
134
- }, [inputType, operator, value, handleOnChange]);
93
+ operator,
94
+ value
95
+ });
135
96
  if (operator === "null" || operator === "notNull") {
136
97
  return null;
137
98
  }
138
- const placeHolderText = (_a2 = fieldData == null ? void 0 : fieldData.placeholder) != null ? _a2 : "";
99
+ const placeHolderText = (_a = fieldData == null ? void 0 : fieldData.placeholder) != null ? _a : "";
139
100
  const inputTypeCoerced = ["between", "notBetween", "in", "notIn"].includes(operator) ? "text" : inputType || "text";
101
+ if ((operator === "between" || operator === "notBetween") && type === "select") {
102
+ const valArray = toArray(value);
103
+ const selector1handler = (v) => {
104
+ var _a2, _b;
105
+ const val = [v, (_b = valArray[1]) != null ? _b : (_a2 = values[0]) == null ? void 0 : _a2.name, ...valArray.slice(2)];
106
+ handleOnChange(listsAsArrays ? val : joinWith(val, ","));
107
+ };
108
+ const selector2handler = (v) => {
109
+ const val = [valArray[0], v, ...valArray.slice(2)];
110
+ handleOnChange(listsAsArrays ? val : joinWith(val, ","));
111
+ };
112
+ return /* @__PURE__ */ jsxs("span", {
113
+ "data-testid": testID,
114
+ className,
115
+ title,
116
+ children: [/* @__PURE__ */ jsx(ValueSelector, {
117
+ ...props,
118
+ className: `${standardClassnames.valueListItem} ${className == null ? void 0 : className.replaceAll(standardClassnames.value, "")}`,
119
+ handleOnChange: selector1handler,
120
+ disabled,
121
+ value: valArray[0],
122
+ options: values,
123
+ listsAsArrays
124
+ }), /* @__PURE__ */ jsx(ValueSelector, {
125
+ ...props,
126
+ className: `${standardClassnames.valueListItem} ${className == null ? void 0 : className.replaceAll(standardClassnames.value, "")}`,
127
+ handleOnChange: selector2handler,
128
+ disabled,
129
+ value: valArray[1],
130
+ options: values,
131
+ listsAsArrays
132
+ })]
133
+ });
134
+ }
140
135
  switch (type) {
141
136
  case "select":
142
137
  case "multiselect":
143
- return /* @__PURE__ */ jsx(ValueSelector, __spreadProps(__spreadValues({}, props), {
138
+ return /* @__PURE__ */ jsx(ValueSelector, {
139
+ ...props,
144
140
  className: `${className} form-select form-select-sm`,
145
141
  title,
146
142
  handleOnChange,
147
143
  value,
148
144
  disabled,
149
145
  multiple: type === "multiselect",
146
+ listsAsArrays,
150
147
  options: values
151
- }));
148
+ });
152
149
  case "textarea":
153
150
  return /* @__PURE__ */ jsx("textarea", {
154
151
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/jsx-runtime.js","../react/jsx-runtime","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as jsxRuntime from \"/Users/jake/git/react-querybuilder/node_modules/react/jsx-runtime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useRef } 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 = useRef(`notToggle-${Math.random()}`);\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id.current}\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.current} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import { useEffect } from 'react';\nimport { ValueEditorProps, ValueSelector } from 'react-querybuilder';\n\nexport const BootstrapValueEditor = ({\n fieldData,\n operator,\n value,\n handleOnChange,\n title,\n className,\n type,\n inputType,\n values,\n disabled,\n ...props\n}: ValueEditorProps) => {\n useEffect(() => {\n if (\n inputType === 'number' &&\n !['between', 'notBetween', 'in', 'notIn'].includes(operator) &&\n typeof value === 'string' &&\n value.includes(',')\n ) {\n handleOnChange('');\n }\n }, [inputType, operator, value, handleOnChange]);\n\n if (operator === 'null' || operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = fieldData?.placeholder ?? '';\n const inputTypeCoerced = ['between', 'notBetween', 'in', 'notIn'].includes(operator)\n ? 'text'\n : inputType || 'text';\n\n switch (type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueSelector\n {...props}\n className={`${className} form-select form-select-sm`}\n title={title}\n handleOnChange={handleOnChange}\n value={value}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values!}\n />\n );\n\n case 'textarea':\n return (\n <textarea\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${className}`}>\n <input\n type=\"checkbox\"\n className={`form-check-input custom-control-input`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n </span>\n );\n\n case 'checkbox':\n return (\n <input\n type=\"checkbox\"\n className={`form-check-input ${className}`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n );\n\n case 'radio':\n return (\n <span title={title}>\n {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={value === v.name}\n disabled={disabled}\n onChange={e => 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 (\n <input\n type={inputTypeCoerced}\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n","import type { Classnames, Controls } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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};\n\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n"],"names":["jsxRuntimeModule","require$$0","jsxRuntime.jsx","jsxRuntime.jsxs","BootstrapDragHandle","forwardRef","className","title","dragRef","displayName","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useRef","Math","random","_jsx","current","e","target","BootstrapValueEditor","fieldData","operator","value","type","inputType","values","props","useEffect","includes","placeHolderText","placeholder","inputTypeCoerced","map","v","name"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/jsx-runtime.js","../react/jsx-runtime","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as jsxRuntime from \"/Users/jake/git/react-querybuilder/node_modules/react/jsx-runtime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useRef } 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 = useRef(`notToggle-${Math.random()}`);\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id.current}\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.current} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import {\n joinWith,\n standardClassnames as sc,\n toArray,\n useValueEditor,\n ValueSelector,\n type ValueEditorProps,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = ({\n fieldData,\n operator,\n value,\n handleOnChange,\n title,\n className,\n type,\n inputType,\n values = [],\n listsAsArrays,\n disabled,\n testID,\n ...props\n}: ValueEditorProps) => {\n useValueEditor({ handleOnChange, inputType, operator, value });\n\n if (operator === 'null' || operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = fieldData?.placeholder ?? '';\n const inputTypeCoerced = ['between', 'notBetween', 'in', 'notIn'].includes(operator)\n ? 'text'\n : inputType || 'text';\n\n if ((operator === 'between' || operator === 'notBetween') && type === 'select') {\n const valArray = toArray(value);\n const selector1handler = (v: string) => {\n const val = [v, valArray[1] ?? values[0]?.name, ...valArray.slice(2)];\n handleOnChange(listsAsArrays ? val : joinWith(val, ','));\n };\n const selector2handler = (v: string) => {\n const val = [valArray[0], v, ...valArray.slice(2)];\n handleOnChange(listsAsArrays ? val : joinWith(val, ','));\n };\n return (\n <span data-testid={testID} className={className} title={title}>\n <ValueSelector\n {...props}\n className={`${sc.valueListItem} ${className?.replaceAll(sc.value, '')}`}\n handleOnChange={selector1handler}\n disabled={disabled}\n value={valArray[0]}\n options={values}\n listsAsArrays={listsAsArrays}\n />\n <ValueSelector\n {...props}\n className={`${sc.valueListItem} ${className?.replaceAll(sc.value, '')}`}\n handleOnChange={selector2handler}\n disabled={disabled}\n value={valArray[1]}\n options={values}\n listsAsArrays={listsAsArrays}\n />\n </span>\n );\n }\n\n switch (type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueSelector\n {...props}\n className={`${className} form-select form-select-sm`}\n title={title}\n handleOnChange={handleOnChange}\n value={value}\n disabled={disabled}\n multiple={type === 'multiselect'}\n listsAsArrays={listsAsArrays}\n options={values}\n />\n );\n\n case 'textarea':\n return (\n <textarea\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${className}`}>\n <input\n type=\"checkbox\"\n className={`form-check-input custom-control-input`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n </span>\n );\n\n case 'checkbox':\n return (\n <input\n type=\"checkbox\"\n className={`form-check-input ${className}`}\n title={title}\n disabled={disabled}\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!value}\n />\n );\n\n case 'radio':\n return (\n <span title={title}>\n {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={value === v.name}\n disabled={disabled}\n onChange={e => 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 (\n <input\n type={inputTypeCoerced}\n value={value}\n title={title}\n className={className}\n disabled={disabled}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n />\n );\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n","import type { Classnames, Controls } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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};\n\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n"],"names":["jsxRuntimeModule","require$$0","jsxRuntime.jsx","jsxRuntime.jsxs","BootstrapDragHandle","forwardRef","className","title","dragRef","displayName","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useRef","Math","random","_jsx","current","e","target","BootstrapValueEditor","fieldData","operator","value","type","inputType","values","listsAsArrays","testID","props","placeHolderText","placeholder","inputTypeCoerced","includes","valArray","toArray","selector1handler","v","val","name","slice","joinWith","selector2handler","sc","valueListItem","replaceAll","map"],"mappings":";;;;;;;;;;;;;AASa,IAAI,IAAE,YAAiB,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,UAAU,gBAAe,IAAE,EAAE,mDAAmD,mBAAkB,IAAE,EAAC,KAAI,MAAG,KAAI,MAAG,QAAO,MAAG,UAAS,KAAE;AAClP,WAAW,GAAE,GAAE,GAAE;AAAC,MAAI,GAAE,IAAE,IAAG,IAAE,MAAK,IAAE;AAAK,EAAS,MAAT,UAAa,KAAE,KAAG;AAAG,EAAS,EAAE,QAAX,UAAiB,KAAE,KAAG,EAAE;AAAK,EAAS,EAAE,QAAX,UAAiB,KAAE,EAAE;AAAK,OAAI,KAAK;AAAE,MAAE,KAAK,GAAE,CAAC,KAAG,CAAC,EAAE,eAAe,CAAC,KAAI,GAAE,KAAG,EAAE;AAAI,MAAG,KAAG,EAAE;AAAa,SAAI,KAAK,IAAE,EAAE,cAAa;AAAE,MAAS,EAAE,OAAX,UAAgB,GAAE,KAAG,EAAE;AAAI,SAAM,EAAC,UAAS,GAAE,MAAK,GAAE,KAAI,GAAE,KAAI,GAAE,OAAM,GAAE,QAAO,EAAE,QAAO;AAAC;0CAAkB;AAAa,+BAAA,MAAC;AAAE,+BAAA,OAAa;ACR/T;AACzCA,aAAA,UAAiBC;AACnB;ACHO,MAAM,MAAMC,WAAc,QAAA;AAC1B,MAAM,OAAOC,WAAAA,QAAAA;ACCPC,MAAAA,sBAAsBC,WACjC,CAAC;AAAA,EAAEC;AAAAA,EAAWC;AAAAA,GAASC,gCACrB,QAAA;AAAA,EAAM,KAAKA;AAAAA,EAAS;AAAA,EAAsB;AAAA,EAA1C,8BACE,KAAA;AAAA,IAAG,WAAU;AAAA,EAAA,CAAb;AADF,CAAA,CAFyC;AAQ7CJ,oBAAoBK,cAAc;ACR3B,MAAMC,qBAAqB,CAAC;AAAA,EACjCJ;AAAAA,EACAK;AAAAA,EACAJ;AAAAA,EACAK;AAAAA,EACAC;AAAAA,EACAC;AAAAA,MACoB;AACpB,QAAMC,KAAKC,OAAQ,aAAYC,KAAKC,UAAnB;AAEjB,8BACE,OAAA;AAAA,IAAK,WAAY,iCAAgCZ;AAAAA,IAAjD,UACE,CAAAa,oBAAA,SAAA;AAAA,MACE,IAAIJ,GAAGK;AAAAA,MACP,WAAU;AAAA,MACV,MAAK;AAAA,MACL,UAAUC,CAAAA,MAAKV,eAAeU,EAAEC,OAAOT,OAAV;AAAA,MAC7B,SAAS,CAAC,CAACA;AAAAA,MACX;AAAA,IAAA,CANF,GAQAM,oBAAA,SAAA;AAAA,MAAO;AAAA,MAAc,SAASJ,GAAGK;AAAAA,MAAS,WAAU;AAAA,MAApD,UACGR;AAAAA,IAAAA,CAVL,CAAA;AAAA,EAAA,CADF;AAeD;AAEDF,mBAAmBD,cAAc;ACrB1B,MAAMc,uBAAuB,CAAC;AAAA,EACnCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAf;AAAAA,EACAJ;AAAAA,EACAD;AAAAA,EACAqB;AAAAA,EACAC;AAAAA,EACAC,SAAS,CAT0B;AAAA,EAUnCC;AAAAA,EACAhB;AAAAA,EACAiB;AAAAA,KACGC;AAAAA,MACmB;;AACP,iBAAA;AAAA,IAAErB;AAAAA,IAAgBiB;AAAAA,IAAWH;AAAAA,IAAUC;AAAAA,EAAAA,CAAxC;AAEVD,MAAAA,aAAa,UAAUA,aAAa,WAAW;AAC1C,WAAA;AAAA,EACR;AAEKQ,QAAAA,kBAAkBT,6CAAWU,gBAAXV,YAA0B;AAC5CW,QAAAA,mBAAmB,CAAC,WAAW,cAAc,MAAM,OAAhC,EAAyCC,SAASX,QAAlD,IACrB,SACAG,aAAa;AAEjB,MAAkB,cAAA,aAAaH,aAAa,iBAAiBE,SAAS,UAAU;AACxEU,UAAAA,WAAWC,QAAQZ,KAAD;AAClBa,UAAAA,mBAAmB,CAACC,MAAc;;AACtC,YAAMC,MAAM,CAACD,GAAGH,eAAS,OAATA,YAAeR,cAAO,OAAPA,oBAAWa,MAAM,GAAGL,SAASM,MAAM,CAAf,CAAvC;AACZhC,qBAAemB,gBAAgBW,MAAMG,SAASH,KAAK,GAAN,CAA/B;AAAA,IAAA;AAEVI,UAAAA,mBAAmB,CAACL,MAAc;AAChCC,YAAAA,MAAM,CAACJ,SAAS,IAAIG,GAAG,GAAGH,SAASM,MAAM,CAAf,CAApB;AACZhC,qBAAemB,gBAAgBW,MAAMG,SAASH,KAAK,GAAN,CAA/B;AAAA,IAAA;AAEhB,gCACE,QAAA;AAAA,MAAM,eAAaV;AAAAA,MAAQ;AAAA,MAAsB;AAAA,MAAjD,UACE,CAAAZ,oBAAC,eAAD;AAAA,QAAA,GACMa;AAAAA,QACJ,WAAY,GAAEc,mBAAGC,iBAAiBzC,uCAAW0C,WAAWF,mBAAGpB,OAAO;AAAA,QAClE,gBAAgBa;AAAAA,QAChB;AAAA,QACA,OAAOF,SAAS;AAAA,QAChB,SAASR;AAAAA,QACT;AAAA,MAAA,CAPF,GASAV,oBAAC,eAAD;AAAA,QAAA,GACMa;AAAAA,QACJ,WAAY,GAAEc,mBAAGC,iBAAiBzC,uCAAW0C,WAAWF,mBAAGpB,OAAO;AAAA,QAClE,gBAAgBmB;AAAAA,QAChB;AAAA,QACA,OAAOR,SAAS;AAAA,QAChB,SAASR;AAAAA,QACT;AAAA,MAAA,CAjBJ,CAAA;AAAA,IAAA,CADF;AAAA,EAsBD;AAEOF,UAAAA;AAAAA,SACD;AAAA,SACA;AACH,iCACG,eAAD;AAAA,QAAA,GACMK;AAAAA,QACJ,WAAY,GAAE1B;AAAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAUqB,SAAS;AAAA,QACnB;AAAA,QACA,SAASE;AAAAA,MAAAA,CAVb;AAAA,SAcG;AACH,iCACE,YAAA;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,aAAaI;AAAAA,QACb,UAAUZ,CAAAA,MAAKV,eAAeU,EAAEC,OAAOI,KAAV;AAAA,MAAA,CAPjC;AAAA,SAWG;AACH,iCACE,QAAA;AAAA,QAAM,WAAY,gCAA+BpB;AAAAA,QAAjD,8BACE,SAAA;AAAA,UACE,MAAK;AAAA,UACL,WAAY;AAAA,UACZ;AAAA,UACA;AAAA,UACA,UAAUe,CAAAA,MAAKV,eAAeU,EAAEC,OAAOT,OAAV;AAAA,UAC7B,SAAS,CAAC,CAACa;AAAAA,QAAAA,CANb;AAAA,MAAA,CAFJ;AAAA,SAaG;AACH,iCACE,SAAA;AAAA,QACE,MAAK;AAAA,QACL,WAAY,oBAAmBpB;AAAAA,QAC/B;AAAA,QACA;AAAA,QACA,UAAUe,CAAAA,MAAKV,eAAeU,EAAEC,OAAOT,OAAV;AAAA,QAC7B,SAAS,CAAC,CAACa;AAAAA,MAAAA,CAPf;AAAA,SAWG;AACH,iCACE,QAAA;AAAA,QAAM;AAAA,QAAN,UACGG,OAAOoB,IAAIT,CAAAA,2BACV,OAAA;AAAA,UAAkB,WAAU;AAAA,UAA5B,UACE,CAAArB,oBAAA,SAAA;AAAA,YACE,WAAU;AAAA,YACV,MAAK;AAAA,YACL,IAAIqB,EAAEE;AAAAA,YACN,OAAOF,EAAEE;AAAAA,YACT,SAAShB,UAAUc,EAAEE;AAAAA,YACrB;AAAA,YACA,UAAUrB,CAAAA,MAAKV,eAAeU,EAAEC,OAAOI,KAAV;AAAA,UAAA,CAP/B,GASAP,oBAAA,SAAA;AAAA,YAAO,WAAU;AAAA,YAAmB,SAASqB,EAAEE;AAAAA,YAA/C,UACGF,EAAE5B;AAAAA,UAAAA,CAXP,CAAA;AAAA,QAAA,GAAU4B,EAAEE,IAAZ,CADD;AAAA,MAAA,CAFL;AAAA;AAsBJ,6BACE,SAAA;AAAA,IACE,MAAMP;AAAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAaF;AAAAA,IACb,UAAUZ,CAAAA,MAAKV,eAAeU,EAAEC,OAAOI,KAAV;AAAA,EAAA,CARjC;AAWD;AAEDH,qBAAqBd,cAAc;AC3J5B,MAAM,2BAA8C;AAAA,EACzD,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AACf;AAEO,MAAM,6BAAkD;AAAA,EAC7D,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;;"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { ValueEditorProps } from 'react-querybuilder';
2
+ import { type ValueEditorProps } from 'react-querybuilder';
3
3
  export declare const BootstrapValueEditor: {
4
- ({ fieldData, operator, value, handleOnChange, title, className, type, inputType, values, disabled, ...props }: ValueEditorProps): JSX.Element | null;
4
+ ({ fieldData, operator, value, handleOnChange, title, className, type, inputType, values, listsAsArrays, disabled, testID, ...props }: ValueEditorProps): JSX.Element | null;
5
5
  displayName: string;
6
6
  };
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": "4.4.1",
4
+ "version": "4.5.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -29,7 +29,7 @@
29
29
  "@vitejs/plugin-react": "^1.3.0",
30
30
  "bootstrap-icons": "^1.7.0",
31
31
  "react": "^18.1.0",
32
- "react-querybuilder": "^4.4.1",
32
+ "react-querybuilder": "^4.5.2",
33
33
  "typescript": "^4.5.0"
34
34
  },
35
35
  "peerDependencies": {
@@ -38,5 +38,5 @@
38
38
  "react": ">=16.8.0",
39
39
  "react-querybuilder": ">=4"
40
40
  },
41
- "gitHead": "431673e67c0ebde66be797b44511321c1bb72de2"
41
+ "gitHead": "3d6c5159ede5b976429dddaa0d8ce079bd6b82a3"
42
42
  }