@react-querybuilder/bootstrap 6.0.0-alpha.3 → 6.0.0-alpha.4

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 CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react-querybuilder"),t=require("react/jsx-runtime"),h=require("react"),d=h.forwardRef(({className:e,title:n},r)=>t.jsx("span",{ref:r,className:e,title:n,children:t.jsx("i",{className:"bi bi-grip-vertical"})}));d.displayName="BootstrapDragHandle";const u=({className:e,handleOnChange:n,title:r,label:c,checked:m,disabled:a})=>{const l=h.useId();return t.jsxs("div",{className:`form-check-inline form-switch ${e}`,children:[t.jsx("input",{id:l,className:"form-check-input",type:"checkbox",onChange:o=>n(o.target.checked),checked:!!m,disabled:a}),t.jsx("label",{title:r,htmlFor:l,className:"form-check-label",children:c})]})};u.displayName="BootstrapNotToggle";const b=e=>{const{valArray:n,betweenValueHandler:r}=s.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=s.ValueSelector}=e;if(e.operator==="null"||e.operator==="notNull")return null;const m=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){const a=["from","to"].map((l,o)=>e.type==="text"?t.jsx("input",{type:e.inputType||"text",placeholder:m,value:n[o]??"",className:`${s.standardClassnames.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:i=>r(i.target.value,o)},l):t.jsx(c,{...e,className:`${s.standardClassnames.valueListItem} form-select form-select-sm`,handleOnChange:i=>r(i,o),disabled:e.disabled,value:n[o]??s.getFirstOption(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays},l));return t.jsxs("span",{"data-testid":e.testID,className:s.standardClassnames.value,title:e.title,children:[a[0],e.separator,a[1]]})}switch(e.type){case"select":case"multiselect":return t.jsx(s.ValueEditor,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return t.jsx("span",{className:`custom-control custom-switch ${e.className}`,children:t.jsx("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.jsx(s.ValueEditor,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return t.jsx("span",{title:e.title,className:s.standardClassnames.value,children:e.values?.map(a=>t.jsxs("div",{className:"form-check form-check-inline",children:[t.jsx("input",{className:"form-check-input",type:"radio",id:a.name,value:a.name,checked:e.value===a.name,disabled:e.disabled,onChange:l=>e.handleOnChange(l.target.value)}),t.jsx("label",{className:"form-check-label",htmlFor:a.name,children:a.label})]},a.name))})}return t.jsx(s.ValueEditor,{skipHook:!0,...e})};b.displayName="BootstrapValueEditor";const f={dragHandle:d,notToggle:u,valueEditor:b},y={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"},g=s.getCompatContextProvider({key:"bootstrap",controlClassnames:y,controlElements:f});exports.BootstrapDragHandle=d;exports.BootstrapNotToggle=u;exports.BootstrapValueEditor=b;exports.QueryBuilderBootstrap=g;exports.bootstrapControlClassnames=y;exports.bootstrapControlElements=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react-querybuilder"),t=require("react/jsx-runtime"),h=require("react"),d=h.forwardRef(({className:e,title:n},o)=>t.jsx("span",{ref:o,className:e,title:n,children:t.jsx("i",{className:"bi bi-grip-vertical"})}));d.displayName="BootstrapDragHandle";const u=({className:e,handleOnChange:n,title:o,label:c,checked:m,disabled:a})=>{const l=h.useId();return t.jsxs("div",{className:`form-check-inline form-switch ${e}`,children:[t.jsx("input",{id:l,className:"form-check-input",type:"checkbox",onChange:r=>n(r.target.checked),checked:!!m,disabled:a}),t.jsx("label",{title:o,htmlFor:l,className:"form-check-label",children:c})]})};u.displayName="BootstrapNotToggle";const b=e=>{const{valArray:n,betweenValueHandler:o}=s.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=s.ValueSelector}=e;if(e.operator==="null"||e.operator==="notNull")return null;const m=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){const a=["from","to"].map((l,r)=>e.type==="text"?t.jsx("input",{type:e.inputType||"text",placeholder:m,value:n[r]??"",className:`${s.standardClassnames.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:i=>o(i.target.value,r)},l):t.jsx(c,{...e,className:`${s.standardClassnames.valueListItem} form-select form-select-sm`,handleOnChange:i=>o(i,r),disabled:e.disabled,value:n[r]??s.getFirstOption(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays},l));return t.jsxs("span",{"data-testid":e.testID,className:s.standardClassnames.value,title:e.title,children:[a[0],e.separator,a[1]]})}switch(e.type){case"select":case"multiselect":return t.jsx(s.ValueEditor,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return t.jsx("span",{className:`custom-control custom-switch ${e.className}`,children:t.jsx("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.jsx(s.ValueEditor,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return t.jsx("span",{title:e.title,className:s.standardClassnames.value,children:e.values?.map(a=>t.jsxs("div",{className:"form-check form-check-inline",children:[t.jsx("input",{className:"form-check-input",type:"radio",id:a.name,value:a.name,checked:e.value===a.name,disabled:e.disabled,onChange:l=>e.handleOnChange(l.target.value)}),t.jsx("label",{className:"form-check-label",htmlFor:a.name,children:a.label})]},a.name))})}return t.jsx(s.ValueEditor,{skipHook:!0,...e})};b.displayName="BootstrapValueEditor";const f={dragHandle:d,notToggle:u,valueEditor:b},g={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"},y=s.getCompatContextProvider({key:"bootstrap",controlClassnames:g,controlElements:f});exports.BootstrapDragHandle=d;exports.BootstrapNotToggle=u;exports.BootstrapValueEditor=b;exports.QueryBuilderBootstrap=y;exports.bootstrapControlClassnames=g;exports.bootstrapControlElements=f;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["import type { DragHandleProps } from '@react-querybuilder/ts';\nimport { forwardRef } from 'react';\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 type { NotToggleProps } from '@react-querybuilder/ts';\nimport { useId } from 'react';\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 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 { valArray, betweenValueHandler } = 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={valArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => betweenValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n key={key}\n {...props}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => betweenValueHandler(v, i)}\n disabled={props.disabled}\n value={valArray[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","import type { Classnames, Controls } from '@react-querybuilder/ts';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, 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 const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n"],"names":["BootstrapDragHandle","forwardRef","className","title","dragRef","jsx","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useId","jsxs","e","BootstrapValueEditor","props","valArray","betweenValueHandler","useValueEditor","SelectorComponent","ValueSelector","placeHolderText","editors","key","i","standardClassnames","v","getFirstOption","ValueEditor","bootstrapControlElements","bootstrapControlClassnames","QueryBuilderBootstrap","getCompatContextProvider"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["import type { DragHandleProps } from '@react-querybuilder/ts';\nimport { forwardRef } from 'react';\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 type { NotToggleProps } from '@react-querybuilder/ts';\nimport { useId } from 'react';\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 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 { valArray, betweenValueHandler } = 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={valArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => betweenValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n key={key}\n {...props}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => betweenValueHandler(v, i)}\n disabled={props.disabled}\n value={valArray[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","import type { Classnames, Controls } from '@react-querybuilder/ts';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, 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 const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n"],"names":["BootstrapDragHandle","forwardRef","className","title","dragRef","jsx","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useId","jsxs","e","BootstrapValueEditor","props","valArray","betweenValueHandler","useValueEditor","SelectorComponent","ValueSelector","placeHolderText","editors","key","i","standardClassnames","v","getFirstOption","ValueEditor","bootstrapControlElements","bootstrapControlClassnames","QueryBuilderBootstrap","getCompatContextProvider"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["import type { DragHandleProps } from '@react-querybuilder/ts';\nimport { forwardRef } from 'react';\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 type { NotToggleProps } from '@react-querybuilder/ts';\nimport { useId } from 'react';\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 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 { valArray, betweenValueHandler } = 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={valArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => betweenValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n key={key}\n {...props}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => betweenValueHandler(v, i)}\n disabled={props.disabled}\n value={valArray[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","import type { Classnames, Controls } from '@react-querybuilder/ts';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, 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 const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n"],"names":["BootstrapDragHandle","forwardRef","className","title","dragRef","jsx","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useId","jsxs","e","BootstrapValueEditor","props","valArray","betweenValueHandler","useValueEditor","SelectorComponent","ValueSelector","placeHolderText","editors","key","i","standardClassnames","v","getFirstOption","ValueEditor","bootstrapControlElements","bootstrapControlClassnames","QueryBuilderBootstrap","getCompatContextProvider"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.ts"],"sourcesContent":["import type { DragHandleProps } from '@react-querybuilder/ts';\nimport { forwardRef } from 'react';\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 type { NotToggleProps } from '@react-querybuilder/ts';\nimport { useId } from 'react';\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 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 { valArray, betweenValueHandler } = 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={valArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => betweenValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n key={key}\n {...props}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => betweenValueHandler(v, i)}\n disabled={props.disabled}\n value={valArray[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","import type { Classnames, Controls } from '@react-querybuilder/ts';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, 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 const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n"],"names":["BootstrapDragHandle","forwardRef","className","title","dragRef","jsx","BootstrapNotToggle","handleOnChange","label","checked","disabled","id","useId","jsxs","e","BootstrapValueEditor","props","valArray","betweenValueHandler","useValueEditor","SelectorComponent","ValueSelector","placeHolderText","editors","key","i","standardClassnames","v","getFirstOption","ValueEditor","bootstrapControlElements","bootstrapControlClassnames","QueryBuilderBootstrap","getCompatContextProvider"],"mappings":"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"}
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": "6.0.0-alpha.3",
4
+ "version": "6.0.0-alpha.4",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "devDependencies": {
42
42
  "@popperjs/core": "^2.11.6",
43
- "@react-querybuilder/ts": "^6.0.0-alpha.3",
43
+ "@react-querybuilder/ts": "^6.0.0-alpha.4",
44
44
  "@testing-library/react": "^13.4.0",
45
45
  "@types/react": "^18.0.27",
46
46
  "@vitejs/plugin-react-swc": "^3.1.0",
@@ -48,15 +48,15 @@
48
48
  "bootstrap-icons": "^1.10.3",
49
49
  "react": "^18.2.0",
50
50
  "react-dom": "^18.2.0",
51
- "react-querybuilder": "^6.0.0-alpha.3",
51
+ "react-querybuilder": "^6.0.0-alpha.4",
52
52
  "rollup-plugin-visualizer": "^5.9.0",
53
- "typescript": "^4.9.4",
54
- "vite": "^4.0.4"
53
+ "typescript": "^4.9.5",
54
+ "vite": "^4.1.1"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "bootstrap": ">=5",
58
58
  "bootstrap-icons": ">=1.7.0",
59
59
  "react": ">=16.8.0"
60
60
  },
61
- "gitHead": "a68dc4bdf227a96cf55cc333bf5956fdda079089"
61
+ "gitHead": "dd7d9bf6a76f900a524c3063db46a088857fce3f"
62
62
  }