@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.
- package/dist/cjs/react-querybuilder_bootstrap.cjs.development.d.ts +6 -7
- package/dist/cjs/react-querybuilder_bootstrap.cjs.development.js +2 -0
- package/dist/cjs/react-querybuilder_bootstrap.cjs.development.js.map +1 -1
- package/dist/cjs/react-querybuilder_bootstrap.cjs.production.d.ts +6 -7
- package/dist/cjs/react-querybuilder_bootstrap.cjs.production.js +1 -1
- package/dist/cjs/react-querybuilder_bootstrap.cjs.production.js.map +1 -1
- package/dist/react-querybuilder_bootstrap.d.mts +6 -7
- package/dist/react-querybuilder_bootstrap.legacy-esm.d.ts +6 -7
- package/dist/react-querybuilder_bootstrap.legacy-esm.js +7 -5
- package/dist/react-querybuilder_bootstrap.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_bootstrap.mjs +2 -0
- package/dist/react-querybuilder_bootstrap.mjs.map +1 -1
- package/dist/react-querybuilder_bootstrap.production.d.mts +6 -7
- package/dist/react-querybuilder_bootstrap.production.mjs +1 -1
- package/dist/react-querybuilder_bootstrap.production.mjs.map +1 -1
- package/package.json +11 -11
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAa,sBAAsB,EACjC,WACA,gBACA,OACA,OACA,SACA,eACuC;CACvC,MAAM,MAAA,GAAKA,MAAAA,MAAAA,CAAM;CAEjB,OACE,sBAAA,cAAC,OAAD,EAAK,WAAW,iCAAiC,YAY5C,GAXH,sBAAA,cAAC,SAAD;EACM;EACJ,WAAU;EACV,MAAK;EACL,WAAU,MAAK,eAAe,EAAE,OAAO,OAAO;EAC9C,SAAS,CAAC,CAAC;EACD;CACX,CAAA,GACD,sBAAA,cAAC,SAAD;EAAc;EAAO,SAAS;EAAI,WAAU;CAErC,GADJ,KACI,CACJ;AAET;;;AC3BA,MAAM,eAAe,UAMf;CACJ,MAAM,KAAKC,MAAM,MAAM;CACvB,OACE,sBAAA,cAAC,OAAD,EAAK,WAAU,+BAaV,GAZH,sBAAA,cAAC,SAAD;EACE,WAAU;EACV,MAAK;EACD;EACJ,OAAO,MAAM;EACb,SAAS,MAAM;EACf,UAAU,MAAM;EAChB,WAAU,MAAK,MAAM,eAAe,EAAE,OAAO,KAAK;CACnD,CAAA,GACD,sBAAA,cAAC,SAAD;EAAO,WAAU;EAAmB,SAAS;CAEtC,GADJ,MAAM,KACF,CACJ;AAET;;;;AAKA,MAAa,wBAAwB,UAAsD;CACzF,MAAM,EAAE,4BAAA,GAA2BC,mBAAAA,eAAAA,CAAe,KAAK;CAEvD,IAAI,MAAM,aAAa,UAAU,MAAM,aAAa,WAClD,OAAO;CAGT,KACG,MAAM,aAAa,aAAa,MAAM,aAAa,kBACnD,MAAM,SAAS,YAAY,MAAM,SAAS,SAC3C;EACA,MAAM,kBACJ,MAAM,SAAS,SAAS,iCAAiC;EAC3D,OACE,sBAAA,cAACC,mBAAAA,aAAD;GACE,GAAI;GACJ,UAAA;GACA,QAAQ;IACN,GAAG,MAAM;IACT,YAAY;KACV,GAAG,MAAM,OAAO;KAChB,eAAe,GAAG,uBAAuB,GAAG;IAC9C;GACF;EACD,CAAA;CAEL;CAEA,QAAQ,MAAM,MAAd;EACE,KAAK;EACL,KAAK,eACH,OACE,sBAAA,cAACA,mBAAAA,aAAD;GACE,GAAI;GACJ,UAAA;GACA,WAAW,GAAG,MAAM,UAAU;EAC/B,CAAA;EAGL,KAAK,UACH,OACE,sBAAA,cAAC,QAAD,EAAM,WAAW,GAAG,MAAM,UAAU,+BAS9B,GARJ,sBAAA,cAAC,SAAD;GACE,MAAK;GACL,WAAU;GACV,OAAO,MAAM;GACb,UAAU,MAAM;GAChB,WAAU,MAAK,MAAM,eAAe,EAAE,OAAO,OAAO;GACpD,SAAS,CAAC,CAAC,MAAM;EAClB,CAAA,CACG;EAGV,KAAK,YACH,OAAO,sBAAA,cAACA,mBAAAA,aAAD;GAAa,GAAI;GAAO,UAAA;GAAS,WAAW,GAAG,MAAM,UAAU;EAAqB,CAAA;EAE7F,KAAK,SACH,OACE,sBAAA,cAAC,QAAD;GAAM,OAAO,MAAM;GAAO,WAAWC,mBAAAA,mBAAmB;EAWlD,GAVH,MAAM,QAAQ,KAAI,MACjB,sBAAA,cAAC,aAAD;GACE,KAAK,EAAE;GACP,MAAM,EAAE;GACR,UAAU,MAAM;GAChB,SAAS,MAAM,UAAU,EAAE;GAC3B,gBAAgB,MAAM;GACtB,OAAO,EAAE;EACV,CAAA,CACF,CACG;CAEZ;CAEA,OACE,sBAAA,cAACD,mBAAAA,aAAD;EACE,GAAI;EACJ,UAAA;EACA,WAAW,GAAG,MAAM,UAAU;CAC/B,CAAA;AAEL;;;;;;AChGA,MAAa,2BAAmE;CAC9E,WAAW;CACX,aAAa;AACf;;;;AAKA,MAAa,6BAAkD;CAC7D,eAAe;CACf,UAAU;CACV,SAAS;CACT,YAAY;CACZ,WAAW;CACX,SAAS;CACT,WAAW;CACX,UAAU;CACV,aAAa;CACb,YAAY;CACZ,YAAY;CACZ,YAAY;CAGZ,eAAe;AACjB;;;;AAKA,MAAa,wBAA+C;CAC1D,aAAa,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,UAAW,CAAA,EAAE;CAChD,YAAY,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,UAAW,CAAA,EAAE;CAC/C,WAAW,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,aAAc,CAAA,EAAE;CACjD,gBAAgB,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,aAAc,CAAA,EAAE;CACtD,kBAAkB,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,0BAA2B,CAAA,EAAE;CACrE,YAAY,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,sBAAuB,CAAA,EAAE;CAC3D,WAAW,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,eAAgB,CAAA,EAAE;CACnD,UAAU,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,eAAgB,CAAA,EAAE;CAClD,mBAAmB,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,aAAc,CAAA,EAAE;CACzD,kBAAkB,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,aAAc,CAAA,EAAE;CACxD,eAAe,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,2BAA4B,CAAA,EAAE;CACnE,iBAAiB,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,6BAA8B,CAAA,EAAE;CACvE,MAAM,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,+BAAgC,CAAA,EAAE;CAC9D,MAAM,EAAE,OAAO,sBAAA,cAAC,KAAD,EAAG,WAAU,wBAAyB,CAAA,EAAE;AACzD;;;;AAKA,MAAa,yBAAA,GAAqDE,mBAAAA,yBAAAA,CAAyB;CACzF,mBAAmB;CACnB,iBAAiB;CACjB,cAAc;AAChB,CAAC"}
|
|
@@ -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}`}
|
|
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,
|
|
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":"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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.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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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}`}
|
|
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":"iLAOA,MAAa,GAAsB,CACjC,YACA,iBACA,QACA,QACA,UACA,cACuC,CACvC,IAAM,EAAK,EAAM,EAEjB,
|
|
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.
|
|
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.
|
|
56
|
-
"@testing-library/react": "^16.3.
|
|
57
|
-
"@types/react": "^19.
|
|
58
|
-
"@vitejs/plugin-react": "^6.
|
|
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.
|
|
62
|
-
"react-dom": "^19.
|
|
63
|
-
"react-querybuilder": "8.
|
|
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.
|
|
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.
|
|
72
|
+
"react-querybuilder": "8.24.1"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "7cec8e8a6c40351ac9af731365818242d1f9c134"
|
|
75
75
|
}
|