@react-querybuilder/bootstrap 6.3.0-alpha.0 → 6.3.0-alpha.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.js +47 -48
- package/dist/cjs/react-querybuilder_bootstrap.cjs.development.js.map +1 -1
- 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.ts +2 -2
- package/dist/react-querybuilder_bootstrap.legacy-esm.js +37 -48
- package/dist/react-querybuilder_bootstrap.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_bootstrap.mjs +37 -48
- package/dist/react-querybuilder_bootstrap.mjs.map +1 -1
- package/dist/react-querybuilder_bootstrap.production.mjs +1 -1
- package/dist/react-querybuilder_bootstrap.production.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/index.ts
|
|
@@ -31,16 +41,16 @@ module.exports = __toCommonJS(src_exports);
|
|
|
31
41
|
var import_react_querybuilder2 = require("react-querybuilder");
|
|
32
42
|
|
|
33
43
|
// src/BootstrapDragHandle.tsx
|
|
44
|
+
var React = __toESM(require("react"));
|
|
34
45
|
var import_react = require("react");
|
|
35
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
46
|
var BootstrapDragHandle = (0, import_react.forwardRef)(
|
|
37
|
-
({ className, title }, dragRef) => /* @__PURE__ */
|
|
47
|
+
({ className, title }, dragRef) => /* @__PURE__ */ React.createElement("span", { ref: dragRef, className, title }, /* @__PURE__ */ React.createElement("i", { className: "bi bi-grip-vertical" }))
|
|
38
48
|
);
|
|
39
49
|
BootstrapDragHandle.displayName = "BootstrapDragHandle";
|
|
40
50
|
|
|
41
51
|
// src/BootstrapNotToggle.tsx
|
|
52
|
+
var React2 = __toESM(require("react"));
|
|
42
53
|
var import_react2 = require("react");
|
|
43
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
44
54
|
var BootstrapNotToggle = ({
|
|
45
55
|
className,
|
|
46
56
|
handleOnChange,
|
|
@@ -50,27 +60,23 @@ var BootstrapNotToggle = ({
|
|
|
50
60
|
disabled
|
|
51
61
|
}) => {
|
|
52
62
|
const id = (0, import_react2.useId)();
|
|
53
|
-
return /* @__PURE__ */
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
),
|
|
65
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { title, htmlFor: id, className: "form-check-label", children: label })
|
|
66
|
-
] });
|
|
63
|
+
return /* @__PURE__ */ React2.createElement("div", { className: `form-check-inline form-switch ${className}` }, /* @__PURE__ */ React2.createElement(
|
|
64
|
+
"input",
|
|
65
|
+
{
|
|
66
|
+
id,
|
|
67
|
+
className: "form-check-input",
|
|
68
|
+
type: "checkbox",
|
|
69
|
+
onChange: (e) => handleOnChange(e.target.checked),
|
|
70
|
+
checked: !!checked,
|
|
71
|
+
disabled
|
|
72
|
+
}
|
|
73
|
+
), /* @__PURE__ */ React2.createElement("label", { title, htmlFor: id, className: "form-check-label" }, label));
|
|
67
74
|
};
|
|
68
75
|
BootstrapNotToggle.displayName = "BootstrapNotToggle";
|
|
69
76
|
|
|
70
77
|
// src/BootstrapValueEditor.tsx
|
|
78
|
+
var React3 = __toESM(require("react"));
|
|
71
79
|
var import_react_querybuilder = require("react-querybuilder");
|
|
72
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
73
|
-
var import_react3 = require("react");
|
|
74
80
|
var BootstrapValueEditor = (props) => {
|
|
75
81
|
const { valueAsArray, multiValueHandler } = (0, import_react_querybuilder.useValueEditor)({
|
|
76
82
|
handleOnChange: props.handleOnChange,
|
|
@@ -90,20 +96,20 @@ var BootstrapValueEditor = (props) => {
|
|
|
90
96
|
if ((props.operator === "between" || props.operator === "notBetween") && (props.type === "select" || props.type === "text")) {
|
|
91
97
|
const editors = ["from", "to"].map((key, i) => {
|
|
92
98
|
if (props.type === "text") {
|
|
93
|
-
return /* @__PURE__ */
|
|
99
|
+
return /* @__PURE__ */ React3.createElement(
|
|
94
100
|
"input",
|
|
95
101
|
{
|
|
102
|
+
key,
|
|
96
103
|
type: props.inputType || "text",
|
|
97
104
|
placeholder: placeHolderText,
|
|
98
105
|
value: valueAsArray[i] ?? "",
|
|
99
106
|
className: `${import_react_querybuilder.standardClassnames.valueListItem} form-control form-control-sm`,
|
|
100
107
|
disabled: props.disabled,
|
|
101
108
|
onChange: (e) => multiValueHandler(e.target.value, i)
|
|
102
|
-
}
|
|
103
|
-
key
|
|
109
|
+
}
|
|
104
110
|
);
|
|
105
111
|
}
|
|
106
|
-
return /* @__PURE__ */
|
|
112
|
+
return /* @__PURE__ */ React3.createElement(
|
|
107
113
|
SelectorComponent,
|
|
108
114
|
{
|
|
109
115
|
...props,
|
|
@@ -117,16 +123,12 @@ var BootstrapValueEditor = (props) => {
|
|
|
117
123
|
}
|
|
118
124
|
);
|
|
119
125
|
});
|
|
120
|
-
return /* @__PURE__ */
|
|
121
|
-
editors[0],
|
|
122
|
-
props.separator,
|
|
123
|
-
editors[1]
|
|
124
|
-
] });
|
|
126
|
+
return /* @__PURE__ */ React3.createElement("span", { "data-testid": props.testID, className: import_react_querybuilder.standardClassnames.value, title: props.title }, editors[0], props.separator, editors[1]);
|
|
125
127
|
}
|
|
126
128
|
switch (props.type) {
|
|
127
129
|
case "select":
|
|
128
130
|
case "multiselect":
|
|
129
|
-
return /* @__PURE__ */
|
|
131
|
+
return /* @__PURE__ */ React3.createElement(
|
|
130
132
|
import_react_querybuilder.ValueEditor,
|
|
131
133
|
{
|
|
132
134
|
skipHook: true,
|
|
@@ -135,7 +137,7 @@ var BootstrapValueEditor = (props) => {
|
|
|
135
137
|
}
|
|
136
138
|
);
|
|
137
139
|
case "switch":
|
|
138
|
-
return /* @__PURE__ */
|
|
140
|
+
return /* @__PURE__ */ React3.createElement("span", { className: `custom-control custom-switch ${props.className}` }, /* @__PURE__ */ React3.createElement(
|
|
139
141
|
"input",
|
|
140
142
|
{
|
|
141
143
|
type: "checkbox",
|
|
@@ -145,27 +147,24 @@ var BootstrapValueEditor = (props) => {
|
|
|
145
147
|
onChange: (e) => props.handleOnChange(e.target.checked),
|
|
146
148
|
checked: !!props.value
|
|
147
149
|
}
|
|
148
|
-
)
|
|
150
|
+
));
|
|
149
151
|
case "checkbox":
|
|
150
|
-
return /* @__PURE__ */
|
|
152
|
+
return /* @__PURE__ */ React3.createElement(import_react_querybuilder.ValueEditor, { skipHook: true, ...props, className: `form-check-input ${props.className}` });
|
|
151
153
|
case "radio":
|
|
152
|
-
return /* @__PURE__ */
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
),
|
|
165
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("label", { className: "form-check-label", htmlFor: v.name, children: v.label })
|
|
166
|
-
] }, v.name)) });
|
|
154
|
+
return /* @__PURE__ */ React3.createElement("span", { title: props.title, className: import_react_querybuilder.standardClassnames.value }, props.values?.map((v) => /* @__PURE__ */ React3.createElement("div", { key: v.name, className: "form-check form-check-inline" }, /* @__PURE__ */ React3.createElement(
|
|
155
|
+
"input",
|
|
156
|
+
{
|
|
157
|
+
className: "form-check-input",
|
|
158
|
+
type: "radio",
|
|
159
|
+
id: v.name,
|
|
160
|
+
value: v.name,
|
|
161
|
+
checked: props.value === v.name,
|
|
162
|
+
disabled: props.disabled,
|
|
163
|
+
onChange: (e) => props.handleOnChange(e.target.value)
|
|
164
|
+
}
|
|
165
|
+
), /* @__PURE__ */ React3.createElement("label", { className: "form-check-label", htmlFor: v.name }, v.label))));
|
|
167
166
|
}
|
|
168
|
-
return /* @__PURE__ */
|
|
167
|
+
return /* @__PURE__ */ React3.createElement(import_react_querybuilder.ValueEditor, { skipHook: true, ...props });
|
|
169
168
|
};
|
|
170
169
|
BootstrapValueEditor.displayName = "BootstrapValueEditor";
|
|
171
170
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/BootstrapDragHandle.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/BootstrapDragHandle.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["import_react_querybuilder","React","import_react","React"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var B=Object.create;var i=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var a in t)i(e,a,{get:t[a],enumerable:!0})},N=(e,t,a,m)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of E(t))!A.call(e,s)&&s!==a&&i(e,s,{get:()=>t[s],enumerable:!(m=H(t,s))||m.enumerable});return e};var y=(e,t,a)=>(a=e!=null?B(T(e)):{},N(t||!e||!e.__esModule?i(a,"default",{value:e,enumerable:!0}):a,e)),V=e=>N(i({},"__esModule",{value:!0}),e);var w={};P(w,{BootstrapDragHandle:()=>d,BootstrapNotToggle:()=>b,BootstrapValueEditor:()=>f,QueryBuilderBootstrap:()=>R,bootstrapControlClassnames:()=>x,bootstrapControlElements:()=>C});module.exports=V(w);var v=require("react-querybuilder");var g=y(require("react")),k=require("react"),d=(0,k.forwardRef)(({className:e,title:t},a)=>g.createElement("span",{ref:a,className:e,title:t},g.createElement("i",{className:"bi bi-grip-vertical"})));d.displayName="BootstrapDragHandle";var u=y(require("react")),p=require("react"),b=({className:e,handleOnChange:t,title:a,label:m,checked:s,disabled:l})=>{let n=(0,p.useId)();return u.createElement("div",{className:`form-check-inline form-switch ${e}`},u.createElement("input",{id:n,className:"form-check-input",type:"checkbox",onChange:c=>t(c.target.checked),checked:!!s,disabled:l}),u.createElement("label",{title:a,htmlFor:n,className:"form-check-label"},m))};b.displayName="BootstrapNotToggle";var r=y(require("react")),o=require("react-querybuilder"),f=e=>{let{valueAsArray:t,multiValueHandler:a}=(0,o.useValueEditor)({handleOnChange:e.handleOnChange,inputType:e.inputType,operator:e.operator,value:e.value,type:e.type,listsAsArrays:e.listsAsArrays,parseNumbers:e.parseNumbers,values:e.values}),{selectorComponent:m=o.ValueSelector}=e;if(e.operator==="null"||e.operator==="notNull")return null;let s=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){let l=["from","to"].map((n,c)=>e.type==="text"?r.createElement("input",{key:n,type:e.inputType||"text",placeholder:s,value:t[c]??"",className:`${o.standardClassnames.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:h=>a(h.target.value,c)}):r.createElement(m,{...e,key:n,className:`${o.standardClassnames.valueListItem} form-select form-select-sm`,handleOnChange:h=>a(h,c),disabled:e.disabled,value:t[c]??(0,o.getFirstOption)(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays}));return r.createElement("span",{"data-testid":e.testID,className:o.standardClassnames.value,title:e.title},l[0],e.separator,l[1])}switch(e.type){case"select":case"multiselect":return r.createElement(o.ValueEditor,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return r.createElement("span",{className:`custom-control custom-switch ${e.className}`},r.createElement("input",{type:"checkbox",className:"form-check-input custom-control-input",title:e.title,disabled:e.disabled,onChange:l=>e.handleOnChange(l.target.checked),checked:!!e.value}));case"checkbox":return r.createElement(o.ValueEditor,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return r.createElement("span",{title:e.title,className:o.standardClassnames.value},e.values?.map(l=>r.createElement("div",{key:l.name,className:"form-check form-check-inline"},r.createElement("input",{className:"form-check-input",type:"radio",id:l.name,value:l.name,checked:e.value===l.name,disabled:e.disabled,onChange:n=>e.handleOnChange(n.target.value)}),r.createElement("label",{className:"form-check-label",htmlFor:l.name},l.label))))}return r.createElement(o.ValueEditor,{skipHook:!0,...e})};f.displayName="BootstrapValueEditor";var C={dragHandle:d,notToggle:b,valueEditor:f},x={addGroup:"btn btn-secondary btn-sm",addRule:"btn btn-primary btn-sm",cloneGroup:"btn btn-secondary btn-sm",cloneRule:"btn btn-secondary btn-sm",lockGroup:"btn btn-secondary btn-sm",lockRule:"btn btn-secondary btn-sm",removeGroup:"btn btn-danger btn-sm",removeRule:"btn btn-danger btn-sm",combinators:"form-select form-select-sm",fields:"form-select form-select-sm",operators:"form-select form-select-sm",value:"form-control form-control-sm",valueSource:"form-select form-select-sm"},R=(0,v.getCompatContextProvider)({key:"bootstrap",controlClassnames:x,controlElements:C});0&&(module.exports={BootstrapDragHandle,BootstrapNotToggle,BootstrapValueEditor,QueryBuilderBootstrap,bootstrapControlClassnames,bootstrapControlElements});
|
|
2
2
|
//# sourceMappingURL=react-querybuilder_bootstrap.cjs.production.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/BootstrapDragHandle.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["src_exports","__export","BootstrapDragHandle","BootstrapNotToggle","BootstrapValueEditor","QueryBuilderBootstrap","bootstrapControlClassnames","bootstrapControlElements","__toCommonJS","import_react_querybuilder","import_react","import_jsx_runtime","BootstrapDragHandle","className","title","dragRef","import_react","import_jsx_runtime","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","import_react_querybuilder","import_jsx_runtime","import_react","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapDragHandle","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","QueryBuilderBootstrap"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/BootstrapDragHandle.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["src_exports","__export","BootstrapDragHandle","BootstrapNotToggle","BootstrapValueEditor","QueryBuilderBootstrap","bootstrapControlClassnames","bootstrapControlElements","__toCommonJS","import_react_querybuilder","React","import_react","BootstrapDragHandle","className","title","dragRef","React","import_react","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","React","import_react_querybuilder","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapDragHandle","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","QueryBuilderBootstrap"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as react_querybuilder from 'react-querybuilder';
|
|
2
2
|
import { DragHandleProps, NotToggleProps, ValueEditorProps, Controls, Classnames } from 'react-querybuilder';
|
|
3
|
-
import * as
|
|
3
|
+
import * as React from 'react';
|
|
4
4
|
|
|
5
|
-
declare const BootstrapDragHandle:
|
|
5
|
+
declare const BootstrapDragHandle: React.ForwardRefExoticComponent<DragHandleProps & React.RefAttributes<HTMLSpanElement>>;
|
|
6
6
|
|
|
7
7
|
declare const BootstrapNotToggle: {
|
|
8
8
|
({ className, handleOnChange, title, label, checked, disabled, }: NotToggleProps): JSX.Element;
|
|
@@ -22,16 +22,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
22
22
|
import { getCompatContextProvider } from "react-querybuilder";
|
|
23
23
|
|
|
24
24
|
// src/BootstrapDragHandle.tsx
|
|
25
|
+
import * as React from "react";
|
|
25
26
|
import { forwardRef } from "react";
|
|
26
|
-
import { jsx } from "react/jsx-runtime";
|
|
27
27
|
var BootstrapDragHandle = forwardRef(
|
|
28
|
-
({ className, title }, dragRef) => /* @__PURE__ */
|
|
28
|
+
({ className, title }, dragRef) => /* @__PURE__ */ React.createElement("span", { ref: dragRef, className, title }, /* @__PURE__ */ React.createElement("i", { className: "bi bi-grip-vertical" }))
|
|
29
29
|
);
|
|
30
30
|
BootstrapDragHandle.displayName = "BootstrapDragHandle";
|
|
31
31
|
|
|
32
32
|
// src/BootstrapNotToggle.tsx
|
|
33
|
+
import * as React2 from "react";
|
|
33
34
|
import { useId } from "react";
|
|
34
|
-
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
35
35
|
var BootstrapNotToggle = ({
|
|
36
36
|
className,
|
|
37
37
|
handleOnChange,
|
|
@@ -41,24 +41,22 @@ var BootstrapNotToggle = ({
|
|
|
41
41
|
disabled
|
|
42
42
|
}) => {
|
|
43
43
|
const id = useId();
|
|
44
|
-
return /* @__PURE__ */
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
),
|
|
56
|
-
/* @__PURE__ */ jsx2("label", { title, htmlFor: id, className: "form-check-label", children: label })
|
|
57
|
-
] });
|
|
44
|
+
return /* @__PURE__ */ React2.createElement("div", { className: `form-check-inline form-switch ${className}` }, /* @__PURE__ */ React2.createElement(
|
|
45
|
+
"input",
|
|
46
|
+
{
|
|
47
|
+
id,
|
|
48
|
+
className: "form-check-input",
|
|
49
|
+
type: "checkbox",
|
|
50
|
+
onChange: (e) => handleOnChange(e.target.checked),
|
|
51
|
+
checked: !!checked,
|
|
52
|
+
disabled
|
|
53
|
+
}
|
|
54
|
+
), /* @__PURE__ */ React2.createElement("label", { title, htmlFor: id, className: "form-check-label" }, label));
|
|
58
55
|
};
|
|
59
56
|
BootstrapNotToggle.displayName = "BootstrapNotToggle";
|
|
60
57
|
|
|
61
58
|
// src/BootstrapValueEditor.tsx
|
|
59
|
+
import * as React3 from "react";
|
|
62
60
|
import {
|
|
63
61
|
getFirstOption,
|
|
64
62
|
standardClassnames,
|
|
@@ -66,8 +64,6 @@ import {
|
|
|
66
64
|
ValueEditor,
|
|
67
65
|
ValueSelector
|
|
68
66
|
} from "react-querybuilder";
|
|
69
|
-
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
70
|
-
import { createElement } from "react";
|
|
71
67
|
var BootstrapValueEditor = (props) => {
|
|
72
68
|
var _a, _b, _c;
|
|
73
69
|
const { valueAsArray, multiValueHandler } = useValueEditor({
|
|
@@ -89,20 +85,20 @@ var BootstrapValueEditor = (props) => {
|
|
|
89
85
|
const editors = ["from", "to"].map((key, i) => {
|
|
90
86
|
var _a2, _b2, _c2;
|
|
91
87
|
if (props.type === "text") {
|
|
92
|
-
return /* @__PURE__ */
|
|
88
|
+
return /* @__PURE__ */ React3.createElement(
|
|
93
89
|
"input",
|
|
94
90
|
{
|
|
91
|
+
key,
|
|
95
92
|
type: props.inputType || "text",
|
|
96
93
|
placeholder: placeHolderText,
|
|
97
94
|
value: (_a2 = valueAsArray[i]) != null ? _a2 : "",
|
|
98
95
|
className: `${standardClassnames.valueListItem} form-control form-control-sm`,
|
|
99
96
|
disabled: props.disabled,
|
|
100
97
|
onChange: (e) => multiValueHandler(e.target.value, i)
|
|
101
|
-
}
|
|
102
|
-
key
|
|
98
|
+
}
|
|
103
99
|
);
|
|
104
100
|
}
|
|
105
|
-
return /* @__PURE__ */ createElement(
|
|
101
|
+
return /* @__PURE__ */ React3.createElement(
|
|
106
102
|
SelectorComponent,
|
|
107
103
|
__spreadProps(__spreadValues({}, props), {
|
|
108
104
|
key,
|
|
@@ -115,16 +111,12 @@ var BootstrapValueEditor = (props) => {
|
|
|
115
111
|
})
|
|
116
112
|
);
|
|
117
113
|
});
|
|
118
|
-
return /* @__PURE__ */
|
|
119
|
-
editors[0],
|
|
120
|
-
props.separator,
|
|
121
|
-
editors[1]
|
|
122
|
-
] });
|
|
114
|
+
return /* @__PURE__ */ React3.createElement("span", { "data-testid": props.testID, className: standardClassnames.value, title: props.title }, editors[0], props.separator, editors[1]);
|
|
123
115
|
}
|
|
124
116
|
switch (props.type) {
|
|
125
117
|
case "select":
|
|
126
118
|
case "multiselect":
|
|
127
|
-
return /* @__PURE__ */
|
|
119
|
+
return /* @__PURE__ */ React3.createElement(
|
|
128
120
|
ValueEditor,
|
|
129
121
|
__spreadProps(__spreadValues({
|
|
130
122
|
skipHook: true
|
|
@@ -133,7 +125,7 @@ var BootstrapValueEditor = (props) => {
|
|
|
133
125
|
})
|
|
134
126
|
);
|
|
135
127
|
case "switch":
|
|
136
|
-
return /* @__PURE__ */
|
|
128
|
+
return /* @__PURE__ */ React3.createElement("span", { className: `custom-control custom-switch ${props.className}` }, /* @__PURE__ */ React3.createElement(
|
|
137
129
|
"input",
|
|
138
130
|
{
|
|
139
131
|
type: "checkbox",
|
|
@@ -143,27 +135,24 @@ var BootstrapValueEditor = (props) => {
|
|
|
143
135
|
onChange: (e) => props.handleOnChange(e.target.checked),
|
|
144
136
|
checked: !!props.value
|
|
145
137
|
}
|
|
146
|
-
)
|
|
138
|
+
));
|
|
147
139
|
case "checkbox":
|
|
148
|
-
return /* @__PURE__ */
|
|
140
|
+
return /* @__PURE__ */ React3.createElement(ValueEditor, __spreadProps(__spreadValues({ skipHook: true }, props), { className: `form-check-input ${props.className}` }));
|
|
149
141
|
case "radio":
|
|
150
|
-
return /* @__PURE__ */
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
),
|
|
163
|
-
/* @__PURE__ */ jsx3("label", { className: "form-check-label", htmlFor: v.name, children: v.label })
|
|
164
|
-
] }, v.name)) });
|
|
142
|
+
return /* @__PURE__ */ React3.createElement("span", { title: props.title, className: standardClassnames.value }, (_c = props.values) == null ? void 0 : _c.map((v) => /* @__PURE__ */ React3.createElement("div", { key: v.name, className: "form-check form-check-inline" }, /* @__PURE__ */ React3.createElement(
|
|
143
|
+
"input",
|
|
144
|
+
{
|
|
145
|
+
className: "form-check-input",
|
|
146
|
+
type: "radio",
|
|
147
|
+
id: v.name,
|
|
148
|
+
value: v.name,
|
|
149
|
+
checked: props.value === v.name,
|
|
150
|
+
disabled: props.disabled,
|
|
151
|
+
onChange: (e) => props.handleOnChange(e.target.value)
|
|
152
|
+
}
|
|
153
|
+
), /* @__PURE__ */ React3.createElement("label", { className: "form-check-label", htmlFor: v.name }, v.label))));
|
|
165
154
|
}
|
|
166
|
-
return /* @__PURE__ */
|
|
155
|
+
return /* @__PURE__ */ React3.createElement(ValueEditor, __spreadValues({ skipHook: true }, props));
|
|
167
156
|
};
|
|
168
157
|
BootstrapValueEditor.displayName = "BootstrapValueEditor";
|
|
169
158
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["jsx","jsx","jsxs","_a","_b","_c"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","React","_a","_b","_c"]}
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import { getCompatContextProvider } from "react-querybuilder";
|
|
3
3
|
|
|
4
4
|
// src/BootstrapDragHandle.tsx
|
|
5
|
+
import * as React from "react";
|
|
5
6
|
import { forwardRef } from "react";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
var BootstrapDragHandle = forwardRef(
|
|
8
|
-
({ className, title }, dragRef) => /* @__PURE__ */
|
|
8
|
+
({ className, title }, dragRef) => /* @__PURE__ */ React.createElement("span", { ref: dragRef, className, title }, /* @__PURE__ */ React.createElement("i", { className: "bi bi-grip-vertical" }))
|
|
9
9
|
);
|
|
10
10
|
BootstrapDragHandle.displayName = "BootstrapDragHandle";
|
|
11
11
|
|
|
12
12
|
// src/BootstrapNotToggle.tsx
|
|
13
|
+
import * as React2 from "react";
|
|
13
14
|
import { useId } from "react";
|
|
14
|
-
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
15
15
|
var BootstrapNotToggle = ({
|
|
16
16
|
className,
|
|
17
17
|
handleOnChange,
|
|
@@ -21,24 +21,22 @@ var BootstrapNotToggle = ({
|
|
|
21
21
|
disabled
|
|
22
22
|
}) => {
|
|
23
23
|
const id = useId();
|
|
24
|
-
return /* @__PURE__ */
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
),
|
|
36
|
-
/* @__PURE__ */ jsx2("label", { title, htmlFor: id, className: "form-check-label", children: label })
|
|
37
|
-
] });
|
|
24
|
+
return /* @__PURE__ */ React2.createElement("div", { className: `form-check-inline form-switch ${className}` }, /* @__PURE__ */ React2.createElement(
|
|
25
|
+
"input",
|
|
26
|
+
{
|
|
27
|
+
id,
|
|
28
|
+
className: "form-check-input",
|
|
29
|
+
type: "checkbox",
|
|
30
|
+
onChange: (e) => handleOnChange(e.target.checked),
|
|
31
|
+
checked: !!checked,
|
|
32
|
+
disabled
|
|
33
|
+
}
|
|
34
|
+
), /* @__PURE__ */ React2.createElement("label", { title, htmlFor: id, className: "form-check-label" }, label));
|
|
38
35
|
};
|
|
39
36
|
BootstrapNotToggle.displayName = "BootstrapNotToggle";
|
|
40
37
|
|
|
41
38
|
// src/BootstrapValueEditor.tsx
|
|
39
|
+
import * as React3 from "react";
|
|
42
40
|
import {
|
|
43
41
|
getFirstOption,
|
|
44
42
|
standardClassnames,
|
|
@@ -46,8 +44,6 @@ import {
|
|
|
46
44
|
ValueEditor,
|
|
47
45
|
ValueSelector
|
|
48
46
|
} from "react-querybuilder";
|
|
49
|
-
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
50
|
-
import { createElement } from "react";
|
|
51
47
|
var BootstrapValueEditor = (props) => {
|
|
52
48
|
const { valueAsArray, multiValueHandler } = useValueEditor({
|
|
53
49
|
handleOnChange: props.handleOnChange,
|
|
@@ -67,20 +63,20 @@ var BootstrapValueEditor = (props) => {
|
|
|
67
63
|
if ((props.operator === "between" || props.operator === "notBetween") && (props.type === "select" || props.type === "text")) {
|
|
68
64
|
const editors = ["from", "to"].map((key, i) => {
|
|
69
65
|
if (props.type === "text") {
|
|
70
|
-
return /* @__PURE__ */
|
|
66
|
+
return /* @__PURE__ */ React3.createElement(
|
|
71
67
|
"input",
|
|
72
68
|
{
|
|
69
|
+
key,
|
|
73
70
|
type: props.inputType || "text",
|
|
74
71
|
placeholder: placeHolderText,
|
|
75
72
|
value: valueAsArray[i] ?? "",
|
|
76
73
|
className: `${standardClassnames.valueListItem} form-control form-control-sm`,
|
|
77
74
|
disabled: props.disabled,
|
|
78
75
|
onChange: (e) => multiValueHandler(e.target.value, i)
|
|
79
|
-
}
|
|
80
|
-
key
|
|
76
|
+
}
|
|
81
77
|
);
|
|
82
78
|
}
|
|
83
|
-
return /* @__PURE__ */ createElement(
|
|
79
|
+
return /* @__PURE__ */ React3.createElement(
|
|
84
80
|
SelectorComponent,
|
|
85
81
|
{
|
|
86
82
|
...props,
|
|
@@ -94,16 +90,12 @@ var BootstrapValueEditor = (props) => {
|
|
|
94
90
|
}
|
|
95
91
|
);
|
|
96
92
|
});
|
|
97
|
-
return /* @__PURE__ */
|
|
98
|
-
editors[0],
|
|
99
|
-
props.separator,
|
|
100
|
-
editors[1]
|
|
101
|
-
] });
|
|
93
|
+
return /* @__PURE__ */ React3.createElement("span", { "data-testid": props.testID, className: standardClassnames.value, title: props.title }, editors[0], props.separator, editors[1]);
|
|
102
94
|
}
|
|
103
95
|
switch (props.type) {
|
|
104
96
|
case "select":
|
|
105
97
|
case "multiselect":
|
|
106
|
-
return /* @__PURE__ */
|
|
98
|
+
return /* @__PURE__ */ React3.createElement(
|
|
107
99
|
ValueEditor,
|
|
108
100
|
{
|
|
109
101
|
skipHook: true,
|
|
@@ -112,7 +104,7 @@ var BootstrapValueEditor = (props) => {
|
|
|
112
104
|
}
|
|
113
105
|
);
|
|
114
106
|
case "switch":
|
|
115
|
-
return /* @__PURE__ */
|
|
107
|
+
return /* @__PURE__ */ React3.createElement("span", { className: `custom-control custom-switch ${props.className}` }, /* @__PURE__ */ React3.createElement(
|
|
116
108
|
"input",
|
|
117
109
|
{
|
|
118
110
|
type: "checkbox",
|
|
@@ -122,27 +114,24 @@ var BootstrapValueEditor = (props) => {
|
|
|
122
114
|
onChange: (e) => props.handleOnChange(e.target.checked),
|
|
123
115
|
checked: !!props.value
|
|
124
116
|
}
|
|
125
|
-
)
|
|
117
|
+
));
|
|
126
118
|
case "checkbox":
|
|
127
|
-
return /* @__PURE__ */
|
|
119
|
+
return /* @__PURE__ */ React3.createElement(ValueEditor, { skipHook: true, ...props, className: `form-check-input ${props.className}` });
|
|
128
120
|
case "radio":
|
|
129
|
-
return /* @__PURE__ */
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
),
|
|
142
|
-
/* @__PURE__ */ jsx3("label", { className: "form-check-label", htmlFor: v.name, children: v.label })
|
|
143
|
-
] }, v.name)) });
|
|
121
|
+
return /* @__PURE__ */ React3.createElement("span", { title: props.title, className: standardClassnames.value }, props.values?.map((v) => /* @__PURE__ */ React3.createElement("div", { key: v.name, className: "form-check form-check-inline" }, /* @__PURE__ */ React3.createElement(
|
|
122
|
+
"input",
|
|
123
|
+
{
|
|
124
|
+
className: "form-check-input",
|
|
125
|
+
type: "radio",
|
|
126
|
+
id: v.name,
|
|
127
|
+
value: v.name,
|
|
128
|
+
checked: props.value === v.name,
|
|
129
|
+
disabled: props.disabled,
|
|
130
|
+
onChange: (e) => props.handleOnChange(e.target.value)
|
|
131
|
+
}
|
|
132
|
+
), /* @__PURE__ */ React3.createElement("label", { className: "form-check-label", htmlFor: v.name }, v.label))));
|
|
144
133
|
}
|
|
145
|
-
return /* @__PURE__ */
|
|
134
|
+
return /* @__PURE__ */ React3.createElement(ValueEditor, { skipHook: true, ...props });
|
|
146
135
|
};
|
|
147
136
|
BootstrapValueEditor.displayName = "BootstrapValueEditor";
|
|
148
137
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":";AACA,SAAS,gCAAgC;;;ACDzC,SAAS,kBAAkB;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["React","React"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getCompatContextProvider as
|
|
1
|
+
import{getCompatContextProvider as C}from"react-querybuilder";import*as u from"react";import{forwardRef as g}from"react";var b=g(({className:e,title:l},r)=>u.createElement("span",{ref:r,className:e,title:l},u.createElement("i",{className:"bi bi-grip-vertical"})));b.displayName="BootstrapDragHandle";import*as n from"react";import{useId as N}from"react";var f=({className:e,handleOnChange:l,title:r,label:c,checked:i,disabled:t})=>{let o=N();return n.createElement("div",{className:`form-check-inline form-switch ${e}`},n.createElement("input",{id:o,className:"form-check-input",type:"checkbox",onChange:s=>l(s.target.checked),checked:!!i,disabled:t}),n.createElement("label",{title:r,htmlFor:o,className:"form-check-label"},c))};f.displayName="BootstrapNotToggle";import*as a from"react";import{getFirstOption as k,standardClassnames as m,useValueEditor as p,ValueEditor as h,ValueSelector as v}from"react-querybuilder";var y=e=>{let{valueAsArray:l,multiValueHandler:r}=p({handleOnChange:e.handleOnChange,inputType:e.inputType,operator:e.operator,value:e.value,type:e.type,listsAsArrays:e.listsAsArrays,parseNumbers:e.parseNumbers,values:e.values}),{selectorComponent:c=v}=e;if(e.operator==="null"||e.operator==="notNull")return null;let i=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){let t=["from","to"].map((o,s)=>e.type==="text"?a.createElement("input",{key:o,type:e.inputType||"text",placeholder:i,value:l[s]??"",className:`${m.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:d=>r(d.target.value,s)}):a.createElement(c,{...e,key:o,className:`${m.valueListItem} form-select form-select-sm`,handleOnChange:d=>r(d,s),disabled:e.disabled,value:l[s]??k(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays}));return a.createElement("span",{"data-testid":e.testID,className:m.value,title:e.title},t[0],e.separator,t[1])}switch(e.type){case"select":case"multiselect":return a.createElement(h,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return a.createElement("span",{className:`custom-control custom-switch ${e.className}`},a.createElement("input",{type:"checkbox",className:"form-check-input custom-control-input",title:e.title,disabled:e.disabled,onChange:t=>e.handleOnChange(t.target.checked),checked:!!e.value}));case"checkbox":return a.createElement(h,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return a.createElement("span",{title:e.title,className:m.value},e.values?.map(t=>a.createElement("div",{key:t.name,className:"form-check form-check-inline"},a.createElement("input",{className:"form-check-input",type:"radio",id:t.name,value:t.name,checked:e.value===t.name,disabled:e.disabled,onChange:o=>e.handleOnChange(o.target.value)}),a.createElement("label",{className:"form-check-label",htmlFor:t.name},t.label))))}return a.createElement(h,{skipHook:!0,...e})};y.displayName="BootstrapValueEditor";var x={dragHandle:b,notToggle:f,valueEditor:y},B={addGroup:"btn btn-secondary btn-sm",addRule:"btn btn-primary btn-sm",cloneGroup:"btn btn-secondary btn-sm",cloneRule:"btn btn-secondary btn-sm",lockGroup:"btn btn-secondary btn-sm",lockRule:"btn btn-secondary btn-sm",removeGroup:"btn btn-danger btn-sm",removeRule:"btn btn-danger btn-sm",combinators:"form-select form-select-sm",fields:"form-select form-select-sm",operators:"form-select form-select-sm",value:"form-control form-control-sm",valueSource:"form-select form-select-sm"},$=C({key:"bootstrap",controlClassnames:B,controlElements:x});export{b as BootstrapDragHandle,f as BootstrapNotToggle,y as BootstrapValueEditor,$ as QueryBuilderBootstrap,B as bootstrapControlClassnames,x as bootstrapControlElements};
|
|
2
2
|
//# sourceMappingURL=react-querybuilder_bootstrap.production.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["getCompatContextProvider","forwardRef","jsx","BootstrapDragHandle","className","title","dragRef","useId","jsx","jsxs","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","getFirstOption","standardClassnames","useValueEditor","ValueEditor","ValueSelector","jsx","jsxs","createElement","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapDragHandle","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","QueryBuilderBootstrap","getCompatContextProvider"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/BootstrapDragHandle.tsx","../src/BootstrapNotToggle.tsx","../src/BootstrapValueEditor.tsx"],"sourcesContent":["import type { Classnames, Controls } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapDragHandle } from './BootstrapDragHandle';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\nexport { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor };\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n});\n","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport type { DragHandleProps } from 'react-querybuilder';\n\nexport const BootstrapDragHandle = forwardRef<HTMLSpanElement, DragHandleProps>(\n ({ className, title }, dragRef) => (\n <span ref={dragRef} className={className} title={title}>\n <i className=\"bi bi-grip-vertical\"></i>\n </span>\n )\n);\n\nBootstrapDragHandle.displayName = 'BootstrapDragHandle';\n","import * as React from 'react';\nimport { useId } from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\n\nexport const BootstrapNotToggle = ({\n className,\n handleOnChange,\n title,\n label,\n checked,\n disabled,\n}: NotToggleProps) => {\n const id = useId();\n\n return (\n <div className={`form-check-inline form-switch ${className}`}>\n <input\n id={id}\n className=\"form-check-input\"\n type=\"checkbox\"\n onChange={e => handleOnChange(e.target.checked)}\n checked={!!checked}\n disabled={disabled}\n />\n <label title={title} htmlFor={id} className=\"form-check-label\">\n {label}\n </label>\n </div>\n );\n};\n\nBootstrapNotToggle.displayName = 'BootstrapNotToggle';\n","import * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport {\n getFirstOption,\n standardClassnames,\n useValueEditor,\n ValueEditor,\n ValueSelector,\n} from 'react-querybuilder';\n\nexport const BootstrapValueEditor = (props: ValueEditorProps) => {\n const { valueAsArray, multiValueHandler } = useValueEditor({\n handleOnChange: props.handleOnChange,\n inputType: props.inputType,\n operator: props.operator,\n value: props.value,\n type: props.type,\n listsAsArrays: props.listsAsArrays,\n parseNumbers: props.parseNumbers,\n values: props.values,\n });\n\n const { selectorComponent: SelectorComponent = ValueSelector } = props;\n\n if (props.operator === 'null' || props.operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = props.fieldData?.placeholder ?? '';\n\n if (\n (props.operator === 'between' || props.operator === 'notBetween') &&\n (props.type === 'select' || props.type === 'text')\n ) {\n const editors = ['from', 'to'].map((key, i) => {\n if (props.type === 'text') {\n return (\n <input\n key={key}\n type={props.inputType || 'text'}\n placeholder={placeHolderText}\n value={valueAsArray[i] ?? ''}\n className={`${standardClassnames.valueListItem} form-control form-control-sm`}\n disabled={props.disabled}\n onChange={e => multiValueHandler(e.target.value, i)}\n />\n );\n }\n return (\n <SelectorComponent\n {...props}\n key={key}\n className={`${standardClassnames.valueListItem} form-select form-select-sm`}\n handleOnChange={v => multiValueHandler(v, i)}\n disabled={props.disabled}\n value={valueAsArray[i] ?? getFirstOption(props.values)}\n options={props.values ?? []}\n listsAsArrays={props.listsAsArrays}\n />\n );\n });\n\n return (\n <span data-testid={props.testID} className={standardClassnames.value} title={props.title}>\n {editors[0]}\n {props.separator}\n {editors[1]}\n </span>\n );\n }\n\n switch (props.type) {\n case 'select':\n case 'multiselect':\n return (\n <ValueEditor\n skipHook\n {...props}\n className={`${props.className} form-select form-select-sm`}\n />\n );\n\n case 'switch':\n return (\n <span className={`custom-control custom-switch ${props.className}`}>\n <input\n type=\"checkbox\"\n className=\"form-check-input custom-control-input\"\n title={props.title}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.checked)}\n checked={!!props.value}\n />\n </span>\n );\n\n case 'checkbox':\n return <ValueEditor skipHook {...props} className={`form-check-input ${props.className}`} />;\n\n case 'radio':\n return (\n <span title={props.title} className={standardClassnames.value}>\n {props.values?.map(v => (\n <div key={v.name} className=\"form-check form-check-inline\">\n <input\n className=\"form-check-input\"\n type=\"radio\"\n id={v.name}\n value={v.name}\n checked={props.value === v.name}\n disabled={props.disabled}\n onChange={e => props.handleOnChange(e.target.value)}\n />\n <label className=\"form-check-label\" htmlFor={v.name}>\n {v.label}\n </label>\n </div>\n ))}\n </span>\n );\n }\n\n return <ValueEditor skipHook {...props} />;\n};\n\nBootstrapValueEditor.displayName = 'BootstrapValueEditor';\n"],"mappings":"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","names":["getCompatContextProvider","React","forwardRef","BootstrapDragHandle","className","title","dragRef","React","useId","BootstrapNotToggle","className","handleOnChange","title","label","checked","disabled","id","e","React","getFirstOption","standardClassnames","useValueEditor","ValueEditor","ValueSelector","BootstrapValueEditor","props","valueAsArray","multiValueHandler","SelectorComponent","placeHolderText","editors","key","i","e","v","bootstrapControlElements","BootstrapDragHandle","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","QueryBuilderBootstrap","getCompatContextProvider"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-querybuilder/bootstrap",
|
|
3
3
|
"description": "Custom Bootstrap components for react-querybuilder",
|
|
4
|
-
"version": "6.3.0-alpha.
|
|
4
|
+
"version": "6.3.0-alpha.1",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -35,22 +35,22 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@popperjs/core": "^2.11.7",
|
|
37
37
|
"@testing-library/react": "^14.0.0",
|
|
38
|
-
"@types/react": "^18.0
|
|
38
|
+
"@types/react": "^18.2.0",
|
|
39
39
|
"@vitejs/plugin-react-swc": "^3.3.0",
|
|
40
40
|
"bootstrap": "^5.2.3",
|
|
41
|
-
"bootstrap-icons": "^1.10.
|
|
41
|
+
"bootstrap-icons": "^1.10.5",
|
|
42
42
|
"react": "^18.2.0",
|
|
43
43
|
"react-dom": "^18.2.0",
|
|
44
|
-
"react-querybuilder": "^6.3.0-alpha.
|
|
44
|
+
"react-querybuilder": "^6.3.0-alpha.1",
|
|
45
45
|
"rollup-plugin-visualizer": "^5.9.0",
|
|
46
46
|
"typescript": "^4.9.5",
|
|
47
|
-
"vite": "^4.3.
|
|
47
|
+
"vite": "^4.3.4"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"bootstrap": ">=5",
|
|
51
51
|
"bootstrap-icons": ">=1.7.0",
|
|
52
52
|
"react": ">=16.8.0",
|
|
53
|
-
"react-querybuilder": "^6.3.0-alpha.
|
|
53
|
+
"react-querybuilder": "^6.3.0-alpha.1"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "f9f7cb4d33a9d1a3c6754b2d8933e0469cbbe088"
|
|
56
56
|
}
|