@react-querybuilder/bootstrap 8.23.1 → 8.24.1

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.
@@ -4,31 +4,30 @@ import * as React from "react";
4
4
  /**
5
5
  * @group Components
6
6
  */
7
- declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
7
+ export declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
8
8
  //#endregion
9
9
  //#region src/BootstrapValueEditor.d.ts
10
10
  /**
11
11
  * @group Components
12
12
  */
13
- declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
13
+ export declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
14
14
  //#endregion
15
15
  //#region src/index.d.ts
16
16
  /**
17
17
  * @group Props
18
18
  */
19
- declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
19
+ export declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
20
20
  /**
21
21
  * @group Props
22
22
  */
23
- declare const bootstrapControlClassnames: Partial<Classnames>;
23
+ export declare const bootstrapControlClassnames: Partial<Classnames>;
24
24
  /**
25
25
  * @group Props
26
26
  */
27
- declare const bootstrapTranslations: Partial<Translations>;
27
+ export declare const bootstrapTranslations: Partial<Translations>;
28
28
  /**
29
29
  * @group Components
30
30
  */
31
- declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
31
+ export declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
32
32
  //#endregion
33
- export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
34
33
  //# sourceMappingURL=react-querybuilder_bootstrap.cjs.development.d.ts.map
@@ -136,6 +136,7 @@ const bootstrapControlClassnames = {
136
136
  addRule: "btn-primary",
137
137
  cloneGroup: "btn-secondary",
138
138
  cloneRule: "btn-secondary",
139
+ ungroup: "btn-secondary",
139
140
  lockGroup: "btn-secondary",
140
141
  lockRule: "btn-secondary",
141
142
  removeGroup: "btn-danger",
@@ -152,6 +153,7 @@ const bootstrapTranslations = {
152
153
  removeRule: { label: /* @__PURE__ */ react.createElement("i", { className: "bi bi-x" }) },
153
154
  cloneRule: { label: /* @__PURE__ */ react.createElement("i", { className: "bi bi-copy" }) },
154
155
  cloneRuleGroup: { label: /* @__PURE__ */ react.createElement("i", { className: "bi bi-copy" }) },
156
+ ungroupRuleGroup: { label: /* @__PURE__ */ react.createElement("i", { className: "bi bi-box-arrow-up-left" }) },
155
157
  dragHandle: { label: /* @__PURE__ */ react.createElement("i", { className: "bi bi-grip-vertical" }) },
156
158
  lockGroup: { label: /* @__PURE__ */ react.createElement("i", { className: "bi bi-unlock" }) },
157
159
  lockRule: { label: /* @__PURE__ */ react.createElement("i", { className: "bi bi-unlock" }) },
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_bootstrap.cjs.development.js","names":["useId","React","useValueEditor","ValueEditor","standardClassnames","getCompatContextProvider"],"sources":["../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx","../../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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 undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"react-querybuilder_bootstrap.cjs.development.js","names":["useId","React","useValueEditor","ValueEditor","standardClassnames","getCompatContextProvider"],"sources":["../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx","../../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n ungroup: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 ungroupRuleGroup: { label: <i className=\"bi bi-box-arrow-up-left\" /> },\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"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"}
@@ -4,31 +4,30 @@ import * as React from "react";
4
4
  /**
5
5
  * @group Components
6
6
  */
7
- declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
7
+ export declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
8
8
  //#endregion
9
9
  //#region src/BootstrapValueEditor.d.ts
10
10
  /**
11
11
  * @group Components
12
12
  */
13
- declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
13
+ export declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
14
14
  //#endregion
15
15
  //#region src/index.d.ts
16
16
  /**
17
17
  * @group Props
18
18
  */
19
- declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
19
+ export declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
20
20
  /**
21
21
  * @group Props
22
22
  */
23
- declare const bootstrapControlClassnames: Partial<Classnames>;
23
+ export declare const bootstrapControlClassnames: Partial<Classnames>;
24
24
  /**
25
25
  * @group Props
26
26
  */
27
- declare const bootstrapTranslations: Partial<Translations>;
27
+ export declare const bootstrapTranslations: Partial<Translations>;
28
28
  /**
29
29
  * @group Components
30
30
  */
31
- declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
31
+ export declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
32
32
  //#endregion
33
- export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
34
33
  //# sourceMappingURL=react-querybuilder_bootstrap.cjs.production.d.ts.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));let c=require("react");c=s(c);let l=require("react-querybuilder");const u=({className:e,handleOnChange:t,title:n,label:r,checked:i,disabled:a})=>{let o=(0,c.useId)();return c.createElement(`div`,{className:`form-check-inline form-switch ${e}`},c.createElement(`input`,{id:o,className:`form-check-input`,type:`checkbox`,onChange:e=>t(e.target.checked),checked:!!i,disabled:a}),c.createElement(`label`,{title:n,htmlFor:o,className:`form-check-label`},r))},d=e=>{let t=c.useId();return c.createElement(`div`,{className:`form-check form-check-inline`},c.createElement(`input`,{className:`form-check-input`,type:`radio`,id:t,value:e.name,checked:e.checked,disabled:e.disabled,onChange:t=>e.handleOnChange(t.target.value)}),c.createElement(`label`,{className:`form-check-label`,htmlFor:t},e.label))},f=e=>{let{valueListItemClassName:t}=(0,l.useValueEditor)(e);if(e.operator===`null`||e.operator===`notNull`)return null;if((e.operator===`between`||e.operator===`notBetween`)&&(e.type===`select`||e.type===`text`)){let n=e.type===`text`?`form-control form-control-sm`:`form-select form-select-sm`;return c.createElement(l.ValueEditor,{...e,skipHook:!0,schema:{...e.schema,classNames:{...e.schema.classNames,valueListItem:`${t} ${n}`}}})}switch(e.type){case`select`:case`multiselect`:return c.createElement(l.ValueEditor,{...e,skipHook:!0,className:`${e.className} form-select form-select-sm`});case`switch`:return c.createElement(`span`,{className:`${e.className} custom-control custom-switch`},c.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 c.createElement(l.ValueEditor,{...e,skipHook:!0,className:`${e.className} form-check-input`});case`radio`:return c.createElement(`span`,{title:e.title,className:l.standardClassnames.value},e.values?.map(t=>c.createElement(d,{key:t.name,name:t.name,disabled:e.disabled,checked:e.value===t.name,handleOnChange:e.handleOnChange,label:t.label})))}return c.createElement(l.ValueEditor,{...e,skipHook:!0,className:`${e.className} form-control form-control-sm`})},p={notToggle:u,valueEditor:f},m={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`,undoAction:`btn-secondary`,redoAction:`btn-secondary`,valueSelector:`form-select form-select-sm`},h={removeGroup:{label:c.createElement(`i`,{className:`bi bi-x`})},removeRule:{label:c.createElement(`i`,{className:`bi bi-x`})},cloneRule:{label:c.createElement(`i`,{className:`bi bi-copy`})},cloneRuleGroup:{label:c.createElement(`i`,{className:`bi bi-copy`})},dragHandle:{label:c.createElement(`i`,{className:`bi bi-grip-vertical`})},lockGroup:{label:c.createElement(`i`,{className:`bi bi-unlock`})},lockRule:{label:c.createElement(`i`,{className:`bi bi-unlock`})},lockGroupDisabled:{label:c.createElement(`i`,{className:`bi bi-lock`})},lockRuleDisabled:{label:c.createElement(`i`,{className:`bi bi-lock`})},shiftActionUp:{label:c.createElement(`i`,{className:`bi bi-chevron-compact-up`})},shiftActionDown:{label:c.createElement(`i`,{className:`bi bi-chevron-compact-down`})},undo:{label:c.createElement(`i`,{className:`bi bi-arrow-counterclockwise`})},redo:{label:c.createElement(`i`,{className:`bi bi-arrow-clockwise`})}},g=(0,l.getCompatContextProvider)({controlClassnames:m,controlElements:p,translations:h});exports.BootstrapNotToggle=u,exports.BootstrapValueEditor=f,exports.QueryBuilderBootstrap=g,exports.bootstrapControlClassnames=m,exports.bootstrapControlElements=p,exports.bootstrapTranslations=h;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));let c=require("react");c=s(c);let l=require("react-querybuilder");const u=({className:e,handleOnChange:t,title:n,label:r,checked:i,disabled:a})=>{let o=(0,c.useId)();return/* @__PURE__ */ c.createElement(`div`,{className:`form-check-inline form-switch ${e}`},/* @__PURE__ */ c.createElement(`input`,{id:o,className:`form-check-input`,type:`checkbox`,onChange:e=>t(e.target.checked),checked:!!i,disabled:a}),/* @__PURE__ */ c.createElement(`label`,{title:n,htmlFor:o,className:`form-check-label`},r))},d=e=>{let t=c.useId();return/* @__PURE__ */ c.createElement(`div`,{className:`form-check form-check-inline`},/* @__PURE__ */ c.createElement(`input`,{className:`form-check-input`,type:`radio`,id:t,value:e.name,checked:e.checked,disabled:e.disabled,onChange:t=>e.handleOnChange(t.target.value)}),/* @__PURE__ */ c.createElement(`label`,{className:`form-check-label`,htmlFor:t},e.label))},f=e=>{let{valueListItemClassName:t}=(0,l.useValueEditor)(e);if(e.operator===`null`||e.operator===`notNull`)return null;if((e.operator===`between`||e.operator===`notBetween`)&&(e.type===`select`||e.type===`text`)){let n=e.type===`text`?`form-control form-control-sm`:`form-select form-select-sm`;return/* @__PURE__ */ c.createElement(l.ValueEditor,{...e,skipHook:!0,schema:{...e.schema,classNames:{...e.schema.classNames,valueListItem:`${t} ${n}`}}})}switch(e.type){case`select`:case`multiselect`:return/* @__PURE__ */ c.createElement(l.ValueEditor,{...e,skipHook:!0,className:`${e.className} form-select form-select-sm`});case`switch`:return/* @__PURE__ */ c.createElement(`span`,{className:`${e.className} custom-control custom-switch`},/* @__PURE__ */ c.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/* @__PURE__ */ c.createElement(l.ValueEditor,{...e,skipHook:!0,className:`${e.className} form-check-input`});case`radio`:return/* @__PURE__ */ c.createElement(`span`,{title:e.title,className:l.standardClassnames.value},e.values?.map(t=>/* @__PURE__ */ c.createElement(d,{key:t.name,name:t.name,disabled:e.disabled,checked:e.value===t.name,handleOnChange:e.handleOnChange,label:t.label})))}return/* @__PURE__ */ c.createElement(l.ValueEditor,{...e,skipHook:!0,className:`${e.className} form-control form-control-sm`})},p={notToggle:u,valueEditor:f},m={actionElement:`btn btn-sm`,addGroup:`btn-secondary`,addRule:`btn-primary`,cloneGroup:`btn-secondary`,cloneRule:`btn-secondary`,ungroup:`btn-secondary`,lockGroup:`btn-secondary`,lockRule:`btn-secondary`,removeGroup:`btn-danger`,removeRule:`btn-danger`,undoAction:`btn-secondary`,redoAction:`btn-secondary`,valueSelector:`form-select form-select-sm`},h={removeGroup:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-x`})},removeRule:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-x`})},cloneRule:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-copy`})},cloneRuleGroup:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-copy`})},ungroupRuleGroup:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-box-arrow-up-left`})},dragHandle:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-grip-vertical`})},lockGroup:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-unlock`})},lockRule:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-unlock`})},lockGroupDisabled:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-lock`})},lockRuleDisabled:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-lock`})},shiftActionUp:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-chevron-compact-up`})},shiftActionDown:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-chevron-compact-down`})},undo:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-arrow-counterclockwise`})},redo:{label:/* @__PURE__ */ c.createElement(`i`,{className:`bi bi-arrow-clockwise`})}},g=(0,l.getCompatContextProvider)({controlClassnames:m,controlElements:p,translations:h});exports.BootstrapNotToggle=u,exports.BootstrapValueEditor=f,exports.QueryBuilderBootstrap=g,exports.bootstrapControlClassnames=m,exports.bootstrapControlElements=p,exports.bootstrapTranslations=h;
2
2
  //# sourceMappingURL=react-querybuilder_bootstrap.cjs.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_bootstrap.cjs.production.js","names":["useId","React","useValueEditor","ValueEditor","standardClassnames","getCompatContextProvider"],"sources":["../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx","../../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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 undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"ynBAOA,MAAa,GAAsB,CACjC,YACA,iBACA,QACA,QACA,UACA,cACuC,CACvC,IAAM,GAAA,EAAKA,EAAAA,MAAAA,CAAM,EAEjB,OACE,EAAA,cAAC,MAAD,CAAK,UAAW,iCAAiC,GAY5C,EAXH,EAAA,cAAC,QAAD,CACM,KACJ,UAAU,mBACV,KAAK,WACL,SAAU,GAAK,EAAe,EAAE,OAAO,OAAO,EAC9C,QAAS,CAAC,CAAC,EACD,UACX,CAAA,EACD,EAAA,cAAC,QAAD,CAAc,QAAO,QAAS,EAAI,UAAU,kBAErC,EADJ,CACI,CACJ,CAET,EC3BM,EAAe,GAMf,CACJ,IAAM,EAAKC,EAAM,MAAM,EACvB,OACE,EAAA,cAAC,MAAD,CAAK,UAAU,8BAaV,EAZH,EAAA,cAAC,QAAD,CACE,UAAU,mBACV,KAAK,QACD,KACJ,MAAO,EAAM,KACb,QAAS,EAAM,QACf,SAAU,EAAM,SAChB,SAAU,GAAK,EAAM,eAAe,EAAE,OAAO,KAAK,CACnD,CAAA,EACD,EAAA,cAAC,QAAD,CAAO,UAAU,mBAAmB,QAAS,CAEtC,EADJ,EAAM,KACF,CACJ,CAET,EAKa,EAAwB,GAAsD,CACzF,GAAM,CAAE,2BAAA,EAA2BC,EAAAA,eAAAA,CAAe,CAAK,EAEvD,GAAI,EAAM,WAAa,QAAU,EAAM,WAAa,UAClD,OAAO,KAGT,IACG,EAAM,WAAa,WAAa,EAAM,WAAa,gBACnD,EAAM,OAAS,UAAY,EAAM,OAAS,QAC3C,CACA,IAAM,EACJ,EAAM,OAAS,OAAS,+BAAiC,6BAC3D,OACE,EAAA,cAACC,EAAAA,YAAD,CACE,GAAI,EACJ,SAAA,GACA,OAAQ,CACN,GAAG,EAAM,OACT,WAAY,CACV,GAAG,EAAM,OAAO,WAChB,cAAe,GAAG,EAAuB,GAAG,GAC9C,CACF,CACD,CAAA,CAEL,CAEA,OAAQ,EAAM,KAAd,CACE,IAAK,SACL,IAAK,cACH,OACE,EAAA,cAACA,EAAAA,YAAD,CACE,GAAI,EACJ,SAAA,GACA,UAAW,GAAG,EAAM,UAAU,4BAC/B,CAAA,EAGL,IAAK,SACH,OACE,EAAA,cAAC,OAAD,CAAM,UAAW,GAAG,EAAM,UAAU,8BAS9B,EARJ,EAAA,cAAC,QAAD,CACE,KAAK,WACL,UAAU,wCACV,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,SAAU,GAAK,EAAM,eAAe,EAAE,OAAO,OAAO,EACpD,QAAS,CAAC,CAAC,EAAM,KAClB,CAAA,CACG,EAGV,IAAK,WACH,OAAO,EAAA,cAACA,EAAAA,YAAD,CAAa,GAAI,EAAO,SAAA,GAAS,UAAW,GAAG,EAAM,UAAU,kBAAqB,CAAA,EAE7F,IAAK,QACH,OACE,EAAA,cAAC,OAAD,CAAM,MAAO,EAAM,MAAO,UAAWC,EAAAA,mBAAmB,KAWlD,EAVH,EAAM,QAAQ,IAAI,GACjB,EAAA,cAAC,EAAD,CACE,IAAK,EAAE,KACP,KAAM,EAAE,KACR,SAAU,EAAM,SAChB,QAAS,EAAM,QAAU,EAAE,KAC3B,eAAgB,EAAM,eACtB,MAAO,EAAE,KACV,CAAA,CACF,CACG,CAEZ,CAEA,OACE,EAAA,cAACD,EAAAA,YAAD,CACE,GAAI,EACJ,SAAA,GACA,UAAW,GAAG,EAAM,UAAU,8BAC/B,CAAA,CAEL,EChGa,EAAmE,CAC9E,UAAW,EACX,YAAa,CACf,EAKa,EAAkD,CAC7D,cAAe,aACf,SAAU,gBACV,QAAS,cACT,WAAY,gBACZ,UAAW,gBACX,UAAW,gBACX,SAAU,gBACV,YAAa,aACb,WAAY,aACZ,WAAY,gBACZ,WAAY,gBAGZ,cAAe,4BACjB,EAKa,EAA+C,CAC1D,YAAa,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,SAAW,CAAA,CAAE,EAChD,WAAY,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,SAAW,CAAA,CAAE,EAC/C,UAAW,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACjD,eAAgB,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACtD,WAAY,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,qBAAuB,CAAA,CAAE,EAC3D,UAAW,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,cAAgB,CAAA,CAAE,EACnD,SAAU,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,cAAgB,CAAA,CAAE,EAClD,kBAAmB,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACzD,iBAAkB,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACxD,cAAe,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,0BAA4B,CAAA,CAAE,EACnE,gBAAiB,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,4BAA8B,CAAA,CAAE,EACvE,KAAM,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,8BAAgC,CAAA,CAAE,EAC9D,KAAM,CAAE,MAAO,EAAA,cAAC,IAAD,CAAG,UAAU,uBAAyB,CAAA,CAAE,CACzD,EAKa,GAAA,EAAqDE,EAAAA,yBAAAA,CAAyB,CACzF,kBAAmB,EACnB,gBAAiB,EACjB,aAAc,CAChB,CAAC"}
1
+ {"version":3,"file":"react-querybuilder_bootstrap.cjs.production.js","names":["useId","React","useValueEditor","ValueEditor","standardClassnames","getCompatContextProvider"],"sources":["../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx","../../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n ungroup: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 ungroupRuleGroup: { label: <i className=\"bi bi-box-arrow-up-left\" /> },\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"ynBAOA,MAAa,GAAsB,CACjC,YACA,iBACA,QACA,QACA,UACA,cACuC,CACvC,IAAM,GAAA,EAAKA,EAAAA,MAAAA,CAAM,EAEjB,MACE,kBAAA,cAAC,MAAD,CAAK,UAAW,iCAAiC,GAY5C,EAXH,kBAAA,cAAC,QAAD,CACM,KACJ,UAAU,mBACV,KAAK,WACL,SAAU,GAAK,EAAe,EAAE,OAAO,OAAO,EAC9C,QAAS,CAAC,CAAC,EACD,UACX,CAAA,EACD,kBAAA,cAAC,QAAD,CAAc,QAAO,QAAS,EAAI,UAAU,kBAErC,EADJ,CACI,CACJ,CAET,EC3BM,EAAe,GAMf,CACJ,IAAM,EAAKC,EAAM,MAAM,EACvB,MACE,kBAAA,cAAC,MAAD,CAAK,UAAU,8BAaV,EAZH,kBAAA,cAAC,QAAD,CACE,UAAU,mBACV,KAAK,QACD,KACJ,MAAO,EAAM,KACb,QAAS,EAAM,QACf,SAAU,EAAM,SAChB,SAAU,GAAK,EAAM,eAAe,EAAE,OAAO,KAAK,CACnD,CAAA,EACD,kBAAA,cAAC,QAAD,CAAO,UAAU,mBAAmB,QAAS,CAEtC,EADJ,EAAM,KACF,CACJ,CAET,EAKa,EAAwB,GAAsD,CACzF,GAAM,CAAE,2BAAA,EAA2BC,EAAAA,eAAAA,CAAe,CAAK,EAEvD,GAAI,EAAM,WAAa,QAAU,EAAM,WAAa,UAClD,OAAO,KAGT,IACG,EAAM,WAAa,WAAa,EAAM,WAAa,gBACnD,EAAM,OAAS,UAAY,EAAM,OAAS,QAC3C,CACA,IAAM,EACJ,EAAM,OAAS,OAAS,+BAAiC,6BAC3D,MACE,kBAAA,cAACC,EAAAA,YAAD,CACE,GAAI,EACJ,SAAA,GACA,OAAQ,CACN,GAAG,EAAM,OACT,WAAY,CACV,GAAG,EAAM,OAAO,WAChB,cAAe,GAAG,EAAuB,GAAG,GAC9C,CACF,CACD,CAAA,CAEL,CAEA,OAAQ,EAAM,KAAd,CACE,IAAK,SACL,IAAK,cACH,MACE,kBAAA,cAACA,EAAAA,YAAD,CACE,GAAI,EACJ,SAAA,GACA,UAAW,GAAG,EAAM,UAAU,4BAC/B,CAAA,EAGL,IAAK,SACH,MACE,kBAAA,cAAC,OAAD,CAAM,UAAW,GAAG,EAAM,UAAU,8BAS9B,EARJ,kBAAA,cAAC,QAAD,CACE,KAAK,WACL,UAAU,wCACV,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,SAAU,GAAK,EAAM,eAAe,EAAE,OAAO,OAAO,EACpD,QAAS,CAAC,CAAC,EAAM,KAClB,CAAA,CACG,EAGV,IAAK,WACH,MAAO,kBAAA,cAACA,EAAAA,YAAD,CAAa,GAAI,EAAO,SAAA,GAAS,UAAW,GAAG,EAAM,UAAU,kBAAqB,CAAA,EAE7F,IAAK,QACH,MACE,kBAAA,cAAC,OAAD,CAAM,MAAO,EAAM,MAAO,UAAWC,EAAAA,mBAAmB,KAWlD,EAVH,EAAM,QAAQ,IAAI,GACjB,kBAAA,cAAC,EAAD,CACE,IAAK,EAAE,KACP,KAAM,EAAE,KACR,SAAU,EAAM,SAChB,QAAS,EAAM,QAAU,EAAE,KAC3B,eAAgB,EAAM,eACtB,MAAO,EAAE,KACV,CAAA,CACF,CACG,CAEZ,CAEA,MACE,kBAAA,cAACD,EAAAA,YAAD,CACE,GAAI,EACJ,SAAA,GACA,UAAW,GAAG,EAAM,UAAU,8BAC/B,CAAA,CAEL,EChGa,EAAmE,CAC9E,UAAW,EACX,YAAa,CACf,EAKa,EAAkD,CAC7D,cAAe,aACf,SAAU,gBACV,QAAS,cACT,WAAY,gBACZ,UAAW,gBACX,QAAS,gBACT,UAAW,gBACX,SAAU,gBACV,YAAa,aACb,WAAY,aACZ,WAAY,gBACZ,WAAY,gBAGZ,cAAe,4BACjB,EAKa,EAA+C,CAC1D,YAAa,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,SAAW,CAAA,CAAE,EAChD,WAAY,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,SAAW,CAAA,CAAE,EAC/C,UAAW,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACjD,eAAgB,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACtD,iBAAkB,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,yBAA2B,CAAA,CAAE,EACrE,WAAY,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,qBAAuB,CAAA,CAAE,EAC3D,UAAW,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,cAAgB,CAAA,CAAE,EACnD,SAAU,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,cAAgB,CAAA,CAAE,EAClD,kBAAmB,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACzD,iBAAkB,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,YAAc,CAAA,CAAE,EACxD,cAAe,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,0BAA4B,CAAA,CAAE,EACnE,gBAAiB,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,4BAA8B,CAAA,CAAE,EACvE,KAAM,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,8BAAgC,CAAA,CAAE,EAC9D,KAAM,CAAE,MAAO,kBAAA,cAAC,IAAD,CAAG,UAAU,uBAAyB,CAAA,CAAE,CACzD,EAKa,GAAA,EAAqDE,EAAAA,yBAAAA,CAAyB,CACzF,kBAAmB,EACnB,gBAAiB,EACjB,aAAc,CAChB,CAAC"}
@@ -4,31 +4,30 @@ import { Classnames, ControlElementsProp, FullField, NotToggleProps, QueryBuilde
4
4
  /**
5
5
  * @group Components
6
6
  */
7
- declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
7
+ export declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
8
8
  //#endregion
9
9
  //#region src/BootstrapValueEditor.d.ts
10
10
  /**
11
11
  * @group Components
12
12
  */
13
- declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
13
+ export declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
14
14
  //#endregion
15
15
  //#region src/index.d.ts
16
16
  /**
17
17
  * @group Props
18
18
  */
19
- declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
19
+ export declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
20
20
  /**
21
21
  * @group Props
22
22
  */
23
- declare const bootstrapControlClassnames: Partial<Classnames>;
23
+ export declare const bootstrapControlClassnames: Partial<Classnames>;
24
24
  /**
25
25
  * @group Props
26
26
  */
27
- declare const bootstrapTranslations: Partial<Translations>;
27
+ export declare const bootstrapTranslations: Partial<Translations>;
28
28
  /**
29
29
  * @group Components
30
30
  */
31
- declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
31
+ export declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
32
32
  //#endregion
33
- export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
34
33
  //# sourceMappingURL=react-querybuilder_bootstrap.d.mts.map
@@ -4,31 +4,30 @@ import { Classnames, ControlElementsProp, FullField, NotToggleProps, QueryBuilde
4
4
  /**
5
5
  * @group Components
6
6
  */
7
- declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
7
+ export declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
8
8
  //#endregion
9
9
  //#region src/BootstrapValueEditor.d.ts
10
10
  /**
11
11
  * @group Components
12
12
  */
13
- declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
13
+ export declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
14
14
  //#endregion
15
15
  //#region src/index.d.ts
16
16
  /**
17
17
  * @group Props
18
18
  */
19
- declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
19
+ export declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
20
20
  /**
21
21
  * @group Props
22
22
  */
23
- declare const bootstrapControlClassnames: Partial<Classnames>;
23
+ export declare const bootstrapControlClassnames: Partial<Classnames>;
24
24
  /**
25
25
  * @group Props
26
26
  */
27
- declare const bootstrapTranslations: Partial<Translations>;
27
+ export declare const bootstrapTranslations: Partial<Translations>;
28
28
  /**
29
29
  * @group Components
30
30
  */
31
- declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
31
+ export declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
32
32
  //#endregion
33
- export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
34
33
  //# sourceMappingURL=react-querybuilder_bootstrap.legacy-esm.d.ts.map
@@ -21,7 +21,7 @@ const BootstrapNotToggle = ({ className, handleOnChange, title, label, checked,
21
21
  }, label));
22
22
  };
23
23
  //#endregion
24
- //#region \0@oxc-project+runtime@0.144.0/helpers/esm/typeof.js
24
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/typeof.js
25
25
  function _typeof(o) {
26
26
  "@babel/helpers - typeof";
27
27
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -31,7 +31,7 @@ function _typeof(o) {
31
31
  }, _typeof(o);
32
32
  }
33
33
  //#endregion
34
- //#region \0@oxc-project+runtime@0.144.0/helpers/esm/toPrimitive.js
34
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/toPrimitive.js
35
35
  function toPrimitive(t, r) {
36
36
  if ("object" != _typeof(t) || !t) return t;
37
37
  var e = t[Symbol.toPrimitive];
@@ -43,13 +43,13 @@ function toPrimitive(t, r) {
43
43
  return ("string" === r ? String : Number)(t);
44
44
  }
45
45
  //#endregion
46
- //#region \0@oxc-project+runtime@0.144.0/helpers/esm/toPropertyKey.js
46
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/toPropertyKey.js
47
47
  function toPropertyKey(t) {
48
48
  var i = toPrimitive(t, "string");
49
49
  return "symbol" == _typeof(i) ? i : i + "";
50
50
  }
51
51
  //#endregion
52
- //#region \0@oxc-project+runtime@0.144.0/helpers/esm/defineProperty.js
52
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/defineProperty.js
53
53
  function _defineProperty(e, r, t) {
54
54
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
55
55
  value: t,
@@ -59,7 +59,7 @@ function _defineProperty(e, r, t) {
59
59
  }) : e[r] = t, e;
60
60
  }
61
61
  //#endregion
62
- //#region \0@oxc-project+runtime@0.144.0/helpers/esm/objectSpread2.js
62
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/objectSpread2.js
63
63
  function ownKeys(e, r) {
64
64
  var t = Object.keys(e);
65
65
  if (Object.getOwnPropertySymbols) {
@@ -166,6 +166,7 @@ const bootstrapControlClassnames = {
166
166
  addRule: "btn-primary",
167
167
  cloneGroup: "btn-secondary",
168
168
  cloneRule: "btn-secondary",
169
+ ungroup: "btn-secondary",
169
170
  lockGroup: "btn-secondary",
170
171
  lockRule: "btn-secondary",
171
172
  removeGroup: "btn-danger",
@@ -182,6 +183,7 @@ const bootstrapTranslations = {
182
183
  removeRule: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-x" }) },
183
184
  cloneRule: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-copy" }) },
184
185
  cloneRuleGroup: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-copy" }) },
186
+ ungroupRuleGroup: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-box-arrow-up-left" }) },
185
187
  dragHandle: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-grip-vertical" }) },
186
188
  lockGroup: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-unlock" }) },
187
189
  lockRule: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-unlock" }) },
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_bootstrap.legacy-esm.js","names":[],"sources":["../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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 undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"react-querybuilder_bootstrap.legacy-esm.js","names":[],"sources":["../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n ungroup: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 ungroupRuleGroup: { label: <i className=\"bi bi-box-arrow-up-left\" /> },\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"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"}
@@ -113,6 +113,7 @@ const bootstrapControlClassnames = {
113
113
  addRule: "btn-primary",
114
114
  cloneGroup: "btn-secondary",
115
115
  cloneRule: "btn-secondary",
116
+ ungroup: "btn-secondary",
116
117
  lockGroup: "btn-secondary",
117
118
  lockRule: "btn-secondary",
118
119
  removeGroup: "btn-danger",
@@ -129,6 +130,7 @@ const bootstrapTranslations = {
129
130
  removeRule: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-x" }) },
130
131
  cloneRule: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-copy" }) },
131
132
  cloneRuleGroup: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-copy" }) },
133
+ ungroupRuleGroup: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-box-arrow-up-left" }) },
132
134
  dragHandle: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-grip-vertical" }) },
133
135
  lockGroup: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-unlock" }) },
134
136
  lockRule: { label: /* @__PURE__ */ React.createElement("i", { className: "bi bi-unlock" }) },
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_bootstrap.mjs","names":[],"sources":["../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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 undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"react-querybuilder_bootstrap.mjs","names":[],"sources":["../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n ungroup: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 ungroupRuleGroup: { label: <i className=\"bi bi-box-arrow-up-left\" /> },\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"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"}
@@ -4,31 +4,30 @@ import { Classnames, ControlElementsProp, FullField, NotToggleProps, QueryBuilde
4
4
  /**
5
5
  * @group Components
6
6
  */
7
- declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
7
+ export declare const BootstrapNotToggle: ({ className, handleOnChange, title, label, checked, disabled }: NotToggleProps) => React.JSX.Element;
8
8
  //#endregion
9
9
  //#region src/BootstrapValueEditor.d.ts
10
10
  /**
11
11
  * @group Components
12
12
  */
13
- declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
13
+ export declare const BootstrapValueEditor: (props: ValueEditorProps) => React.JSX.Element | null;
14
14
  //#endregion
15
15
  //#region src/index.d.ts
16
16
  /**
17
17
  * @group Props
18
18
  */
19
- declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
19
+ export declare const bootstrapControlElements: ControlElementsProp<FullField, string>;
20
20
  /**
21
21
  * @group Props
22
22
  */
23
- declare const bootstrapControlClassnames: Partial<Classnames>;
23
+ export declare const bootstrapControlClassnames: Partial<Classnames>;
24
24
  /**
25
25
  * @group Props
26
26
  */
27
- declare const bootstrapTranslations: Partial<Translations>;
27
+ export declare const bootstrapTranslations: Partial<Translations>;
28
28
  /**
29
29
  * @group Components
30
30
  */
31
- declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
31
+ export declare const QueryBuilderBootstrap: QueryBuilderContextProvider;
32
32
  //#endregion
33
- export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
34
33
  //# sourceMappingURL=react-querybuilder_bootstrap.production.d.mts.map
@@ -1,2 +1,2 @@
1
- import*as e from"react";import{useId as t}from"react";import{ValueEditor as n,getCompatContextProvider as r,standardClassnames as i,useValueEditor as a}from"react-querybuilder";const o=({className:n,handleOnChange:r,title:i,label:a,checked:o,disabled:s})=>{let c=t();return e.createElement(`div`,{className:`form-check-inline form-switch ${n}`},e.createElement(`input`,{id:c,className:`form-check-input`,type:`checkbox`,onChange:e=>r(e.target.checked),checked:!!o,disabled:s}),e.createElement(`label`,{title:i,htmlFor:c,className:`form-check-label`},a))},s=t=>{let n=e.useId();return e.createElement(`div`,{className:`form-check form-check-inline`},e.createElement(`input`,{className:`form-check-input`,type:`radio`,id:n,value:t.name,checked:t.checked,disabled:t.disabled,onChange:e=>t.handleOnChange(e.target.value)}),e.createElement(`label`,{className:`form-check-label`,htmlFor:n},t.label))},c=t=>{let{valueListItemClassName:r}=a(t);if(t.operator===`null`||t.operator===`notNull`)return null;if((t.operator===`between`||t.operator===`notBetween`)&&(t.type===`select`||t.type===`text`)){let i=t.type===`text`?`form-control form-control-sm`:`form-select form-select-sm`;return e.createElement(n,{...t,skipHook:!0,schema:{...t.schema,classNames:{...t.schema.classNames,valueListItem:`${r} ${i}`}}})}switch(t.type){case`select`:case`multiselect`:return e.createElement(n,{...t,skipHook:!0,className:`${t.className} form-select form-select-sm`});case`switch`:return e.createElement(`span`,{className:`${t.className} custom-control custom-switch`},e.createElement(`input`,{type:`checkbox`,className:`form-check-input custom-control-input`,title:t.title,disabled:t.disabled,onChange:e=>t.handleOnChange(e.target.checked),checked:!!t.value}));case`checkbox`:return e.createElement(n,{...t,skipHook:!0,className:`${t.className} form-check-input`});case`radio`:return e.createElement(`span`,{title:t.title,className:i.value},t.values?.map(n=>e.createElement(s,{key:n.name,name:n.name,disabled:t.disabled,checked:t.value===n.name,handleOnChange:t.handleOnChange,label:n.label})))}return e.createElement(n,{...t,skipHook:!0,className:`${t.className} form-control form-control-sm`})},l={notToggle:o,valueEditor:c},u={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`,undoAction:`btn-secondary`,redoAction:`btn-secondary`,valueSelector:`form-select form-select-sm`},d={removeGroup:{label:e.createElement(`i`,{className:`bi bi-x`})},removeRule:{label:e.createElement(`i`,{className:`bi bi-x`})},cloneRule:{label:e.createElement(`i`,{className:`bi bi-copy`})},cloneRuleGroup:{label:e.createElement(`i`,{className:`bi bi-copy`})},dragHandle:{label:e.createElement(`i`,{className:`bi bi-grip-vertical`})},lockGroup:{label:e.createElement(`i`,{className:`bi bi-unlock`})},lockRule:{label:e.createElement(`i`,{className:`bi bi-unlock`})},lockGroupDisabled:{label:e.createElement(`i`,{className:`bi bi-lock`})},lockRuleDisabled:{label:e.createElement(`i`,{className:`bi bi-lock`})},shiftActionUp:{label:e.createElement(`i`,{className:`bi bi-chevron-compact-up`})},shiftActionDown:{label:e.createElement(`i`,{className:`bi bi-chevron-compact-down`})},undo:{label:e.createElement(`i`,{className:`bi bi-arrow-counterclockwise`})},redo:{label:e.createElement(`i`,{className:`bi bi-arrow-clockwise`})}},f=r({controlClassnames:u,controlElements:l,translations:d});export{o as BootstrapNotToggle,c as BootstrapValueEditor,f as QueryBuilderBootstrap,u as bootstrapControlClassnames,l as bootstrapControlElements,d as bootstrapTranslations};
1
+ import*as e from"react";import{useId as t}from"react";import{ValueEditor as n,getCompatContextProvider as r,standardClassnames as i,useValueEditor as a}from"react-querybuilder";const o=({className:n,handleOnChange:r,title:i,label:a,checked:o,disabled:s})=>{let c=t();return/* @__PURE__ */ e.createElement(`div`,{className:`form-check-inline form-switch ${n}`},/* @__PURE__ */ e.createElement(`input`,{id:c,className:`form-check-input`,type:`checkbox`,onChange:e=>r(e.target.checked),checked:!!o,disabled:s}),/* @__PURE__ */ e.createElement(`label`,{title:i,htmlFor:c,className:`form-check-label`},a))},s=t=>{let n=e.useId();return/* @__PURE__ */ e.createElement(`div`,{className:`form-check form-check-inline`},/* @__PURE__ */ e.createElement(`input`,{className:`form-check-input`,type:`radio`,id:n,value:t.name,checked:t.checked,disabled:t.disabled,onChange:e=>t.handleOnChange(e.target.value)}),/* @__PURE__ */ e.createElement(`label`,{className:`form-check-label`,htmlFor:n},t.label))},c=t=>{let{valueListItemClassName:r}=a(t);if(t.operator===`null`||t.operator===`notNull`)return null;if((t.operator===`between`||t.operator===`notBetween`)&&(t.type===`select`||t.type===`text`)){let i=t.type===`text`?`form-control form-control-sm`:`form-select form-select-sm`;return/* @__PURE__ */ e.createElement(n,{...t,skipHook:!0,schema:{...t.schema,classNames:{...t.schema.classNames,valueListItem:`${r} ${i}`}}})}switch(t.type){case`select`:case`multiselect`:return/* @__PURE__ */ e.createElement(n,{...t,skipHook:!0,className:`${t.className} form-select form-select-sm`});case`switch`:return/* @__PURE__ */ e.createElement(`span`,{className:`${t.className} custom-control custom-switch`},/* @__PURE__ */ e.createElement(`input`,{type:`checkbox`,className:`form-check-input custom-control-input`,title:t.title,disabled:t.disabled,onChange:e=>t.handleOnChange(e.target.checked),checked:!!t.value}));case`checkbox`:return/* @__PURE__ */ e.createElement(n,{...t,skipHook:!0,className:`${t.className} form-check-input`});case`radio`:return/* @__PURE__ */ e.createElement(`span`,{title:t.title,className:i.value},t.values?.map(n=>/* @__PURE__ */ e.createElement(s,{key:n.name,name:n.name,disabled:t.disabled,checked:t.value===n.name,handleOnChange:t.handleOnChange,label:n.label})))}return/* @__PURE__ */ e.createElement(n,{...t,skipHook:!0,className:`${t.className} form-control form-control-sm`})},l={notToggle:o,valueEditor:c},u={actionElement:`btn btn-sm`,addGroup:`btn-secondary`,addRule:`btn-primary`,cloneGroup:`btn-secondary`,cloneRule:`btn-secondary`,ungroup:`btn-secondary`,lockGroup:`btn-secondary`,lockRule:`btn-secondary`,removeGroup:`btn-danger`,removeRule:`btn-danger`,undoAction:`btn-secondary`,redoAction:`btn-secondary`,valueSelector:`form-select form-select-sm`},d={removeGroup:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-x`})},removeRule:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-x`})},cloneRule:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-copy`})},cloneRuleGroup:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-copy`})},ungroupRuleGroup:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-box-arrow-up-left`})},dragHandle:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-grip-vertical`})},lockGroup:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-unlock`})},lockRule:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-unlock`})},lockGroupDisabled:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-lock`})},lockRuleDisabled:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-lock`})},shiftActionUp:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-chevron-compact-up`})},shiftActionDown:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-chevron-compact-down`})},undo:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-arrow-counterclockwise`})},redo:{label:/* @__PURE__ */ e.createElement(`i`,{className:`bi bi-arrow-clockwise`})}},f=r({controlClassnames:u,controlElements:l,translations:d});export{o as BootstrapNotToggle,c as BootstrapValueEditor,f as QueryBuilderBootstrap,u as bootstrapControlClassnames,l as bootstrapControlElements,d as bootstrapTranslations};
2
2
  //# sourceMappingURL=react-querybuilder_bootstrap.production.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_bootstrap.production.mjs","names":[],"sources":["../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\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 undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"react-querybuilder_bootstrap.production.mjs","names":[],"sources":["../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\n/**\n * @group Components\n */\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps): React.JSX.Element => {\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","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { standardClassnames, useValueEditor, ValueEditor } from 'react-querybuilder';\n\n// Extracted from callback so we can use `useId`\nconst RadioButton = (props: {\n name: string;\n disabled?: boolean;\n checked: boolean;\n handleOnChange: (v: string) => void;\n label: string;\n}) => {\n const id = React.useId();\n return (\n <div className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={id}\n value={props.name}\n checked={props.checked}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={id}>\n {props.label}\n </label>\n </div>\n );\n};\n\n/**\n * @group Components\n */\nexport const BootstrapValueEditor = (props: ValueEditorProps): React.JSX.Element | null => {\n const { valueListItemClassName } = useValueEditor(props);\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const listItemClasses =\n props.type === 'text' ? 'form-control form-control-sm' : 'form-select form-select-sm';\n return (\n <ValueEditor\n {...props}\n skipHook\n schema={{\n ...props.schema,\n classNames: {\n ...props.schema.classNames,\n valueListItem: `${valueListItemClassName} ${listItemClasses}`,\n },\n }}\n />\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`${props.className} custom-control custom-switch`}>\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 {...props} skipHook className={`${props.className} form-check-input`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <RadioButton\n key={v.name}\n name={v.name}\n disabled={props.disabled}\n checked={props.value === v.name}\n handleOnChange={props.handleOnChange}\n label={v.label}\n />\n ))}\n </span>\n );\n }\n\n return (\n <ValueEditor\n {...props}\n skipHook\n className={`${props.className} form-control form-control-sm`}\n />\n );\n};\n","import * as React from 'react';\nimport type {\n Classnames,\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\n/**\n * @group Props\n */\nexport const bootstrapControlElements: ControlElementsProp<FullField, string> = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n actionElement: 'btn btn-sm',\n addGroup: 'btn-secondary',\n addRule: 'btn-primary',\n cloneGroup: 'btn-secondary',\n cloneRule: 'btn-secondary',\n ungroup: 'btn-secondary',\n lockGroup: 'btn-secondary',\n lockRule: 'btn-secondary',\n removeGroup: 'btn-danger',\n removeRule: 'btn-danger',\n undoAction: 'btn-secondary',\n redoAction: 'btn-secondary',\n // BootstrapValueEditor adds its own classnames\n // value: '',\n valueSelector: 'form-select form-select-sm',\n};\n\n/**\n * @group Props\n */\nexport const bootstrapTranslations: Partial<Translations> = {\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 ungroupRuleGroup: { label: <i className=\"bi bi-box-arrow-up-left\" /> },\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 undo: { label: <i className=\"bi bi-arrow-counterclockwise\" /> },\n redo: { label: <i className=\"bi bi-arrow-clockwise\" /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderBootstrap: QueryBuilderContextProvider = getCompatContextProvider({\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\n"],"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": "8.23.1",
4
+ "version": "8.24.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -52,24 +52,24 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@popperjs/core": "^2.11.8",
55
- "@testing-library/dom": "^10.4.1",
56
- "@testing-library/react": "^16.3.2",
57
- "@types/react": "^19.2.18",
58
- "@vitejs/plugin-react": "^6.0.5",
55
+ "@testing-library/dom": "^10.4.2",
56
+ "@testing-library/react": "^16.3.3",
57
+ "@types/react": "^19.3.0",
58
+ "@vitejs/plugin-react": "^6.1.1",
59
59
  "bootstrap": "^5.3.8",
60
60
  "bootstrap-icons": "^1.13.1",
61
- "react": "^19.2.8",
62
- "react-dom": "^19.2.8",
63
- "react-querybuilder": "8.23.1",
61
+ "react": "^19.3.0",
62
+ "react-dom": "^19.3.0",
63
+ "react-querybuilder": "8.24.1",
64
64
  "rollup-plugin-visualizer": "^7.1.1",
65
65
  "typescript": "^7.0.2",
66
- "vite": "^8.2.1"
66
+ "vite": "^8.3.0"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "bootstrap": ">=5",
70
70
  "bootstrap-icons": ">=1.7.0",
71
71
  "react": ">=18",
72
- "react-querybuilder": "8.23.1"
72
+ "react-querybuilder": "8.24.1"
73
73
  },
74
- "gitHead": "252483f304957ee8340bbe5adb0dbd3a3890613d"
74
+ "gitHead": "7cec8e8a6c40351ac9af731365818242d1f9c134"
75
75
  }