@react-querybuilder/bootstrap 6.6.0-alpha.0 → 7.0.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/README.md CHANGED
@@ -9,9 +9,8 @@ To see them in action, check out the [`react-querybuilder` demo](https://react-q
9
9
  ## Installation
10
10
 
11
11
  ```bash
12
- npm i --save react-querybuilder @react-querybuilder/bootstrap bootstrap bootstrap-icons
13
- # OR
14
- yarn add react-querybuilder @react-querybuilder/bootstrap bootstrap bootstrap-icons
12
+ npm i react-querybuilder @react-querybuilder/bootstrap bootstrap bootstrap-icons
13
+ # OR yarn add / pnpm add / bun add
15
14
  ```
16
15
 
17
16
  ## Usage
@@ -1,9 +1,7 @@
1
1
  import * as react_querybuilder from 'react-querybuilder';
2
- import { DragHandleProps, NotToggleProps, ValueEditorProps, Controls, Classnames } from 'react-querybuilder';
2
+ import { NotToggleProps, ValueEditorProps } from 'react-querybuilder';
3
3
  import * as React from 'react';
4
4
 
5
- declare const BootstrapDragHandle: React.ForwardRefExoticComponent<DragHandleProps & React.RefAttributes<HTMLSpanElement>>;
6
-
7
5
  declare const BootstrapNotToggle: {
8
6
  ({ className, handleOnChange, title, label, checked, disabled, }: NotToggleProps): React.JSX.Element;
9
7
  displayName: string;
@@ -14,8 +12,66 @@ declare const BootstrapValueEditor: {
14
12
  displayName: string;
15
13
  };
16
14
 
17
- declare const bootstrapControlElements: Partial<Controls>;
18
- declare const bootstrapControlClassnames: Partial<Classnames>;
15
+ declare const bootstrapControlElements: {
16
+ notToggle: {
17
+ ({ className, handleOnChange, title, label, checked, disabled, }: react_querybuilder.NotToggleProps): React.JSX.Element;
18
+ displayName: string;
19
+ };
20
+ valueEditor: {
21
+ (props: react_querybuilder.ValueEditorProps<react_querybuilder.Field<string, string, string, react_querybuilder.Option<string>, react_querybuilder.Option<string>>, string>): React.JSX.Element | null;
22
+ displayName: string;
23
+ };
24
+ };
25
+ declare const bootstrapControlClassnames: {
26
+ addGroup: string;
27
+ addRule: string;
28
+ cloneGroup: string;
29
+ cloneRule: string;
30
+ lockGroup: string;
31
+ lockRule: string;
32
+ removeGroup: string;
33
+ removeRule: string;
34
+ combinators: string;
35
+ fields: string;
36
+ operators: string;
37
+ value: string;
38
+ valueSource: string;
39
+ };
40
+ declare const bootstrapTranslations: {
41
+ removeGroup: {
42
+ label: React.JSX.Element;
43
+ };
44
+ removeRule: {
45
+ label: React.JSX.Element;
46
+ };
47
+ cloneRule: {
48
+ label: React.JSX.Element;
49
+ };
50
+ cloneRuleGroup: {
51
+ label: React.JSX.Element;
52
+ };
53
+ dragHandle: {
54
+ label: React.JSX.Element;
55
+ };
56
+ lockGroup: {
57
+ label: React.JSX.Element;
58
+ };
59
+ lockRule: {
60
+ label: React.JSX.Element;
61
+ };
62
+ lockGroupDisabled: {
63
+ label: React.JSX.Element;
64
+ };
65
+ lockRuleDisabled: {
66
+ label: React.JSX.Element;
67
+ };
68
+ shiftActionUp: {
69
+ label: React.JSX.Element;
70
+ };
71
+ shiftActionDown: {
72
+ label: React.JSX.Element;
73
+ };
74
+ };
19
75
  declare const QueryBuilderBootstrap: react_querybuilder.QueryBuilderContextProvider<Record<string, any>>;
20
76
 
21
- export { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements };
77
+ export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
@@ -27,30 +27,23 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // src/index.ts
30
+ // src/index.tsx
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
- BootstrapDragHandle: () => BootstrapDragHandle,
34
33
  BootstrapNotToggle: () => BootstrapNotToggle,
35
34
  BootstrapValueEditor: () => BootstrapValueEditor,
36
35
  QueryBuilderBootstrap: () => QueryBuilderBootstrap,
37
36
  bootstrapControlClassnames: () => bootstrapControlClassnames,
38
- bootstrapControlElements: () => bootstrapControlElements
37
+ bootstrapControlElements: () => bootstrapControlElements,
38
+ bootstrapTranslations: () => bootstrapTranslations
39
39
  });
40
40
  module.exports = __toCommonJS(src_exports);
41
+ var React3 = __toESM(require("react"));
41
42
  var import_react_querybuilder2 = require("react-querybuilder");
42
43
 
43
- // src/BootstrapDragHandle.tsx
44
+ // src/BootstrapNotToggle.tsx
44
45
  var React = __toESM(require("react"));
45
46
  var import_react = require("react");
46
- var BootstrapDragHandle = (0, import_react.forwardRef)(
47
- ({ className, title }, dragRef) => /* @__PURE__ */ React.createElement("span", { ref: dragRef, className, title }, /* @__PURE__ */ React.createElement("i", { className: "bi bi-grip-vertical" }))
48
- );
49
- BootstrapDragHandle.displayName = "BootstrapDragHandle";
50
-
51
- // src/BootstrapNotToggle.tsx
52
- var React2 = __toESM(require("react"));
53
- var import_react2 = require("react");
54
47
  var BootstrapNotToggle = ({
55
48
  className,
56
49
  handleOnChange,
@@ -59,8 +52,8 @@ var BootstrapNotToggle = ({
59
52
  checked,
60
53
  disabled
61
54
  }) => {
62
- const id = (0, import_react2.useId)();
63
- return /* @__PURE__ */ React2.createElement("div", { className: `form-check-inline form-switch ${className}` }, /* @__PURE__ */ React2.createElement(
55
+ const id = (0, import_react.useId)();
56
+ return /* @__PURE__ */ React.createElement("div", { className: `form-check-inline form-switch ${className}` }, /* @__PURE__ */ React.createElement(
64
57
  "input",
65
58
  {
66
59
  id,
@@ -70,12 +63,12 @@ var BootstrapNotToggle = ({
70
63
  checked: !!checked,
71
64
  disabled
72
65
  }
73
- ), /* @__PURE__ */ React2.createElement("label", { title, htmlFor: id, className: "form-check-label" }, label));
66
+ ), /* @__PURE__ */ React.createElement("label", { title, htmlFor: id, className: "form-check-label" }, label));
74
67
  };
75
68
  BootstrapNotToggle.displayName = "BootstrapNotToggle";
76
69
 
77
70
  // src/BootstrapValueEditor.tsx
78
- var React3 = __toESM(require("react"));
71
+ var React2 = __toESM(require("react"));
79
72
  var import_react_querybuilder = require("react-querybuilder");
80
73
  var BootstrapValueEditor = (props) => {
81
74
  const { valueAsArray, multiValueHandler } = (0, import_react_querybuilder.useValueEditor)({
@@ -96,7 +89,7 @@ var BootstrapValueEditor = (props) => {
96
89
  if ((props.operator === "between" || props.operator === "notBetween") && (props.type === "select" || props.type === "text")) {
97
90
  const editors = ["from", "to"].map((key, i) => {
98
91
  if (props.type === "text") {
99
- return /* @__PURE__ */ React3.createElement(
92
+ return /* @__PURE__ */ React2.createElement(
100
93
  "input",
101
94
  {
102
95
  key,
@@ -109,7 +102,7 @@ var BootstrapValueEditor = (props) => {
109
102
  }
110
103
  );
111
104
  }
112
- return /* @__PURE__ */ React3.createElement(
105
+ return /* @__PURE__ */ React2.createElement(
113
106
  SelectorComponent,
114
107
  {
115
108
  ...props,
@@ -123,12 +116,12 @@ var BootstrapValueEditor = (props) => {
123
116
  }
124
117
  );
125
118
  });
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]);
119
+ return /* @__PURE__ */ React2.createElement("span", { "data-testid": props.testID, className: import_react_querybuilder.standardClassnames.value, title: props.title }, editors[0], props.separator, editors[1]);
127
120
  }
128
121
  switch (props.type) {
129
122
  case "select":
130
123
  case "multiselect":
131
- return /* @__PURE__ */ React3.createElement(
124
+ return /* @__PURE__ */ React2.createElement(
132
125
  import_react_querybuilder.ValueEditor,
133
126
  {
134
127
  skipHook: true,
@@ -137,7 +130,7 @@ var BootstrapValueEditor = (props) => {
137
130
  }
138
131
  );
139
132
  case "switch":
140
- return /* @__PURE__ */ React3.createElement("span", { className: `custom-control custom-switch ${props.className}` }, /* @__PURE__ */ React3.createElement(
133
+ return /* @__PURE__ */ React2.createElement("span", { className: `custom-control custom-switch ${props.className}` }, /* @__PURE__ */ React2.createElement(
141
134
  "input",
142
135
  {
143
136
  type: "checkbox",
@@ -149,9 +142,9 @@ var BootstrapValueEditor = (props) => {
149
142
  }
150
143
  ));
151
144
  case "checkbox":
152
- return /* @__PURE__ */ React3.createElement(import_react_querybuilder.ValueEditor, { skipHook: true, ...props, className: `form-check-input ${props.className}` });
145
+ return /* @__PURE__ */ React2.createElement(import_react_querybuilder.ValueEditor, { skipHook: true, ...props, className: `form-check-input ${props.className}` });
153
146
  case "radio":
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(
147
+ return /* @__PURE__ */ React2.createElement("span", { title: props.title, className: import_react_querybuilder.standardClassnames.value }, props.values?.map((v) => /* @__PURE__ */ React2.createElement("div", { key: v.name, className: "form-check form-check-inline" }, /* @__PURE__ */ React2.createElement(
155
148
  "input",
156
149
  {
157
150
  className: "form-check-input",
@@ -162,15 +155,14 @@ var BootstrapValueEditor = (props) => {
162
155
  disabled: props.disabled,
163
156
  onChange: (e) => props.handleOnChange(e.target.value)
164
157
  }
165
- ), /* @__PURE__ */ React3.createElement("label", { className: "form-check-label", htmlFor: v.name }, v.label))));
158
+ ), /* @__PURE__ */ React2.createElement("label", { className: "form-check-label", htmlFor: v.name }, v.label))));
166
159
  }
167
- return /* @__PURE__ */ React3.createElement(import_react_querybuilder.ValueEditor, { skipHook: true, ...props });
160
+ return /* @__PURE__ */ React2.createElement(import_react_querybuilder.ValueEditor, { skipHook: true, ...props });
168
161
  };
169
162
  BootstrapValueEditor.displayName = "BootstrapValueEditor";
170
163
 
171
- // src/index.ts
164
+ // src/index.tsx
172
165
  var bootstrapControlElements = {
173
- dragHandle: BootstrapDragHandle,
174
166
  notToggle: BootstrapNotToggle,
175
167
  valueEditor: BootstrapValueEditor
176
168
  };
@@ -189,18 +181,32 @@ var bootstrapControlClassnames = {
189
181
  value: "form-control form-control-sm",
190
182
  valueSource: "form-select form-select-sm"
191
183
  };
184
+ var bootstrapTranslations = {
185
+ removeGroup: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-x" }) },
186
+ removeRule: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-x" }) },
187
+ cloneRule: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-copy" }) },
188
+ cloneRuleGroup: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-copy" }) },
189
+ dragHandle: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-grip-vertical" }) },
190
+ lockGroup: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-unlock" }) },
191
+ lockRule: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-unlock" }) },
192
+ lockGroupDisabled: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-lock" }) },
193
+ lockRuleDisabled: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-lock" }) },
194
+ shiftActionUp: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-chevron-compact-up" }) },
195
+ shiftActionDown: { label: /* @__PURE__ */ React3.createElement("i", { className: "bi bi-chevron-compact-down" }) }
196
+ };
192
197
  var QueryBuilderBootstrap = (0, import_react_querybuilder2.getCompatContextProvider)({
193
198
  key: "bootstrap",
194
199
  controlClassnames: bootstrapControlClassnames,
195
- controlElements: bootstrapControlElements
200
+ controlElements: bootstrapControlElements,
201
+ translations: bootstrapTranslations
196
202
  });
197
203
  // Annotate the CommonJS export names for ESM import in node:
198
204
  0 && (module.exports = {
199
- BootstrapDragHandle,
200
205
  BootstrapNotToggle,
201
206
  BootstrapValueEditor,
202
207
  QueryBuilderBootstrap,
203
208
  bootstrapControlClassnames,
204
- bootstrapControlElements
209
+ bootstrapControlElements,
210
+ bootstrapTranslations
205
211
  });
206
212
  //# sourceMappingURL=react-querybuilder_bootstrap.cjs.development.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';\n\nexport * from './BootstrapDragHandle';\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport 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
+ {"version":3,"sources":["../../src/index.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls>;\n\nexport const bootstrapControlClassnames = {\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} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,SAAuB;AAEvB,IAAAC,6BAAyC;;;ACFzC,YAAuB;AACvB,mBAAsB;AAGf,IAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAsB;AACpB,QAAM,SAAK,oBAAM;AAEjB,SACE,oCAAC,SAAI,WAAW,iCAAiC,SAAS,MACxD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAU;AAAA,MACV,MAAK;AAAA,MACL,UAAU,OAAK,eAAe,EAAE,OAAO,OAAO;AAAA,MAC9C,SAAS,CAAC,CAAC;AAAA,MACX;AAAA;AAAA,EACF,GACA,oCAAC,WAAM,OAAc,SAAS,IAAI,WAAU,sBACzC,KACH,CACF;AAEJ;AAEA,mBAAmB,cAAc;;;AC/BjC,IAAAC,SAAuB;AAEvB,gCAMO;AAEA,IAAM,uBAAuB,CAAC,UAA4B;AAC/D,QAAM,EAAE,cAAc,kBAAkB,QAAI,0CAAe;AAAA,IACzD,gBAAgB,MAAM;AAAA,IACtB,WAAW,MAAM;AAAA,IACjB,UAAU,MAAM;AAAA,IAChB,OAAO,MAAM;AAAA,IACb,MAAM,MAAM;AAAA,IACZ,eAAe,MAAM;AAAA,IACrB,cAAc,MAAM;AAAA,IACpB,QAAQ,MAAM;AAAA,EAChB,CAAC;AAED,QAAM,EAAE,mBAAmB,oBAAoB,wCAAc,IAAI;AAEjE,MAAI,MAAM,aAAa,UAAU,MAAM,aAAa,WAAW;AAC7D,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,MAAM,WAAW,eAAe;AAExD,OACG,MAAM,aAAa,aAAa,MAAM,aAAa,kBACnD,MAAM,SAAS,YAAY,MAAM,SAAS,SAC3C;AACA,UAAM,UAAU,CAAC,QAAQ,IAAI,EAAE,IAAI,CAAC,KAAK,MAAM;AAC7C,UAAI,MAAM,SAAS,QAAQ;AACzB,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,MAAM,MAAM,aAAa;AAAA,YACzB,aAAa;AAAA,YACb,OAAO,aAAa,CAAC,KAAK;AAAA,YAC1B,WAAW,GAAG,6CAAmB,aAAa;AAAA,YAC9C,UAAU,MAAM;AAAA,YAChB,UAAU,OAAK,kBAAkB,EAAE,OAAO,OAAO,CAAC;AAAA;AAAA,QACpD;AAAA,MAEJ;AACA,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW,GAAG,6CAAmB,aAAa;AAAA,UAC9C,gBAAgB,OAAK,kBAAkB,GAAG,CAAC;AAAA,UAC3C,UAAU,MAAM;AAAA,UAChB,OAAO,aAAa,CAAC,SAAK,0CAAe,MAAM,MAAM;AAAA,UACrD,SAAS,MAAM,UAAU,CAAC;AAAA,UAC1B,eAAe,MAAM;AAAA;AAAA,MACvB;AAAA,IAEJ,CAAC;AAED,WACE,qCAAC,UAAK,eAAa,MAAM,QAAQ,WAAW,6CAAmB,OAAO,OAAO,MAAM,SAChF,QAAQ,CAAC,GACT,MAAM,WACN,QAAQ,CAAC,CACZ;AAAA,EAEJ;AAEA,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AAAA,IACL,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAQ;AAAA,UACP,GAAG;AAAA,UACJ,WAAW,GAAG,MAAM,SAAS;AAAA;AAAA,MAC/B;AAAA,IAGJ,KAAK;AACH,aACE,qCAAC,UAAK,WAAW,gCAAgC,MAAM,SAAS,MAC9D;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,OAAO,MAAM;AAAA,UACb,UAAU,MAAM;AAAA,UAChB,UAAU,OAAK,MAAM,eAAe,EAAE,OAAO,OAAO;AAAA,UACpD,SAAS,CAAC,CAAC,MAAM;AAAA;AAAA,MACnB,CACF;AAAA,IAGJ,KAAK;AACH,aAAO,qCAAC,yCAAY,UAAQ,MAAE,GAAG,OAAO,WAAW,oBAAoB,MAAM,SAAS,IAAI;AAAA,IAE5F,KAAK;AACH,aACE,qCAAC,UAAK,OAAO,MAAM,OAAO,WAAW,6CAAmB,SACrD,MAAM,QAAQ,IAAI,OACjB,qCAAC,SAAI,KAAK,EAAE,MAAM,WAAU,kCAC1B;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,IAAI,EAAE;AAAA,UACN,OAAO,EAAE;AAAA,UACT,SAAS,MAAM,UAAU,EAAE;AAAA,UAC3B,UAAU,MAAM;AAAA,UAChB,UAAU,OAAK,MAAM,eAAe,EAAE,OAAO,KAAK;AAAA;AAAA,MACpD,GACA,qCAAC,WAAM,WAAU,oBAAmB,SAAS,EAAE,QAC5C,EAAE,KACL,CACF,CACD,CACH;AAAA,EAEN;AAEA,SAAO,qCAAC,yCAAY,UAAQ,MAAE,GAAG,OAAO;AAC1C;AAEA,qBAAqB,cAAc;;;AFpH5B,IAAM,2BAA2B;AAAA,EACtC,WAAW;AAAA,EACX,aAAa;AACf;AAEO,IAAM,6BAA6B;AAAA,EACxC,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,aAAa;AACf;AAEO,IAAM,wBAAwB;AAAA,EACnC,aAAa,EAAE,OAAO,qCAAC,OAAE,WAAU,WAAU,EAAG;AAAA,EAChD,YAAY,EAAE,OAAO,qCAAC,OAAE,WAAU,WAAU,EAAG;AAAA,EAC/C,WAAW,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACjD,gBAAgB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACtD,YAAY,EAAE,OAAO,qCAAC,OAAE,WAAU,uBAAsB,EAAG;AAAA,EAC3D,WAAW,EAAE,OAAO,qCAAC,OAAE,WAAU,gBAAe,EAAG;AAAA,EACnD,UAAU,EAAE,OAAO,qCAAC,OAAE,WAAU,gBAAe,EAAG;AAAA,EAClD,mBAAmB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACzD,kBAAkB,EAAE,OAAO,qCAAC,OAAE,WAAU,cAAa,EAAG;AAAA,EACxD,eAAe,EAAE,OAAO,qCAAC,OAAE,WAAU,4BAA2B,EAAG;AAAA,EACnE,iBAAiB,EAAE,OAAO,qCAAC,OAAE,WAAU,8BAA6B,EAAG;AACzE;AAEO,IAAM,4BAAwB,qDAAyB;AAAA,EAC5D,KAAK;AAAA,EACL,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,cAAc;AAChB,CAAC;","names":["React","import_react_querybuilder","React"]}
@@ -1,9 +1,7 @@
1
1
  import * as react_querybuilder from 'react-querybuilder';
2
- import { DragHandleProps, NotToggleProps, ValueEditorProps, Controls, Classnames } from 'react-querybuilder';
2
+ import { NotToggleProps, ValueEditorProps } from 'react-querybuilder';
3
3
  import * as React from 'react';
4
4
 
5
- declare const BootstrapDragHandle: React.ForwardRefExoticComponent<DragHandleProps & React.RefAttributes<HTMLSpanElement>>;
6
-
7
5
  declare const BootstrapNotToggle: {
8
6
  ({ className, handleOnChange, title, label, checked, disabled, }: NotToggleProps): React.JSX.Element;
9
7
  displayName: string;
@@ -14,8 +12,66 @@ declare const BootstrapValueEditor: {
14
12
  displayName: string;
15
13
  };
16
14
 
17
- declare const bootstrapControlElements: Partial<Controls>;
18
- declare const bootstrapControlClassnames: Partial<Classnames>;
15
+ declare const bootstrapControlElements: {
16
+ notToggle: {
17
+ ({ className, handleOnChange, title, label, checked, disabled, }: react_querybuilder.NotToggleProps): React.JSX.Element;
18
+ displayName: string;
19
+ };
20
+ valueEditor: {
21
+ (props: react_querybuilder.ValueEditorProps<react_querybuilder.Field<string, string, string, react_querybuilder.Option<string>, react_querybuilder.Option<string>>, string>): React.JSX.Element | null;
22
+ displayName: string;
23
+ };
24
+ };
25
+ declare const bootstrapControlClassnames: {
26
+ addGroup: string;
27
+ addRule: string;
28
+ cloneGroup: string;
29
+ cloneRule: string;
30
+ lockGroup: string;
31
+ lockRule: string;
32
+ removeGroup: string;
33
+ removeRule: string;
34
+ combinators: string;
35
+ fields: string;
36
+ operators: string;
37
+ value: string;
38
+ valueSource: string;
39
+ };
40
+ declare const bootstrapTranslations: {
41
+ removeGroup: {
42
+ label: React.JSX.Element;
43
+ };
44
+ removeRule: {
45
+ label: React.JSX.Element;
46
+ };
47
+ cloneRule: {
48
+ label: React.JSX.Element;
49
+ };
50
+ cloneRuleGroup: {
51
+ label: React.JSX.Element;
52
+ };
53
+ dragHandle: {
54
+ label: React.JSX.Element;
55
+ };
56
+ lockGroup: {
57
+ label: React.JSX.Element;
58
+ };
59
+ lockRule: {
60
+ label: React.JSX.Element;
61
+ };
62
+ lockGroupDisabled: {
63
+ label: React.JSX.Element;
64
+ };
65
+ lockRuleDisabled: {
66
+ label: React.JSX.Element;
67
+ };
68
+ shiftActionUp: {
69
+ label: React.JSX.Element;
70
+ };
71
+ shiftActionDown: {
72
+ label: React.JSX.Element;
73
+ };
74
+ };
19
75
  declare const QueryBuilderBootstrap: react_querybuilder.QueryBuilderContextProvider<Record<string, any>>;
20
76
 
21
- export { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements };
77
+ export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
@@ -1,2 +1,2 @@
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});
1
+ "use strict";var x=Object.create;var u=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var B=(e,t)=>{for(var l in t)u(e,l,{get:t[l],enumerable:!0})},N=(e,t,l,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of A(t))!E.call(e,n)&&n!==l&&u(e,n,{get:()=>t[n],enumerable:!(i=T(t,n))||i.enumerable});return e};var y=(e,t,l)=>(l=e!=null?x(R(e)):{},N(t||!e||!e.__esModule?u(l,"default",{value:e,enumerable:!0}):l,e)),V=e=>N(u({},"__esModule",{value:!0}),e);var G={};B(G,{BootstrapNotToggle:()=>d,BootstrapValueEditor:()=>f,QueryBuilderBootstrap:()=>w,bootstrapControlClassnames:()=>p,bootstrapControlElements:()=>v,bootstrapTranslations:()=>C});module.exports=V(G);var r=y(require("react")),g=require("react-querybuilder");var b=y(require("react")),k=require("react"),d=({className:e,handleOnChange:t,title:l,label:i,checked:n,disabled:o})=>{let c=(0,k.useId)();return b.createElement("div",{className:`form-check-inline form-switch ${e}`},b.createElement("input",{id:c,className:"form-check-input",type:"checkbox",onChange:m=>t(m.target.checked),checked:!!n,disabled:o}),b.createElement("label",{title:l,htmlFor:c,className:"form-check-label"},i))};d.displayName="BootstrapNotToggle";var s=y(require("react")),a=require("react-querybuilder"),f=e=>{let{valueAsArray:t,multiValueHandler:l}=(0,a.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:i=a.ValueSelector}=e;if(e.operator==="null"||e.operator==="notNull")return null;let n=e.fieldData?.placeholder??"";if((e.operator==="between"||e.operator==="notBetween")&&(e.type==="select"||e.type==="text")){let o=["from","to"].map((c,m)=>e.type==="text"?s.createElement("input",{key:c,type:e.inputType||"text",placeholder:n,value:t[m]??"",className:`${a.standardClassnames.valueListItem} form-control form-control-sm`,disabled:e.disabled,onChange:h=>l(h.target.value,m)}):s.createElement(i,{...e,key:c,className:`${a.standardClassnames.valueListItem} form-select form-select-sm`,handleOnChange:h=>l(h,m),disabled:e.disabled,value:t[m]??(0,a.getFirstOption)(e.values),options:e.values??[],listsAsArrays:e.listsAsArrays}));return s.createElement("span",{"data-testid":e.testID,className:a.standardClassnames.value,title:e.title},o[0],e.separator,o[1])}switch(e.type){case"select":case"multiselect":return s.createElement(a.ValueEditor,{skipHook:!0,...e,className:`${e.className} form-select form-select-sm`});case"switch":return s.createElement("span",{className:`custom-control custom-switch ${e.className}`},s.createElement("input",{type:"checkbox",className:"form-check-input custom-control-input",title:e.title,disabled:e.disabled,onChange:o=>e.handleOnChange(o.target.checked),checked:!!e.value}));case"checkbox":return s.createElement(a.ValueEditor,{skipHook:!0,...e,className:`form-check-input ${e.className}`});case"radio":return s.createElement("span",{title:e.title,className:a.standardClassnames.value},e.values?.map(o=>s.createElement("div",{key:o.name,className:"form-check form-check-inline"},s.createElement("input",{className:"form-check-input",type:"radio",id:o.name,value:o.name,checked:e.value===o.name,disabled:e.disabled,onChange:c=>e.handleOnChange(c.target.value)}),s.createElement("label",{className:"form-check-label",htmlFor:o.name},o.label))))}return s.createElement(a.ValueEditor,{skipHook:!0,...e})};f.displayName="BootstrapValueEditor";var v={notToggle:d,valueEditor:f},p={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={removeGroup:{label:r.createElement("i",{className:"bi bi-x"})},removeRule:{label:r.createElement("i",{className:"bi bi-x"})},cloneRule:{label:r.createElement("i",{className:"bi bi-copy"})},cloneRuleGroup:{label:r.createElement("i",{className:"bi bi-copy"})},dragHandle:{label:r.createElement("i",{className:"bi bi-grip-vertical"})},lockGroup:{label:r.createElement("i",{className:"bi bi-unlock"})},lockRule:{label:r.createElement("i",{className:"bi bi-unlock"})},lockGroupDisabled:{label:r.createElement("i",{className:"bi bi-lock"})},lockRuleDisabled:{label:r.createElement("i",{className:"bi bi-lock"})},shiftActionUp:{label:r.createElement("i",{className:"bi bi-chevron-compact-up"})},shiftActionDown:{label:r.createElement("i",{className:"bi bi-chevron-compact-down"})}},w=(0,g.getCompatContextProvider)({key:"bootstrap",controlClassnames:p,controlElements:v,translations:C});0&&(module.exports={BootstrapNotToggle,BootstrapValueEditor,QueryBuilderBootstrap,bootstrapControlClassnames,bootstrapControlElements,bootstrapTranslations});
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';\n\nexport * from './BootstrapDragHandle';\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements: Partial<Controls> = {\n dragHandle: BootstrapDragHandle,\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n};\n\nexport const bootstrapControlClassnames: Partial<Classnames> = {\n addGroup: 'btn btn-secondary btn-sm',\n addRule: 'btn btn-primary btn-sm',\n cloneGroup: 'btn btn-secondary btn-sm',\n cloneRule: 'btn btn-secondary btn-sm',\n lockGroup: 'btn btn-secondary btn-sm',\n lockRule: 'btn btn-secondary btn-sm',\n removeGroup: 'btn btn-danger btn-sm',\n removeRule: 'btn btn-danger btn-sm',\n combinators: 'form-select form-select-sm',\n fields: 'form-select form-select-sm',\n operators: 'form-select form-select-sm',\n value: 'form-control form-control-sm',\n valueSource: 'form-select form-select-sm',\n};\n\nexport 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
+ {"version":3,"sources":["../../src/index.tsx","../../src/BootstrapNotToggle.tsx","../../src/BootstrapValueEditor.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { Classnames, Controls, Translations } from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { BootstrapNotToggle } from './BootstrapNotToggle';\nimport { BootstrapValueEditor } from './BootstrapValueEditor';\n\nexport * from './BootstrapNotToggle';\nexport * from './BootstrapValueEditor';\n\nexport const bootstrapControlElements = {\n notToggle: BootstrapNotToggle,\n valueEditor: BootstrapValueEditor,\n} satisfies Partial<Controls>;\n\nexport const bootstrapControlClassnames = {\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} satisfies Partial<Classnames>;\n\nexport const bootstrapTranslations = {\n removeGroup: { label: <i className=\"bi bi-x\" /> },\n removeRule: { label: <i className=\"bi bi-x\" /> },\n cloneRule: { label: <i className=\"bi bi-copy\" /> },\n cloneRuleGroup: { label: <i className=\"bi bi-copy\" /> },\n dragHandle: { label: <i className=\"bi bi-grip-vertical\" /> },\n lockGroup: { label: <i className=\"bi bi-unlock\" /> },\n lockRule: { label: <i className=\"bi bi-unlock\" /> },\n lockGroupDisabled: { label: <i className=\"bi bi-lock\" /> },\n lockRuleDisabled: { label: <i className=\"bi bi-lock\" /> },\n shiftActionUp: { label: <i className=\"bi bi-chevron-compact-up\" /> },\n shiftActionDown: { label: <i className=\"bi bi-chevron-compact-down\" /> },\n} satisfies Partial<Translations>;\n\nexport const QueryBuilderBootstrap = getCompatContextProvider({\n key: 'bootstrap',\n controlClassnames: bootstrapControlClassnames,\n controlElements: bootstrapControlElements,\n translations: bootstrapTranslations,\n});\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","BootstrapNotToggle","BootstrapValueEditor","QueryBuilderBootstrap","bootstrapControlClassnames","bootstrapControlElements","bootstrapTranslations","__toCommonJS","React","import_react_querybuilder","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","BootstrapNotToggle","BootstrapValueEditor","bootstrapControlClassnames","bootstrapTranslations","QueryBuilderBootstrap"]}
@@ -1,9 +1,7 @@
1
1
  import * as react_querybuilder from 'react-querybuilder';
2
- import { DragHandleProps, NotToggleProps, ValueEditorProps, Controls, Classnames } from 'react-querybuilder';
2
+ import { NotToggleProps, ValueEditorProps } from 'react-querybuilder';
3
3
  import * as React from 'react';
4
4
 
5
- declare const BootstrapDragHandle: React.ForwardRefExoticComponent<DragHandleProps & React.RefAttributes<HTMLSpanElement>>;
6
-
7
5
  declare const BootstrapNotToggle: {
8
6
  ({ className, handleOnChange, title, label, checked, disabled, }: NotToggleProps): React.JSX.Element;
9
7
  displayName: string;
@@ -14,8 +12,66 @@ declare const BootstrapValueEditor: {
14
12
  displayName: string;
15
13
  };
16
14
 
17
- declare const bootstrapControlElements: Partial<Controls>;
18
- declare const bootstrapControlClassnames: Partial<Classnames>;
15
+ declare const bootstrapControlElements: {
16
+ notToggle: {
17
+ ({ className, handleOnChange, title, label, checked, disabled, }: react_querybuilder.NotToggleProps): React.JSX.Element;
18
+ displayName: string;
19
+ };
20
+ valueEditor: {
21
+ (props: react_querybuilder.ValueEditorProps<react_querybuilder.Field<string, string, string, react_querybuilder.Option<string>, react_querybuilder.Option<string>>, string>): React.JSX.Element | null;
22
+ displayName: string;
23
+ };
24
+ };
25
+ declare const bootstrapControlClassnames: {
26
+ addGroup: string;
27
+ addRule: string;
28
+ cloneGroup: string;
29
+ cloneRule: string;
30
+ lockGroup: string;
31
+ lockRule: string;
32
+ removeGroup: string;
33
+ removeRule: string;
34
+ combinators: string;
35
+ fields: string;
36
+ operators: string;
37
+ value: string;
38
+ valueSource: string;
39
+ };
40
+ declare const bootstrapTranslations: {
41
+ removeGroup: {
42
+ label: React.JSX.Element;
43
+ };
44
+ removeRule: {
45
+ label: React.JSX.Element;
46
+ };
47
+ cloneRule: {
48
+ label: React.JSX.Element;
49
+ };
50
+ cloneRuleGroup: {
51
+ label: React.JSX.Element;
52
+ };
53
+ dragHandle: {
54
+ label: React.JSX.Element;
55
+ };
56
+ lockGroup: {
57
+ label: React.JSX.Element;
58
+ };
59
+ lockRule: {
60
+ label: React.JSX.Element;
61
+ };
62
+ lockGroupDisabled: {
63
+ label: React.JSX.Element;
64
+ };
65
+ lockRuleDisabled: {
66
+ label: React.JSX.Element;
67
+ };
68
+ shiftActionUp: {
69
+ label: React.JSX.Element;
70
+ };
71
+ shiftActionDown: {
72
+ label: React.JSX.Element;
73
+ };
74
+ };
19
75
  declare const QueryBuilderBootstrap: react_querybuilder.QueryBuilderContextProvider<Record<string, any>>;
20
76
 
21
- export { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements };
77
+ export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };
@@ -1,9 +1,7 @@
1
1
  import * as react_querybuilder from 'react-querybuilder';
2
- import { DragHandleProps, NotToggleProps, ValueEditorProps, Controls, Classnames } from 'react-querybuilder';
2
+ import { NotToggleProps, ValueEditorProps } from 'react-querybuilder';
3
3
  import * as React from 'react';
4
4
 
5
- declare const BootstrapDragHandle: React.ForwardRefExoticComponent<DragHandleProps & React.RefAttributes<HTMLSpanElement>>;
6
-
7
5
  declare const BootstrapNotToggle: {
8
6
  ({ className, handleOnChange, title, label, checked, disabled, }: NotToggleProps): React.JSX.Element;
9
7
  displayName: string;
@@ -14,8 +12,66 @@ declare const BootstrapValueEditor: {
14
12
  displayName: string;
15
13
  };
16
14
 
17
- declare const bootstrapControlElements: Partial<Controls>;
18
- declare const bootstrapControlClassnames: Partial<Classnames>;
15
+ declare const bootstrapControlElements: {
16
+ notToggle: {
17
+ ({ className, handleOnChange, title, label, checked, disabled, }: react_querybuilder.NotToggleProps): React.JSX.Element;
18
+ displayName: string;
19
+ };
20
+ valueEditor: {
21
+ (props: react_querybuilder.ValueEditorProps<react_querybuilder.Field<string, string, string, react_querybuilder.Option<string>, react_querybuilder.Option<string>>, string>): React.JSX.Element | null;
22
+ displayName: string;
23
+ };
24
+ };
25
+ declare const bootstrapControlClassnames: {
26
+ addGroup: string;
27
+ addRule: string;
28
+ cloneGroup: string;
29
+ cloneRule: string;
30
+ lockGroup: string;
31
+ lockRule: string;
32
+ removeGroup: string;
33
+ removeRule: string;
34
+ combinators: string;
35
+ fields: string;
36
+ operators: string;
37
+ value: string;
38
+ valueSource: string;
39
+ };
40
+ declare const bootstrapTranslations: {
41
+ removeGroup: {
42
+ label: React.JSX.Element;
43
+ };
44
+ removeRule: {
45
+ label: React.JSX.Element;
46
+ };
47
+ cloneRule: {
48
+ label: React.JSX.Element;
49
+ };
50
+ cloneRuleGroup: {
51
+ label: React.JSX.Element;
52
+ };
53
+ dragHandle: {
54
+ label: React.JSX.Element;
55
+ };
56
+ lockGroup: {
57
+ label: React.JSX.Element;
58
+ };
59
+ lockRule: {
60
+ label: React.JSX.Element;
61
+ };
62
+ lockGroupDisabled: {
63
+ label: React.JSX.Element;
64
+ };
65
+ lockRuleDisabled: {
66
+ label: React.JSX.Element;
67
+ };
68
+ shiftActionUp: {
69
+ label: React.JSX.Element;
70
+ };
71
+ shiftActionDown: {
72
+ label: React.JSX.Element;
73
+ };
74
+ };
19
75
  declare const QueryBuilderBootstrap: react_querybuilder.QueryBuilderContextProvider<Record<string, any>>;
20
76
 
21
- export { BootstrapDragHandle, BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements };
77
+ export { BootstrapNotToggle, BootstrapValueEditor, QueryBuilderBootstrap, bootstrapControlClassnames, bootstrapControlElements, bootstrapTranslations };