@nutui/nutui-react-taro 2.7.1 → 2.7.3

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 (47) hide show
  1. package/CHANGELOG.md +36 -10
  2. package/dist/esm/Animate/style/style.css +1 -1
  3. package/dist/esm/Elevator.js +1 -1
  4. package/dist/esm/Empty.js +1 -1
  5. package/dist/esm/Form/style/style.css +1 -1
  6. package/dist/esm/Form.js +6 -5
  7. package/dist/esm/FormItem/style/style.css +1 -1
  8. package/dist/esm/FormItem.js +1 -1
  9. package/dist/esm/Popover/style/style.css +1 -1
  10. package/dist/esm/Table/style/style.css +1 -1
  11. package/dist/esm/Tour/style/style.css +1 -1
  12. package/dist/esm/Uploader/style/style.css +1 -1
  13. package/dist/esm/Uploader.js +1 -1
  14. package/dist/esm/{elevator.taro-Bsc8PcT0.js → elevator.taro-C0Gs93x7.js} +5 -3
  15. package/dist/esm/{empty.taro-Dt07kty5.js → empty.taro-DhCHSdca.js} +9 -1
  16. package/dist/esm/{formitem.taro-CEWRz5EJ.js → formitem.taro-CU6rrcJD.js} +105 -47
  17. package/dist/esm/nutui-react.es.js +4 -4
  18. package/dist/esm/{uploader.taro-CceZ5Y4t.js → uploader.taro-C3hV5Aih.js} +3 -1
  19. package/dist/locales/base.js +1 -1
  20. package/dist/locales/en-US.js +1 -1
  21. package/dist/locales/id-ID.js +1 -1
  22. package/dist/locales/tr-TR.js +1 -1
  23. package/dist/locales/zh-CN.js +1 -1
  24. package/dist/locales/zh-TW.js +1 -1
  25. package/dist/locales/zh-UG.js +1 -1
  26. package/dist/nutui.react.es.js +247 -148
  27. package/dist/nutui.react.umd.js +246 -147
  28. package/dist/packages/animate/animate.scss +0 -3
  29. package/dist/packages/form/form.scss +0 -68
  30. package/dist/packages/formitem/formitem.scss +90 -21
  31. package/dist/packages/popover/popover.scss +16 -11
  32. package/dist/packages/table/table.scss +1 -0
  33. package/dist/packages/uploader/uploader.scss +2 -1
  34. package/dist/style.css +1 -1
  35. package/dist/styles/variables.scss +1 -0
  36. package/dist/types/packages/configprovider/types.d.ts +1 -1
  37. package/dist/types/packages/empty/types.d.ts +10 -1
  38. package/dist/types/packages/empty/utils.d.ts +2 -0
  39. package/dist/types/packages/form/form.d.ts +2 -0
  40. package/dist/types/packages/form/form.taro.d.ts +10 -0
  41. package/dist/types/packages/form/types.d.ts +2 -1
  42. package/dist/types/packages/formitem/formitem.d.ts +1 -0
  43. package/dist/types/packages/formitem/formitem.taro.d.ts +1 -0
  44. package/dist/types/packages/video/video.d.ts +6 -2
  45. package/dist/types/utils/merge.d.ts +1 -0
  46. package/dist/types/utils/to-array.d.ts +1 -0
  47. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * @nutui/nutui-react-taro v2.7.1 Fri Nov 22 2024 15:43:06 GMT+0800 (Central Standard Time)
2
+ * @nutui/nutui-react-taro v2.7.3 Fri Dec 13 2024 15:47:49 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import * as React from "react";
7
7
  import React__default, { useCallback, createContext, useContext, useState, useRef, useEffect, useMemo as useMemo$1, useImperativeHandle, isValidElement, forwardRef, Component, Children } from "react";
8
8
  import Taro, { getEnv, createSelectorQuery, usePageScroll, getSystemInfoSync, pageScrollTo, nextTick, ENV_TYPE, useReady, canvasToTempFilePath, uploadFile, chooseMedia, chooseImage, Events, getCurrentInstance, createInnerAudioContext, getSystemInfo, createOffscreenCanvas } from "@tarojs/taro";
9
- import { Image as Image$2, View, ScrollView, PickerView, PickerViewColumn, Input as Input$1, Textarea, Swiper as Swiper$1, SwiperItem as SwiperItem$1, Video as Video$1, Canvas } from "@tarojs/components";
9
+ import { Image as Image$2, View, ScrollView, PickerView, PickerViewColumn, Form as Form$1, Text, Input as Input$1, Textarea, Swiper as Swiper$1, SwiperItem as SwiperItem$1, Video as Video$1, Canvas } from "@tarojs/components";
10
10
  import ReactDOM, { createPortal } from "react-dom";
11
11
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
12
12
  function getDefaultExportFromCjs(x2) {
@@ -4180,6 +4180,21 @@ const BackTop = (props) => {
4180
4180
  return /* @__PURE__ */ React__default.createElement("div", { className: cls, style: styles, onClick: (e2) => goTop(e2) }, children || /* @__PURE__ */ React__default.createElement(N, { size: 19, className: "nut-backtop-main" }));
4181
4181
  };
4182
4182
  BackTop.displayName = "NutBackTop";
4183
+ const idCounter = {};
4184
+ function uniqueId(prefix = "$nut$") {
4185
+ if (!idCounter[prefix]) {
4186
+ idCounter[prefix] = 0;
4187
+ }
4188
+ const id = ++idCounter[prefix];
4189
+ if (prefix === "$nut$") {
4190
+ return `${id}`;
4191
+ }
4192
+ return `${prefix}${id}`;
4193
+ }
4194
+ function useUuid() {
4195
+ const idRef = useRef(uniqueId());
4196
+ return idRef.current;
4197
+ }
4183
4198
  const elevatorContext = createContext({});
4184
4199
  const defaultProps$1i = {
4185
4200
  ...ComponentDefaults,
@@ -4211,6 +4226,7 @@ const Elevator = (props) => {
4211
4226
  ...defaultProps$1i,
4212
4227
  ...props
4213
4228
  };
4229
+ const uuid = useUuid();
4214
4230
  const classPrefix2 = "nut-elevator";
4215
4231
  const listview = useRef(null);
4216
4232
  const initData = {
@@ -4247,7 +4263,7 @@ const Elevator = (props) => {
4247
4263
  state.current.listHeight.push(height2);
4248
4264
  for (let i2 = 0; i2 < state.current.listGroup.length; i2++) {
4249
4265
  const query = createSelectorQuery();
4250
- query.selectAll(`.${className} .nut-elevator-item-${i2}`).boundingClientRect();
4266
+ query.selectAll(`.${classPrefix2}-${uuid} .nut-elevator-item-${i2}`).boundingClientRect();
4251
4267
  query.exec((res) => {
4252
4268
  if (res[0][0]) height2 += res[0][0].height;
4253
4269
  state.current.listHeight.push(height2);
@@ -4306,7 +4322,7 @@ const Elevator = (props) => {
4306
4322
  };
4307
4323
  const setListGroup = () => {
4308
4324
  if (listview.current) {
4309
- createSelectorQuery().selectAll(`.${className} .nut-elevator-list-item`).node((el) => {
4325
+ createSelectorQuery().selectAll(`.${classPrefix2}-${uuid} .nut-elevator-list-item`).node((el) => {
4310
4326
  state.current.listGroup = [...Object.keys(el)];
4311
4327
  calculateHeight();
4312
4328
  }).exec();
@@ -4340,86 +4356,96 @@ const Elevator = (props) => {
4340
4356
  });
4341
4357
  }
4342
4358
  }, [listview]);
4343
- return /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2} ${className}`, style, ...rest }, /* @__PURE__ */ React__default.createElement(
4359
+ return /* @__PURE__ */ React__default.createElement(
4344
4360
  "div",
4345
4361
  {
4346
- className: `${classPrefix2}-list`,
4347
- style: { height: Number.isNaN(+height) ? height : `${height}px` }
4362
+ className: `${classPrefix2} ${className} ${classPrefix2}-${uuid}`,
4363
+ style,
4364
+ ...rest
4348
4365
  },
4349
4366
  /* @__PURE__ */ React__default.createElement(
4350
- ScrollView,
4367
+ "div",
4351
4368
  {
4352
- scrollTop,
4353
- scrollY: true,
4354
- scrollWithAnimation: true,
4355
- scrollAnchoring: true,
4356
- className: `${classPrefix2}-list-inner`,
4357
- type: "list",
4358
- ref: listview,
4359
- onScroll: listViewScroll,
4360
- onTouchStart: (e2) => {
4361
- scrolling.current = false;
4362
- }
4369
+ className: `${classPrefix2}-list`,
4370
+ style: { height: Number.isNaN(+height) ? height : `${height}px` }
4371
+ },
4372
+ /* @__PURE__ */ React__default.createElement(
4373
+ ScrollView,
4374
+ {
4375
+ scrollTop,
4376
+ scrollY: true,
4377
+ scrollWithAnimation: true,
4378
+ scrollAnchoring: true,
4379
+ className: `${classPrefix2}-list-inner`,
4380
+ type: "list",
4381
+ ref: listview,
4382
+ onScroll: listViewScroll,
4383
+ onTouchStart: (e2) => {
4384
+ scrolling.current = false;
4385
+ }
4386
+ },
4387
+ list.map((item, idx) => {
4388
+ return /* @__PURE__ */ React__default.createElement(
4389
+ "div",
4390
+ {
4391
+ className: `${classPrefix2}-list-item nut-elevator-item-${idx}`,
4392
+ key: idx
4393
+ },
4394
+ /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-list-item-code` }, item[floorKey]),
4395
+ /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, item.list.map((subitem) => {
4396
+ return /* @__PURE__ */ React__default.createElement(
4397
+ "div",
4398
+ {
4399
+ className: classNames({
4400
+ [`${classPrefix2}-list-item-name`]: true,
4401
+ [`${classPrefix2}-list-item-name-highcolor`]: currentData.id === subitem.id && currentKey === item[floorKey]
4402
+ }),
4403
+ key: subitem.id,
4404
+ onClick: () => handleClickItem(item[floorKey], subitem)
4405
+ },
4406
+ children ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(elevatorContext.Provider, { value: subitem }, children)) : subitem.name
4407
+ );
4408
+ }))
4409
+ );
4410
+ })
4411
+ )
4412
+ ),
4413
+ showKeys ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, list.length && scrollStart ? /* @__PURE__ */ React__default.createElement(
4414
+ "div",
4415
+ {
4416
+ className: classNames({
4417
+ [`${classPrefix2}-code-current`]: true,
4418
+ [`${classPrefix2}-code-current-current`]: true
4419
+ })
4363
4420
  },
4364
- list.map((item, idx) => {
4421
+ list[codeIndex][floorKey]
4422
+ ) : null, /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-bars` }, /* @__PURE__ */ React__default.createElement(
4423
+ "div",
4424
+ {
4425
+ className: `${classPrefix2}-bars-inner`,
4426
+ onTouchStart: (event) => touchStart(event),
4427
+ onTouchMove: (event) => touchMove(event),
4428
+ onTouchEnd: touchEnd,
4429
+ style: { touchAction: "pan-y" }
4430
+ },
4431
+ list.map((item, index) => {
4365
4432
  return /* @__PURE__ */ React__default.createElement(
4366
4433
  "div",
4367
4434
  {
4368
- className: `${classPrefix2}-list-item nut-elevator-item-${idx}`,
4369
- key: idx
4435
+ className: classNames({
4436
+ [`${classPrefix2}-bars-inner-item`]: true,
4437
+ [`${classPrefix2}-bars-inner-item-active`]: item[floorKey] === list[codeIndex][floorKey]
4438
+ }),
4439
+ "data-index": index,
4440
+ key: index,
4441
+ onClick: () => handleClickIndex(item[floorKey])
4370
4442
  },
4371
- /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-list-item-code` }, item[floorKey]),
4372
- /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, item.list.map((subitem) => {
4373
- return /* @__PURE__ */ React__default.createElement(
4374
- "div",
4375
- {
4376
- className: classNames({
4377
- [`${classPrefix2}-list-item-name`]: true,
4378
- [`${classPrefix2}-list-item-name-highcolor`]: currentData.id === subitem.id && currentKey === item[floorKey]
4379
- }),
4380
- key: subitem.id,
4381
- onClick: () => handleClickItem(item[floorKey], subitem)
4382
- },
4383
- children ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(elevatorContext.Provider, { value: subitem }, children)) : subitem.name
4384
- );
4385
- }))
4443
+ item[floorKey]
4386
4444
  );
4387
4445
  })
4388
- )
4389
- ), showKeys ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, list.length && scrollStart ? /* @__PURE__ */ React__default.createElement(
4390
- "div",
4391
- {
4392
- className: classNames({
4393
- [`${classPrefix2}-code-current`]: true,
4394
- [`${classPrefix2}-code-current-current`]: true
4395
- })
4396
- },
4397
- list[codeIndex][floorKey]
4398
- ) : null, /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-bars` }, /* @__PURE__ */ React__default.createElement(
4399
- "div",
4400
- {
4401
- className: `${classPrefix2}-bars-inner`,
4402
- onTouchStart: (event) => touchStart(event),
4403
- onTouchMove: (event) => touchMove(event),
4404
- onTouchEnd: touchEnd,
4405
- style: { touchAction: "pan-y" }
4406
- },
4407
- list.map((item, index) => {
4408
- return /* @__PURE__ */ React__default.createElement(
4409
- "div",
4410
- {
4411
- className: classNames({
4412
- [`${classPrefix2}-bars-inner-item`]: true,
4413
- [`${classPrefix2}-bars-inner-item-active`]: item[floorKey] === list[codeIndex][floorKey]
4414
- }),
4415
- "data-index": index,
4416
- key: index,
4417
- onClick: () => handleClickIndex(item[floorKey])
4418
- },
4419
- item[floorKey]
4420
- );
4421
- })
4422
- ))) : null, sticky && scrollY > 0 ? /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-list-fixed` }, /* @__PURE__ */ React__default.createElement("span", { className: `${classPrefix2}-list-fixed-title` }, list[codeIndex][floorKey])) : null);
4446
+ ))) : null,
4447
+ sticky && scrollY > 0 ? /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-list-fixed` }, /* @__PURE__ */ React__default.createElement("span", { className: `${classPrefix2}-list-fixed-title` }, list[codeIndex][floorKey])) : null
4448
+ );
4423
4449
  };
4424
4450
  Elevator.displayName = "NutElevator";
4425
4451
  Elevator.Context = elevatorContext;
@@ -5205,21 +5231,6 @@ function requestAniFrame() {
5205
5231
  };
5206
5232
  }
5207
5233
  const requestAniFrame$1 = requestAniFrame();
5208
- const idCounter = {};
5209
- function uniqueId(prefix = "$nut$") {
5210
- if (!idCounter[prefix]) {
5211
- idCounter[prefix] = 0;
5212
- }
5213
- const id = ++idCounter[prefix];
5214
- if (prefix === "$nut$") {
5215
- return `${id}`;
5216
- }
5217
- return `${prefix}${id}`;
5218
- }
5219
- function useUuid() {
5220
- const idRef = useRef(uniqueId());
5221
- return idRef.current;
5222
- }
5223
5234
  const defaultProps$18 = {
5224
5235
  ...ComponentDefaults,
5225
5236
  tabStyle: {},
@@ -9829,6 +9840,25 @@ Schema.register = function register(type4, validator) {
9829
9840
  Schema.warning = warning;
9830
9841
  Schema.messages = messages;
9831
9842
  Schema.validators = validators;
9843
+ function merge(...objects) {
9844
+ const result = Array.isArray(objects[0]) ? [] : {};
9845
+ function mergeHelper(obj, path = []) {
9846
+ for (const [key, value] of Object.entries(obj)) {
9847
+ const newPath = [...path, key];
9848
+ if (Array.isArray(value)) {
9849
+ result[key] = [...value];
9850
+ } else if (typeof value === "object" && value !== null) {
9851
+ if (path.some((p) => p === value)) continue;
9852
+ if (!result[key]) result[key] = {};
9853
+ mergeHelper(value, newPath);
9854
+ } else {
9855
+ result[key] = value;
9856
+ }
9857
+ }
9858
+ }
9859
+ objects.filter((obj) => !!obj).forEach((obj) => mergeHelper(obj));
9860
+ return result;
9861
+ }
9832
9862
  const SECRET = "NUT_FORM_INTERNAL";
9833
9863
  class FormStore {
9834
9864
  constructor() {
@@ -9861,17 +9891,16 @@ class FormStore {
9861
9891
  });
9862
9892
  return fieldsValue;
9863
9893
  };
9864
- this.setInitialValues = (values, init) => {
9894
+ this.setInitialValues = (initialValues, init) => {
9895
+ this.initialValues = initialValues || {};
9865
9896
  if (init) {
9866
- this.initialValues = values;
9867
- this.store = values;
9897
+ const nextStore = merge(initialValues, this.store);
9898
+ this.updateStore(nextStore);
9868
9899
  }
9869
9900
  };
9870
- this.setFieldsValue = (newStore, needValidate = true) => {
9871
- this.store = {
9872
- ...this.store,
9873
- ...newStore
9874
- };
9901
+ this.setFieldsValue = (newStore) => {
9902
+ const nextStore = merge(this.store, newStore);
9903
+ this.updateStore(nextStore);
9875
9904
  this.fieldEntities.forEach((entity) => {
9876
9905
  const { name } = entity.props;
9877
9906
  Object.keys(newStore).forEach((key) => {
@@ -9889,7 +9918,12 @@ class FormStore {
9889
9918
  item.entity.onStoreChange("update");
9890
9919
  }
9891
9920
  });
9892
- needValidate && this.validateFields();
9921
+ };
9922
+ this.setFieldValue = (name, value) => {
9923
+ const store = {
9924
+ [name]: value
9925
+ };
9926
+ this.setFieldsValue(store);
9893
9927
  };
9894
9928
  this.setCallback = (callback) => {
9895
9929
  this.callbacks = {
@@ -9900,6 +9934,10 @@ class FormStore {
9900
9934
  this.validateEntities = async (entity, errs) => {
9901
9935
  var _a;
9902
9936
  const { name, rules: rules2 = [] } = entity.props;
9937
+ if (!name) {
9938
+ console.warn("Form field missing name property");
9939
+ return;
9940
+ }
9903
9941
  const descriptor = {};
9904
9942
  if (rules2.length) {
9905
9943
  if (rules2.length > 1) {
@@ -9955,7 +9993,8 @@ class FormStore {
9955
9993
  };
9956
9994
  this.resetFields = () => {
9957
9995
  this.errors.length = 0;
9958
- this.store = this.initialValues;
9996
+ const nextStore = merge({}, this.initialValues);
9997
+ this.updateStore(nextStore);
9959
9998
  this.fieldEntities.forEach((entity) => {
9960
9999
  entity.onStoreChange("reset");
9961
10000
  });
@@ -9990,6 +10029,7 @@ class FormStore {
9990
10029
  getFieldValue: this.getFieldValue,
9991
10030
  getFieldsValue: this.getFieldsValue,
9992
10031
  setFieldsValue: this.setFieldsValue,
10032
+ setFieldValue: this.setFieldValue,
9993
10033
  resetFields: this.resetFields,
9994
10034
  validateFields: this.validateFields,
9995
10035
  submit: this.submit,
@@ -10004,6 +10044,9 @@ class FormStore {
10004
10044
  }
10005
10045
  };
10006
10046
  }
10047
+ updateStore(nextStore) {
10048
+ this.store = nextStore;
10049
+ }
10007
10050
  }
10008
10051
  const useForm = (form) => {
10009
10052
  const formRef = useRef();
@@ -10021,7 +10064,9 @@ const defaultProps$Y = {
10021
10064
  ...ComponentDefaults,
10022
10065
  labelPosition: "right",
10023
10066
  starPosition: "left",
10067
+ disabled: false,
10024
10068
  divider: false,
10069
+ validateTrigger: "onChange",
10025
10070
  onFinish: (values) => {
10026
10071
  },
10027
10072
  onFinishFailed: (values, errorFields) => {
@@ -10042,8 +10087,10 @@ const Form = React__default.forwardRef(
10042
10087
  children,
10043
10088
  initialValues,
10044
10089
  divider,
10090
+ disabled,
10045
10091
  onFinish,
10046
10092
  onFinishFailed,
10093
+ validateTrigger,
10047
10094
  labelPosition,
10048
10095
  starPosition,
10049
10096
  form
@@ -10071,7 +10118,7 @@ const Form = React__default.forwardRef(
10071
10118
  mountRef.current = true;
10072
10119
  }
10073
10120
  return /* @__PURE__ */ React__default.createElement(
10074
- "form",
10121
+ Form$1,
10075
10122
  {
10076
10123
  className: classNames(
10077
10124
  classPrefix2,
@@ -10090,7 +10137,13 @@ const Form = React__default.forwardRef(
10090
10137
  resetFields();
10091
10138
  }
10092
10139
  },
10093
- /* @__PURE__ */ React__default.createElement(Cell.Group, { divider }, /* @__PURE__ */ React__default.createElement(Context.Provider, { value: formInstance }, children), footer ? /* @__PURE__ */ React__default.createElement(Cell, { className: `${classPrefix2}-footer` }, footer) : null)
10140
+ /* @__PURE__ */ React__default.createElement(Cell.Group, { divider }, /* @__PURE__ */ React__default.createElement(
10141
+ Context.Provider,
10142
+ {
10143
+ value: { formInstance, labelPosition, disabled, validateTrigger }
10144
+ },
10145
+ children
10146
+ ), footer ? /* @__PURE__ */ React__default.createElement(Cell, { className: `${classPrefix2}-footer` }, footer) : null)
10094
10147
  );
10095
10148
  }
10096
10149
  );
@@ -10104,6 +10157,12 @@ function isForwardRefComponent(component) {
10104
10157
  }
10105
10158
  ).$$typeof === component.type.$$typeof;
10106
10159
  }
10160
+ function toArray(value) {
10161
+ if (value === void 0 || value === null) {
10162
+ return [];
10163
+ }
10164
+ return Array.isArray(value) ? value : [value];
10165
+ }
10107
10166
  const defaultProps$X = {
10108
10167
  ...ComponentDefaults,
10109
10168
  required: false,
@@ -10111,7 +10170,6 @@ const defaultProps$X = {
10111
10170
  label: "",
10112
10171
  rules: [{ required: false, message: "" }],
10113
10172
  errorMessageAlign: "left",
10114
- validateTrigger: "onChange",
10115
10173
  shouldUpdate: false,
10116
10174
  noStyle: false
10117
10175
  };
@@ -10120,15 +10178,21 @@ const _FormItem = class _FormItem extends React__default.Component {
10120
10178
  super(props);
10121
10179
  this.getControlled = (children) => {
10122
10180
  var _a;
10123
- const { setFieldsValue, getFieldValue } = this.context;
10124
- const { dispatch } = this.context.getInternal(SECRET);
10181
+ const { setFieldsValue, getFieldValue } = this.context.formInstance;
10182
+ const { dispatch } = this.context.formInstance.getInternal(SECRET);
10125
10183
  const { name = "" } = this.props;
10126
10184
  if ((_a = children == null ? void 0 : children.props) == null ? void 0 : _a.defaultValue) {
10127
- console.warn("通过 initialValue 设置初始值");
10185
+ if (process.env.NODE_ENV !== "production") {
10186
+ console.warn(
10187
+ "[NutUI] FormItem:",
10188
+ "请通过 initialValue 设置初始值,而不是 defaultValue"
10189
+ );
10190
+ }
10128
10191
  }
10129
10192
  const fieldValue = getFieldValue(name);
10130
10193
  const controlled = {
10131
10194
  ...children.props,
10195
+ className: children.props.className,
10132
10196
  [this.props.valuePropName || "value"]: fieldValue !== void 0 ? fieldValue : this.props.initialValue,
10133
10197
  [this.props.trigger || "onChange"]: (...args) => {
10134
10198
  const originOnChange = children.props[this.props.trigger || "onChange"];
@@ -10139,27 +10203,25 @@ const _FormItem = class _FormItem extends React__default.Component {
10139
10203
  if (this.props.getValueFromEvent) {
10140
10204
  next = this.props.getValueFromEvent(...args);
10141
10205
  }
10142
- setFieldsValue({ [name]: next }, false);
10206
+ setFieldsValue({ [name]: next });
10143
10207
  }
10144
10208
  };
10145
10209
  const { validateTrigger } = this.props;
10146
- let validateTriggers = [this.props.trigger || "onChange"];
10147
- if (validateTrigger) {
10148
- validateTriggers = typeof validateTrigger === "string" ? [validateTrigger] : [...validateTrigger];
10149
- validateTriggers.forEach((trigger) => {
10150
- const originTrigger = controlled[trigger];
10151
- controlled[trigger] = (...args) => {
10152
- if (originTrigger) {
10153
- originTrigger(...args);
10154
- }
10155
- if (this.props.rules && this.props.rules.length) {
10156
- dispatch({
10157
- name: this.props.name
10158
- });
10159
- }
10160
- };
10161
- });
10162
- }
10210
+ const mergedValidateTrigger = validateTrigger || this.context.validateTrigger;
10211
+ const validateTriggers = toArray(mergedValidateTrigger);
10212
+ validateTriggers.forEach((trigger) => {
10213
+ const originTrigger = controlled[trigger];
10214
+ controlled[trigger] = (...args) => {
10215
+ if (originTrigger) {
10216
+ originTrigger(...args);
10217
+ }
10218
+ if (this.props.rules && this.props.rules.length) {
10219
+ dispatch({
10220
+ name: this.props.name
10221
+ });
10222
+ }
10223
+ };
10224
+ });
10163
10225
  if (isForwardRefComponent(children)) {
10164
10226
  controlled.ref = (componentInstance) => {
10165
10227
  const originRef = children.ref;
@@ -10183,7 +10245,7 @@ const _FormItem = class _FormItem extends React__default.Component {
10183
10245
  };
10184
10246
  this.onStoreChange = (type4) => {
10185
10247
  if (type4 === "reset") {
10186
- this.context.errors[this.props.name] = [];
10248
+ this.context.formInstance.errors[this.props.name] = [];
10187
10249
  this.refresh();
10188
10250
  } else {
10189
10251
  this.forceUpdate();
@@ -10198,37 +10260,50 @@ const _FormItem = class _FormItem extends React__default.Component {
10198
10260
  rules: rules2,
10199
10261
  className,
10200
10262
  style,
10201
- align,
10202
- errorMessageAlign
10263
+ errorMessageAlign,
10264
+ align
10203
10265
  } = {
10204
10266
  ...defaultProps$X,
10205
10267
  ...this.props
10206
10268
  };
10207
10269
  const requiredInRules = rules2 == null ? void 0 : rules2.some((rule) => rule.required);
10208
- const item = name ? this.context.errors[name] : [];
10209
- const { starPosition } = this.context;
10210
- const renderStar = (required4 || requiredInRules) && /* @__PURE__ */ React__default.createElement("i", { className: "required" });
10211
- const renderLabel = /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, starPosition === "left" ? renderStar : null, label, starPosition === "right" ? renderStar : null);
10270
+ const item = name ? this.context.formInstance.errors[name] : [];
10271
+ const { starPosition } = this.context.formInstance;
10272
+ const renderStar = (required4 || requiredInRules) && /* @__PURE__ */ React__default.createElement(Text, { className: "nut-form-item-label-required required" }, "*");
10273
+ const renderLabel = /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Text, { className: "nut-form-item-labeltxt" }, starPosition === "left" ? renderStar : null, label), starPosition === "right" ? renderStar : null);
10212
10274
  return /* @__PURE__ */ React__default.createElement(
10213
10275
  Cell,
10214
10276
  {
10215
- className: `nut-form-item ${className}`,
10277
+ className: `${this.getClassNameWithDirection("nut-form-item")} ${className}`,
10216
10278
  style,
10217
10279
  align,
10218
10280
  onClick: (e2) => this.props.onClick && this.props.onClick(e2, this.componentRef)
10219
10281
  },
10220
- label ? /* @__PURE__ */ React__default.createElement("div", { className: "nut-cell-title nut-form-item-label" }, renderLabel) : null,
10221
- /* @__PURE__ */ React__default.createElement("div", { className: "nut-cell-value nut-form-item-body" }, /* @__PURE__ */ React__default.createElement("div", { className: "nut-form-item-body-slots" }, childNode), /* @__PURE__ */ React__default.createElement(
10222
- "div",
10282
+ label ? /* @__PURE__ */ React__default.createElement(
10283
+ View,
10223
10284
  {
10224
- className: "nut-form-item-body-tips",
10225
- style: {
10226
- textAlign: errorMessageAlign,
10227
- display: (item == null ? void 0 : item.length) ? "initial" : "none"
10228
- }
10285
+ className: `nut-cell-title ${this.getClassNameWithDirection("nut-form-item-label")}`
10229
10286
  },
10230
- (_a = item == null ? void 0 : item[0]) == null ? void 0 : _a.message
10231
- ))
10287
+ renderLabel
10288
+ ) : null,
10289
+ /* @__PURE__ */ React__default.createElement(
10290
+ View,
10291
+ {
10292
+ className: `nut-cell-value ${this.getClassNameWithDirection("nut-form-item-body")}`
10293
+ },
10294
+ /* @__PURE__ */ React__default.createElement(View, { className: "nut-form-item-body-slots" }, childNode),
10295
+ /* @__PURE__ */ React__default.createElement(
10296
+ View,
10297
+ {
10298
+ className: "nut-form-item-body-tips",
10299
+ style: {
10300
+ textAlign: errorMessageAlign,
10301
+ display: (item == null ? void 0 : item.length) ? "initial" : "none"
10302
+ }
10303
+ },
10304
+ (_a = item == null ? void 0 : item[0]) == null ? void 0 : _a.message
10305
+ )
10306
+ )
10232
10307
  );
10233
10308
  };
10234
10309
  this.componentRef = React__default.createRef();
@@ -10237,14 +10312,14 @@ const _FormItem = class _FormItem extends React__default.Component {
10237
10312
  };
10238
10313
  }
10239
10314
  componentDidMount() {
10240
- const { store = {}, setInitialValues } = this.context.getInternal(SECRET);
10315
+ const { store = {}, setInitialValues } = this.context.formInstance.getInternal(SECRET);
10241
10316
  if (this.props.initialValue && this.props.name && !Object.keys(store).includes(this.props.name)) {
10242
10317
  setInitialValues(
10243
10318
  { ...store, [this.props.name]: this.props.initialValue },
10244
10319
  true
10245
10320
  );
10246
10321
  }
10247
- const { registerField, registerUpdate } = this.context.getInternal(SECRET);
10322
+ const { registerField, registerUpdate } = this.context.formInstance.getInternal(SECRET);
10248
10323
  this.cancelRegister = registerField(this);
10249
10324
  this.eventOff = registerUpdate(this, this.props.shouldUpdate);
10250
10325
  }
@@ -10256,6 +10331,12 @@ const _FormItem = class _FormItem extends React__default.Component {
10256
10331
  this.eventOff();
10257
10332
  }
10258
10333
  }
10334
+ getClassNameWithDirection(className) {
10335
+ if (className && this.context.labelPosition) {
10336
+ return `${className} ${className}-${this.context.labelPosition}`;
10337
+ }
10338
+ return className;
10339
+ }
10259
10340
  render() {
10260
10341
  const { children } = this.props;
10261
10342
  const child = Array.isArray(children) ? children[0] : children;
@@ -10266,9 +10347,16 @@ const _FormItem = class _FormItem extends React__default.Component {
10266
10347
  this.getControlled(child)
10267
10348
  );
10268
10349
  } else {
10269
- returnChildNode = child(this.context);
10350
+ returnChildNode = child(this.context.formInstance);
10270
10351
  }
10271
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, { key: this.state.resetCount }, this.props.noStyle ? returnChildNode : this.renderLayout(returnChildNode));
10352
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, { key: this.state.resetCount }, /* @__PURE__ */ React__default.createElement(
10353
+ View,
10354
+ {
10355
+ className: this.context.disabled ? "nut-form-item-disabled" : "",
10356
+ catchMove: this.context.disabled
10357
+ },
10358
+ this.props.noStyle ? returnChildNode : this.renderLayout(returnChildNode)
10359
+ ));
10272
10360
  }
10273
10361
  };
10274
10362
  _FormItem.defaultProps = defaultProps$X;
@@ -13150,6 +13238,7 @@ const InternalUploader = (props, ref) => {
13150
13238
  }
13151
13239
  };
13152
13240
  const readFile = (files) => {
13241
+ const results = [];
13153
13242
  files.forEach((file, index) => {
13154
13243
  var _a, _b;
13155
13244
  let fileType = file.type;
@@ -13185,8 +13274,9 @@ const InternalUploader = (props, ref) => {
13185
13274
  fileItem.url = fileType === "video" ? file.thumbTempFilePath : filepath;
13186
13275
  }
13187
13276
  executeUpload(fileItem, index);
13188
- setFileList([...fileList, fileItem]);
13277
+ results.push(fileItem);
13189
13278
  });
13279
+ setFileList([...fileList, ...results]);
13190
13280
  };
13191
13281
  const filterFiles = (files) => {
13192
13282
  const maximum = maxCount * 1;
@@ -13782,6 +13872,12 @@ const Drag = (props) => {
13782
13872
  );
13783
13873
  };
13784
13874
  Drag.displayName = "NutDrag";
13875
+ const getButtonType = (actions, index) => {
13876
+ if (!actions || actions.length === 0) return "default";
13877
+ const action = actions[index];
13878
+ if (action.type) return action.type;
13879
+ return actions.length > 1 && index === 0 ? "default" : "primary";
13880
+ };
13785
13881
  const defaultStatus = {
13786
13882
  empty: "https://storage.360buyimg.com/imgtools/30186cfda0-0d3eee40-c0ac-11ee-9382-9125782aa3b8.png",
13787
13883
  error: "https://storage.360buyimg.com/imgtools/f3278d0ebb-0ce360c0-c0ac-11ee-8375-193101bb1a46.png",
@@ -13845,10 +13941,13 @@ const Empty = (props) => {
13845
13941
  [`${classPrefix$f}-actions-right`]: actions.length === 1,
13846
13942
  [`${classPrefix$f}-actions-left`]: actions.length > 1 && index === 0
13847
13943
  }),
13848
- type: `${actions.length > 1 && index === 0 ? "default" : "primary"}`,
13849
- size: "small",
13850
- fill: "outline",
13851
- key: `action-${index}`
13944
+ style: item.style,
13945
+ type: getButtonType(actions, index),
13946
+ size: item.size || "small",
13947
+ fill: item.fill || "outline",
13948
+ disabled: item.disabled || false,
13949
+ key: `action-${index}`,
13950
+ onClick: item.onClick || (() => void 0)
13852
13951
  },
13853
13952
  item == null ? void 0 : item.text
13854
13953
  );