react-survey-builder 1.0.16 → 1.0.18
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 +18 -16
- package/dist/186.index.js +1 -0
- package/dist/app.css +1 -1
- package/dist/app.css.map +1 -1
- package/dist/index.js +1 -1
- package/lib/dynamic-option-list.js +1 -1
- package/lib/fieldset/FieldSet.js +15 -17
- package/lib/form copy.js +622 -0
- package/lib/form-fields.js +201 -208
- package/lib/form.js +765 -534
- package/lib/index.js +3 -3
- package/lib/language-provider/locales/en-us.json +1 -0
- package/lib/multi-column/MultiColumnRow.js +25 -25
- package/lib/multi-column/dustbin.js +16 -16
- package/lib/multi-column/grip.js +6 -6
- package/lib/preview.js +41 -40
- package/lib/sortable-element.js +6 -6
- package/lib/sortable-form-elements.js +2 -0
- package/lib/stores/store.js +22 -22
- package/lib/survey-elements/component-drag-handle.js +6 -6
- package/lib/survey-elements/component-drag-layer.js +3 -3
- package/lib/survey-elements/component-drag-preview.js +1 -1
- package/lib/survey-elements/component-error-message.js +1 -0
- package/lib/survey-elements/component-header.js +5 -5
- package/lib/survey-elements/component-label.js +12 -6
- package/lib/survey-elements/custom-element.js +23 -12
- package/lib/survey-elements/header-bar.js +5 -5
- package/lib/survey-elements/index.js +817 -740
- package/lib/survey-elements/myxss.js +68 -1
- package/lib/survey-elements-edit.js +211 -53
- package/lib/toolbar-draggable-item.js +4 -4
- package/lib/toolbar.js +49 -18
- package/lib/utils/ipUtils.js +53 -0
- package/package.json +2 -3
- package/types/index.d.ts +5 -1
- package/dist/967.index.js +0 -1
- package/lib/survey-elements/date-picker.js +0 -272
- package/lib/utils/custom-date-picker.js +0 -93
@@ -23,7 +23,7 @@ var cardSource = {
|
|
23
23
|
return {
|
24
24
|
id: _UUID["default"].uuid(),
|
25
25
|
index: -1,
|
26
|
-
|
26
|
+
item: props.item,
|
27
27
|
onCreate: props.onCreate
|
28
28
|
};
|
29
29
|
}
|
@@ -40,13 +40,13 @@ var ToolbarItem = /*#__PURE__*/function (_React$Component) {
|
|
40
40
|
value: function render() {
|
41
41
|
var _this$props = this.props,
|
42
42
|
connectDragSource = _this$props.connectDragSource,
|
43
|
-
|
43
|
+
item = _this$props.item,
|
44
44
|
onClick = _this$props.onClick;
|
45
|
-
var IconComponent =
|
45
|
+
var IconComponent = item.icon;
|
46
46
|
if (!connectDragSource) return null;
|
47
47
|
return connectDragSource( /*#__PURE__*/_react["default"].createElement("li", {
|
48
48
|
onClick: onClick
|
49
|
-
}, /*#__PURE__*/_react["default"].createElement(IconComponent, null),
|
49
|
+
}, /*#__PURE__*/_react["default"].createElement(IconComponent, null), item.name));
|
50
50
|
}
|
51
51
|
}]);
|
52
52
|
return ToolbarItem;
|
package/lib/toolbar.js
CHANGED
@@ -20,6 +20,7 @@ var _UUID = _interopRequireDefault(require("./UUID"));
|
|
20
20
|
var _store = _interopRequireDefault(require("./stores/store"));
|
21
21
|
var _functions = require("./functions");
|
22
22
|
var _fa = require("react-icons/fa");
|
23
|
+
var _pi = require("react-icons/pi");
|
23
24
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
24
25
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
25
26
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
@@ -84,7 +85,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
84
85
|
_this = _super.call(this, props);
|
85
86
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "renderItem", function (item) {
|
86
87
|
return /*#__PURE__*/_react["default"].createElement(_toolbarDraggableItem["default"], {
|
87
|
-
|
88
|
+
item: item,
|
88
89
|
key: item.key,
|
89
90
|
onClick: _this._onClick.bind((0, _assertThisInitialized2["default"])(_this), item),
|
90
91
|
onCreate: _this.create
|
@@ -141,6 +142,16 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
141
142
|
content: intl.formatMessage({
|
142
143
|
id: 'place-holder-text'
|
143
144
|
})
|
145
|
+
}, {
|
146
|
+
key: 'ContentBody',
|
147
|
+
name: intl.formatMessage({
|
148
|
+
id: 'content-body'
|
149
|
+
}),
|
150
|
+
"static": true,
|
151
|
+
icon: _pi.PiFileHtml,
|
152
|
+
content: intl.formatMessage({
|
153
|
+
id: 'place-holder-text'
|
154
|
+
})
|
144
155
|
}, {
|
145
156
|
key: 'LineBreak',
|
146
157
|
name: intl.formatMessage({
|
@@ -165,7 +176,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
165
176
|
options: [],
|
166
177
|
placeholder: 'Select One',
|
167
178
|
hideRequiredAlert: true,
|
168
|
-
showLabelLocationPicker: true
|
179
|
+
showLabelLocationPicker: true,
|
180
|
+
answerType: 'ARRAY'
|
169
181
|
}, {
|
170
182
|
key: 'Tags',
|
171
183
|
canHaveAnswer: true,
|
@@ -183,7 +195,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
183
195
|
options: [],
|
184
196
|
placeholder: 'Select...',
|
185
197
|
hideRequiredAlert: true,
|
186
|
-
showLabelLocationPicker: true
|
198
|
+
showLabelLocationPicker: true,
|
199
|
+
answerType: 'ARRAY'
|
187
200
|
}, {
|
188
201
|
key: 'Checkboxes',
|
189
202
|
canHaveAnswer: true,
|
@@ -199,7 +212,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
199
212
|
showDescription: true,
|
200
213
|
showHelp: true,
|
201
214
|
options: [],
|
202
|
-
hideRequiredAlert: true
|
215
|
+
hideRequiredAlert: true,
|
216
|
+
answerType: 'ARRAY'
|
203
217
|
}, {
|
204
218
|
key: 'Checkbox',
|
205
219
|
canHaveAnswer: true,
|
@@ -215,7 +229,10 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
215
229
|
showDescription: true,
|
216
230
|
showHelp: true,
|
217
231
|
boxLabel: 'Agree To Rules & Regs',
|
218
|
-
hideRequiredAlert: true
|
232
|
+
hideRequiredAlert: true,
|
233
|
+
answerType: 'BOOLEAN',
|
234
|
+
canHideLabel: true,
|
235
|
+
showLabel: false
|
219
236
|
}, {
|
220
237
|
key: 'RadioButtons',
|
221
238
|
canHaveAnswer: true,
|
@@ -231,7 +248,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
231
248
|
showDescription: true,
|
232
249
|
showHelp: true,
|
233
250
|
options: [],
|
234
|
-
hideRequiredAlert: true
|
251
|
+
hideRequiredAlert: true,
|
252
|
+
answerType: 'STRING'
|
235
253
|
}, {
|
236
254
|
key: 'TextInput',
|
237
255
|
canHaveAnswer: true,
|
@@ -250,7 +268,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
250
268
|
id: 'place-holder-label'
|
251
269
|
}),
|
252
270
|
hideRequiredAlert: true,
|
253
|
-
showLabelLocationPicker: true
|
271
|
+
showLabelLocationPicker: true,
|
272
|
+
answerType: 'STRING'
|
254
273
|
}, {
|
255
274
|
key: 'EmailInput',
|
256
275
|
canHaveAnswer: true,
|
@@ -269,7 +288,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
269
288
|
id: 'place-holder-email'
|
270
289
|
}),
|
271
290
|
hideRequiredAlert: true,
|
272
|
-
showLabelLocationPicker: true
|
291
|
+
showLabelLocationPicker: true,
|
292
|
+
answerType: 'STRING'
|
273
293
|
}, {
|
274
294
|
key: 'PhoneNumber',
|
275
295
|
canHaveAnswer: true,
|
@@ -285,7 +305,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
285
305
|
showDescription: true,
|
286
306
|
showHelp: true,
|
287
307
|
hideRequiredAlert: true,
|
288
|
-
showLabelLocationPicker: true
|
308
|
+
showLabelLocationPicker: true,
|
309
|
+
answerType: 'STRING'
|
289
310
|
}, {
|
290
311
|
key: 'DatePicker',
|
291
312
|
canDefaultToday: true,
|
@@ -307,7 +328,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
307
328
|
showDescription: true,
|
308
329
|
showHelp: true,
|
309
330
|
hideRequiredAlert: true,
|
310
|
-
showLabelLocationPicker: true
|
331
|
+
showLabelLocationPicker: true,
|
332
|
+
answerType: 'STRING'
|
311
333
|
}, {
|
312
334
|
key: 'TextArea',
|
313
335
|
canHaveAnswer: true,
|
@@ -323,7 +345,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
323
345
|
showDescription: true,
|
324
346
|
showHelp: true,
|
325
347
|
hideRequiredAlert: true,
|
326
|
-
showLabelLocationPicker: true
|
348
|
+
showLabelLocationPicker: true,
|
349
|
+
answerType: 'STRING'
|
327
350
|
}, {
|
328
351
|
key: 'NumberInput',
|
329
352
|
canHaveAnswer: true,
|
@@ -342,7 +365,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
342
365
|
minValue: 0,
|
343
366
|
maxValue: 5,
|
344
367
|
hideRequiredAlert: true,
|
345
|
-
showLabelLocationPicker: true
|
368
|
+
showLabelLocationPicker: true,
|
369
|
+
answerType: 'NUMBER'
|
346
370
|
}, {
|
347
371
|
key: 'Rating',
|
348
372
|
canHaveAnswer: true,
|
@@ -356,7 +380,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
356
380
|
fieldName: 'rating_',
|
357
381
|
showCustomName: true,
|
358
382
|
showDescription: true,
|
359
|
-
showHelp: true
|
383
|
+
showHelp: true,
|
384
|
+
answerType: 'NUMBER'
|
360
385
|
}, {
|
361
386
|
key: 'Range',
|
362
387
|
name: intl.formatMessage({
|
@@ -380,7 +405,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
380
405
|
showCustomName: true,
|
381
406
|
showDescription: true,
|
382
407
|
showHelp: true,
|
383
|
-
hideRequiredAlert: true
|
408
|
+
hideRequiredAlert: true,
|
409
|
+
answerType: 'NUMBER'
|
384
410
|
}, {
|
385
411
|
key: 'Signature',
|
386
412
|
canReadOnly: true,
|
@@ -395,7 +421,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
395
421
|
showCustomName: true,
|
396
422
|
showDescription: true,
|
397
423
|
showHelp: true,
|
398
|
-
hideRequiredAlert: true
|
424
|
+
hideRequiredAlert: true,
|
425
|
+
answerType: 'IMAGE'
|
399
426
|
}, {
|
400
427
|
key: 'Camera',
|
401
428
|
name: intl.formatMessage({
|
@@ -405,7 +432,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
405
432
|
label: intl.formatMessage({
|
406
433
|
id: 'place-holder-label'
|
407
434
|
}),
|
408
|
-
fieldName: 'camera_'
|
435
|
+
fieldName: 'camera_',
|
436
|
+
answerType: 'IMAGE'
|
409
437
|
}, {
|
410
438
|
key: 'FileUpload',
|
411
439
|
name: intl.formatMessage({
|
@@ -415,7 +443,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
415
443
|
label: intl.formatMessage({
|
416
444
|
id: 'place-holder-label'
|
417
445
|
}),
|
418
|
-
fieldName: 'file_upload_'
|
446
|
+
fieldName: 'file_upload_',
|
447
|
+
answerType: 'FILE'
|
419
448
|
}, {
|
420
449
|
key: 'FieldSet',
|
421
450
|
canHaveAnswer: false,
|
@@ -561,7 +590,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
561
590
|
elementOptions.component = item.component || null;
|
562
591
|
elementOptions.customOptions = item.customOptions || [];
|
563
592
|
}
|
564
|
-
if (item["static"]) {
|
593
|
+
if (item["static"] && ['Header', 'Paragraph', 'Label'].indexOf(element) !== -1) {
|
565
594
|
elementOptions.bold = false;
|
566
595
|
elementOptions.italic = false;
|
567
596
|
}
|
@@ -572,6 +601,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
572
601
|
elementOptions.showHelp = item.showHelp;
|
573
602
|
elementOptions.help = item.help;
|
574
603
|
elementOptions.hideRequiredAlert = item.hideRequiredAlert;
|
604
|
+
elementOptions.canHideLabel = item.canHideLabel;
|
605
|
+
elementOptions.hideLabel = item.hideLabel;
|
575
606
|
if (item.canHaveAnswer) {
|
576
607
|
elementOptions.canHaveAnswer = item.canHaveAnswer;
|
577
608
|
}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.getUserAgent = exports.getReferrerUrl = exports.getIPAddress = void 0;
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
10
|
+
var _isomorphicFetch = _interopRequireDefault(require("isomorphic-fetch"));
|
11
|
+
var getIPAddress = exports.getIPAddress = /*#__PURE__*/function () {
|
12
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
13
|
+
var response, resData;
|
14
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
15
|
+
while (1) switch (_context.prev = _context.next) {
|
16
|
+
case 0:
|
17
|
+
_context.next = 2;
|
18
|
+
return (0, _isomorphicFetch["default"])("https://api.ipify.org/?format=json");
|
19
|
+
case 2:
|
20
|
+
response = _context.sent;
|
21
|
+
if (!(response.status >= 400)) {
|
22
|
+
_context.next = 5;
|
23
|
+
break;
|
24
|
+
}
|
25
|
+
throw new Error("Bad response from server");
|
26
|
+
case 5:
|
27
|
+
_context.next = 7;
|
28
|
+
return response.json();
|
29
|
+
case 7:
|
30
|
+
resData = _context.sent;
|
31
|
+
if (!(resData && resData.ip)) {
|
32
|
+
_context.next = 10;
|
33
|
+
break;
|
34
|
+
}
|
35
|
+
return _context.abrupt("return", resData.ip);
|
36
|
+
case 10:
|
37
|
+
return _context.abrupt("return", null);
|
38
|
+
case 11:
|
39
|
+
case "end":
|
40
|
+
return _context.stop();
|
41
|
+
}
|
42
|
+
}, _callee);
|
43
|
+
}));
|
44
|
+
return function getIPAddress() {
|
45
|
+
return _ref.apply(this, arguments);
|
46
|
+
};
|
47
|
+
}();
|
48
|
+
var getUserAgent = exports.getUserAgent = function getUserAgent() {
|
49
|
+
return window.navigator.userAgent;
|
50
|
+
};
|
51
|
+
var getReferrerUrl = exports.getReferrerUrl = function getReferrerUrl() {
|
52
|
+
return document.referrer ? document.referrer : window.frames.top.document.referrer ? window.frames.top.document.referrer : null;
|
53
|
+
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-survey-builder",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.18",
|
4
4
|
"description": "A complete survey builder for react.",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "types/index.d.ts",
|
@@ -54,7 +54,7 @@
|
|
54
54
|
"react-icons": "^5.0.1",
|
55
55
|
"react-imask": "^7.0.1",
|
56
56
|
"react-intl": "^5.24.3",
|
57
|
-
"react-
|
57
|
+
"react-phone-number-input": "^3.3.9",
|
58
58
|
"react-signature-canvas": "^1.0.3",
|
59
59
|
"react-textarea-autosize": "^8.5.3",
|
60
60
|
"xss": "^1.0.8"
|
@@ -62,7 +62,6 @@
|
|
62
62
|
"peerDependencies": {
|
63
63
|
"react": ">=18.2.0",
|
64
64
|
"react-dom": ">=18.2.0"
|
65
|
-
|
66
65
|
},
|
67
66
|
"devDependencies": {
|
68
67
|
"@babel/cli": "^7.12.10",
|
package/types/index.d.ts
CHANGED
@@ -7,6 +7,7 @@ type BaseElement = {
|
|
7
7
|
| "Header Text"
|
8
8
|
| "Label"
|
9
9
|
| "Paragraph"
|
10
|
+
| "Static Content"
|
10
11
|
| "Line Break"
|
11
12
|
| "Dropdown"
|
12
13
|
| "Tags"
|
@@ -30,6 +31,8 @@ type BaseElement = {
|
|
30
31
|
showDescription?: boolean;
|
31
32
|
showLabelLocationPicker?: boolean;
|
32
33
|
showHelp?: boolean;
|
34
|
+
hideLabel?: boolean;
|
35
|
+
canHideLabel: boolean;
|
33
36
|
hideRequiredAlert?: boolean;
|
34
37
|
required: boolean;
|
35
38
|
canHaveAlternateForm: boolean;
|
@@ -156,7 +159,7 @@ export interface SurveyGeneratorProps {
|
|
156
159
|
onBlur?: (info: SurveyGeneratorOnSubmitParams[]) => void;
|
157
160
|
onSubmit?: (info: SurveyGeneratorOnSubmitParams[]) => void;
|
158
161
|
onChange?: (info: SurveyGeneratorOnSubmitParams[]) => void;
|
159
|
-
|
162
|
+
items: any[];
|
160
163
|
backAction?: string;
|
161
164
|
backName?: string;
|
162
165
|
task_id?: number;
|
@@ -174,6 +177,7 @@ export interface SurveyGeneratorProps {
|
|
174
177
|
buttonClassName?: string;
|
175
178
|
formId?: string;
|
176
179
|
methods?: Record<any, any>;
|
180
|
+
print?: boolean;
|
177
181
|
}
|
178
182
|
|
179
183
|
export class ReactSurveyGenerator extends React.Component<SurveyGeneratorProps> {}
|
package/dist/967.index.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkReactSurveyBuilder=self.webpackChunkReactSurveyBuilder||[]).push([[967],{7967:(e,t,n)=>{n.r(t),n.d(t,{default:()=>M});var l=n(5671),r=n(3144),a=n(136),i=n(2963),o=n(1120),s=n(359),p=n.n(s),c=n(7462),m=n(3366),d=n(3469),h=function(e,t){"function"!=typeof e?e.current=t:e(t)};var u={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},E=function(e){Object.keys(u).forEach((function(t){e.style.setProperty(t,u[t],"important")}))},f=null,b=function(e,t){var n=e.scrollHeight;return"border-box"===t.sizingStyle.boxSizing?n+t.borderSize:n-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"],Z=!!document.documentElement.currentStyle;function g(e,t,n){var l,r,a=(l=n,r=s.useRef(l),(0,d.Z)((function(){r.current=l})),r);s.useLayoutEffect((function(){var n=function(e){return a.current(e)};if(e)return e.addEventListener(t,n),function(){return e.removeEventListener(t,n)}}),[])}var C=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],k=function(e,t){var n,l=e.cacheMeasurements,r=e.maxRows,a=e.minRows,i=e.onChange,o=void 0===i?v:i,p=e.onHeightChange,d=void 0===p?v:p,u=(0,m.Z)(e,C),k=void 0!==u.value,x=s.useRef(null),w=function(e,t){var n=(0,s.useRef)();return(0,s.useCallback)((function(l){e.current=l,n.current&&h(n.current,null),n.current=t,t&&h(t,l)}),[t])}(x,t),P=s.useRef(0),O=s.useRef(),S=function(){var e=x.current,t=l&&O.current?O.current:function(e){var t=window.getComputedStyle(e);if(null===t)return null;var n,l=(n=t,y.reduce((function(e,t){return e[t]=n[t],e}),{})),r=l.boxSizing;return""===r?null:(Z&&"border-box"===r&&(l.width=parseFloat(l.width)+parseFloat(l.borderRightWidth)+parseFloat(l.borderLeftWidth)+parseFloat(l.paddingRight)+parseFloat(l.paddingLeft)+"px"),{sizingStyle:l,paddingSize:parseFloat(l.paddingBottom)+parseFloat(l.paddingTop),borderSize:parseFloat(l.borderBottomWidth)+parseFloat(l.borderTopWidth)})}(e);if(t){O.current=t;var n=function(e,t,n,l){void 0===n&&(n=1),void 0===l&&(l=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 r=e.paddingSize,a=e.borderSize,i=e.sizingStyle,o=i.boxSizing;Object.keys(i).forEach((function(e){var t=e;f.style[t]=i[t]})),E(f),f.value=t;var s=b(f,e);f.value=t,s=b(f,e),f.value="x";var p=f.scrollHeight-r,c=p*n;"border-box"===o&&(c=c+r+a),s=Math.max(c,s);var m=p*l;return"border-box"===o&&(m=m+r+a),[s=Math.min(m,s),p]}(t,e.value||e.placeholder||"x",a,r),i=n[0],o=n[1];P.current!==i&&(P.current=i,e.style.setProperty("height",i+"px","important"),d(i,{rowHeight:o}))}};return s.useLayoutEffect(S),g(window,"resize",S),n=S,g(document.fonts,"loadingdone",n),s.createElement("textarea",(0,c.Z)({},u,{onChange:function(e){k||S(),o(e)},ref:w}))},x=s.forwardRef(k),w=n(9041),P=n(9265),O=n.n(P),S=n(5108),L=n(9333),B=n.n(L),F=n(4152),V=n(5565),N=n(4051),H=n(1555),R=n(7833),T=n(5005);var G=function(e){(0,a.Z)(c,e);var t,n,s=(t=c,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,l=(0,o.Z)(t);if(n){var r=(0,o.Z)(this).constructor;e=Reflect.construct(l,arguments,r)}else e=l.apply(this,arguments);return(0,i.Z)(this,e)});function c(e){var t;return(0,l.Z)(this,c),(t=s.call(this,e)).state={element:t.props.element,data:t.props.data,dirty:!1},t}return(0,r.Z)(c,[{key:"_setValue",value:function(e){return e.replace(/[^A-Z0-9]+/gi,"_").toLowerCase()}},{key:"editOption",value:function(e,t){var n=this.state.element,l=n.options[e].value!==this._setValue(n.options[e].text)?n.options[e].value:this._setValue(t.target.value);n.options[e].text=t.target.value,n.options[e].value=l,this.setState({element:n,dirty:!0})}},{key:"editValue",value:function(e,t){var n=this.state.element,l=""===t.target.value?this._setValue(n.options[e].text):t.target.value;n.options[e].value=l,this.setState({element:n,dirty:!0})}},{key:"editOptionCorrect",value:function(e,t){var n=this.state.element;n.options[e].hasOwnProperty("correct")?delete n.options[e].correct:n.options[e].correct=!0,this.setState({element:n}),this.props.updateElement.call(this.props.preview,n)}},{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;t.options.splice(e+1,0,{value:"",text:"",key:B().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),p().createElement("div",{className:"dynamic-option-list"},p().createElement("ul",null,p().createElement("li",null,p().createElement(N.Z,null,p().createElement(H.Z,{sm:6},p().createElement("b",null,p().createElement(F.Z,{id:"options"}))),this.props.canHaveOptionValue&&p().createElement(H.Z,{sm:2},p().createElement("b",null,p().createElement(F.Z,{id:"value"}))),this.props.canHaveOptionValue&&this.props.canHaveOptionCorrect&&p().createElement(H.Z,{sm:4},p().createElement("b",null,p().createElement(F.Z,{id:"correct"}))))),this.props.element.options.map((function(t,n){var l="edit_".concat(t.key),r=t.value!==e._setValue(t.text)?t.value:"";return p().createElement("li",{className:"clearfix",key:l},p().createElement(N.Z,null,p().createElement(H.Z,{sm:6},p().createElement(R.Z.Control,{tabIndex:n+1,style:{width:"100%"},type:"text",name:"text_".concat(n),placeholder:"Option text",value:t.text,onBlur:e.updateOption.bind(e),onChange:e.editOption.bind(e,n)})),e.props.canHaveOptionValue&&p().createElement(H.Z,{sm:2},p().createElement(R.Z.Control,{type:"text",name:"value_".concat(n),value:r,onChange:e.editValue.bind(e,n)})),e.props.canHaveOptionValue&&e.props.canHaveOptionCorrect&&p().createElement(H.Z,{sm:1},p().createElement(R.Z.Check,{type:"checkbox",value:"1",onChange:e.editOptionCorrect.bind(e,n),checked:t.hasOwnProperty("correct")})),p().createElement(H.Z,{sm:3},p().createElement("div",{className:"dynamic-options-actions-buttons"},p().createElement(T.Z,{variant:"success",onClick:e.addOption.bind(e,n)},p().createElement(V.EIY,null)),n>0&&p().createElement(T.Z,{variant:"danger",onClick:e.removeOption.bind(e,n)},p().createElement(V.wbB,null))))))}))))}}]),c}(p().Component),z=n(2083);var A={options:["inline","list","textAlign","fontSize","link","history"],inline:{inDropdown:!1,className:void 0,options:["bold","italic","underline","superscript","subscript"]}},M=function(e){(0,a.Z)(c,e);var t,n,s=(t=c,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,l=(0,o.Z)(t);if(n){var r=(0,o.Z)(this).constructor;e=Reflect.construct(l,arguments,r)}else e=l.apply(this,arguments);return(0,i.Z)(this,e)});function c(e){var t;return(0,l.Z)(this,c),(t=s.call(this,e)).state={element:t.props.element,data:t.props.data,dirty:!1},t}return(0,r.Z)(c,[{key:"toggleRequired",value:function(){}},{key:"editElementProp",value:function(e,t,n){var l=this,r=this.state.element;r[e]=n.target[t],this.setState({element:r,dirty:!0},(function(){"checked"===t&&l.updateElement()}))}},{key:"onEditorStateChange",value:function(e,t,n){var l=O()((0,w.convertToRaw)(n.getCurrentContent())).replace(/<p>/g,"").replace(/<\/p>/g,"").replace(/ /g," ").replace(/(?:\r\n|\r|\n)/g,""),r=this.state.element;r[t]=l,this.setState({element:r,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,w.convertFromHTML)(e);if(!t.contentBlocks||!t.contentBlocks.length)return w.EditorState.createEmpty();var n=w.ContentState.createFromBlockArray(t);return w.EditorState.createWithContent(n)}},{key:"addOptions",value:function(){var e=this,t=document.getElementById("optionsApiUrl").value;t&&(0,z.U)(t).then((function(t){e.props.element.options=[];var n=e.props.element.options;t.forEach((function(e){e.key=B().uuid(),n.push(e)}));var l=e.state.element;e.setState({element:l,dirty:!0})}))}},{key:"render",value:function(){this.state.dirty&&(this.props.element.dirty=!0);var e,t,n=!!this.props.element.hasOwnProperty("required")&&this.props.element.required,l=!!this.props.element.hasOwnProperty("defaultChecked")&&this.props.element.defaultChecked,r=!!this.props.element.hasOwnProperty("readOnly")&&this.props.element.readOnly,a=!!this.props.element.hasOwnProperty("defaultToday")&&this.props.element.defaultToday,i=(!!this.props.element.hasOwnProperty("showTimeSelect")&&this.props.element.showTimeSelect,!!this.props.element.hasOwnProperty("showTimeSelectOnly")&&this.props.element.showTimeSelectOnly,!!this.props.element.hasOwnProperty("showTimeInput")&&this.props.element.showTimeInput,!!this.props.element.hasOwnProperty("inline")&&this.props.element.inline),o=!!this.props.element.hasOwnProperty("bold")&&this.props.element.bold,s=!!this.props.element.hasOwnProperty("italic")&&this.props.element.italic,c=!!this.props.element.hasOwnProperty("center")&&this.props.element.center,m=!!this.props.element.hasOwnProperty("pageBreakBefore")&&this.props.element.pageBreakBefore,d=!!this.props.element.hasOwnProperty("alternateForm")&&this.props.element.alternateForm,h=this.props.element,u=h.canHavePageBreakBefore,E=h.canHaveAlternateForm,f=h.canHaveDisplayHorizontal,b=h.canHaveOptionCorrect,v=h.canHaveOptionValue,y="Image"===this.state.element.element||"Camera"===this.state.element.element,Z=this.props.files.length?this.props.files:[];return(Z.length<1||Z.length>0&&""!==Z[0].id)&&Z.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)),this.props.element.hasOwnProperty("boxLabel")&&(t=this.convertFromHTML(this.props.element.boxLabel)),p().createElement("div",null,p().createElement("div",{className:"clearfix"},p().createElement("h4",{className:"float-start"},this.props.element.text),p().createElement(V.aHS,{className:"float-end dismiss-edit",onClick:this.props.manualEditModeOff})),this.props.element.hasOwnProperty("content")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"text-to-display"}),":"),p().createElement(S.Editor,{toolbar:A,defaultEditorState:e,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"content"),stripPastedStyles:!0})),this.props.element.hasOwnProperty("filePath")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"fileSelect"},p().createElement(F.Z,{id:"choose-file"}),":"),p().createElement(R.Z.Select,{id:"fileSelect",defaultValue:this.props.element.filePath,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"filePath","value")},Z.map((function(e){var t="file_".concat(e.id);return p().createElement("option",{value:e.id,key:t},e.file_name)})))),this.props.element.hasOwnProperty("href")&&p().createElement(R.Z.Group,null,p().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")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"display-label"})),p().createElement(S.Editor,{toolbar:A,defaultEditorState:e,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"label"),stripPastedStyles:!0}),p().createElement("br",null),p().createElement(R.Z.Check,{id:"is-required",label:p().createElement(F.Z,{id:"required"}),type:"checkbox",checked:n,value:!0,onChange:this.editElementProp.bind(this,"required","checked")}),this.props.element.hasOwnProperty("readOnly")&&p().createElement(R.Z.Check,{id:"is-read-only",label:p().createElement(F.Z,{id:"read-only"}),type:"checkbox",checked:r,value:!0,onChange:this.editElementProp.bind(this,"readOnly","checked")}),this.props.element.hasOwnProperty("defaultToday")&&p().createElement(R.Z.Check,{id:"is-default-to-today",label:p().createElement(F.Z,{id:"default-to-today"}),type:"checkbox",checked:a,value:!0,onChange:this.editElementProp.bind(this,"defaultToday","checked")}),-1!==["Checkboxes","Checkbox"].indexOf(this.state.element.element)&&p().createElement(R.Z.Check,{id:"default-checked",label:p().createElement(F.Z,{id:"default-checked"}),type:"checkbox",checked:l,value:!0,onChange:this.editElementProp.bind(this,"defaultChecked","checked")}),("RadioButtons"===this.state.element.element||"Checkboxes"===this.state.element.element)&&f&&p().createElement(R.Z.Check,{id:"display-horizontal",label:p().createElement(F.Z,{id:"display-horizontal"}),type:"checkbox",checked:i,value:!0,onChange:this.editElementProp.bind(this,"inline","checked")})),"Checkbox"===this.state.element.element&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"checkbox-label-text"}),":"),p().createElement(S.Editor,{toolbar:A,defaultEditorState:t,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"boxLabel"),stripPastedStyles:!0})),this.props.element.hasOwnProperty("src")&&p().createElement("div",null,p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"srcInput"},p().createElement(F.Z,{id:"link-to"}),":"),p().createElement(R.Z.Control,{id:"srcInput",type:"text",defaultValue:this.props.element.src,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"src","value")}))),y&&p().createElement("div",null,p().createElement(R.Z.Group,null,p().createElement(R.Z.Check,{id:"do-center",label:p().createElement(F.Z,{id:"center"}),type:"checkbox",checked:c,value:!0,onChange:this.editElementProp.bind(this,"center","checked")})),p().createElement(N.Z,null,p().createElement(H.Z,{sm:3},p().createElement(R.Z.Label,{htmlFor:"elementWidth"},p().createElement(F.Z,{id:"width"}),":"),p().createElement(R.Z.Control,{id:"elementWidth",type:"text",defaultValue:this.props.element.width,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"width","value")})),p().createElement(H.Z,{sm:3},p().createElement(R.Z.Label,{htmlFor:"elementHeight"},p().createElement(F.Z,{id:"height"}),":"),p().createElement(R.Z.Control,{id:"elementHeight",type:"text",defaultValue:this.props.element.height,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"height","value")})))),"FileUpload"===this.state.element.element&&p().createElement("div",null,p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{className:"control-label",htmlFor:"fileType"},p().createElement(F.Z,{id:"choose-file-type"}),":"),p().createElement(R.Z.Select,{id:"fileType",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 p().createElement("option",{value:e.type,key:t},e.typeName)}))))),u&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"print-options"})),p().createElement(R.Z.Check,{id:"page-break-before-element",label:p().createElement(F.Z,{id:"page-break-before-element"}),type:"checkbox",checked:m,value:!0,onChange:this.editElementProp.bind(this,"pageBreakBefore","checked")})),E&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"alternate-signature-page"})),p().createElement(R.Z.Check,{id:"display-on-alternate",label:p().createElement(F.Z,{id:"display-on-alternate-signature-page"}),type:"checkbox",checked:d,value:!0,onChange:this.editElementProp.bind(this,"alternateForm","checked")})),this.props.element.hasOwnProperty("step")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeStep"},p().createElement(F.Z,{id:"step"})),p().createElement(R.Z.Control,{id:"rangeStep",type:"number",defaultValue:this.props.element.step,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"step","value")}))),this.props.element.hasOwnProperty("minValue")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMin"},p().createElement(F.Z,{id:"min"})),p().createElement(R.Z.Control,{id:"rangeMin",type:"number",defaultValue:this.props.element.minValue,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"minValue","value")}))),this.props.element.hasOwnProperty("minLabel")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMin"},p().createElement(F.Z,{id:"min-label"})),p().createElement(R.Z.Control,{type:"text",defaultValue:this.props.element.minLabel,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"minLabel","value")}))),this.props.element.hasOwnProperty("maxValue")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMax"},p().createElement(F.Z,{id:"max"})),p().createElement(R.Z.Control,{id:"rangeMax",type:"number",defaultValue:this.props.element.maxValue,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"maxValue","value")}))),this.props.element.hasOwnProperty("maxLabel")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMax"},p().createElement(F.Z,{id:"max-label"})),p().createElement(R.Z.Control,{type:"text",defaultValue:this.props.element.maxLabel,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"maxLabel","value")}))),this.props.element.hasOwnProperty("defaultValue")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"defaultSelected"},p().createElement(F.Z,{id:"default-selected"})),p().createElement(R.Z.Control,{id:"defaultSelected",type:"number",defaultValue:this.props.element.defaultValue,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"defaultValue","value")}))),this.props.element.hasOwnProperty("static")&&this.props.element.static&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"text-style"})),p().createElement(R.Z.Check,{id:"do-bold",label:p().createElement(F.Z,{id:"bold"}),type:"checkbox",checked:o,value:!0,onChange:this.editElementProp.bind(this,"bold","checked")}),p().createElement(R.Z.Check,{id:"do-italic",label:p().createElement(F.Z,{id:"italic"}),type:"checkbox",checked:s,value:!0,onChange:this.editElementProp.bind(this,"italic","checked")})),this.props.element.showPlaceholder&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"placeholder"},p().createElement(F.Z,{id:"place-holder-text-label"})),p().createElement(R.Z.Control,{type:"text",id:"placeholder",defaultValue:this.props.element.placeholder,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"placeholder","value")})),this.props.element.showCustomName&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"customName"},p().createElement(F.Z,{id:"custom-name-label"})),p().createElement(R.Z.Control,{type:"text",id:"customName",defaultValue:this.props.element.customName,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"customName","value")})),this.props.element.showLabelLocationPicker&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"labelLocation"},p().createElement(F.Z,{id:"choose-label-location"}),":"),p().createElement(R.Z.Select,{id:"labelLocation",defaultValue:this.props.element.labelLocation,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"labelLocation","value")},p().createElement("option",{value:"ABOVE"},"Above Form Field"),p().createElement("option",{value:"FLOATING"},"Floating Inside Form Field"))),this.props.element.showHelp&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"help"},p().createElement(F.Z,{id:"help-label"})),p().createElement(x,{type:"text",className:"form-control",id:"help",defaultValue:this.props.element.help,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"help","value")})),this.props.element.showDescription&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"questionDescription"},p().createElement(F.Z,{id:"description"})),p().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")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"correctAnswer"},p().createElement(F.Z,{id:"correct-answer"})),p().createElement(R.Z.Control,{id:"correctAnswer",type:"text",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")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"optionsApiUrl"},p().createElement(F.Z,{id:"populate-options-from-api"})),p().createElement(N.Z,null,p().createElement(H.Z,{sm:6},p().createElement(R.Z.Control,{style:{width:"100%"},type:"text",id:"optionsApiUrl",placeholder:"http://localhost:8080/api/optionsdata"})),p().createElement(H.Z,{sm:6},p().createElement(T.Z,{variant:"success",onClick:this.addOptions.bind(this)},p().createElement(F.Z,{id:"populate"}))))),this.props.element.hasOwnProperty("options")&&p().createElement(G,{showCorrectColumn:this.props.showCorrectColumn,canHaveOptionCorrect:b,canHaveOptionValue:v,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}(p().Component);M.defaultProps={className:"edit-element-fields"}}}]);
|