UNPKG

@iimm/formily-taro-vantui

Version:

form field components based on @antmjs/vantui and @formily/react

98 lines 6.97 kB
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } import { useField } from "@formily/react"; import { isVoidField } from "@formily/core"; import { useFormLayout } from "../layout"; export function useFormilyFieldProps(props, config) { var formatProps = _objectSpread({}, props || {}); var formLayout = useFormLayout(); if ((formLayout === null || formLayout === void 0 ? void 0 : formLayout.alwaysShowFeedback) !== undefined) { var _props$alwaysShowFeed; formatProps.alwaysShowFeedback = (_props$alwaysShowFeed = props === null || props === void 0 ? void 0 : props.alwaysShowFeedback) !== null && _props$alwaysShowFeed !== void 0 ? _props$alwaysShowFeed : formLayout.alwaysShowFeedback; } if ((formLayout === null || formLayout === void 0 ? void 0 : formLayout.showFeedback) !== undefined) { var _props$showFeedback; formatProps.showFeedback = (_props$showFeedback = props === null || props === void 0 ? void 0 : props.showFeedback) !== null && _props$showFeedback !== void 0 ? _props$showFeedback : formLayout.showFeedback; } if ((formLayout === null || formLayout === void 0 ? void 0 : formLayout.withFormItem) !== undefined) { var _props$withFormItem; formatProps.withFormItem = (_props$withFormItem = props === null || props === void 0 ? void 0 : props.withFormItem) !== null && _props$withFormItem !== void 0 ? _props$withFormItem : formLayout === null || formLayout === void 0 ? void 0 : formLayout.withFormItem; } var field = useField(); if (!field || isVoidField(field)) return formatProps; var _ref = config || {}, _ref$title = _ref.title, title = _ref$title === void 0 ? true : _ref$title, _ref$readOnly = _ref.readOnly, readOnly = _ref$readOnly === void 0 ? true : _ref$readOnly, _ref$required = _ref.required, required = _ref$required === void 0 ? true : _ref$required, options = _ref.options, _ref$defaultValue = _ref.defaultValue, defaultValue = _ref$defaultValue === void 0 ? true : _ref$defaultValue, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? true : _ref$disabled, _ref$feedback = _ref.feedback, feedback = _ref$feedback === void 0 ? true : _ref$feedback, _ref$description = _ref.description, description = _ref$description === void 0 ? true : _ref$description; if (defaultValue) { var _props$defaultValue; formatProps.defaultValue = (_props$defaultValue = props.defaultValue) !== null && _props$defaultValue !== void 0 ? _props$defaultValue : field === null || field === void 0 ? void 0 : field.initialValue; } if (title) { var _props$title; formatProps.title = (_props$title = props === null || props === void 0 ? void 0 : props.title) !== null && _props$title !== void 0 ? _props$title : field === null || field === void 0 ? void 0 : field.title; } if (disabled) { var _props$disabled; formatProps.disabled = (_props$disabled = props.disabled) !== null && _props$disabled !== void 0 ? _props$disabled : field === null || field === void 0 ? void 0 : field.disabled; } if (readOnly) { var _props$readOnly; formatProps.readOnly = (_props$readOnly = props === null || props === void 0 ? void 0 : props.readOnly) !== null && _props$readOnly !== void 0 ? _props$readOnly : field === null || field === void 0 ? void 0 : field.readOnly; } if (required) { var takeRequired = function takeRequired() { if (field.required && field.pattern !== "readPretty") { return true; } if ("required" in props) { return props.required; } return false; }; formatProps.required = takeRequired(); } if (options) { var _props$options; formatProps.options = (_props$options = props === null || props === void 0 ? void 0 : props.options) !== null && _props$options !== void 0 ? _props$options : field === null || field === void 0 ? void 0 : field.dataSource; } if (description) { var _props$description; formatProps.description = (_props$description = props === null || props === void 0 ? void 0 : props.description) !== null && _props$description !== void 0 ? _props$description : field === null || field === void 0 ? void 0 : field.description; } if (feedback) { var _props$error; formatProps.error = (_props$error = props.error) !== null && _props$error !== void 0 ? _props$error : field === null || field === void 0 ? void 0 : field.selfInvalid; var takeMessage = function takeMessage() { if (field.validating) return; if (props.feedback) return props.feedback; var split = function split(messages) { return messages.reduce(function (buf, text, index) { if (!text) return buf; return index < messages.length - 1 ? buf.concat([text, ", "]) : buf.concat([text]); }, []); }; if (field.selfErrors.length) return split(field.selfErrors); if (field.selfWarnings.length) return split(field.selfWarnings); if (field.selfSuccesses.length) return split(field.selfSuccesses); }; formatProps.feedback = takeMessage(); } return formatProps; }