@plasmicpkgs/antd5 0.0.124 → 0.0.126

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 (70) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/antd.esm.js +339 -233
  3. package/dist/antd.esm.js.map +1 -1
  4. package/dist/index.js +339 -233
  5. package/dist/index.js.map +1 -1
  6. package/dist/registerForm.d.ts +18 -15
  7. package/dist/utils.d.ts +2 -1
  8. package/package.json +4 -4
  9. package/skinny/registerAvatar.cjs.js +1 -1
  10. package/skinny/registerAvatar.esm.js +1 -1
  11. package/skinny/registerButton.cjs.js +1 -1
  12. package/skinny/registerButton.esm.js +1 -1
  13. package/skinny/registerCheckbox.cjs.js +1 -1
  14. package/skinny/registerCheckbox.esm.js +1 -1
  15. package/skinny/registerCollapse.cjs.js +1 -1
  16. package/skinny/registerCollapse.esm.js +1 -1
  17. package/skinny/registerColorPicker.cjs.js +1 -1
  18. package/skinny/registerColorPicker.esm.js +1 -1
  19. package/skinny/registerConfigProvider.cjs.js +1 -1
  20. package/skinny/registerConfigProvider.esm.js +1 -1
  21. package/skinny/registerDatePicker.cjs.js +1 -1
  22. package/skinny/registerDatePicker.esm.js +1 -1
  23. package/skinny/registerDrawer.cjs.js +1 -1
  24. package/skinny/registerDrawer.esm.js +1 -1
  25. package/skinny/registerDropdown.cjs.js +1 -1
  26. package/skinny/registerDropdown.esm.js +1 -1
  27. package/skinny/registerForm.cjs.js +304 -230
  28. package/skinny/registerForm.cjs.js.map +1 -1
  29. package/skinny/registerForm.d.ts +18 -15
  30. package/skinny/registerForm.esm.js +304 -230
  31. package/skinny/registerForm.esm.js.map +1 -1
  32. package/skinny/registerInput.cjs.js +1 -1
  33. package/skinny/registerInput.esm.js +1 -1
  34. package/skinny/registerMenu.cjs.js +1 -1
  35. package/skinny/registerMenu.esm.js +1 -1
  36. package/skinny/registerModal.cjs.js +1 -1
  37. package/skinny/registerModal.esm.js +1 -1
  38. package/skinny/registerPopover.cjs.js +1 -1
  39. package/skinny/registerPopover.esm.js +1 -1
  40. package/skinny/registerRadio.cjs.js +1 -1
  41. package/skinny/registerRadio.esm.js +1 -1
  42. package/skinny/registerRate.cjs.js +1 -1
  43. package/skinny/registerRate.esm.js +1 -1
  44. package/skinny/{registerSelect-3273fe93.esm.js → registerSelect-d2c8e1c0.esm.js} +2 -2
  45. package/skinny/{registerSelect-3273fe93.esm.js.map → registerSelect-d2c8e1c0.esm.js.map} +1 -1
  46. package/skinny/{registerSelect-f0e24345.cjs.js → registerSelect-dfdd1699.cjs.js} +2 -2
  47. package/skinny/{registerSelect-f0e24345.cjs.js.map → registerSelect-dfdd1699.cjs.js.map} +1 -1
  48. package/skinny/registerSelect.cjs.js +2 -2
  49. package/skinny/registerSelect.esm.js +2 -2
  50. package/skinny/registerSteps.cjs.js +1 -1
  51. package/skinny/registerSteps.esm.js +1 -1
  52. package/skinny/registerSwitch.cjs.js +1 -1
  53. package/skinny/registerSwitch.esm.js +1 -1
  54. package/skinny/registerTable.cjs.js +1 -1
  55. package/skinny/registerTable.esm.js +1 -1
  56. package/skinny/registerTabs.cjs.js +1 -1
  57. package/skinny/registerTabs.esm.js +1 -1
  58. package/skinny/registerTooltip.cjs.js +1 -1
  59. package/skinny/registerTooltip.esm.js +1 -1
  60. package/skinny/registerTree.cjs.js +1 -1
  61. package/skinny/registerTree.esm.js +1 -1
  62. package/skinny/registerUpload.cjs.js +1 -1
  63. package/skinny/registerUpload.esm.js +1 -1
  64. package/skinny/{utils-c2d6f0e8.cjs.js → utils-174b9d45.cjs.js} +39 -6
  65. package/skinny/utils-174b9d45.cjs.js.map +1 -0
  66. package/skinny/{utils-040cbe4d.esm.js → utils-7d8f2418.esm.js} +39 -7
  67. package/skinny/utils-7d8f2418.esm.js.map +1 -0
  68. package/skinny/utils.d.ts +2 -1
  69. package/skinny/utils-040cbe4d.esm.js.map +0 -1
  70. package/skinny/utils-c2d6f0e8.cjs.js.map +0 -1
package/dist/index.js CHANGED
@@ -140,12 +140,44 @@ class ErrorBoundary extends React__default.default.Component {
140
140
  return this.props.children;
141
141
  }
142
142
  }
143
- function get(obj, key, def, undef) {
144
- key = key.split ? key.split(".") : key;
145
- for (let p = 0; p < key.length; p++) {
146
- obj = obj ? obj[key[p]] : undef;
143
+ var hasOwnProp = Object.prototype.hasOwnProperty;
144
+ function isSafeKey(key) {
145
+ return key !== "__proto__" && key !== "prototype" && key !== "constructor";
146
+ }
147
+ function get(obj, path) {
148
+ var keys = Array.isArray(path) ? path : path.split(".");
149
+ for (var i = 0; i < keys.length; i++) {
150
+ var key = keys[i];
151
+ if (!obj || !hasOwnProp.call(obj, key) || !isSafeKey(key)) {
152
+ obj = void 0;
153
+ break;
154
+ }
155
+ obj = obj[key];
156
+ }
157
+ return obj;
158
+ }
159
+ function set(obj, path, value) {
160
+ var keys = Array.isArray(path) ? path : path.split(".");
161
+ for (var i = 0; i < keys.length - 1; i++) {
162
+ var key = keys[i];
163
+ if (!isSafeKey(key))
164
+ return;
165
+ if (hasOwnProp.call(obj, key))
166
+ obj[key] = {};
167
+ obj = obj[key];
168
+ }
169
+ obj[keys[i]] = value;
170
+ return value;
171
+ }
172
+ function pick(obj, ...paths) {
173
+ if (Object.keys(obj).length === 0) {
174
+ return obj;
175
+ }
176
+ const res = {};
177
+ for (const path of paths) {
178
+ set(res, path, get(obj, path));
147
179
  }
148
- return obj === undef ? def : obj;
180
+ return res;
149
181
  }
150
182
 
151
183
  var __defProp$o = Object.defineProperty;
@@ -2777,20 +2809,22 @@ const InternalFormInstanceContext = React__default.default.createContext(void 0)
2777
2809
  const FormLayoutContext = React__default.default.createContext(void 0);
2778
2810
  const Internal = React__default.default.forwardRef(
2779
2811
  (props, ref) => {
2780
- var _b, _c, _d, _e, _f;
2812
+ var _b, _c, _d, _e;
2781
2813
  const [form] = antd.Form.useForm();
2782
2814
  const values = form.getFieldsValue(true);
2783
2815
  const lastValue = React__default.default.useRef(values);
2784
2816
  const _a = props, {
2785
2817
  extendedOnValuesChange,
2786
2818
  forceRemount,
2787
- setRegisteredFields,
2788
- registeredFields
2819
+ formLayout,
2820
+ internalFieldCtx,
2821
+ setInternalFieldCtx
2789
2822
  } = _a, rest = __objRest$a(_a, [
2790
2823
  "extendedOnValuesChange",
2791
2824
  "forceRemount",
2792
- "setRegisteredFields",
2793
- "registeredFields"
2825
+ "formLayout",
2826
+ "internalFieldCtx",
2827
+ "setInternalFieldCtx"
2794
2828
  ]);
2795
2829
  let childrenNode;
2796
2830
  if (props.mode !== "simplified") {
@@ -2833,16 +2867,6 @@ const Internal = React__default.default.forwardRef(
2833
2867
  React__default.default.useEffect(() => {
2834
2868
  fireOnValuesChange();
2835
2869
  }, []);
2836
- const formLayout = React__default.default.useMemo(
2837
- () => {
2838
- var _a2;
2839
- return {
2840
- layout: props.layout,
2841
- labelSpan: (_a2 = props.labelCol) == null ? void 0 : _a2.span
2842
- };
2843
- },
2844
- [props.layout, (_c = props.labelCol) == null ? void 0 : _c.span]
2845
- );
2846
2870
  React__default.default.useImperativeHandle(ref, () => ({
2847
2871
  formInstance: form,
2848
2872
  setFieldsValue: (newValues) => {
@@ -2871,12 +2895,28 @@ const Internal = React__default.default.forwardRef(
2871
2895
  extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(form.getFieldsValue(true));
2872
2896
  }
2873
2897
  }));
2874
- const registerField = React__default.default.useCallback((fieldEntity) => {
2875
- setRegisteredFields((f) => [...f, fieldEntity]);
2876
- return () => {
2877
- setRegisteredFields((f) => f.filter((ent) => ent !== fieldEntity));
2878
- };
2879
- }, []);
2898
+ const registerField = React__default.default.useCallback(
2899
+ (fieldEntity) => {
2900
+ setInternalFieldCtx((ctx) => ({
2901
+ registeredFields: [...ctx.registeredFields, fieldEntity],
2902
+ preservedRegisteredFields: [
2903
+ ...ctx.preservedRegisteredFields,
2904
+ fieldEntity
2905
+ ]
2906
+ }));
2907
+ return () => {
2908
+ setInternalFieldCtx((ctx) => ({
2909
+ registeredFields: ctx.registeredFields.filter(
2910
+ (ent) => ent !== fieldEntity
2911
+ ),
2912
+ preservedRegisteredFields: ctx.preservedRegisteredFields.filter(
2913
+ (ent) => ent !== fieldEntity || fieldEntity.preserve
2914
+ )
2915
+ }));
2916
+ };
2917
+ },
2918
+ [setInternalFieldCtx]
2919
+ );
2880
2920
  return /* @__PURE__ */ React__default.default.createElement(
2881
2921
  InternalFormInstanceContext.Provider,
2882
2922
  {
@@ -2885,8 +2925,8 @@ const Internal = React__default.default.forwardRef(
2885
2925
  fireOnValuesChange,
2886
2926
  forceRemount,
2887
2927
  registerField,
2888
- registeredFields,
2889
- initialValues: (_d = props.initialValues) != null ? _d : {}
2928
+ internalFieldCtx,
2929
+ initialValues: (_c = props.initialValues) != null ? _c : {}
2890
2930
  }
2891
2931
  },
2892
2932
  /* @__PURE__ */ React__default.default.createElement(FormLayoutContext.Provider, { value: formLayout }, /* @__PURE__ */ React__default.default.createElement(
@@ -2900,11 +2940,19 @@ const Internal = React__default.default.forwardRef(
2900
2940
  },
2901
2941
  onFinish: () => {
2902
2942
  var _a2;
2903
- (_a2 = props.onFinish) == null ? void 0 : _a2.call(props, form.getFieldsValue(true));
2943
+ (_a2 = props.onFinish) == null ? void 0 : _a2.call(
2944
+ props,
2945
+ pick(
2946
+ form.getFieldsValue(true),
2947
+ ...internalFieldCtx.preservedRegisteredFields.map(
2948
+ (field) => field.fullPath
2949
+ )
2950
+ )
2951
+ );
2904
2952
  },
2905
2953
  form,
2906
- labelCol: ((_e = props.labelCol) == null ? void 0 : _e.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.labelCol,
2907
- wrapperCol: ((_f = props.wrapperCol) == null ? void 0 : _f.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.wrapperCol
2954
+ labelCol: ((_d = props.labelCol) == null ? void 0 : _d.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.labelCol,
2955
+ wrapperCol: ((_e = props.wrapperCol) == null ? void 0 : _e.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.wrapperCol
2908
2956
  }),
2909
2957
  /* @__PURE__ */ React__default.default.createElement("style", null, `
2910
2958
  .ant-form-item-explain + div, .ant-form-item-margin-offset {
@@ -2916,17 +2964,16 @@ const Internal = React__default.default.forwardRef(
2916
2964
  );
2917
2965
  }
2918
2966
  );
2919
- function useFormItemDefinitions(rawData, props, formRef, registeredFields) {
2967
+ function useFormItemDefinitions(rawData, props, formRef, commonFormCtxData) {
2920
2968
  const { mode, dataFormItems, setControlContextData } = props;
2921
2969
  const formInstance = formRef == null ? void 0 : formRef.formInstance;
2922
2970
  return React__default.default.useMemo(() => {
2923
2971
  const data = rawData && dataSources.normalizeData(rawData);
2924
2972
  const schema = data && (data == null ? void 0 : data.schema);
2925
2973
  if (mode !== "simplified" || !rawData || rawData.isLoading || rawData.error || !data || !schema || !data.data) {
2926
- setControlContextData == null ? void 0 : setControlContextData({
2927
- formInstance,
2928
- registeredFields
2929
- });
2974
+ setControlContextData == null ? void 0 : setControlContextData(__spreadValues$d({
2975
+ formInstance
2976
+ }, commonFormCtxData));
2930
2977
  return void 0;
2931
2978
  }
2932
2979
  const row = data.data.length > 0 ? data.data[0] : void 0;
@@ -2948,15 +2995,21 @@ function useFormItemDefinitions(rawData, props, formRef, registeredFields) {
2948
2995
  });
2949
2996
  }
2950
2997
  );
2951
- setControlContextData == null ? void 0 : setControlContextData({
2998
+ setControlContextData == null ? void 0 : setControlContextData(__spreadValues$d({
2952
2999
  schema: data.schema,
2953
3000
  minimalFullLengthFields,
2954
3001
  mergedFields,
2955
- formInstance,
2956
- registeredFields
2957
- });
3002
+ formInstance
3003
+ }, commonFormCtxData));
2958
3004
  return mergedFields;
2959
- }, [mode, setControlContextData, dataFormItems, rawData, formInstance]);
3005
+ }, [
3006
+ mode,
3007
+ setControlContextData,
3008
+ dataFormItems,
3009
+ rawData,
3010
+ formInstance,
3011
+ commonFormCtxData
3012
+ ]);
2960
3013
  }
2961
3014
  const useRawData = (props) => {
2962
3015
  const rawData = dataSources.usePlasmicDataOp(props.data);
@@ -2964,6 +3017,7 @@ const useRawData = (props) => {
2964
3017
  };
2965
3018
  const FormWrapper = React__default.default.forwardRef(
2966
3019
  (props, ref) => {
3020
+ var _a;
2967
3021
  const [remountKey, setRemountKey] = React__default.default.useState(0);
2968
3022
  const forceRemount = React__default.default.useCallback(
2969
3023
  () => setRemountKey((k) => k + 1),
@@ -2976,17 +3030,37 @@ const FormWrapper = React__default.default.forwardRef(
2976
3030
  forceRemount();
2977
3031
  }
2978
3032
  }, [previousInitialValues, props.initialValues]);
2979
- const [registeredFields, setRegisteredFields] = React__default.default.useState([]);
3033
+ const [internalFieldCtx, setInternalFieldCtx] = React__default.default.useState({
3034
+ registeredFields: [],
3035
+ preservedRegisteredFields: []
3036
+ });
2980
3037
  React__default.default.useImperativeHandle(
2981
3038
  ref,
2982
3039
  () => wrapperRef.current ? __spreadValues$d({}, wrapperRef.current) : {}
2983
3040
  );
3041
+ const formLayout = React__default.default.useMemo(
3042
+ () => {
3043
+ var _a2;
3044
+ return {
3045
+ layout: props.layout,
3046
+ labelSpan: (_a2 = props.labelCol) == null ? void 0 : _a2.span
3047
+ };
3048
+ },
3049
+ [props.layout, (_a = props.labelCol) == null ? void 0 : _a.span]
3050
+ );
3051
+ const commonFormCtxData = React__default.default.useMemo(
3052
+ () => ({
3053
+ layout: formLayout,
3054
+ internalFieldCtx
3055
+ }),
3056
+ [formLayout, internalFieldCtx]
3057
+ );
2984
3058
  const rawData = useRawData(props);
2985
3059
  const formItemDefinitions = useFormItemDefinitions(
2986
3060
  rawData,
2987
3061
  props,
2988
3062
  wrapperRef.current,
2989
- registeredFields
3063
+ commonFormCtxData
2990
3064
  );
2991
3065
  React__default.default.useEffect(() => {
2992
3066
  if (rawData && !rawData.isLoading) {
@@ -2999,7 +3073,7 @@ const FormWrapper = React__default.default.forwardRef(
2999
3073
  forceRemount();
3000
3074
  }
3001
3075
  }, [props.data]);
3002
- const _a = props, { dataFormItems, formItems, data } = _a, rest = __objRest$a(_a, ["dataFormItems", "formItems", "data"]);
3076
+ const _b = props, { dataFormItems, formItems, data } = _b, rest = __objRest$a(_b, ["dataFormItems", "formItems", "data"]);
3003
3077
  const actualFormItems = props.mode === "simplified" && formItemDefinitions ? formItemDefinitions : data ? dataFormItems : formItems;
3004
3078
  const previousFormItems = React__default.default.useRef([]);
3005
3079
  React__default.default.useEffect(() => {
@@ -3018,8 +3092,9 @@ const FormWrapper = React__default.default.forwardRef(
3018
3092
  key: remountKey
3019
3093
  }, rest), {
3020
3094
  forceRemount,
3021
- setRegisteredFields,
3022
- registeredFields,
3095
+ formLayout,
3096
+ internalFieldCtx,
3097
+ setInternalFieldCtx,
3023
3098
  formItems: rawData && rawData.isLoading ? previousFormItems.current : actualFormItems,
3024
3099
  ref: wrapperRef,
3025
3100
  style: isSchemaForm && isLoadingData ? {
@@ -3492,7 +3567,7 @@ function useFormInstanceMaybe() {
3492
3567
  return antd.Form.useFormInstance();
3493
3568
  }
3494
3569
  function FormItemWrapper(props) {
3495
- var _b;
3570
+ var _b, _c, _d;
3496
3571
  const _a = props, {
3497
3572
  rules: plasmicRules,
3498
3573
  description,
@@ -3516,6 +3591,7 @@ function FormItemWrapper(props) {
3516
3591
  const fullFormItemName = useFormItemFullName(name);
3517
3592
  const pathCtx = React__default.default.useContext(PathContext);
3518
3593
  const fieldEntity = React__default.default.useRef({
3594
+ preserve: (_b = props.preserve) != null ? _b : true,
3519
3595
  fullPath: pathCtx.fullPath,
3520
3596
  name
3521
3597
  }).current;
@@ -3526,30 +3602,26 @@ function FormItemWrapper(props) {
3526
3602
  ) : void 0;
3527
3603
  const layoutContext = React__default.default.useContext(FormLayoutContext);
3528
3604
  const inCanvas = !!host.usePlasmicCanvasContext();
3605
+ const {
3606
+ fireOnValuesChange,
3607
+ forceRemount,
3608
+ registerField,
3609
+ initialValues,
3610
+ internalFieldCtx
3611
+ } = (_c = React__default.default.useContext(InternalFormInstanceContext)) != null ? _c : {};
3529
3612
  if (inCanvas) {
3530
3613
  const form = useFormInstanceMaybe();
3531
3614
  const prevPropValues = React__default.default.useRef({
3532
3615
  initialValue: props.initialValue,
3533
3616
  name: props.name
3534
3617
  });
3535
- const fullPath = React__default.default.useContext(PathContext).fullPath;
3536
- const internalFormCtx = React__default.default.useContext(InternalFormInstanceContext);
3537
- const { fireOnValuesChange, forceRemount, registerField, initialValues } = internalFormCtx != null ? internalFormCtx : {};
3538
- (_b = props.setControlContextData) == null ? void 0 : _b.call(props, {
3539
- internalFormCtx,
3618
+ (_d = props.setControlContextData) == null ? void 0 : _d.call(props, {
3619
+ internalFieldCtx,
3540
3620
  formInstance: form,
3541
- parentFormItemPath: fullPath
3621
+ parentFormItemPath: pathCtx.fullPath,
3622
+ layout: layoutContext
3542
3623
  });
3543
3624
  React__default.default.useEffect(() => {
3544
- const unregister = registerField == null ? void 0 : registerField(fieldEntity);
3545
- return () => unregister == null ? void 0 : unregister();
3546
- }, []);
3547
- React__default.default.useEffect(() => {
3548
- fieldEntity.fullPath = [
3549
- ...pathCtx.fullPath,
3550
- ...props.name != null ? [props.name] : []
3551
- ];
3552
- fieldEntity.name = props.name;
3553
3625
  if (prevPropValues.current.name !== props.name) {
3554
3626
  forceRemount == null ? void 0 : forceRemount();
3555
3627
  }
@@ -3559,8 +3631,27 @@ function FormItemWrapper(props) {
3559
3631
  form == null ? void 0 : form.setFieldValue(fullFormItemName, props.initialValue);
3560
3632
  prevPropValues.current.initialValue = props.initialValue;
3561
3633
  fireOnValuesChange == null ? void 0 : fireOnValuesChange();
3562
- }, [form, props.initialValue, fullFormItemName]);
3634
+ }, [
3635
+ form,
3636
+ props.initialValue,
3637
+ pathCtx.fullPath,
3638
+ props.name,
3639
+ props.preserve
3640
+ ]);
3563
3641
  }
3642
+ React__default.default.useEffect(() => {
3643
+ var _a2;
3644
+ fieldEntity.fullPath = [
3645
+ ...pathCtx.fullPath,
3646
+ ...props.name != null ? [props.name] : []
3647
+ ];
3648
+ fieldEntity.name = props.name;
3649
+ fieldEntity.preserve = (_a2 = props.preserve) != null ? _a2 : true;
3650
+ }, [pathCtx.fullPath, props.name, props.preserve]);
3651
+ React__default.default.useEffect(() => {
3652
+ const unregister = registerField == null ? void 0 : registerField(fieldEntity);
3653
+ return () => unregister == null ? void 0 : unregister();
3654
+ }, []);
3564
3655
  return /* @__PURE__ */ React__default.default.createElement(
3565
3656
  FormItem,
3566
3657
  __spreadProps$9(__spreadValues$d({}, rest), {
@@ -3685,185 +3776,200 @@ const mapPlumeTypeToInputType = /* @__PURE__ */ new Map([
3685
3776
  ["checkbox", "Checkbox" /* Checkbox */],
3686
3777
  ["switch", "Checkbox" /* Checkbox */]
3687
3778
  ]);
3688
- const commonFormItemProps = (usage) => ({
3689
- name: {
3690
- type: "string",
3691
- required: true,
3692
- validator: (value, _props, ctx) => {
3693
- var _a, _b, _c;
3694
- const currFullPath = [...(_a = ctx == null ? void 0 : ctx.parentFormItemPath) != null ? _a : [], value];
3695
- const nameCounter = ((_c = (_b = ctx == null ? void 0 : ctx.internalFormCtx) == null ? void 0 : _b.registeredFields) != null ? _c : []).filter(
3696
- (formItem) => arrayEq(formItem.fullPath, currFullPath)
3697
- ).length;
3698
- return nameCounter === 1 ? true : `Repeated form item name: ${currFullPath.join(" \u2192 ")}`;
3779
+ function commonFormItemProps(usage) {
3780
+ const getFormItemProps = (ps, _ctx, { item }) => {
3781
+ if (usage === "simplified-form-item") {
3782
+ return item;
3783
+ } else {
3784
+ return ps;
3785
+ }
3786
+ };
3787
+ return {
3788
+ name: {
3789
+ type: "string",
3790
+ required: true,
3791
+ validator: (value, _ps, ctx) => {
3792
+ var _a, _b, _c;
3793
+ let currFullPath = [];
3794
+ if (usage === "simplified-form-item") {
3795
+ currFullPath = [value];
3796
+ } else {
3797
+ const formItemCtx = ctx;
3798
+ currFullPath = [...(_a = formItemCtx == null ? void 0 : formItemCtx.parentFormItemPath) != null ? _a : [], value];
3799
+ }
3800
+ const nameCounter = ((_c = (_b = ctx == null ? void 0 : ctx.internalFieldCtx) == null ? void 0 : _b.registeredFields) != null ? _c : []).filter((formItem) => arrayEq(formItem.fullPath, currFullPath)).length;
3801
+ return nameCounter === 1 ? true : `Repeated form item name: ${currFullPath.join(" \u2192 ")}`;
3802
+ },
3803
+ defaultValueHint: getDefaultValueHint("name")
3699
3804
  },
3700
- defaultValueHint: getDefaultValueHint("name")
3701
- },
3702
- initialValue: {
3703
- type: "dynamic",
3704
- control: (ps, ctx, {
3705
- item,
3706
- path
3707
- }) => {
3708
- var _a, _b, _c, _d;
3709
- let inputType = "Unkown" /* Unknown */;
3710
- if (usage === "simplified-form-item") {
3711
- inputType = item.inputType;
3712
- if (!ps.data) {
3805
+ initialValue: {
3806
+ type: "dynamic",
3807
+ control: (ps, ctx, {
3808
+ item,
3809
+ path
3810
+ }) => {
3811
+ var _a, _b, _c, _d;
3812
+ let inputType = "Unkown" /* Unknown */;
3813
+ if (usage === "simplified-form-item") {
3713
3814
  inputType = item.inputType;
3714
- } else if (path != null && typeof path[1] === "number") {
3715
- inputType = (_b = (_a = ctx == null ? void 0 : ctx.mergedFields) == null ? void 0 : _a[path[1]].inputType) != null ? _b : "Unkown" /* Unknown */;
3716
- }
3717
- } else {
3718
- if (!React__default.default.isValidElement(ps.children) || typeof ps.children.type === "string") {
3719
- inputType = "Unkown" /* Unknown */;
3815
+ if (!ps.data) {
3816
+ inputType = item.inputType;
3817
+ } else if (path != null && typeof path[1] === "number") {
3818
+ inputType = (_b = (_a = ctx == null ? void 0 : ctx.mergedFields) == null ? void 0 : _a[path[1]].inputType) != null ? _b : "Unkown" /* Unknown */;
3819
+ }
3720
3820
  } else {
3721
- if (mapAntdComponentToInputType.has(ps.children.type)) {
3722
- inputType = (_c = mapAntdComponentToInputType.get(ps.children.type)) != null ? _c : "Unkown" /* Unknown */;
3723
- } else if ("__plumeType" in ps.children.type) {
3724
- inputType = (_d = mapPlumeTypeToInputType.get(
3725
- ps.children.type.__plumeType
3726
- )) != null ? _d : "Unkown" /* Unknown */;
3821
+ if (!React__default.default.isValidElement(ps.children) || typeof ps.children.type === "string") {
3822
+ inputType = "Unkown" /* Unknown */;
3823
+ } else {
3824
+ if (mapAntdComponentToInputType.has(ps.children.type)) {
3825
+ inputType = (_c = mapAntdComponentToInputType.get(ps.children.type)) != null ? _c : "Unkown" /* Unknown */;
3826
+ } else if ("__plumeType" in ps.children.type) {
3827
+ inputType = (_d = mapPlumeTypeToInputType.get(
3828
+ ps.children.type.__plumeType
3829
+ )) != null ? _d : "Unkown" /* Unknown */;
3830
+ }
3727
3831
  }
3728
3832
  }
3833
+ if ([
3834
+ "Text" /* Text */,
3835
+ "Text Area" /* TextArea */,
3836
+ "Password" /* Password */,
3837
+ "Select" /* Select */,
3838
+ "Radio Group" /* RadioGroup */
3839
+ ].includes(inputType)) {
3840
+ return {
3841
+ type: "string",
3842
+ defaultValueHint: getDefaultValueHint("initialValue")
3843
+ };
3844
+ } else if ("Number" /* Number */ === inputType) {
3845
+ return {
3846
+ type: "number",
3847
+ defaultValueHint: getDefaultValueHint("initialValue")
3848
+ };
3849
+ } else if ("Checkbox" /* Checkbox */ === inputType) {
3850
+ return {
3851
+ type: "boolean",
3852
+ defaultValueHint: getDefaultValueHint("initialValue")
3853
+ };
3854
+ } else if ("DatePicker" /* DatePicker */ === inputType) {
3855
+ return {
3856
+ type: "dateString",
3857
+ defaultValueHint: getDefaultValueHint("initialValue")
3858
+ };
3859
+ } else {
3860
+ return {
3861
+ type: "exprEditor",
3862
+ defaultValueHint: getDefaultValueHint("initialValue")
3863
+ };
3864
+ }
3729
3865
  }
3730
- if ([
3731
- "Text" /* Text */,
3732
- "Text Area" /* TextArea */,
3733
- "Password" /* Password */,
3734
- "Select" /* Select */,
3735
- "Radio Group" /* RadioGroup */
3736
- ].includes(inputType)) {
3737
- return {
3738
- type: "string",
3739
- defaultValueHint: getDefaultValueHint("initialValue")
3740
- };
3741
- } else if ("Number" /* Number */ === inputType) {
3742
- return {
3743
- type: "number",
3744
- defaultValueHint: getDefaultValueHint("initialValue")
3745
- };
3746
- } else if ("Checkbox" /* Checkbox */ === inputType) {
3747
- return {
3748
- type: "boolean",
3749
- defaultValueHint: getDefaultValueHint("initialValue")
3750
- };
3751
- } else if ("DatePicker" /* DatePicker */ === inputType) {
3752
- return {
3753
- type: "dateString",
3754
- defaultValueHint: getDefaultValueHint("initialValue")
3755
- };
3756
- } else {
3757
- return {
3758
- type: "exprEditor",
3759
- defaultValueHint: getDefaultValueHint("initialValue")
3760
- };
3866
+ },
3867
+ rules: {
3868
+ displayName: "Validation rules",
3869
+ type: "formValidationRules"
3870
+ },
3871
+ valuePropName: {
3872
+ type: "string",
3873
+ advanced: true,
3874
+ defaultValueHint: "value",
3875
+ description: "The prop name for specifying the value of the form control component"
3876
+ },
3877
+ trigger: {
3878
+ type: "string",
3879
+ displayName: "Trigger prop name",
3880
+ advanced: true,
3881
+ defaultValueHint: "onChange",
3882
+ description: "The prop name of event handler that is called when value is changed"
3883
+ },
3884
+ noLabel: {
3885
+ type: "boolean",
3886
+ advanced: true
3887
+ },
3888
+ alignLabellessWithControls: {
3889
+ type: "boolean",
3890
+ displayName: "Align with controls?",
3891
+ description: "Aligns the content with form controls in the grid",
3892
+ hidden: (ps, ctx, extras) => {
3893
+ var _a;
3894
+ const formItem = getFormItemProps(ps, ctx, extras);
3895
+ return !(formItem == null ? void 0 : formItem.noLabel) || ((_a = ctx == null ? void 0 : ctx.layout) == null ? void 0 : _a.layout) !== "horizontal";
3896
+ },
3897
+ defaultValueHint: true
3898
+ },
3899
+ colon: {
3900
+ type: "boolean",
3901
+ defaultValueHint: true,
3902
+ advanced: true,
3903
+ hidden: () => true
3904
+ },
3905
+ labelAlign: {
3906
+ type: "choice",
3907
+ options: ["left", "right"],
3908
+ advanced: true,
3909
+ hidden: (ps, ctx, extras) => {
3910
+ var _a;
3911
+ const formItem = getFormItemProps(ps, ctx, extras);
3912
+ return !!(formItem == null ? void 0 : formItem.noLabel) || ((_a = ctx == null ? void 0 : ctx.layout) == null ? void 0 : _a.layout) !== "horizontal";
3761
3913
  }
3762
- }
3763
- },
3764
- rules: {
3765
- displayName: "Validation rules",
3766
- type: "formValidationRules"
3767
- },
3768
- valuePropName: {
3769
- type: "string",
3770
- advanced: true,
3771
- defaultValueHint: "value",
3772
- description: "The prop name for specifying the value of the form control component"
3773
- },
3774
- trigger: {
3775
- type: "string",
3776
- displayName: "Trigger prop name",
3777
- advanced: true,
3778
- defaultValueHint: "onChange",
3779
- description: "The prop name of event handler that is called when value is changed"
3780
- },
3781
- noLabel: {
3782
- type: "boolean",
3783
- advanced: true
3784
- },
3785
- alignLabellessWithControls: {
3786
- type: "boolean",
3787
- displayName: "Align with controls?",
3788
- description: "Aligns the content with form controls in the grid",
3789
- hidden: (ps, ctx) => {
3790
- var _a;
3791
- return !ps.noLabel || ((_a = ctx == null ? void 0 : ctx.internalFormCtx) == null ? void 0 : _a.layout.layout) !== "horizontal";
3792
3914
  },
3793
- defaultValueHint: true
3794
- },
3795
- colon: {
3796
- type: "boolean",
3797
- defaultValueHint: true,
3798
- advanced: true,
3799
- hidden: () => true
3800
- },
3801
- labelAlign: {
3802
- type: "choice",
3803
- options: ["left", "right"],
3804
- advanced: true,
3805
- hidden: (ps, ctx) => {
3806
- var _a;
3807
- return !!ps.noLabel || ((_a = ctx == null ? void 0 : ctx.internalFormCtx) == null ? void 0 : _a.layout.layout) !== "horizontal";
3808
- }
3809
- },
3810
- hidden: {
3811
- type: "boolean",
3812
- advanced: true,
3813
- defaultValueHint: getDefaultValueHint("hidden")
3814
- },
3815
- validateTrigger: {
3816
- type: "choice",
3817
- options: ["onSubmit", "onChange", "onBlur"],
3818
- multiSelect: true,
3819
- advanced: true
3820
- },
3821
- shouldUpdate: {
3822
- type: "boolean",
3823
- advanced: true,
3824
- displayName: "Always re-render",
3825
- description: "Form fields normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render."
3826
- },
3827
- dependencies: {
3828
- type: "array",
3829
- advanced: true,
3830
- displayName: "Dependencies",
3831
- description: "Form fields can depend on other form fields. This forces it to re-evaluate the validation rules when the other form fields changes."
3832
- },
3833
- hideValidationMessage: {
3834
- type: "boolean",
3835
- displayName: "Hide validation message?",
3836
- description: "If true, will hide the validation error message",
3837
- defaultValueHint: false,
3838
- advanced: true
3839
- },
3840
- customizeProps: {
3841
- type: "function",
3842
- description: "Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)",
3843
- argNames: ["fieldData"],
3844
- argValues: (_ps, ctx) => {
3845
- var _a;
3846
- return [
3847
- {
3848
- status: (_a = ctx == null ? void 0 : ctx.status) == null ? void 0 : _a.status
3849
- }
3850
- ];
3915
+ hidden: {
3916
+ type: "boolean",
3917
+ advanced: true,
3918
+ defaultValueHint: getDefaultValueHint("hidden")
3851
3919
  },
3852
- advanced: true
3853
- },
3854
- noStyle: {
3855
- type: "boolean",
3856
- displayName: "Field control only",
3857
- description: "Don't render anything but the field control - so no label, help text, validation error, etc.",
3858
- advanced: true
3859
- },
3860
- preserve: {
3861
- type: "boolean",
3862
- advanced: true,
3863
- defaultValueHint: true,
3864
- description: "Keep field value even when field removed."
3865
- }
3866
- });
3920
+ validateTrigger: {
3921
+ type: "choice",
3922
+ options: ["onSubmit", "onChange", "onBlur"],
3923
+ multiSelect: true,
3924
+ advanced: true
3925
+ },
3926
+ shouldUpdate: {
3927
+ type: "boolean",
3928
+ advanced: true,
3929
+ displayName: "Always re-render",
3930
+ description: "Form fields normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render."
3931
+ },
3932
+ dependencies: {
3933
+ type: "array",
3934
+ advanced: true,
3935
+ displayName: "Dependencies",
3936
+ description: "Form fields can depend on other form fields. This forces it to re-evaluate the validation rules when the other form fields changes."
3937
+ },
3938
+ hideValidationMessage: {
3939
+ type: "boolean",
3940
+ displayName: "Hide validation message?",
3941
+ description: "If true, will hide the validation error message",
3942
+ defaultValueHint: false,
3943
+ advanced: true
3944
+ },
3945
+ customizeProps: {
3946
+ type: "function",
3947
+ description: "Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)",
3948
+ argNames: ["fieldData"],
3949
+ argValues: (_ps, ctx) => {
3950
+ var _a;
3951
+ return [
3952
+ {
3953
+ status: (_a = ctx == null ? void 0 : ctx.status) == null ? void 0 : _a.status
3954
+ }
3955
+ ];
3956
+ },
3957
+ advanced: true
3958
+ },
3959
+ noStyle: {
3960
+ type: "boolean",
3961
+ displayName: "Field control only",
3962
+ description: "Don't render anything but the field control - so no label, help text, validation error, etc.",
3963
+ advanced: true
3964
+ },
3965
+ preserve: {
3966
+ type: "boolean",
3967
+ advanced: true,
3968
+ defaultValueHint: true,
3969
+ description: "Keep field value even when field removed."
3970
+ }
3971
+ };
3972
+ }
3867
3973
  const commonSimplifiedFormArrayItemType = (propName) => ({
3868
3974
  type: "object",
3869
3975
  fields: __spreadValues$d({