@nutui/nutui-react-taro 2.0.16 → 2.0.17-beta.0

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.
Files changed (85) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/Address.js +2 -2
  3. package/dist/esm/Audio.js +3 -3
  4. package/dist/esm/Avatar.js +1 -1
  5. package/dist/esm/Cascader.js +1 -1
  6. package/dist/esm/DatePicker.js +3 -3
  7. package/dist/esm/Ellipsis.js +2 -2
  8. package/dist/esm/Form/style/style.css +1 -1
  9. package/dist/esm/Form.js +53 -3
  10. package/dist/esm/FormItem/style/style.css +1 -1
  11. package/dist/esm/FormItem.js +1 -1
  12. package/dist/esm/InputNumber.js +1 -1
  13. package/dist/esm/Menu.js +3 -3
  14. package/dist/esm/MenuItem.js +2 -2
  15. package/dist/esm/NoticeBar.js +3 -2
  16. package/dist/esm/Picker.js +2 -2
  17. package/dist/esm/Popover.js +2 -2
  18. package/dist/esm/PullToRefresh.js +1 -1
  19. package/dist/esm/Range.js +3 -2
  20. package/dist/esm/Skeleton.js +2 -2
  21. package/dist/esm/Sticky.js +2 -2
  22. package/dist/esm/Swipe.js +2 -2
  23. package/dist/esm/Table.js +1 -1
  24. package/dist/esm/Toast.js +2 -1
  25. package/dist/esm/Tour.js +3 -3
  26. package/dist/esm/TrendArrow.js +1 -1
  27. package/dist/esm/VirtualList.js +1 -1
  28. package/dist/esm/{address.taro-6d420871.js → address.taro-319deb0d.js} +1 -1
  29. package/dist/esm/{audio.taro-ef39c1d9.js → audio.taro-f0ec6410.js} +2 -3
  30. package/dist/esm/{avatar.taro-47abbb9f.js → avatar.taro-0e574535.js} +1 -1
  31. package/dist/esm/{cascader.taro-01ffbfb1.js → cascader.taro-8d41895a.js} +2 -1
  32. package/dist/esm/{datepicker.taro-288d64bb.js → datepicker.taro-4da6a538.js} +1 -1
  33. package/dist/esm/{ellipsis.taro-21b13b31.js → ellipsis.taro-cd36ab2d.js} +4 -4
  34. package/dist/esm/{formitem.taro-bb63ac0a.js → formitem.taro-d69dce1e.js} +28 -10
  35. package/dist/esm/{use-client-rect-2bb6c562.js → get-rect-by-taro-fe02fe2b.js} +21 -3
  36. package/dist/esm/{inputnumber.taro-2f6f30d7.js → inputnumber.taro-d2fc26bd.js} +2 -2
  37. package/dist/esm/{menu.taro-4cde3e7f.js → menu.taro-0727ce5f.js} +1 -1
  38. package/dist/esm/{menuitem.taro-8a60a655.js → menuitem.taro-a4d83b53.js} +1 -1
  39. package/dist/esm/{noticebar.taro-d95c13b6.js → noticebar.taro-4e1d882b.js} +2 -2
  40. package/dist/esm/nutui-react.es.js +24 -24
  41. package/dist/esm/{picker.taro-0770a67f.js → picker.taro-47d1c716.js} +4 -4
  42. package/dist/esm/{popover.taro-7a482b85.js → popover.taro-43e96169.js} +1 -1
  43. package/dist/esm/{pulltorefresh.taro-d35571e8.js → pulltorefresh.taro-f3ab76c2.js} +4 -6
  44. package/dist/esm/{range.taro-fbbf5522.js → range.taro-4028c748.js} +1 -1
  45. package/dist/esm/{skeleton.taro-1896ff37.js → skeleton.taro-1f829d87.js} +1 -1
  46. package/dist/esm/{sticky.taro-2d78a04e.js → sticky.taro-dbacaf76.js} +1 -1
  47. package/dist/esm/{swipe.taro-2fa2479c.js → swipe.taro-385eece1.js} +1 -1
  48. package/dist/esm/{table.taro-072907bf.js → table.taro-a7dcb564.js} +5 -5
  49. package/dist/esm/{toast.taro-44ebc833.js → toast.taro-50ee73e6.js} +30 -19
  50. package/dist/esm/{tour.taro-3299d7a2.js → tour.taro-5185292f.js} +1 -1
  51. package/dist/esm/{trendarrow.taro-53d6e250.js → trendarrow.taro-e6b635ae.js} +1 -1
  52. package/dist/esm/types/src/packages/cascader/cascader.d.ts +2 -1
  53. package/dist/esm/types/src/packages/cascader/cascader.taro.d.ts +2 -1
  54. package/dist/esm/types/src/packages/form/types.d.ts +1 -0
  55. package/dist/esm/types/src/packages/formitem/formitem.d.ts +1 -0
  56. package/dist/esm/types/src/packages/formitem/formitem.taro.d.ts +1 -0
  57. package/dist/esm/types/src/packages/table/types.d.ts +1 -1
  58. package/dist/esm/types/src/packages/toast/toast.taro.d.ts +3 -6
  59. package/dist/esm/types/src/packages/virtuallist/utils.d.ts +1 -1
  60. package/dist/esm/types/src/utils/get-rect-by-taro.d.ts +12 -0
  61. package/dist/esm/types/src/utils/use-client-rect.d.ts +3 -9
  62. package/dist/esm/types/src/utils/use-uuid.d.ts +1 -0
  63. package/dist/esm/{virtuallist.taro-e552d954.js → virtuallist.taro-c75a4e71.js} +2 -2
  64. package/dist/locales/base.js +1 -1
  65. package/dist/locales/en-US.js +1 -1
  66. package/dist/locales/id-ID.js +1 -1
  67. package/dist/locales/tr-TR.js +1 -1
  68. package/dist/locales/zh-CN.js +1 -1
  69. package/dist/locales/zh-TW.js +1 -1
  70. package/dist/locales/zh-UG.js +1 -1
  71. package/dist/nutui.react.es.js +187 -78
  72. package/dist/nutui.react.umd.js +186 -77
  73. package/dist/packages/form/form.scss +9 -1
  74. package/dist/packages/formitem/formitem.scss +0 -11
  75. package/dist/style.css +1 -1
  76. package/dist/style.mjs +1 -1
  77. package/dist/types/packages/cascader/cascader.taro.d.ts +2 -1
  78. package/dist/types/packages/form/types.d.ts +1 -0
  79. package/dist/types/packages/formitem/formitem.taro.d.ts +5 -0
  80. package/dist/types/packages/table/types.d.ts +1 -1
  81. package/dist/types/packages/toast/toast.taro.d.ts +3 -6
  82. package/dist/types/packages/virtuallist/utils.d.ts +1 -1
  83. package/dist/types/utils/get-rect-by-taro.d.ts +12 -0
  84. package/dist/types/utils/use-client-rect.d.ts +3 -9
  85. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ # v2.0.17
2
+ `2023-09-13`
3
+
4
+ * :sparkles: feat: form 增加 validateTrigger 和 getFieldsValue (#1411) @oasis-cloud
5
+ * :bug: fix: add popupProps (#1426) @oasis-cloud
6
+ * :bug: fix: form label position left (#1412) @oasis-cloud
7
+ * :bug: fix: lint errors (#1406) @xiaoyatong
8
+ * :bug: fix: review package update (#1423) @xiaoyatong
9
+ * :bug: fix: swipe component fails to slide in Alipay (#1399) @oasis-cloud
10
+ * :bug: fix: table expose rowIndex (#1400) @oasis-cloud
11
+ * :bug: fix: toast组件 duration 设置无效 (#1424) @oasis-cloud
12
+ * 🔨 chore: glob & prettier update (#1427) @xiaoyatong
13
+ * 🔨 chore: swc 版本恢复 (#1425) @oasis-cloud
14
+
15
+
1
16
  # v2.0.16
2
17
  `2023-09-06`
3
18
 
@@ -1,4 +1,4 @@
1
- import { A as Address } from "./address.taro-6d420871.js";
1
+ import { A as Address } from "./address.taro-319deb0d.js";
2
2
  import "react";
3
3
  import "@nutui/icons-react-taro";
4
4
  import "./popup.taro-487eb86e.js";
@@ -10,7 +10,7 @@ import "./overlay.taro-626840fc.js";
10
10
  import "./typings-11d83a22.js";
11
11
  import "./configprovider.taro-c5ff4877.js";
12
12
  import "./index-21e61675.js";
13
- import "./cascader.taro-01ffbfb1.js";
13
+ import "./cascader.taro-8d41895a.js";
14
14
  import "./tabs.taro-3ece2221.js";
15
15
  import "@tarojs/taro";
16
16
  import "./tabpane.taro-d0eea168.js";
package/dist/esm/Audio.js CHANGED
@@ -1,15 +1,15 @@
1
- import { A as Audio } from "./audio.taro-ef39c1d9.js";
1
+ import { A as Audio } from "./audio.taro-f0ec6410.js";
2
2
  import "react";
3
3
  import "@tarojs/taro";
4
4
  import "@nutui/icons-react-taro";
5
- import "./range.taro-fbbf5522.js";
5
+ import "./range.taro-4028c748.js";
6
6
  import "classnames";
7
7
  import "@tarojs/components";
8
8
  import "./use-touch-ff43512c.js";
9
- import "./use-client-rect-2bb6c562.js";
10
9
  import "./typings-11d83a22.js";
11
10
  import "./use-props-value-c78cbf9b.js";
12
11
  import "./use-force-update-9cd7c164.js";
12
+ import "./get-rect-by-taro-fe02fe2b.js";
13
13
  import "./button.taro-25f559e1.js";
14
14
  import "./configprovider.taro-c5ff4877.js";
15
15
  import "./index-21e61675.js";
@@ -1,4 +1,4 @@
1
- import { A as Avatar } from "./avatar.taro-47abbb9f.js";
1
+ import { A as Avatar } from "./avatar.taro-0e574535.js";
2
2
  import "react";
3
3
  import "@tarojs/taro";
4
4
  import "classnames";
@@ -1,4 +1,4 @@
1
- import { C as Cascader } from "./cascader.taro-01ffbfb1.js";
1
+ import { C as Cascader } from "./cascader.taro-8d41895a.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@nutui/icons-react-taro";
@@ -1,7 +1,7 @@
1
- import { D as DatePicker } from "./datepicker.taro-288d64bb.js";
1
+ import { D as DatePicker } from "./datepicker.taro-4da6a538.js";
2
2
  import "react";
3
3
  import "@tarojs/components";
4
- import "./picker.taro-0770a67f.js";
4
+ import "./picker.taro-47d1c716.js";
5
5
  import "classnames";
6
6
  import "@tarojs/taro";
7
7
  import "./popup.taro-487eb86e.js";
@@ -11,7 +11,7 @@ import "@nutui/icons-react-taro";
11
11
  import "./overlay.taro-626840fc.js";
12
12
  import "./typings-11d83a22.js";
13
13
  import "./use-touch-ff43512c.js";
14
- import "./use-client-rect-2bb6c562.js";
14
+ import "./get-rect-by-taro-fe02fe2b.js";
15
15
  import "./can-use-dom-0e539bd3.js";
16
16
  import "./configprovider.taro-c5ff4877.js";
17
17
  import "./index-21e61675.js";
@@ -1,8 +1,8 @@
1
- import { E as Ellipsis } from "./ellipsis.taro-21b13b31.js";
1
+ import { E as Ellipsis } from "./ellipsis.taro-cd36ab2d.js";
2
2
  import "react";
3
3
  import "@tarojs/taro";
4
4
  import "classnames";
5
- import "./use-client-rect-2bb6c562.js";
5
+ import "./get-rect-by-taro-fe02fe2b.js";
6
6
  import "./typings-11d83a22.js";
7
7
  export {
8
8
  Ellipsis as default
@@ -1 +1 @@
1
- .nut-cell-group{display:block}.nut-cell-group__title{display:inherit;padding:var(--nutui-cell-group-title-padding, 0 10px);color:var(--nutui-cell-group-title-color, #909ca4);font-size:var(--nutui-cell-group-title-font-size, var(--nutui-font-size-2, 14px));line-height:var(--nutui-cell-group-title-line-height, 20px);margin-top:30px;margin-bottom:10px}.nut-cell-group__description{display:inherit;padding:var(--nutui-cell-group-description-padding, 0 10px);color:var(--nutui-cell-group-description-color, #909ca4);font-size:var(--nutui-cell-group-description-font-size, var(--nutui-font-size-1, 12px));line-height:var(--nutui-cell-group-description-line-height, 16px);margin-top:10px;margin-bottom:10px}.nut-cell-group__wrap{display:inherit;border-radius:var(--nutui-cell-border-radius, 6px);overflow:hidden;background-color:var(--nutui-cell-group-background-color, var(--nutui-gray-6, #ffffff));margin:10px 0}.nut-cell-group__wrap .nut-cell{margin:0;box-shadow:none;border-radius:0}.nut-cell-group__wrap--divider .nut-cell__divider{position:absolute;box-sizing:border-box;pointer-events:none;right:var(--nutui-cell-divider-right, 16px);bottom:0;left:var(--nutui-cell-divider-left, 16px);transform:scaleY(.5);border-top:var(--nutui-cell-divider-border-bottom, 2px solid #f5f6f7)}.nut-cell-group__wrap--divider .nut-cell:last-child .nut-cell__divider{border-top:0!important}.nut-cell{position:relative;display:flex;width:100%;line-height:var(--nutui-cell-line-height, 20px);padding:var(--nutui-cell-padding, 13px 16px);background-color:var(--nutui-cell-background-color, var(--nutui-gray-6, #ffffff));border-radius:var(--nutui-cell-border-radius, 6px);box-shadow:var(--nutui-cell-box-shadow, 0px 1px 7px 0px rgb(237, 238, 241));font-size:var(--nutui-cell-title-font-size, var(--nutui-font-size-2, 14px));color:var(--nutui-cell-title-color, var(--nutui-gray-1, #1a1a1a));margin:10px 0;box-sizing:border-box}.nut-cell__left{display:flex;flex-direction:column;flex:1}.nut-cell__description{font-size:var(--nutui-cell-description-font-size, var(--nutui-font-size-1, 12px));color:var(--nutui-cell-description-color, var(--nutui-gray-2, #757575))}.nut-cell__extra{display:inline-flex;justify-content:flex-end;align-items:center;flex:1;min-width:0;word-break:break-all;font-size:var(--nutui-cell-extra-font-size, var(--nutui-font-size-2, 14px));color:var(--nutui-cell-extra-color, var(--nutui-gray-2, #757575))}.nut-form-item{display:flex}.nut-form-item:before{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:16px;bottom:0;left:16px;transform:scaleX(0)}.nut-form-item.error.line:before{border-bottom:1px solid var(--nutui-form-item-error-line-color, var(--nutui-brand-color, #fa2c19));transform:scaleX(1);transition:transform .2s cubic-bezier(0,0,.2,1) 0ms}.nut-form-item__label{font-size:var(--nutui-form-item-label-font-size, 14px);font-weight:400;width:var(--nutui-form-item-label-width, 90px);margin-right:var(--nutui-form-item-label-margin-right, 10px);flex:none!important;display:inline-block!important;word-wrap:break-word;text-align:var(--nutui-form-item-label-text-align, left)}.nut-form-item__label .required:before{content:"*";color:var(--nutui-form-item-required-color, var(--nutui-brand-color, #fa2c19));margin-right:var(--nutui-form-item-required-margin-right, 4px)}.nut-form-item__body{flex:1;display:flex!important;flex-direction:column}.nut-form-item__body__slots{text-align:var(--nutui-form-item-body-slots-text-align, left)}.nut-form-item__body__slots .nut-input{padding:0;border:0}.nut-form-item__body__slots .nut-input-text{font-size:var(--nutui-form-item-body-font-size, 14px);text-align:var(--nutui-form-item-body-input-text-align, left);color:var(--nutui-gray-0, #000000);width:100%;outline:0 none;border:0;text-decoration:none;background:transparent}.nut-form-item__body__slots .nut-range-container{min-height:24px}.nut-form-item__body__slots .nut-textarea{padding:0!important}.nut-form-item__body__slots .nut-textarea .nut-textarea__textarea{font:inherit;text-align:var(--nutui-form-item-body-input-text-align, left)}.nut-form-item__body__tips{text-align:var(--nutui-form-item-tip-text-align, left);font-size:var(--nutui-form-item-tip-font-size, 10px);color:var(--nutui-form-item-error-message-color, var(--nutui-brand-color, #fa2c19))}.form-layout-right .nut-form-item__label{text-align:right;font-size:14px;padding-right:24px;white-space:nowrap}.form-layout-left .nut-form-item__label{text-align:left;font-size:14px;padding-right:24px;white-space:nowrap}.form-layout-top .nut-form-item{flex-direction:column;align-items:flex-start;white-space:nowrap}.form-layout-top .nut-form-item__label{padding-bottom:4px;display:block;font-size:14px;padding-right:24px}.form-layout-top .nut-form-item__body{margin-left:0;width:100%}
1
+ .nut-cell-group{display:block}.nut-cell-group__title{display:inherit;padding:var(--nutui-cell-group-title-padding, 0 10px);color:var(--nutui-cell-group-title-color, #909ca4);font-size:var(--nutui-cell-group-title-font-size, var(--nutui-font-size-2, 14px));line-height:var(--nutui-cell-group-title-line-height, 20px);margin-top:30px;margin-bottom:10px}.nut-cell-group__description{display:inherit;padding:var(--nutui-cell-group-description-padding, 0 10px);color:var(--nutui-cell-group-description-color, #909ca4);font-size:var(--nutui-cell-group-description-font-size, var(--nutui-font-size-1, 12px));line-height:var(--nutui-cell-group-description-line-height, 16px);margin-top:10px;margin-bottom:10px}.nut-cell-group__wrap{display:inherit;border-radius:var(--nutui-cell-border-radius, 6px);overflow:hidden;background-color:var(--nutui-cell-group-background-color, var(--nutui-gray-6, #ffffff));margin:10px 0}.nut-cell-group__wrap .nut-cell{margin:0;box-shadow:none;border-radius:0}.nut-cell-group__wrap--divider .nut-cell__divider{position:absolute;box-sizing:border-box;pointer-events:none;right:var(--nutui-cell-divider-right, 16px);bottom:0;left:var(--nutui-cell-divider-left, 16px);transform:scaleY(.5);border-top:var(--nutui-cell-divider-border-bottom, 2px solid #f5f6f7)}.nut-cell-group__wrap--divider .nut-cell:last-child .nut-cell__divider{border-top:0!important}.nut-cell{position:relative;display:flex;width:100%;line-height:var(--nutui-cell-line-height, 20px);padding:var(--nutui-cell-padding, 13px 16px);background-color:var(--nutui-cell-background-color, var(--nutui-gray-6, #ffffff));border-radius:var(--nutui-cell-border-radius, 6px);box-shadow:var(--nutui-cell-box-shadow, 0px 1px 7px 0px rgb(237, 238, 241));font-size:var(--nutui-cell-title-font-size, var(--nutui-font-size-2, 14px));color:var(--nutui-cell-title-color, var(--nutui-gray-1, #1a1a1a));margin:10px 0;box-sizing:border-box}.nut-cell__left{display:flex;flex-direction:column;flex:1}.nut-cell__description{font-size:var(--nutui-cell-description-font-size, var(--nutui-font-size-1, 12px));color:var(--nutui-cell-description-color, var(--nutui-gray-2, #757575))}.nut-cell__extra{display:inline-flex;justify-content:flex-end;align-items:center;flex:1;min-width:0;word-break:break-all;font-size:var(--nutui-cell-extra-font-size, var(--nutui-font-size-2, 14px));color:var(--nutui-cell-extra-color, var(--nutui-gray-2, #757575))}.nut-form-item{display:flex}.nut-form-item.error.line:before{border-bottom:1px solid var(--nutui-form-item-error-line-color, var(--nutui-brand-color, #fa2c19));transform:scaleX(1);transition:transform .2s cubic-bezier(0,0,.2,1) 0ms}.nut-form-item__label{font-size:var(--nutui-form-item-label-font-size, 14px);font-weight:400;width:var(--nutui-form-item-label-width, 90px);margin-right:var(--nutui-form-item-label-margin-right, 10px);flex:none!important;display:inline-block!important;word-wrap:break-word;text-align:var(--nutui-form-item-label-text-align, left)}.nut-form-item__label .required:before{content:"*";color:var(--nutui-form-item-required-color, var(--nutui-brand-color, #fa2c19));margin-right:var(--nutui-form-item-required-margin-right, 4px)}.nut-form-item__body{flex:1;display:flex!important;flex-direction:column}.nut-form-item__body__slots{text-align:var(--nutui-form-item-body-slots-text-align, left)}.nut-form-item__body__slots .nut-input{padding:0;border:0}.nut-form-item__body__slots .nut-input-text{font-size:var(--nutui-form-item-body-font-size, 14px);text-align:var(--nutui-form-item-body-input-text-align, left);color:var(--nutui-gray-0, #000000);width:100%;outline:0 none;border:0;text-decoration:none;background:transparent}.nut-form-item__body__slots .nut-range-container{min-height:24px}.nut-form-item__body__slots .nut-textarea{padding:0!important}.nut-form-item__body__slots .nut-textarea .nut-textarea__textarea{font:inherit;text-align:var(--nutui-form-item-body-input-text-align, left)}.nut-form-item__body__tips{text-align:var(--nutui-form-item-tip-text-align, left);font-size:var(--nutui-form-item-tip-font-size, 10px);color:var(--nutui-form-item-error-message-color, var(--nutui-brand-color, #fa2c19))}.form-layout-right .nut-form-item__label{text-align:right;font-size:14px;padding-right:24px;white-space:nowrap}.form-layout-left .nut-form-item__label{position:relative;text-align:left;font-size:14px;padding-left:12px;white-space:nowrap}.form-layout-left .nut-form-item__label .required{display:block;line-height:1.5;position:absolute;left:.1em}.form-layout-top .nut-form-item{flex-direction:column;align-items:flex-start;white-space:nowrap}.form-layout-top .nut-form-item__label{padding-bottom:4px;display:block;font-size:14px;padding-right:24px}.form-layout-top .nut-form-item__body{margin-left:0;width:100%}
package/dist/esm/Form.js CHANGED
@@ -8,7 +8,7 @@ import React__default, { useRef } from "react";
8
8
  import classNames from "classnames";
9
9
  import { C as ComponentDefaults } from "./typings-11d83a22.js";
10
10
  import { C as Cell } from "./cell.taro-010b73ed.js";
11
- import { C as Context, F as FormItem } from "./formitem.taro-bb63ac0a.js";
11
+ import { C as Context, F as FormItem } from "./formitem.taro-d69dce1e.js";
12
12
  import "./cellgroup.taro-9dc59f11.js";
13
13
  function _extends() {
14
14
  _extends = Object.assign ? Object.assign.bind() : function(target) {
@@ -1073,7 +1073,7 @@ class FormStore {
1073
1073
  __publicField(this, "fieldEntities", []);
1074
1074
  // 校验成功或失败的回调,onFinish、onFinishFailed
1075
1075
  __publicField(this, "callbacks", {});
1076
- __publicField(this, "errors", []);
1076
+ __publicField(this, "errors", {});
1077
1077
  /**
1078
1078
  * 注册组件实例
1079
1079
  * @param field
@@ -1095,6 +1095,19 @@ class FormStore {
1095
1095
  var _a;
1096
1096
  return (_a = this.store) == null ? void 0 : _a[name];
1097
1097
  });
1098
+ /**
1099
+ * 获取全部字段
1100
+ */
1101
+ __publicField(this, "getFieldsValue", (name) => {
1102
+ if (typeof name === "boolean") {
1103
+ return JSON.parse(JSON.stringify(this.store));
1104
+ }
1105
+ const fieldsValue = {};
1106
+ name.forEach((field) => {
1107
+ fieldsValue[field] = this.getFieldValue(field);
1108
+ });
1109
+ return fieldsValue;
1110
+ });
1098
1111
  /**
1099
1112
  * 设置 form 的初始值,之后在 reset 的时候使用
1100
1113
  * @param values
@@ -1152,13 +1165,45 @@ class FormStore {
1152
1165
  validator.validate({ [name]: (_a = this.store) == null ? void 0 : _a[name] }, (errors) => {
1153
1166
  if (errors) {
1154
1167
  err.push(...errors);
1155
- this.errors.push(...errors);
1168
+ this.errors[name] = errors;
1156
1169
  }
1157
1170
  entity.onStoreChange("validate");
1158
1171
  });
1159
1172
  });
1160
1173
  return err;
1161
1174
  });
1175
+ __publicField(this, "validateFields", (nameList) => {
1176
+ if (!nameList || nameList.length === 0) {
1177
+ this.validate();
1178
+ return;
1179
+ }
1180
+ this.fieldEntities.filter(({ props: { name } }) => {
1181
+ return nameList.includes(name);
1182
+ }).forEach((entity) => {
1183
+ var _a;
1184
+ const { name, rules: rules2 = [] } = entity.props;
1185
+ const descriptor = {};
1186
+ if (rules2.length) {
1187
+ if (rules2.length > 1) {
1188
+ descriptor[name] = [];
1189
+ rules2.forEach((v) => {
1190
+ descriptor[name].push(v);
1191
+ });
1192
+ } else {
1193
+ descriptor[name] = rules2[0];
1194
+ }
1195
+ }
1196
+ const validator = new Schema(descriptor);
1197
+ validator.messages();
1198
+ validator.validate({ [name]: (_a = this.store) == null ? void 0 : _a[name] }, (errors) => {
1199
+ this.errors[name] = [];
1200
+ if (errors) {
1201
+ this.errors[name] = errors;
1202
+ }
1203
+ entity.onStoreChange("validate");
1204
+ });
1205
+ });
1206
+ });
1162
1207
  __publicField(this, "submit", () => {
1163
1208
  var _a, _b, _c, _d;
1164
1209
  const errors = this.validate();
@@ -1175,12 +1220,17 @@ class FormStore {
1175
1220
  entity.onStoreChange("reset");
1176
1221
  });
1177
1222
  });
1223
+ __publicField(this, "dispatch", ({ name }) => {
1224
+ this.validateFields([name]);
1225
+ });
1178
1226
  __publicField(this, "getForm", () => {
1179
1227
  return {
1228
+ dispatch: this.dispatch,
1180
1229
  setInitialValues: this.setInitialValues,
1181
1230
  setCallback: this.setCallback,
1182
1231
  registerField: this.registerField,
1183
1232
  getFieldValue: this.getFieldValue,
1233
+ getFieldsValue: this.getFieldsValue,
1184
1234
  setFieldsValue: this.setFieldsValue,
1185
1235
  resetFields: this.resetFields,
1186
1236
  submit: this.submit,
@@ -1 +1 @@
1
- .nut-form-item{display:flex}.nut-form-item:before{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:16px;bottom:0;left:16px;transform:scaleX(0)}.nut-form-item.error.line:before{border-bottom:1px solid var(--nutui-form-item-error-line-color, var(--nutui-brand-color, #fa2c19));transform:scaleX(1);transition:transform .2s cubic-bezier(0,0,.2,1) 0ms}.nut-form-item__label{font-size:var(--nutui-form-item-label-font-size, 14px);font-weight:400;width:var(--nutui-form-item-label-width, 90px);margin-right:var(--nutui-form-item-label-margin-right, 10px);flex:none!important;display:inline-block!important;word-wrap:break-word;text-align:var(--nutui-form-item-label-text-align, left)}.nut-form-item__label .required:before{content:"*";color:var(--nutui-form-item-required-color, var(--nutui-brand-color, #fa2c19));margin-right:var(--nutui-form-item-required-margin-right, 4px)}.nut-form-item__body{flex:1;display:flex!important;flex-direction:column}.nut-form-item__body__slots{text-align:var(--nutui-form-item-body-slots-text-align, left)}.nut-form-item__body__slots .nut-input{padding:0;border:0}.nut-form-item__body__slots .nut-input-text{font-size:var(--nutui-form-item-body-font-size, 14px);text-align:var(--nutui-form-item-body-input-text-align, left);color:var(--nutui-gray-0, #000000);width:100%;outline:0 none;border:0;text-decoration:none;background:transparent}.nut-form-item__body__slots .nut-range-container{min-height:24px}.nut-form-item__body__slots .nut-textarea{padding:0!important}.nut-form-item__body__slots .nut-textarea .nut-textarea__textarea{font:inherit;text-align:var(--nutui-form-item-body-input-text-align, left)}.nut-form-item__body__tips{text-align:var(--nutui-form-item-tip-text-align, left);font-size:var(--nutui-form-item-tip-font-size, 10px);color:var(--nutui-form-item-error-message-color, var(--nutui-brand-color, #fa2c19))}
1
+ .nut-form-item{display:flex}.nut-form-item.error.line:before{border-bottom:1px solid var(--nutui-form-item-error-line-color, var(--nutui-brand-color, #fa2c19));transform:scaleX(1);transition:transform .2s cubic-bezier(0,0,.2,1) 0ms}.nut-form-item__label{font-size:var(--nutui-form-item-label-font-size, 14px);font-weight:400;width:var(--nutui-form-item-label-width, 90px);margin-right:var(--nutui-form-item-label-margin-right, 10px);flex:none!important;display:inline-block!important;word-wrap:break-word;text-align:var(--nutui-form-item-label-text-align, left)}.nut-form-item__label .required:before{content:"*";color:var(--nutui-form-item-required-color, var(--nutui-brand-color, #fa2c19));margin-right:var(--nutui-form-item-required-margin-right, 4px)}.nut-form-item__body{flex:1;display:flex!important;flex-direction:column}.nut-form-item__body__slots{text-align:var(--nutui-form-item-body-slots-text-align, left)}.nut-form-item__body__slots .nut-input{padding:0;border:0}.nut-form-item__body__slots .nut-input-text{font-size:var(--nutui-form-item-body-font-size, 14px);text-align:var(--nutui-form-item-body-input-text-align, left);color:var(--nutui-gray-0, #000000);width:100%;outline:0 none;border:0;text-decoration:none;background:transparent}.nut-form-item__body__slots .nut-range-container{min-height:24px}.nut-form-item__body__slots .nut-textarea{padding:0!important}.nut-form-item__body__slots .nut-textarea .nut-textarea__textarea{font:inherit;text-align:var(--nutui-form-item-body-input-text-align, left)}.nut-form-item__body__tips{text-align:var(--nutui-form-item-tip-text-align, left);font-size:var(--nutui-form-item-tip-font-size, 10px);color:var(--nutui-form-item-error-message-color, var(--nutui-brand-color, #fa2c19))}
@@ -1,4 +1,4 @@
1
- import { F as FormItem } from "./formitem.taro-bb63ac0a.js";
1
+ import { F as FormItem } from "./formitem.taro-d69dce1e.js";
2
2
  import "react";
3
3
  import "./cell.taro-010b73ed.js";
4
4
  import "classnames";
@@ -1,4 +1,4 @@
1
- import { I as InputNumber } from "./inputnumber.taro-2f6f30d7.js";
1
+ import { I as InputNumber } from "./inputnumber.taro-d2fc26bd.js";
2
2
  import "react";
3
3
  import "@nutui/icons-react-taro";
4
4
  import "classnames";
package/dist/esm/Menu.js CHANGED
@@ -1,14 +1,14 @@
1
- import { M as Menu } from "./menu.taro-4cde3e7f.js";
1
+ import { M as Menu } from "./menu.taro-0727ce5f.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@nutui/icons-react-taro";
5
- import "./menuitem.taro-8a60a655.js";
5
+ import "./menuitem.taro-a4d83b53.js";
6
6
  import "@tarojs/taro";
7
7
  import "@tarojs/components";
8
8
  import "react-transition-group";
9
9
  import "./overlay.taro-626840fc.js";
10
10
  import "./typings-11d83a22.js";
11
- import "./use-client-rect-2bb6c562.js";
11
+ import "./get-rect-by-taro-fe02fe2b.js";
12
12
  export {
13
13
  Menu as default
14
14
  };
@@ -1,4 +1,4 @@
1
- import { M as MenuItem } from "./menuitem.taro-8a60a655.js";
1
+ import { M as MenuItem } from "./menuitem.taro-a4d83b53.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@tarojs/taro";
@@ -7,7 +7,7 @@ import "react-transition-group";
7
7
  import "@nutui/icons-react-taro";
8
8
  import "./overlay.taro-626840fc.js";
9
9
  import "./typings-11d83a22.js";
10
- import "./use-client-rect-2bb6c562.js";
10
+ import "./get-rect-by-taro-fe02fe2b.js";
11
11
  export {
12
12
  MenuItem as default
13
13
  };
@@ -1,8 +1,9 @@
1
- import { N as NoticeBar } from "./noticebar.taro-d95c13b6.js";
1
+ import { N as NoticeBar } from "./noticebar.taro-4e1d882b.js";
2
2
  import "react";
3
3
  import "@nutui/icons-react-taro";
4
4
  import "classnames";
5
- import "./use-client-rect-2bb6c562.js";
5
+ import "./get-rect-by-taro-fe02fe2b.js";
6
+ import "@tarojs/taro";
6
7
  import "./typings-11d83a22.js";
7
8
  export {
8
9
  NoticeBar as default
@@ -1,4 +1,4 @@
1
- import { P as Picker } from "./picker.taro-0770a67f.js";
1
+ import { P as Picker } from "./picker.taro-47d1c716.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@tarojs/taro";
@@ -10,7 +10,7 @@ import "@nutui/icons-react-taro";
10
10
  import "./overlay.taro-626840fc.js";
11
11
  import "./typings-11d83a22.js";
12
12
  import "./use-touch-ff43512c.js";
13
- import "./use-client-rect-2bb6c562.js";
13
+ import "./get-rect-by-taro-fe02fe2b.js";
14
14
  import "./can-use-dom-0e539bd3.js";
15
15
  import "./configprovider.taro-c5ff4877.js";
16
16
  import "./index-21e61675.js";
@@ -1,4 +1,4 @@
1
- import { P as Popover } from "./popover.taro-7a482b85.js";
1
+ import { P as Popover } from "./popover.taro-43e96169.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@tarojs/taro";
@@ -9,7 +9,7 @@ import "@nutui/icons-react-taro";
9
9
  import "@tarojs/components";
10
10
  import "./overlay.taro-626840fc.js";
11
11
  import "./typings-11d83a22.js";
12
- import "./use-client-rect-2bb6c562.js";
12
+ import "./get-rect-by-taro-fe02fe2b.js";
13
13
  export {
14
14
  Popover as default
15
15
  };
@@ -1,4 +1,4 @@
1
- import { P as PullToRefresh } from "./pulltorefresh.taro-d35571e8.js";
1
+ import { P as PullToRefresh } from "./pulltorefresh.taro-f3ab76c2.js";
2
2
  import "react";
3
3
  import "@tarojs/components";
4
4
  import "./configprovider.taro-c5ff4877.js";
package/dist/esm/Range.js CHANGED
@@ -1,12 +1,13 @@
1
- import { R as Range } from "./range.taro-fbbf5522.js";
1
+ import { R as Range } from "./range.taro-4028c748.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@tarojs/components";
5
5
  import "./use-touch-ff43512c.js";
6
- import "./use-client-rect-2bb6c562.js";
7
6
  import "./typings-11d83a22.js";
8
7
  import "./use-props-value-c78cbf9b.js";
9
8
  import "./use-force-update-9cd7c164.js";
9
+ import "./get-rect-by-taro-fe02fe2b.js";
10
+ import "@tarojs/taro";
10
11
  export {
11
12
  Range as default
12
13
  };
@@ -1,7 +1,7 @@
1
- import { S as Skeleton } from "./skeleton.taro-1896ff37.js";
1
+ import { S as Skeleton } from "./skeleton.taro-1f829d87.js";
2
2
  import "react";
3
3
  import "classnames";
4
- import "./avatar.taro-47abbb9f.js";
4
+ import "./avatar.taro-0e574535.js";
5
5
  import "@tarojs/taro";
6
6
  import "@nutui/icons-react-taro";
7
7
  import "./image.taro-a7ad2272.js";
@@ -1,9 +1,9 @@
1
- import { S as Sticky } from "./sticky.taro-2d78a04e.js";
1
+ import { S as Sticky } from "./sticky.taro-dbacaf76.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@tarojs/taro";
5
5
  import "./typings-11d83a22.js";
6
- import "./use-client-rect-2bb6c562.js";
6
+ import "./get-rect-by-taro-fe02fe2b.js";
7
7
  import "./can-use-dom-0e539bd3.js";
8
8
  export {
9
9
  Sticky as default
package/dist/esm/Swipe.js CHANGED
@@ -1,10 +1,10 @@
1
- import { S as Swipe } from "./swipe.taro-2fa2479c.js";
1
+ import { S as Swipe } from "./swipe.taro-385eece1.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@tarojs/components";
5
5
  import "@tarojs/taro";
6
6
  import "./use-touch-ff43512c.js";
7
- import "./use-client-rect-2bb6c562.js";
7
+ import "./get-rect-by-taro-fe02fe2b.js";
8
8
  import "./typings-11d83a22.js";
9
9
  export {
10
10
  Swipe as default
package/dist/esm/Table.js CHANGED
@@ -1,4 +1,4 @@
1
- import { T as Table } from "./table.taro-072907bf.js";
1
+ import { T as Table } from "./table.taro-a7dcb564.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@nutui/icons-react-taro";
package/dist/esm/Toast.js CHANGED
@@ -1,4 +1,4 @@
1
- import { T as Toast } from "./toast.taro-44ebc833.js";
1
+ import { T as Toast } from "./toast.taro-50ee73e6.js";
2
2
  import "react";
3
3
  import "classnames";
4
4
  import "@nutui/icons-react-taro";
@@ -10,6 +10,7 @@ import "./use-custom-event-bb9c7f2e.js";
10
10
  import "./index-21e61675.js";
11
11
  import "@tarojs/taro";
12
12
  import "./use-force-update-9cd7c164.js";
13
+ import "./use-props-value-c78cbf9b.js";
13
14
  export {
14
15
  Toast as default
15
16
  };
package/dist/esm/Tour.js CHANGED
@@ -1,8 +1,8 @@
1
- import { T as Tour } from "./tour.taro-3299d7a2.js";
1
+ import { T as Tour } from "./tour.taro-5185292f.js";
2
2
  import "react";
3
3
  import "@nutui/icons-react-taro";
4
4
  import "classnames";
5
- import "./popover.taro-7a482b85.js";
5
+ import "./popover.taro-43e96169.js";
6
6
  import "@tarojs/taro";
7
7
  import "./popup.taro-487eb86e.js";
8
8
  import "react-dom";
@@ -10,7 +10,7 @@ import "react-transition-group";
10
10
  import "@tarojs/components";
11
11
  import "./overlay.taro-626840fc.js";
12
12
  import "./typings-11d83a22.js";
13
- import "./use-client-rect-2bb6c562.js";
13
+ import "./get-rect-by-taro-fe02fe2b.js";
14
14
  import "./ConfigProvider.js";
15
15
  export {
16
16
  Tour as default
@@ -1,4 +1,4 @@
1
- import { T as TrendArrow } from "./trendarrow.taro-53d6e250.js";
1
+ import { T as TrendArrow } from "./trendarrow.taro-e6b635ae.js";
2
2
  import "react";
3
3
  import "@nutui/icons-react-taro";
4
4
  import "./typings-11d83a22.js";
@@ -1,4 +1,4 @@
1
- import { V as VirtualList } from "./virtuallist.taro-e552d954.js";
1
+ import { V as VirtualList } from "./virtuallist.taro-c75a4e71.js";
2
2
  import "react";
3
3
  import "@tarojs/components";
4
4
  import "@tarojs/taro";
@@ -2,7 +2,7 @@ import React__default, { forwardRef, useState, useImperativeHandle } from "react
2
2
  import { Check, Location2, Left } from "@nutui/icons-react-taro";
3
3
  import { P as Popup } from "./popup.taro-487eb86e.js";
4
4
  import { u as useConfig } from "./configprovider.taro-c5ff4877.js";
5
- import { C as Cascader } from "./cascader.taro-01ffbfb1.js";
5
+ import { C as Cascader } from "./cascader.taro-8d41895a.js";
6
6
  import { C as ComponentDefaults } from "./typings-11d83a22.js";
7
7
  import { u as usePropsValue } from "./use-props-value-c78cbf9b.js";
8
8
  const defaultProps$2 = {
@@ -1,11 +1,10 @@
1
1
  import React__default, { useState, useRef } from "react";
2
2
  import { createInnerAudioContext } from "@tarojs/taro";
3
3
  import { Service } from "@nutui/icons-react-taro";
4
- import { R as Range } from "./range.taro-fbbf5522.js";
4
+ import { R as Range } from "./range.taro-4028c748.js";
5
5
  import { B as Button } from "./button.taro-25f559e1.js";
6
6
  import { u as useConfig } from "./configprovider.taro-c5ff4877.js";
7
7
  import { C as ComponentDefaults } from "./typings-11d83a22.js";
8
- const warn = console.warn;
9
8
  const defaultProps = {
10
9
  ...ComponentDefaults,
11
10
  className: "",
@@ -54,7 +53,7 @@ const Audio = (props) => {
54
53
  });
55
54
  audioCtx.onEnded(() => {
56
55
  if (props.loop) {
57
- warn(locale.audio.tips || "onPlayEnd事件在loop=false时才会触发");
56
+ console.warn(locale.audio.tips || "onPlayEnd事件在loop=false时才会触发");
58
57
  } else {
59
58
  props.onPlayEnd && props.onPlayEnd(audioCtx);
60
59
  }
@@ -98,7 +98,7 @@ const Avatar = (props) => {
98
98
  children && React__default.createElement("span", { className: "text" }, children),
99
99
  !src && !icon && !children && React__default.createElement(My, { className: "icon" })
100
100
  ),
101
- showMax && React__default.createElement("div", { className: "text" }, ((_l = parent == null ? void 0 : parent.propAvatarGroup) == null ? void 0 : _l.maxContent) ? (_m = parent == null ? void 0 : parent.propAvatarGroup) == null ? void 0 : _m.maxContent : `+ ${avatarIndex - ((_n = parent == null ? void 0 : parent.propAvatarGroup) == null ? void 0 : _n.max)}`)
101
+ showMax && React__default.createElement("div", { className: "text" }, ((_l = parent == null ? void 0 : parent.propAvatarGroup) == null ? void 0 : _l.maxContent) ? (_m = parent == null ? void 0 : parent.propAvatarGroup) == null ? void 0 : _m.maxContent : `+ ${avatarIndex - Number(((_n = parent == null ? void 0 : parent.propAvatarGroup) == null ? void 0 : _n.max) || 0)}`)
102
102
  ));
103
103
  };
104
104
  Avatar.defaultProps = defaultProps;
@@ -160,7 +160,7 @@ const defaultProps = {
160
160
  }
161
161
  };
162
162
  const InternalCascader = (props, ref) => {
163
- const { className, style, activeColor, activeIcon, popup, visible, options, value, defaultValue, optionKey, format, closeable, closeIconPosition, closeIcon, lazy, onLoad, onClose, onChange, onPathChange } = { ...defaultProps, ...props };
163
+ const { className, style, activeColor, activeIcon, popup, popupProps = {}, visible, options, value, defaultValue, optionKey, format, closeable, closeIconPosition, closeIcon, lazy, onLoad, onClose, onChange, onPathChange } = { ...defaultProps, ...props };
164
164
  const [tabvalue, setTabvalue] = useState("c1");
165
165
  const [optionsData, setOptionsData] = useState([]);
166
166
  const isLazy = () => state.configs.lazy && Boolean(state.configs.onLoad);
@@ -417,6 +417,7 @@ const InternalCascader = (props, ref) => {
417
417
  );
418
418
  };
419
419
  return React__default.createElement(React__default.Fragment, null, popup ? React__default.createElement(Popup, {
420
+ ...popupProps,
420
421
  visible,
421
422
  position: "bottom",
422
423
  round: true,
@@ -1,6 +1,6 @@
1
1
  import React__default, { useState, useEffect } from "react";
2
2
  import { View } from "@tarojs/components";
3
- import { P as Picker } from "./picker.taro-0770a67f.js";
3
+ import { P as Picker } from "./picker.taro-47d1c716.js";
4
4
  import { u as useConfig } from "./configprovider.taro-c5ff4877.js";
5
5
  import { u as usePropsValue } from "./use-props-value-c78cbf9b.js";
6
6
  import { C as ComponentDefaults } from "./typings-11d83a22.js";
@@ -1,7 +1,7 @@
1
1
  import React__default, { useRef, useState, useEffect } from "react";
2
2
  import { useReady, nextTick, createSelectorQuery } from "@tarojs/taro";
3
3
  import classNames from "classnames";
4
- import { g as getRectByTaro } from "./use-client-rect-2bb6c562.js";
4
+ import { g as getRectByTaro } from "./get-rect-by-taro-fe02fe2b.js";
5
5
  import { C as ComponentDefaults } from "./typings-11d83a22.js";
6
6
  const defaultProps = {
7
7
  ...ComponentDefaults,
@@ -115,13 +115,13 @@ const Ellipsis = (props) => {
115
115
  }
116
116
  };
117
117
  const verifyEllipsis = async () => {
118
- var _a2, _b2, _c2, _d2, _e, _f;
118
+ var _a2, _b2, _c2, _d2, _e, _f, _g;
119
119
  const refe = await getRectByTaro(rootContain.current);
120
120
  if (refe && refe.height && refe.height > maxHeight.current) {
121
121
  if (direction === "end") {
122
- ellipsis.current.leading = (_c2 = (_a2 = ellipsis.current) == null ? void 0 : _a2.leading) == null ? void 0 : _c2.slice(0, ((_b2 = ellipsis.current) == null ? void 0 : _b2.leading.length) - 1);
122
+ ellipsis.current.leading = (_d2 = (_a2 = ellipsis.current) == null ? void 0 : _a2.leading) == null ? void 0 : _d2.slice(0, (((_c2 = (_b2 = ellipsis.current) == null ? void 0 : _b2.leading) == null ? void 0 : _c2.length) || 0) - 1);
123
123
  } else {
124
- ellipsis.current.tailing = (_f = (_d2 = ellipsis.current) == null ? void 0 : _d2.tailing) == null ? void 0 : _f.slice(1, (_e = ellipsis.current) == null ? void 0 : _e.tailing.length);
124
+ ellipsis.current.tailing = (_g = (_e = ellipsis.current) == null ? void 0 : _e.tailing) == null ? void 0 : _g.slice(1, (_f = ellipsis.current) == null ? void 0 : _f.tailing.length);
125
125
  }
126
126
  assignContent();
127
127
  setTimeout(() => {
@@ -23,7 +23,8 @@ const defaultProps = {
23
23
  name: "",
24
24
  label: "",
25
25
  rules: [{ required: false, message: "" }],
26
- errorMessageAlign: "left"
26
+ errorMessageAlign: "left",
27
+ validateTrigger: "onChange"
27
28
  };
28
29
  class FormItem extends React__default.Component {
29
30
  constructor(props) {
@@ -33,14 +34,15 @@ class FormItem extends React__default.Component {
33
34
  // children添加value属性和onChange事件
34
35
  __publicField(this, "getControlled", (children) => {
35
36
  var _a;
36
- const { setFieldsValue, getFieldValue } = this.context;
37
+ const { setFieldsValue, getFieldValue, dispatch } = this.context;
37
38
  const { name = "" } = this.props;
38
39
  if ((_a = children == null ? void 0 : children.props) == null ? void 0 : _a.defaultValue) {
39
40
  console.warn("通过 initialValue 设置初始值");
40
41
  }
42
+ const fieldValue = getFieldValue(name);
41
43
  const controlled = {
42
44
  ...children.props,
43
- [this.props.valuePropName || "value"]: getFieldValue(name) === void 0 ? this.props.initialValue : getFieldValue(name),
45
+ [this.props.valuePropName || "value"]: fieldValue !== void 0 ? fieldValue : this.props.initialValue,
44
46
  [this.props.trigger || "onChange"]: (...args) => {
45
47
  const originOnChange = children.props[this.props.trigger || "onChange"];
46
48
  if (originOnChange) {
@@ -53,6 +55,24 @@ class FormItem extends React__default.Component {
53
55
  setFieldsValue({ [name]: next });
54
56
  }
55
57
  };
58
+ const { validateTrigger } = this.props;
59
+ let validateTriggers = [this.props.trigger || "onChange"];
60
+ if (validateTrigger) {
61
+ validateTriggers = typeof validateTrigger === "string" ? [...validateTriggers, validateTrigger] : [...validateTriggers, ...validateTrigger];
62
+ validateTriggers.forEach((trigger) => {
63
+ const originTrigger = controlled[trigger];
64
+ controlled[trigger] = (...args) => {
65
+ if (originTrigger) {
66
+ originTrigger(...args);
67
+ }
68
+ if (this.props.rules && this.props.rules.length) {
69
+ dispatch({
70
+ name: this.props.name
71
+ });
72
+ }
73
+ };
74
+ });
75
+ }
56
76
  if (isForwardRefComponent(children)) {
57
77
  controlled.ref = (componentInstance) => {
58
78
  const originRef = children.ref;
@@ -82,16 +102,14 @@ class FormItem extends React__default.Component {
82
102
  }
83
103
  });
84
104
  __publicField(this, "renderLayout", (childNode) => {
85
- var _a, _b;
86
- const { label, name, required, className, style, errorMessageAlign } = {
105
+ const { label, name, required, rules, className, style, errorMessageAlign } = {
87
106
  ...defaultProps,
88
107
  ...this.props
89
108
  };
90
- const item = ((_a = this.context.errors) == null ? void 0 : _a.length) > 0 && ((_b = this.context.errors) == null ? void 0 : _b.filter((item2) => {
91
- return item2.field === name;
92
- }));
109
+ const requiredInRules = rules == null ? void 0 : rules.some((rule) => rule.required);
110
+ const item = name ? this.context.errors[name] : [];
93
111
  const { starPosition } = this.context;
94
- const renderStar = required && React__default.createElement("i", { className: "required" });
112
+ const renderStar = (required || requiredInRules) && React__default.createElement("i", { className: "required" });
95
113
  const renderLabel = React__default.createElement(
96
114
  React__default.Fragment,
97
115
  null,
@@ -107,7 +125,7 @@ class FormItem extends React__default.Component {
107
125
  "div",
108
126
  { className: "nut-cell__value nut-form-item__body" },
109
127
  React__default.createElement("div", { className: "nut-form-item__body__slots" }, childNode),
110
- item.length > 0 && React__default.createElement("div", { className: "nut-form-item__body__tips", style: { textAlign: errorMessageAlign } }, item[0].message)
128
+ item && item.length > 0 && React__default.createElement("div", { className: "nut-form-item__body__tips", style: { textAlign: errorMessageAlign } }, item[0].message)
111
129
  )
112
130
  );
113
131
  });