1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.DefaultFieldUI = exports.asField = void 0;
|
7 |
|
8 | var _react = _interopRequireDefault(require("react"));
|
9 |
|
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
11 |
|
12 | var _validate = require("./validate");
|
13 |
|
14 | var _isHidden = require("./isHidden");
|
15 |
|
16 | var _utils = require("./utils");
|
17 |
|
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19 |
|
20 | 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); }
|
21 |
|
22 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
23 |
|
24 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
25 |
|
26 | 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; }
|
27 |
|
28 | function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
29 |
|
30 | function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
31 |
|
32 |
|
33 | var asField = function asField(_ref) {
|
34 | var FieldUI = _ref.FieldUI,
|
35 | Widget = _ref.Widget;
|
36 |
|
37 | var FieldContainer = function FieldContainer(_ref2) {
|
38 | var className = _ref2.className,
|
39 | column = _ref2.column,
|
40 | showValidate = _ref2.showValidate,
|
41 | isRoot = _ref2.isRoot,
|
42 | hidden = _ref2.hidden,
|
43 | props = _ref2.props,
|
44 | showDescIcon = _ref2.showDescIcon,
|
45 | width = _ref2.width,
|
46 | labelWidth = _ref2.labelWidth,
|
47 | disabled = _ref2.disabled,
|
48 | readonly = _ref2.readonly,
|
49 | options = _ref2.options,
|
50 | schema = _ref2.schema,
|
51 | rest = _objectWithoutProperties(_ref2, ["className", "column", "showValidate", "isRoot", "hidden", "props", "showDescIcon", "width", "labelWidth", "disabled", "readonly", "options", "schema"]);
|
52 |
|
53 | var displayType = rest.displayType,
|
54 | _rest$rootValue = rest.rootValue,
|
55 | rootValue = _rest$rootValue === void 0 ? {} : _rest$rootValue,
|
56 | _rest$formData = rest.formData,
|
57 | formData = _rest$formData === void 0 ? {} : _rest$formData,
|
58 | dependShow = rest.dependShow;
|
59 |
|
60 | var convertValue = function convertValue(item) {
|
61 | if (typeof item === 'function') {
|
62 | return item(formData, rootValue);
|
63 | } else if (typeof item === 'string' && (0, _utils.isFunction)(item) !== false) {
|
64 | var _item = (0, _utils.isFunction)(item);
|
65 |
|
66 | try {
|
67 | return (0, _utils.evaluateString)(_item, formData, rootValue);
|
68 | } catch (error) {
|
69 | console.error(error.message);
|
70 | console.error("happen at ".concat(item));
|
71 | return item;
|
72 | }
|
73 | }
|
74 |
|
75 | return item;
|
76 | };
|
77 |
|
78 | hidden = convertValue(hidden);
|
79 | disabled = convertValue(disabled);
|
80 | readonly = convertValue(readonly);
|
81 | options = convertValue(options);
|
82 |
|
83 | var _schema = _objectSpread({}, schema);
|
84 |
|
85 | Object.keys(schema).forEach(function (key) {
|
86 | var availableKey = ['title', 'description', 'format', 'pattern', 'message', 'min', 'max', 'step', 'enum', 'enumNames'];
|
87 |
|
88 | if (availableKey.indexOf(key) > -1) {
|
89 | _schema[key] = convertValue(schema[key]);
|
90 | }
|
91 | });
|
92 |
|
93 |
|
94 | if (hidden && (0, _isHidden.isHidden)({
|
95 | hidden: hidden,
|
96 | rootValue: rootValue,
|
97 | formData: formData
|
98 | })) {
|
99 | return null;
|
100 | }
|
101 |
|
102 |
|
103 | var _rest = _objectSpread(_objectSpread({}, rest), {}, {
|
104 | schema: _schema,
|
105 | disabled: disabled,
|
106 | readonly: readonly,
|
107 | options: options,
|
108 | formData: formData || {},
|
109 | rootValue: rootValue || {}
|
110 | });
|
111 |
|
112 |
|
113 | if ((0, _isHidden.isDependShow)({
|
114 | formData: formData,
|
115 | dependShow: dependShow
|
116 | })) {
|
117 | return null;
|
118 | }
|
119 |
|
120 | var isComplex = _schema.type === 'object' || _schema.type === 'array' && _schema.enum === undefined;
|
121 | var isModal = options && (options.modal || options.drawer);
|
122 |
|
123 | if (isModal) {
|
124 | isComplex = false;
|
125 | }
|
126 |
|
127 | var validateText = (0, _validate.getValidateText)(_rest);
|
128 |
|
129 | var showLabel = _schema.title || rest.description || rest.required || displayType !== 'row' && showValidate && validateText;
|
130 | var columnStyle = {};
|
131 |
|
132 | if (!isComplex && width) {
|
133 | columnStyle = {
|
134 | width: width,
|
135 | paddingRight: '12px'
|
136 | };
|
137 | } else if (!isComplex && column > 1) {
|
138 | columnStyle = {
|
139 | width: "calc(100% /".concat(column, ")"),
|
140 | paddingRight: '12px'
|
141 | };
|
142 | }
|
143 |
|
144 | var fieldProps = {
|
145 | className: className,
|
146 | columnStyle: columnStyle,
|
147 | displayType: displayType,
|
148 | isComplex: isComplex,
|
149 | isRequired: rest.required,
|
150 | isRoot: isRoot,
|
151 | schema: _schema,
|
152 | showDescIcon: showDescIcon,
|
153 | showLabel: showLabel,
|
154 | showValidate: showValidate,
|
155 | validateText: validateText,
|
156 | labelWidth: labelWidth
|
157 | };
|
158 | return _react.default.createElement(FieldUI, fieldProps, _react.default.createElement(Widget, _extends({}, _rest, {
|
159 | invalid: showValidate && validateText
|
160 | })));
|
161 | };
|
162 |
|
163 | FieldContainer.propTypes = {
|
164 | showValidate: _propTypes.default.bool,
|
165 | column: _propTypes.default.number,
|
166 | isRoot: _propTypes.default.bool,
|
167 | props: _propTypes.default.object,
|
168 | showDescIcon: _propTypes.default.bool,
|
169 | displayType: _propTypes.default.string
|
170 | };
|
171 | FieldContainer.defaultProps = {
|
172 | showValidate: true,
|
173 | column: 1,
|
174 | isRoot: false,
|
175 | props: {},
|
176 | showDescIcon: false,
|
177 | displayType: 'column'
|
178 | };
|
179 | return FieldContainer;
|
180 | };
|
181 |
|
182 | exports.asField = asField;
|
183 |
|
184 | var DefaultFieldUI = function DefaultFieldUI(_ref3) {
|
185 | var children = _ref3.children,
|
186 | className = _ref3.className,
|
187 | columnStyle = _ref3.columnStyle,
|
188 | displayType = _ref3.displayType,
|
189 | isComplex = _ref3.isComplex,
|
190 | isRequired = _ref3.isRequired,
|
191 | isRoot = _ref3.isRoot,
|
192 | schema = _ref3.schema,
|
193 | showDescIcon = _ref3.showDescIcon,
|
194 | showLabel = _ref3.showLabel,
|
195 | showValidate = _ref3.showValidate,
|
196 | validateText = _ref3.validateText,
|
197 | labelWidth = _ref3.labelWidth;
|
198 |
|
199 | var title = schema.title,
|
200 | type = schema.type,
|
201 | _enum = schema.enum,
|
202 | _schema$description = schema.description,
|
203 | description = _schema$description === void 0 ? '' : _schema$description,
|
204 | widget = schema['ui:widget'],
|
205 | options = schema['ui:options'];
|
206 | var isCheckbox = type === 'boolean' && widget !== 'switch';
|
207 | var isModal = options && (options.modal || options.drawer);
|
208 | var fieldClass = "fr-field w-100 ".concat(isComplex ? 'fr-field-complex' : '');
|
209 | var labelClass = 'fr-label mb2';
|
210 | var contentClass = 'fr-content';
|
211 |
|
212 | switch (type) {
|
213 | case 'object':
|
214 | if (isModal) {
|
215 | break;
|
216 | }
|
217 |
|
218 | if (title) {
|
219 | labelClass += ' fr-label-object bb b--black-20 pb1 mt2 mb3';
|
220 | }
|
221 |
|
222 | if (!isRoot) {
|
223 | fieldClass += ' fr-field-object';
|
224 |
|
225 | if (title) {
|
226 | contentClass += ' ml3';
|
227 | }
|
228 | }
|
229 |
|
230 | break;
|
231 |
|
232 | case 'array':
|
233 | if (isModal) {
|
234 | break;
|
235 | }
|
236 |
|
237 | if (title && !_enum) {
|
238 | labelClass += ' fr-label-array mt2 mb3';
|
239 | }
|
240 |
|
241 | break;
|
242 |
|
243 | case 'boolean':
|
244 | if (isCheckbox) {
|
245 | if (title) {
|
246 | labelClass += ' ml2';
|
247 | labelClass = labelClass.replace('mb2', 'mb0');
|
248 | }
|
249 |
|
250 | contentClass += ' flex items-center';
|
251 |
|
252 | fieldClass += ' flex items-center flex-row-reverse justify-end';
|
253 | }
|
254 |
|
255 | break;
|
256 |
|
257 | default:
|
258 | if (displayType === 'row') {
|
259 | labelClass = labelClass.replace('mb2', 'mb0');
|
260 | }
|
261 |
|
262 | }
|
263 |
|
264 |
|
265 | if (displayType === 'row' && !isComplex && !isCheckbox) {
|
266 | fieldClass += ' flex items-center';
|
267 | labelClass += ' flex-shrink-0 fr-label-row';
|
268 | labelClass = labelClass.replace('mb2', 'mb0');
|
269 | contentClass += ' flex-grow-1 relative';
|
270 | }
|
271 |
|
272 |
|
273 | if (displayType === 'row' && isCheckbox) {
|
274 | contentClass += ' flex justify-end pr2';
|
275 | }
|
276 |
|
277 | var _labelWidth = (0, _utils.isLooselyNumber)(labelWidth) ? Number(labelWidth) : (0, _utils.isCssLength)(labelWidth) ? labelWidth : 110;
|
278 |
|
279 |
|
280 | var labelStyle = {
|
281 | width: _labelWidth
|
282 | };
|
283 |
|
284 | if (isCheckbox) {
|
285 | labelStyle = {
|
286 | flexGrow: 1
|
287 | };
|
288 | } else if (isComplex || displayType === 'column') {
|
289 | labelStyle = {
|
290 | flexGrow: 1
|
291 | };
|
292 | }
|
293 |
|
294 | return _react.default.createElement("div", {
|
295 | className: className ? "".concat(className, " ").concat(fieldClass) : fieldClass,
|
296 | style: columnStyle
|
297 | }, showLabel && _react.default.createElement("div", {
|
298 | className: labelClass,
|
299 | style: labelStyle
|
300 | }, _react.default.createElement("label", {
|
301 | className: "fr-label-title ".concat(isCheckbox || displayType === 'column' ? 'no-colon' : '')
|
302 | ,
|
303 | title: title
|
304 | }, isRequired && _react.default.createElement("span", {
|
305 | className: "fr-label-required"
|
306 | }, " *"), _react.default.createElement("span", {
|
307 | className: "".concat(isComplex ? 'b' : '', " ").concat(displayType === 'column' ? 'flex-none' : '')
|
308 | }, title), description && (showDescIcon ? _react.default.createElement("span", {
|
309 | className: "fr-tooltip-toggle",
|
310 | "aria-label": description
|
311 | }, _react.default.createElement("i", {
|
312 | className: "fr-tooltip-icon"
|
313 | }), _react.default.createElement("div", {
|
314 | className: "fr-tooltip-container"
|
315 | }, _react.default.createElement("i", {
|
316 | className: "fr-tooltip-triangle"
|
317 | }), description)) : _react.default.createElement("span", {
|
318 | className: "fr-desc ml2"
|
319 | }, "(\xA0", description, "\xA0)")), displayType !== 'row' && showValidate && validateText && _react.default.createElement("span", {
|
320 | className: "fr-validate"
|
321 | }, validateText))), _react.default.createElement("div", {
|
322 | className: contentClass,
|
323 | style: isCheckbox ? displayType === 'row' ? {
|
324 | marginLeft: _labelWidth
|
325 | } : {} : {
|
326 | flexGrow: 1
|
327 | }
|
328 | }, _react.default.createElement("div", {
|
329 | className: "flex ".concat(isComplex ? 'flex-column' : 'items-center')
|
330 | }, children), displayType === 'row' && showValidate && validateText && _react.default.createElement("span", {
|
331 | className: "fr-validate fr-validate-row ".concat(isComplex ? 'relative' : 'absolute')
|
332 | }, validateText)));
|
333 | };
|
334 |
|
335 | exports.DefaultFieldUI = DefaultFieldUI; |
\ | No newline at end of file |