1 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
2 |
|
3 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
4 |
|
5 | function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
6 |
|
7 | function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
8 |
|
9 | function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
10 |
|
11 | function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
12 |
|
13 | function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
14 |
|
15 | function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
16 |
|
17 | import React, { useCallback, useState, useEffect } from 'react';
|
18 | import { BooleanControl, ColorControl, DateControl, FilesControl, NumberControl, ObjectControl, OptionsControl, RangeControl, TextControl } from '../../controls';
|
19 |
|
20 | var NoControl = function NoControl() {
|
21 | return React.createElement(React.Fragment, null, "-");
|
22 | };
|
23 |
|
24 | export var ArgControl = function ArgControl(_ref) {
|
25 | var row = _ref.row,
|
26 | arg = _ref.arg,
|
27 | updateArgs = _ref.updateArgs;
|
28 | var key = row.key,
|
29 | control = row.control;
|
30 |
|
31 | var _useState = useState(false),
|
32 | _useState2 = _slicedToArray(_useState, 2),
|
33 | isFocused = _useState2[0],
|
34 | setFocused = _useState2[1];
|
35 |
|
36 |
|
37 | var _useState3 = useState({
|
38 | value: arg
|
39 | }),
|
40 | _useState4 = _slicedToArray(_useState3, 2),
|
41 | boxedValue = _useState4[0],
|
42 | setBoxedValue = _useState4[1];
|
43 |
|
44 | useEffect(function () {
|
45 | if (!isFocused) setBoxedValue({
|
46 | value: arg
|
47 | });
|
48 | }, [isFocused, arg]);
|
49 | var onChange = useCallback(function (argVal) {
|
50 | setBoxedValue({
|
51 | value: argVal
|
52 | });
|
53 | updateArgs(_defineProperty({}, key, argVal));
|
54 | return argVal;
|
55 | }, [updateArgs, key]);
|
56 | var onBlur = useCallback(function () {
|
57 | return setFocused(false);
|
58 | }, []);
|
59 | var onFocus = useCallback(function () {
|
60 | return setFocused(true);
|
61 | }, []);
|
62 | if (!control || control.disable) return React.createElement(NoControl, null);
|
63 |
|
64 |
|
65 | var props = {
|
66 | name: key,
|
67 | argType: row,
|
68 | value: boxedValue.value,
|
69 | onChange: onChange,
|
70 | onBlur: onBlur,
|
71 | onFocus: onFocus
|
72 | };
|
73 |
|
74 | switch (control.type) {
|
75 | case 'array':
|
76 | case 'object':
|
77 | return React.createElement(ObjectControl, _extends({}, props, control));
|
78 |
|
79 | case 'boolean':
|
80 | return React.createElement(BooleanControl, _extends({}, props, control));
|
81 |
|
82 | case 'color':
|
83 | return React.createElement(ColorControl, _extends({}, props, control));
|
84 |
|
85 | case 'date':
|
86 | return React.createElement(DateControl, _extends({}, props, control));
|
87 |
|
88 | case 'number':
|
89 | return React.createElement(NumberControl, _extends({}, props, control));
|
90 |
|
91 | case 'check':
|
92 | case 'inline-check':
|
93 | case 'radio':
|
94 | case 'inline-radio':
|
95 | case 'select':
|
96 | case 'multi-select':
|
97 | return React.createElement(OptionsControl, _extends({}, props, control, {
|
98 | controlType: control.type
|
99 | }));
|
100 |
|
101 | case 'range':
|
102 | return React.createElement(RangeControl, _extends({}, props, control));
|
103 |
|
104 | case 'text':
|
105 | return React.createElement(TextControl, _extends({}, props, control));
|
106 |
|
107 | case 'file':
|
108 | return React.createElement(FilesControl, _extends({}, props, control));
|
109 |
|
110 | default:
|
111 | return React.createElement(NoControl, null);
|
112 | }
|
113 | }; |
\ | No newline at end of file |