util.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getFieldId = getFieldId;
  6. exports.getStatus = getStatus;
  7. exports.toArray = toArray;
  8. // form item name black list. in form ,you can use form.id get the form item element.
  9. // use object hasOwnProperty will get better performance if black list is longer.
  10. const formItemNameBlackList = ['parentNode'];
  11. // default form item id prefix.
  12. const defaultItemNamePrefixCls = 'form_item';
  13. function toArray(candidate) {
  14. if (candidate === undefined || candidate === false) return [];
  15. return Array.isArray(candidate) ? candidate : [candidate];
  16. }
  17. function getFieldId(namePath, formName) {
  18. if (!namePath.length) {
  19. return undefined;
  20. }
  21. const mergedId = namePath.join('_');
  22. if (formName) {
  23. return `${formName}_${mergedId}`;
  24. }
  25. const isIllegalName = formItemNameBlackList.includes(mergedId);
  26. return isIllegalName ? `${defaultItemNamePrefixCls}_${mergedId}` : mergedId;
  27. }
  28. /**
  29. * Get merged status by meta or passed `validateStatus`.
  30. */
  31. function getStatus(errors, warnings, meta, defaultValidateStatus, hasFeedback, validateStatus) {
  32. let status = defaultValidateStatus;
  33. if (validateStatus !== undefined) {
  34. status = validateStatus;
  35. } else if (meta.validating) {
  36. status = 'validating';
  37. } else if (errors.length) {
  38. status = 'error';
  39. } else if (warnings.length) {
  40. status = 'warning';
  41. } else if (meta.touched || hasFeedback && meta.validated) {
  42. // success feedback should display when pass hasFeedback prop and current value is valid value
  43. status = 'success';
  44. }
  45. return status;
  46. }