@goldenpine/react-form-builder2 0.18.4-patch.1 → 0.20.3-build.2
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 +154 -121
- package/dist/845.app.js +1 -0
- package/dist/app.css +1 -38
- package/dist/app.css.map +1 -1
- package/dist/app.js +2 -71
- package/dist/app.js.LICENSE.txt +66 -0
- package/lib/ItemTypes.js +2 -3
- package/lib/UUID.js +1 -3
- package/lib/dynamic-option-list.js +10 -12
- package/lib/fieldset/FieldSet.js +3 -4
- package/lib/form-dynamic-edit.js +17 -21
- package/lib/form-elements/component-drag-handle.js +49 -75
- package/lib/form-elements/component-drag-layer.js +18 -18
- package/lib/form-elements/component-drag-preview.js +5 -15
- package/lib/form-elements/component-header.js +1 -2
- package/lib/form-elements/component-label.js +1 -2
- package/lib/form-elements/custom-element.js +10 -14
- package/lib/form-elements/date-picker.js +11 -16
- package/lib/form-elements/header-bar.js +10 -13
- package/lib/form-elements/index.js +152 -199
- package/lib/form-elements/myxss.js +1 -2
- package/lib/form-elements/star-rating.js +97 -90
- package/lib/form-elements-edit.js +7 -10
- package/lib/form-place-holder.js +7 -10
- package/lib/form-validator.js +8 -11
- package/lib/form.js +25 -30
- package/lib/functions/index.js +3 -6
- package/lib/index.js +9 -14
- package/lib/language-provider/IntlMessages.js +2 -3
- package/lib/language-provider/entries/en-us.js +3 -4
- package/lib/language-provider/entries/fa-ir.js +3 -4
- package/lib/language-provider/entries/it-it.js +3 -4
- package/lib/language-provider/entries/vi-vn.js +3 -4
- package/lib/language-provider/index.js +2 -4
- package/lib/multi-column/MultiColumnRow.js +12 -17
- package/lib/multi-column/dustbin.js +59 -74
- package/lib/multi-column/grip.js +2 -3
- package/lib/preview.js +17 -21
- package/lib/sortable-element.js +169 -143
- package/lib/sortable-form-elements.js +1 -2
- package/lib/stores/store.js +1 -2
- package/lib/toolbar-draggable-item.js +41 -46
- package/lib/toolbar-group-item.js +2 -4
- package/lib/toolbar.js +15 -19
- package/package.json +21 -28
- package/dist/1.app.js +0 -1
package/README.md
CHANGED
|
@@ -1,68 +1,64 @@
|
|
|
1
1
|
[](//npmjs.com/package/react-form-builder2)
|
|
2
2
|
[](https://img.shields.io/npm/dm/react-form-builder2.svg)
|
|
3
|
+
|
|
3
4
|
# React Form Builder 2
|
|
4
|
-
A complete react form builder that interfaces with a json endpoint to load and save generated forms.
|
|
5
|
-
- Upgraded to React 16.8.6
|
|
6
|
-
- Bootstrap 4.x, Font-Awesome 5.x
|
|
7
|
-
- Use react-dnd for Drag & Drop
|
|
8
|
-
- Save form data with dummy api server
|
|
9
|
-
- Show posted data on readonly form
|
|
10
|
-
- Multi column row
|
|
11
|
-
- Custom Components
|
|
12
5
|
|
|
13
|
-
|
|
6
|
+
A complete react form builder that interfaces with a json endpoint to load and save generated forms.
|
|
14
7
|
|
|
15
|
-
|
|
8
|
+
- Upgraded to React 18.3.1
|
|
9
|
+
- Upgraded related packages
|
|
16
10
|
|
|
17
11
|
### Editing Items
|
|
12
|
+
|
|
18
13
|

|
|
19
14
|
|
|
20
15
|
# Basic Usage
|
|
21
16
|
|
|
22
17
|
```javascript
|
|
23
|
-
import React from
|
|
24
|
-
import ReactDOM from
|
|
25
|
-
import { ReactFormBuilder } from
|
|
26
|
-
import
|
|
18
|
+
import React from "react";
|
|
19
|
+
import ReactDOM from "react-dom";
|
|
20
|
+
import { ReactFormBuilder } from "react-form-builder2";
|
|
21
|
+
import "react-form-builder2/dist/app.css";
|
|
27
22
|
|
|
28
|
-
ReactDOM.render(
|
|
29
|
-
<ReactFormBuilder />,
|
|
30
|
-
document.body
|
|
31
|
-
)
|
|
23
|
+
ReactDOM.render(<ReactFormBuilder />, document.body);
|
|
32
24
|
```
|
|
33
25
|
|
|
34
26
|
# Props
|
|
35
27
|
|
|
36
28
|
```javascript
|
|
37
|
-
var items = [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
29
|
+
var items = [
|
|
30
|
+
{
|
|
31
|
+
key: "Header",
|
|
32
|
+
name: "Header Text",
|
|
33
|
+
icon: "fa fa-header",
|
|
34
|
+
static: true,
|
|
35
|
+
content: "Placeholder Text...",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
key: "Paragraph",
|
|
39
|
+
name: "Paragraph",
|
|
40
|
+
static: true,
|
|
41
|
+
icon: "fa fa-paragraph",
|
|
42
|
+
content: "Placeholder Text...",
|
|
43
|
+
},
|
|
44
|
+
];
|
|
51
45
|
|
|
52
46
|
<ReactFormBuilder
|
|
53
|
-
url=
|
|
47
|
+
url="path/to/GET/initial.json"
|
|
54
48
|
toolbarItems={items}
|
|
55
|
-
saveUrl=
|
|
49
|
+
saveUrl="path/to/POST/built/form.json"
|
|
50
|
+
/>;
|
|
56
51
|
```
|
|
57
52
|
|
|
58
53
|
# React Form Generator
|
|
54
|
+
|
|
59
55
|
Now that a form is built and saved, let's generate it from the saved json.
|
|
60
56
|
|
|
61
57
|
```javascript
|
|
62
|
-
import React from
|
|
63
|
-
import ReactDOM from
|
|
64
|
-
import { ReactFormGenerator } from
|
|
65
|
-
import
|
|
58
|
+
import React from "react";
|
|
59
|
+
import ReactDOM from "react-dom";
|
|
60
|
+
import { ReactFormGenerator } from "react-form-builder2";
|
|
61
|
+
import "react-form-builder2/dist/app.css";
|
|
66
62
|
|
|
67
63
|
ReactDOM.render(
|
|
68
64
|
<ReactFormGenerator
|
|
@@ -74,31 +70,31 @@ ReactDOM.render(
|
|
|
74
70
|
data={JSON_QUESTION_DATA} // Question data
|
|
75
71
|
/>,
|
|
76
72
|
document.body
|
|
77
|
-
)
|
|
73
|
+
);
|
|
78
74
|
```
|
|
79
75
|
|
|
80
76
|
### Form Params
|
|
81
77
|
|
|
82
|
-
Name
|
|
83
|
-
|
|
84
|
-
form_action
|
|
85
|
-
form_method
|
|
86
|
-
action_name
|
|
87
|
-
onSubmit
|
|
88
|
-
onChange
|
|
89
|
-
onBlur
|
|
90
|
-
data
|
|
91
|
-
back_action
|
|
92
|
-
back_name
|
|
93
|
-
task_id
|
|
94
|
-
answer_data
|
|
95
|
-
authenticity_token | string
|
|
96
|
-
hide_actions
|
|
97
|
-
skip_validations
|
|
98
|
-
display_short
|
|
99
|
-
read_only
|
|
100
|
-
variables
|
|
101
|
-
option_key_value
|
|
78
|
+
| Name | Type | Required? | Description |
|
|
79
|
+
| ------------------ | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| form_action | string | Required | URL path to submit the form |
|
|
81
|
+
| form_method | string | Required | Verb used in the form submission. |
|
|
82
|
+
| action_name | string | Optional | Defines form submit button text. Defaults to "Submit" |
|
|
83
|
+
| onSubmit | function | optional | Invoke when submit data, if exists will override form post. |
|
|
84
|
+
| onChange | function | optional | Invoke when Change data. only on generator |
|
|
85
|
+
| onBlur | function | optional | Invoke when Blur data. only on generator |
|
|
86
|
+
| data | array | Required | Question data retrieved from the database |
|
|
87
|
+
| back_action | string | Optional | URL path to go back if needed. |
|
|
88
|
+
| back_name | string | Optional | Button text for back action. Defaults to "Cancel". |
|
|
89
|
+
| task_id | integer | Optional | User to submit a hidden variable with id to the form on the backend database. |
|
|
90
|
+
| answer_data | array | Optional | Answer data, only used if loading a pre-existing form with values. |
|
|
91
|
+
| authenticity_token | string | Optional | If using Rails and need an auth token to submit form. |
|
|
92
|
+
| hide_actions | boolean | Optional | If you would like to hide the submit / cancel buttons set to true. |
|
|
93
|
+
| skip_validations | boolean | Optional | Suppress form validations on submit, if set to true. |
|
|
94
|
+
| display_short | boolean | Optional | Display an optional "shorter page/form" which is common for legal documents or situations where the user will just have to sign or fill out a shorter form with only the critical elements. |
|
|
95
|
+
| read_only | boolean | Optional | Shows a read only version which has fields disabled and removes "required" labels. |
|
|
96
|
+
| variables | object | Optional | Key/value object that can be used for Signature variable replacement. |
|
|
97
|
+
| option_key_value | string | Optional | Use "key" or "value" of checked option item in json data, default is "key". |
|
|
102
98
|
|
|
103
99
|
### Read only Signatures
|
|
104
100
|
|
|
@@ -113,35 +109,40 @@ The signature data should be in base 64 format.
|
|
|
113
109
|
There is a `variables.js` file that contains a sample base 64 signature. This variable is passed into the demo builder and generator for testing. Use the variable key "JOHN" to test the variable replacement.
|
|
114
110
|
|
|
115
111
|
# Vendor Dependencies
|
|
112
|
+
|
|
116
113
|
In order to make the form builder look pretty, there are a few dependencies other than React. Style sheets from `Bootstrap` and `FontAwesome` must be added to index.html. See the example code in [index.html](https://github.com/Kiho/react-form-builder/blob/master/public/index.html#L5) for more details.
|
|
117
114
|
|
|
118
115
|
- Bootstrap
|
|
119
116
|
- FontAwesome
|
|
120
117
|
|
|
121
118
|
# SASS
|
|
119
|
+
|
|
122
120
|
All relevant styles located in css/application.css.scss.
|
|
123
121
|
|
|
124
122
|
# Develop
|
|
123
|
+
|
|
125
124
|
```bash
|
|
126
|
-
$
|
|
127
|
-
$
|
|
128
|
-
$
|
|
129
|
-
$
|
|
125
|
+
$ npm install
|
|
126
|
+
$ NODE_OPTIONS=--openssl-legacy-provider npm run build:dist
|
|
127
|
+
$ npm run serve:api
|
|
128
|
+
$ NODE_OPTIONS=--openssl-legacy-provider npm run start
|
|
130
129
|
```
|
|
130
|
+
|
|
131
131
|
Then navigate to http://localhost:8080/ in your browser and you should be able to see the form builder in action.
|
|
132
132
|
|
|
133
133
|
# Customizations
|
|
134
|
+
|
|
134
135
|
- to customize the field edit form copy "src/form-elements-edit.jsx" to your project and pass it to the ReactFormBuilder as a prop. Here is an example
|
|
136
|
+
|
|
135
137
|
```jsx
|
|
136
138
|
<ReactFormBuilder
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
renderEditForm={props => <FormElementsEdit {...props}/>}
|
|
139
|
+
edit
|
|
140
|
+
data={form}
|
|
141
|
+
//toolbarItems={items}
|
|
142
|
+
customToolbarItems={items}
|
|
143
|
+
onChange={handleUpdate}
|
|
144
|
+
onSubmit={handleSubmit}
|
|
145
|
+
renderEditForm={(props) => <FormElementsEdit {...props} />}
|
|
145
146
|
/>
|
|
146
147
|
```
|
|
147
148
|
|
|
@@ -149,93 +150,123 @@ Then navigate to http://localhost:8080/ in your browser and you should be able t
|
|
|
149
150
|
|
|
150
151
|
```jsx
|
|
151
152
|
<ReactFormGenerator
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
153
|
+
data={form}
|
|
154
|
+
toolbarItems={items}
|
|
155
|
+
onSubmit={handleSubmit}
|
|
156
|
+
actionName="Set this to change the default submit button text"
|
|
157
|
+
submitButton={
|
|
158
|
+
<button type="submit" className="btn btn-primary">
|
|
159
|
+
Submit
|
|
160
|
+
</button>
|
|
161
|
+
}
|
|
162
|
+
backButton={
|
|
163
|
+
<a href="/" className="btn btn-default btn-cancel btn-big">
|
|
164
|
+
Back
|
|
165
|
+
</a>
|
|
166
|
+
}
|
|
158
167
|
/>
|
|
159
168
|
```
|
|
160
169
|
|
|
161
170
|
# Custom Components
|
|
171
|
+
|
|
162
172
|
- Import component registry from react-form-builder2
|
|
173
|
+
|
|
163
174
|
```jsx
|
|
164
|
-
import { ReactFormBuilder, ElementStore, Registry } from
|
|
175
|
+
import { ReactFormBuilder, ElementStore, Registry } from "react-form-builder2";
|
|
165
176
|
```
|
|
166
177
|
|
|
167
|
-
- Simple Custom Component
|
|
178
|
+
- Simple Custom Component
|
|
179
|
+
|
|
168
180
|
```jsx
|
|
169
181
|
const TestComponent = () => <h2>Hello</h2>;
|
|
170
182
|
```
|
|
171
183
|
|
|
172
184
|
- Custom Component with input element
|
|
185
|
+
|
|
173
186
|
```jsx
|
|
174
187
|
const MyInput = React.forwardRef((props, ref) => {
|
|
175
188
|
const { name, defaultValue, disabled } = props;
|
|
176
|
-
return
|
|
189
|
+
return (
|
|
190
|
+
<input
|
|
191
|
+
ref={ref}
|
|
192
|
+
name={name}
|
|
193
|
+
defaultValue={defaultValue}
|
|
194
|
+
disabled={disabled}
|
|
195
|
+
/>
|
|
196
|
+
);
|
|
177
197
|
});
|
|
178
198
|
```
|
|
179
199
|
|
|
180
200
|
- Register custom components to be used in form builder
|
|
201
|
+
|
|
181
202
|
```jsx
|
|
182
|
-
Registry.register(
|
|
183
|
-
Registry.register(
|
|
203
|
+
Registry.register("MyInput", MyInput);
|
|
204
|
+
Registry.register("TestComponent", TestComponent);
|
|
184
205
|
```
|
|
185
206
|
|
|
186
207
|
- Define Custom Components in Toolbar
|
|
208
|
+
|
|
187
209
|
```jsx
|
|
188
|
-
const items = [
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
},
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
},
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
},
|
|
223
|
-
|
|
224
|
-
|
|
210
|
+
const items = [
|
|
211
|
+
{
|
|
212
|
+
key: "TestComponent",
|
|
213
|
+
element: "CustomElement",
|
|
214
|
+
component: TestComponent,
|
|
215
|
+
type: "custom",
|
|
216
|
+
field_name: "test_component",
|
|
217
|
+
name: "Something You Want",
|
|
218
|
+
icon: "fa fa-cog",
|
|
219
|
+
static: true,
|
|
220
|
+
props: { test: "test_comp" },
|
|
221
|
+
label: "Label Test",
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
key: "MyInput",
|
|
225
|
+
element: "CustomElement",
|
|
226
|
+
component: MyInput,
|
|
227
|
+
type: "custom",
|
|
228
|
+
forwardRef: true,
|
|
229
|
+
field_name: "my_input_",
|
|
230
|
+
name: "My Input",
|
|
231
|
+
icon: "fa fa-cog",
|
|
232
|
+
props: { test: "test_input" },
|
|
233
|
+
label: "Label Input",
|
|
234
|
+
},
|
|
235
|
+
// Additional standard components, you don't need full definition if no modification is required.
|
|
236
|
+
{
|
|
237
|
+
key: "Header",
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
key: "TextInput",
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
key: "TextArea",
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
key: "RadioButtons",
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
key: "Checkboxes",
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
key: "Image",
|
|
253
|
+
},
|
|
254
|
+
];
|
|
225
255
|
```
|
|
226
256
|
|
|
227
257
|
- Use defined Toolbar in ReactFormBuilder
|
|
258
|
+
|
|
228
259
|
```jsx
|
|
229
260
|
<ReactFormBuilder
|
|
230
261
|
...
|
|
231
262
|
toolbarItems={items}
|
|
232
263
|
/>
|
|
233
264
|
```
|
|
234
|
-
|
|
235
|
-
- Find working example [here](https://github.com/Kiho/react-form-builder/blob/master/examples/custom/app.js)
|
|
236
265
|
|
|
266
|
+
- Find working example [here](https://github.com/Kiho/react-form-builder/blob/master/examples/custom/app.js)
|
|
237
267
|
|
|
238
268
|
# Examples
|
|
269
|
+
|
|
239
270
|
- [Basic](https://github.com/Kiho/react-form-builder/tree/master/examples/demo)
|
|
240
271
|
- [JSON Post](https://github.com/Kiho/react-form-builder/tree/master/examples/custom)
|
|
241
272
|
- [UMD](https://github.com/Kiho/react-form-builder/tree/master/examples/umd)
|
|
@@ -244,7 +275,9 @@ const items = [{
|
|
|
244
275
|
- [create-react-app](https://github.com/Kiho/react-form-builder/tree/master/examples/cra)
|
|
245
276
|
|
|
246
277
|
# Tests
|
|
278
|
+
|
|
247
279
|
```bash
|
|
248
280
|
$ npm test
|
|
249
281
|
```
|
|
282
|
+
|
|
250
283
|
Test is not working at this moment.
|
package/dist/845.app.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkReactFormBuilder=self.webpackChunkReactFormBuilder||[]).push([[845],{845:(e,t,l)=>{l.r(t),l.d(t,{default:()=>I});var a=l(3029),n=l(2901),o=l(6822),r=l(3954),i=l(5361),s=l(4012),c=l.n(s),m=l(8168),p=l(8587),d=l(7003),u=function(e,t){"function"!=typeof e?e.current=t:e(t)},h={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},E=function(e){Object.keys(h).forEach(function(t){e.style.setProperty(t,h[t],"important")})},f=null,b=function(e,t){var l=e.scrollHeight;return"border-box"===t.sizingStyle.boxSizing?l+t.borderSize:l-t.paddingSize},v=function(){},y=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],g=!!document.documentElement.currentStyle;function N(e,t,l){var a,n,o=(a=l,n=c().useRef(a),(0,d.A)(function(){n.current=a}),n);s.useLayoutEffect(function(){var l=function(e){return o.current(e)};if(e)return e.addEventListener(t,l),function(){return e.removeEventListener(t,l)}},[])}var w=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],k=function(e,t){var l,a=e.cacheMeasurements,n=e.maxRows,o=e.minRows,r=e.onChange,i=void 0===r?v:r,d=e.onHeightChange,h=void 0===d?v:d,k=(0,p.A)(e,w),x=void 0!==k.value,C=s.useRef(null),A=function(e,t){var l=c().useRef();return c().useCallback(function(a){e.current=a,l.current&&u(l.current,null),l.current=t,t&&u(t,a)},[t])}(C,t),P=s.useRef(0),O=s.useRef(),_=function(){var e=C.current,t=a&&O.current?O.current:function(e){var t=window.getComputedStyle(e);if(null===t)return null;var l,a=(l=t,y.reduce(function(e,t){return e[t]=l[t],e},{})),n=a.boxSizing;return""===n?null:(g&&"border-box"===n&&(a.width=parseFloat(a.width)+parseFloat(a.borderRightWidth)+parseFloat(a.borderLeftWidth)+parseFloat(a.paddingRight)+parseFloat(a.paddingLeft)+"px"),{sizingStyle:a,paddingSize:parseFloat(a.paddingBottom)+parseFloat(a.paddingTop),borderSize:parseFloat(a.borderBottomWidth)+parseFloat(a.borderTopWidth)})}(e);if(t){O.current=t;var l=function(e,t,l,a){void 0===l&&(l=1),void 0===a&&(a=1/0),f||((f=document.createElement("textarea")).setAttribute("tabindex","-1"),f.setAttribute("aria-hidden","true"),E(f)),null===f.parentNode&&document.body.appendChild(f);var n=e.paddingSize,o=e.borderSize,r=e.sizingStyle,i=r.boxSizing;Object.keys(r).forEach(function(e){var t=e;f.style[t]=r[t]}),E(f),f.value=t;var s=b(f,e);f.value=t,s=b(f,e),f.value="x";var c=f.scrollHeight-n,m=c*l;"border-box"===i&&(m=m+n+o),s=Math.max(m,s);var p=c*a;return"border-box"===i&&(p=p+n+o),[s=Math.min(p,s),c]}(t,e.value||e.placeholder||"x",o,n),r=l[0],i=l[1];P.current!==r&&(P.current=r,e.style.setProperty("height",r+"px","important"),h(r,{rowHeight:i}))}};return s.useLayoutEffect(_),function(e,t){N(document.body,"reset",function(l){e.current.form===l.target&&t()})}(C,function(){if(!x){var e=C.current.value;requestAnimationFrame(function(){var t=C.current;t&&e!==t.value&&_()})}}),N(window,"resize",_),l=_,N(document.fonts,"loadingdone",l),s.createElement("textarea",(0,m.A)({},k,{onChange:function(e){x||_(),i(e)},ref:A}))},x=s.forwardRef(k),C=l(5143),A=l(9987),P=l.n(A),O=l(3754),_=l(7654),F=l.n(_),S=l(8886);function B(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(B=function(){return!!e})()}var V=function(e){function t(e){var l,n,i,s;return(0,a.A)(this,t),n=this,i=t,s=[e],i=(0,r.A)(i),(l=(0,o.A)(n,B()?Reflect.construct(i,s||[],(0,r.A)(n).constructor):i.apply(n,s))).state={element:l.props.element,data:l.props.data,dirty:!1},l}return(0,i.A)(t,e),(0,n.A)(t,[{key:"_setValue",value:function(e){return e.replace(/[^A-Z0-9]+/gi,"_").toLowerCase()}},{key:"editOption",value:function(e,t){var l=this.state.element,a=l.options[e].value!==this._setValue(l.options[e].text)?l.options[e].value:this._setValue(t.target.value);l.options[e].text=t.target.value,l.options[e].value=a,this.setState({element:l,dirty:!0})}},{key:"editValue",value:function(e,t){var l=this.state.element,a=""===t.target.value?this._setValue(l.options[e].text):t.target.value;l.options[e].value=a,this.setState({element:l,dirty:!0})}},{key:"editOptionCorrect",value:function(e,t){var l=this.state.element;l.options[e].hasOwnProperty("correct")?delete l.options[e].correct:l.options[e].correct=!0,this.setState({element:l}),this.props.updateElement.call(this.props.preview,l)}},{key:"updateOption",value:function(){var e=this.state.element;this.state.dirty&&(this.props.updateElement.call(this.props.preview,e),this.setState({dirty:!1}))}},{key:"addOption",value:function(e){var t=this.state.element,l=t.element.toLowerCase();t.options.splice(e+1,0,{value:"",text:"",key:"".concat(l,"_option_").concat(F().uuid())}),this.props.updateElement.call(this.props.preview,t)}},{key:"removeOption",value:function(e){var t=this.state.element;t.options.splice(e,1),this.props.updateElement.call(this.props.preview,t)}},{key:"render",value:function(){var e=this;return this.state.dirty&&(this.state.element.dirty=!0),c().createElement("div",{className:"dynamic-option-list"},c().createElement("ul",null,c().createElement("li",null,c().createElement("div",{className:"row"},c().createElement("div",{className:"col-sm-6"},c().createElement("b",null,c().createElement(S.A,{id:"options"}))),this.props.canHaveOptionValue&&c().createElement("div",{className:"col-sm-2"},c().createElement("b",null,c().createElement(S.A,{id:"value"}))),this.props.canHaveOptionValue&&this.props.canHaveOptionCorrect&&c().createElement("div",{className:"col-sm-4"},c().createElement("b",null,c().createElement(S.A,{id:"correct"}))))),this.props.element.options.map(function(t,l){var a="edit_".concat(t.key),n=t.value!==e._setValue(t.text)?t.value:"";return c().createElement("li",{className:"clearfix",key:a},c().createElement("div",{className:"row"},c().createElement("div",{className:"col-sm-6"},c().createElement("input",{tabIndex:l+1,className:"form-control",style:{width:"100%"},type:"text",name:"text_".concat(l),placeholder:"Option text",value:t.text,onBlur:e.updateOption.bind(e),onChange:e.editOption.bind(e,l)})),e.props.canHaveOptionValue&&c().createElement("div",{className:"col-sm-2"},c().createElement("input",{className:"form-control",type:"text",name:"value_".concat(l),value:n,onChange:e.editValue.bind(e,l)})),e.props.canHaveOptionValue&&e.props.canHaveOptionCorrect&&c().createElement("div",{className:"col-sm-1"},c().createElement("input",{className:"form-control",type:"checkbox",value:"1",onChange:e.editOptionCorrect.bind(e,l),checked:t.hasOwnProperty("correct")})),c().createElement("div",{className:"col-sm-3"},c().createElement("div",{className:"dynamic-options-actions-buttons"},c().createElement("button",{onClick:e.addOption.bind(e,l),className:"btn btn-success"},c().createElement("i",{className:"fas fa-plus-circle"})),l>0&&c().createElement("button",{onClick:e.removeOption.bind(e,l),className:"btn btn-danger"},c().createElement("i",{className:"fas fa-minus-circle"}))))))})))}}])}(c().Component),T=l(968);function H(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(H=function(){return!!e})()}var R={options:["inline","list","textAlign","fontSize","link","history"],inline:{inDropdown:!1,className:void 0,options:["bold","italic","underline","superscript","subscript"]}},I=function(e){function t(e){var l,n,i,s;return(0,a.A)(this,t),n=this,i=t,s=[e],i=(0,r.A)(i),(l=(0,o.A)(n,H()?Reflect.construct(i,s||[],(0,r.A)(n).constructor):i.apply(n,s))).state={element:l.props.element,data:l.props.data,dirty:!1},l}return(0,i.A)(t,e),(0,n.A)(t,[{key:"toggleRequired",value:function(){}},{key:"editElementProp",value:function(e,t,l){var a=this,n=this.state.element;n[e]=l.target[t],this.setState({element:n,dirty:!0},function(){"checked"===t&&a.updateElement()})}},{key:"onEditorStateChange",value:function(e,t,l){var a=P()((0,C.convertToRaw)(l.getCurrentContent())).replace(/<p>/g,"<div>").replace(/<\/p>/g,"</div>"),n=this.state.element;n[t]=a,this.setState({element:n,dirty:!0})}},{key:"updateElement",value:function(){var e=this.state.element;this.state.dirty&&(this.props.updateElement.call(this.props.preview,e),this.setState({dirty:!1}))}},{key:"convertFromHTML",value:function(e){var t=(0,C.convertFromHTML)(e);if(!t.contentBlocks||!t.contentBlocks.length)return C.EditorState.createEmpty();var l=C.ContentState.createFromBlockArray(t);return C.EditorState.createWithContent(l)}},{key:"addOptions",value:function(){var e=this,t=document.getElementById("optionsApiUrl").value;t&&(0,T.J)(t).then(function(t){e.props.element.options=[];var l=e.props.element.options;t.forEach(function(e){e.key=F().uuid(),l.push(e)});var a=e.state.element;e.setState({element:a,dirty:!0})})}},{key:"render",value:function(){this.state.dirty&&(this.props.element.dirty=!0);var e,t=!!this.props.element.hasOwnProperty("required")&&this.props.element.required,l=!!this.props.element.hasOwnProperty("readOnly")&&this.props.element.readOnly,a=!!this.props.element.hasOwnProperty("defaultToday")&&this.props.element.defaultToday,n=!!this.props.element.hasOwnProperty("showTimeSelect")&&this.props.element.showTimeSelect,o=!!this.props.element.hasOwnProperty("showTimeSelectOnly")&&this.props.element.showTimeSelectOnly,r=!!this.props.element.hasOwnProperty("showTimeInput")&&this.props.element.showTimeInput,i=!!this.props.element.hasOwnProperty("inline")&&this.props.element.inline,s=!!this.props.element.hasOwnProperty("bold")&&this.props.element.bold,m=!!this.props.element.hasOwnProperty("italic")&&this.props.element.italic,p=!!this.props.element.hasOwnProperty("center")&&this.props.element.center,d=!!this.props.element.hasOwnProperty("pageBreakBefore")&&this.props.element.pageBreakBefore,u=!!this.props.element.hasOwnProperty("alternateForm")&&this.props.element.alternateForm,h=this.props.element,E=h.canHavePageBreakBefore,f=h.canHaveAlternateForm,b=h.canHaveDisplayHorizontal,v=h.canHaveOptionCorrect,y=h.canHaveOptionValue,g="Image"===this.state.element.element||"Camera"===this.state.element.element,N=this.props.files.length?this.props.files:[];return(N.length<1||N.length>0&&""!==N[0].id)&&N.unshift({id:"",file_name:""}),this.props.element.hasOwnProperty("content")&&(e=this.convertFromHTML(this.props.element.content)),this.props.element.hasOwnProperty("label")&&(e=this.convertFromHTML(this.props.element.label)),c().createElement("div",null,c().createElement("div",{className:"clearfix"},c().createElement("h4",{className:"float-left"},this.props.element.text),c().createElement("i",{className:"float-right fas fa-times dismiss-edit",onClick:this.props.manualEditModeOff})),this.props.element.hasOwnProperty("content")&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label"},c().createElement(S.A,{id:"text-to-display"}),":"),c().createElement(O.Editor,{toolbar:R,defaultEditorState:e,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"content"),stripPastedStyles:!0})),this.props.element.hasOwnProperty("file_path")&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"fileSelect"},c().createElement(S.A,{id:"choose-file"}),":"),c().createElement("select",{id:"fileSelect",className:"form-control",defaultValue:this.props.element.file_path,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"file_path","value")},N.map(function(e){var t="file_".concat(e.id);return c().createElement("option",{value:e.id,key:t},e.file_name)}))),this.props.element.hasOwnProperty("href")&&c().createElement("div",{className:"form-group"},c().createElement(x,{type:"text",className:"form-control",defaultValue:this.props.element.href,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"href","value")})),this.props.element.hasOwnProperty("label")&&c().createElement("div",{className:"form-group"},c().createElement("label",null,c().createElement(S.A,{id:"display-label"})),c().createElement(O.Editor,{toolbar:R,defaultEditorState:e,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"label"),stripPastedStyles:!0}),c().createElement("br",null),c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"is-required",className:"custom-control-input",type:"checkbox",checked:t,value:!0,onChange:this.editElementProp.bind(this,"required","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"is-required"},c().createElement(S.A,{id:"required"}))),this.props.element.hasOwnProperty("readOnly")&&c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"is-read-only",className:"custom-control-input",type:"checkbox",checked:l,value:!0,onChange:this.editElementProp.bind(this,"readOnly","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"is-read-only"},c().createElement(S.A,{id:"read-only"}))),this.props.element.hasOwnProperty("defaultToday")&&c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"is-default-to-today",className:"custom-control-input",type:"checkbox",checked:a,value:!0,onChange:this.editElementProp.bind(this,"defaultToday","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"is-default-to-today"},c().createElement(S.A,{id:"default-to-today"}),"?")),this.props.element.hasOwnProperty("showTimeSelect")&&c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"show-time-select",className:"custom-control-input",type:"checkbox",checked:n,value:!0,onChange:this.editElementProp.bind(this,"showTimeSelect","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"show-time-select"},c().createElement(S.A,{id:"show-time-select"}),"?")),n&&this.props.element.hasOwnProperty("showTimeSelectOnly")&&c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"show-time-select-only",className:"custom-control-input",type:"checkbox",checked:o,value:!0,onChange:this.editElementProp.bind(this,"showTimeSelectOnly","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"show-time-select-only"},c().createElement(S.A,{id:"show-time-select-only"}),"?")),this.props.element.hasOwnProperty("showTimeInput")&&c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"show-time-input",className:"custom-control-input",type:"checkbox",checked:r,value:!0,onChange:this.editElementProp.bind(this,"showTimeInput","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"show-time-input"},c().createElement(S.A,{id:"show-time-input"}),"?")),("RadioButtons"===this.state.element.element||"Checkboxes"===this.state.element.element)&&b&&c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"display-horizontal",className:"custom-control-input",type:"checkbox",checked:i,value:!0,onChange:this.editElementProp.bind(this,"inline","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"display-horizontal"},c().createElement(S.A,{id:"display-horizontal"})))),this.props.element.hasOwnProperty("src")&&c().createElement("div",null,c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"srcInput"},c().createElement(S.A,{id:"link-to"}),":"),c().createElement("input",{id:"srcInput",type:"text",className:"form-control",defaultValue:this.props.element.src,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"src","value")}))),g&&c().createElement("div",null,c().createElement("div",{className:"form-group"},c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"do-center",className:"custom-control-input",type:"checkbox",checked:p,value:!0,onChange:this.editElementProp.bind(this,"center","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"do-center"},c().createElement(S.A,{id:"center"}),"?"))),c().createElement("div",{className:"row"},c().createElement("div",{className:"col-sm-3"},c().createElement("label",{className:"control-label",htmlFor:"elementWidth"},c().createElement(S.A,{id:"width"}),":"),c().createElement("input",{id:"elementWidth",type:"text",className:"form-control",defaultValue:this.props.element.width,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"width","value")})),c().createElement("div",{className:"col-sm-3"},c().createElement("label",{className:"control-label",htmlFor:"elementHeight"},c().createElement(S.A,{id:"height"}),":"),c().createElement("input",{id:"elementHeight",type:"text",className:"form-control",defaultValue:this.props.element.height,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"height","value")})))),"Camera"===this.state.element.element&&c().createElement("div",null,c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"LabelAfterCameraIcon"},c().createElement(S.A,{id:"display-label-after-camera-icon"}),":"),c().createElement("input",{id:"LabelAfterCameraIcon",type:"text",className:"form-control",defaultValue:this.props.element.label_after_camera_icon,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"label_after_camera_icon","value")})),c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"MessageUnderCameraIcon"},c().createElement(S.A,{id:"display-message-under-camera-icon"}),":"),c().createElement("input",{id:"MessageUnderCameraIcon",type:"text",className:"form-control",defaultValue:this.props.element.message_under_camera_icon,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"message_under_camera_icon","value")})),c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"LabelAfterPhotoClearIcon"},c().createElement(S.A,{id:"display-label-after-photo-clear-icon"}),":"),c().createElement("input",{id:"LabelAfterPhotoClearIcon",type:"text",className:"form-control",defaultValue:this.props.element.label_after_photo_clear_icon,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"label_after_photo_clear_icon","value")}))),"FileUpload"===this.state.element.element&&c().createElement("div",null,c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"LabelAfterFileIcon"},c().createElement(S.A,{id:"display-label-after-file-icon"}),":"),c().createElement("input",{id:"LabelAfterFileIcon",type:"text",className:"form-control",defaultValue:this.props.element.label_after_file_icon,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"label_after_file_icon","value")})),c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"MessageUnderFileIcon"},c().createElement(S.A,{id:"display-message-under-file-icon"}),":"),c().createElement("input",{id:"MessageUnderFileIcon",type:"text",className:"form-control",defaultValue:this.props.element.message_under_file_icon,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"message_under_file_icon","value")})),c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"LabelAfterFileClearIcon"},c().createElement(S.A,{id:"display-label-after-file-clear-icon"}),":"),c().createElement("input",{id:"LabelAfterFileClearIcon",type:"text",className:"form-control",defaultValue:this.props.element.label_after_file_clear_icon,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"label_after_file_clear_icon","value")})),c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"fileType"},c().createElement(S.A,{id:"choose-file-type"}),":"),c().createElement("select",{id:"fileType",className:"form-control",onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"fileType","value")},[{type:"image, application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, video/mp4,video/x-m4v,video/*",typeName:"All File Type"},{type:"image",typeName:"Image"},{type:"application/pdf",typeName:"PDF"},{type:"application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document",typeName:"Word"},{type:"application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",typeName:"Excel"},{type:"application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation",typeName:"Powerpoint"},{type:"video/mp4,video/x-m4v,video/*",typeName:"Videos"}].map(function(e,t){return c().createElement("option",{value:e.type,key:t},e.typeName)})))),"Signature"===this.state.element.element&&this.props.element.readOnly?c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"variableKey"},c().createElement(S.A,{id:"variable-key"}),":"),c().createElement("input",{id:"variableKey",type:"text",className:"form-control",defaultValue:this.props.element.variableKey,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"variableKey","value")}),c().createElement("p",{className:"help-block"},c().createElement(S.A,{id:"variable-key-desc"}),".")):c().createElement("div",null),E&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label"},c().createElement(S.A,{id:"print-options"})),c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"page-break-before-element",className:"custom-control-input",type:"checkbox",checked:d,value:!0,onChange:this.editElementProp.bind(this,"pageBreakBefore","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"page-break-before-element"},c().createElement(S.A,{id:"page-break-before-elements"}),"?"))),f&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label"},c().createElement(S.A,{id:"alternate-signature-page"})),c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"display-on-alternate",className:"custom-control-input",type:"checkbox",checked:u,value:!0,onChange:this.editElementProp.bind(this,"alternateForm","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"display-on-alternate"},c().createElement(S.A,{id:"display-on-alternate-signature-page"}),"?"))),this.props.element.hasOwnProperty("step")&&c().createElement("div",{className:"form-group"},c().createElement("div",{className:"form-group-range"},c().createElement("label",{className:"control-label",htmlFor:"rangeStep"},c().createElement(S.A,{id:"step"})),c().createElement("input",{id:"rangeStep",type:"number",className:"form-control",defaultValue:this.props.element.step,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"step","value")}))),this.props.element.hasOwnProperty("min_value")&&c().createElement("div",{className:"form-group"},c().createElement("div",{className:"form-group-range"},c().createElement("label",{className:"control-label",htmlFor:"rangeMin"},c().createElement(S.A,{id:"min"})),c().createElement("input",{id:"rangeMin",type:"number",className:"form-control",defaultValue:this.props.element.min_value,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"min_value","value")}),c().createElement("input",{type:"text",className:"form-control",defaultValue:this.props.element.min_label,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"min_label","value")}))),this.props.element.hasOwnProperty("max_value")&&c().createElement("div",{className:"form-group"},c().createElement("div",{className:"form-group-range"},c().createElement("label",{className:"control-label",htmlFor:"rangeMax"},c().createElement(S.A,{id:"max"})),c().createElement("input",{id:"rangeMax",type:"number",className:"form-control",defaultValue:this.props.element.max_value,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"max_value","value")}),c().createElement("input",{type:"text",className:"form-control",defaultValue:this.props.element.max_label,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"max_label","value")}))),this.props.element.hasOwnProperty("default_value")&&c().createElement("div",{className:"form-group"},c().createElement("div",{className:"form-group-range"},c().createElement("label",{className:"control-label",htmlFor:"defaultSelected"},c().createElement(S.A,{id:"default-selected"})),c().createElement("input",{id:"defaultSelected",type:"number",className:"form-control",defaultValue:this.props.element.default_value,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"default_value","value")}))),this.props.element.hasOwnProperty("static")&&this.props.element.static&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label"},c().createElement(S.A,{id:"text-style"})),c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"do-bold",className:"custom-control-input",type:"checkbox",checked:s,value:!0,onChange:this.editElementProp.bind(this,"bold","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"do-bold"},c().createElement(S.A,{id:"bold"}))),c().createElement("div",{className:"custom-control custom-checkbox"},c().createElement("input",{id:"do-italic",className:"custom-control-input",type:"checkbox",checked:m,value:!0,onChange:this.editElementProp.bind(this,"italic","checked")}),c().createElement("label",{className:"custom-control-label",htmlFor:"do-italic"},c().createElement(S.A,{id:"italic"})))),this.props.element.showDescription&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"questionDescription"},c().createElement(S.A,{id:"description"})),c().createElement(x,{type:"text",className:"form-control",id:"questionDescription",defaultValue:this.props.element.description,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"description","value")})),this.props.showCorrectColumn&&this.props.element.canHaveAnswer&&!this.props.element.hasOwnProperty("options")&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"correctAnswer"},c().createElement(S.A,{id:"correct-answer"})),c().createElement("input",{id:"correctAnswer",type:"text",className:"form-control",defaultValue:this.props.element.correct,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"correct","value")})),this.props.element.canPopulateFromApi&&this.props.element.hasOwnProperty("options")&&c().createElement("div",{className:"form-group"},c().createElement("label",{className:"control-label",htmlFor:"optionsApiUrl"},c().createElement(S.A,{id:"populate-options-from-api"})),c().createElement("div",{className:"row"},c().createElement("div",{className:"col-sm-6"},c().createElement("input",{className:"form-control",style:{width:"100%"},type:"text",id:"optionsApiUrl",placeholder:"http://localhost:8080/api/optionsdata"})),c().createElement("div",{className:"col-sm-6"},c().createElement("button",{onClick:this.addOptions.bind(this),className:"btn btn-success"},c().createElement(S.A,{id:"populate"}))))),this.props.element.hasOwnProperty("options")&&c().createElement(V,{showCorrectColumn:this.props.showCorrectColumn,canHaveOptionCorrect:v,canHaveOptionValue:y,data:this.props.preview.state.data,updateElement:this.props.updateElement,preview:this.props.preview,element:this.props.element,key:this.props.element.options.length}))}}])}(c().Component);I.defaultProps={className:"edit-element-fields"}}}]);
|