@tmagic/form 1.8.0-beta.21 → 1.8.0-beta.23

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.
package/dist/es/index.js CHANGED
@@ -1,6 +1,5 @@
1
- import "./_virtual/_rolldown/runtime.js";
2
1
  import { FORM_DIFF_CONFIG_KEY, FORM_SILENT_MODE_KEY, FORM_TYPE_MATCH_VALID_KEY } from "./schema.js";
3
- import { clearTypeMatchRules, deleteTypeMatchRule, getTypeMatchRule, registerTypeMatchRule, registerTypeMatchRules, validateTypeMatch } from "./utils/typeMatch.js";
2
+ import { MAX_SUGGESTION_OPTIONS, clearTypeMatchRules, deleteTypeMatchRule, getTypeMatchRule, optionSuggestion, registerTypeMatchRule, registerTypeMatchRules, stringifyExampleValue, validateTypeMatch } from "./utils/typeMatch.js";
4
3
  import { adaptFormValidator, applyExtendState, createObjectProp, createValues, datetimeFormatter, display, filterFunction, getDataByPage, getRules, initValue, sortArray, sortChange } from "./utils/form.js";
5
4
  import { useAddField } from "./utils/useAddField.js";
6
5
  import Hidden_default from "./fields/Hidden.js";
@@ -38,6 +37,7 @@ import Cascader_default from "./fields/Cascader.js";
38
37
  import DynamicField_default from "./fields/DynamicField.js";
39
38
  import plugin_default from "./plugin.js";
40
39
  export * from "@tmagic/form-schema";
40
+ //#region packages/form/src/index.ts
41
41
  var createForm = (config) => config;
42
42
  //#endregion
43
- export { FORM_DIFF_CONFIG_KEY, FORM_SILENT_MODE_KEY, FORM_TYPE_MATCH_VALID_KEY, Cascader_default as MCascader, Checkbox_default as MCheckbox, CheckboxGroup_default as MCheckboxGroup, ColorPicker_default as MColorPicker, Container_default as MContainer, Date_default as MDate, DateTime_default as MDateTime, Daterange_default as MDaterange, Display_default as MDisplay, DynamicField_default as MDynamicField, Fieldset_default as MFieldset, FlexLayout_default as MFlexLayout, Form_default as MForm, FormBox_default as MFormBox, FormDialog_default as MFormDialog, FormDrawer_default as MFormDrawer, TableGroupList_default as MGroupList, Hidden_default as MHidden, Link_default as MLink, Number_default as MNumber, NumberRange_default as MNumberRange, Panel_default as MPanel, RadioGroup_default as MRadioGroup, Row_default as MRow, Select_default as MSelect, Switch_default as MSwitch, TableGroupList_default as MTable, TableGroupList_default as MTableGroupList, Tabs_default as MTabs, Text_default as MText, Textarea_default as MTextarea, Time_default as MTime, Timerange_default as MTimerange, adaptFormValidator, applyExtendState, clearTypeMatchRules, createForm, createObjectProp, createValues, datetimeFormatter, plugin_default as default, deleteField as deleteFormField, deleteTypeMatchRule, display, filterFunction, getDataByPage, getField as getFormField, getRules, getTypeMatchRule, initValue, registerField as registerFormField, registerTypeMatchRule, registerTypeMatchRules, sortArray, sortChange, stripTabItemsLazy, submitForm, useAddField, validateForm, validateTypeMatch };
43
+ export { FORM_DIFF_CONFIG_KEY, FORM_SILENT_MODE_KEY, FORM_TYPE_MATCH_VALID_KEY, MAX_SUGGESTION_OPTIONS, Cascader_default as MCascader, Checkbox_default as MCheckbox, CheckboxGroup_default as MCheckboxGroup, ColorPicker_default as MColorPicker, Container_default as MContainer, Date_default as MDate, DateTime_default as MDateTime, Daterange_default as MDaterange, Display_default as MDisplay, DynamicField_default as MDynamicField, Fieldset_default as MFieldset, FlexLayout_default as MFlexLayout, Form_default as MForm, FormBox_default as MFormBox, FormDialog_default as MFormDialog, FormDrawer_default as MFormDrawer, TableGroupList_default as MGroupList, Hidden_default as MHidden, Link_default as MLink, Number_default as MNumber, NumberRange_default as MNumberRange, Panel_default as MPanel, RadioGroup_default as MRadioGroup, Row_default as MRow, Select_default as MSelect, Switch_default as MSwitch, TableGroupList_default as MTable, TableGroupList_default as MTableGroupList, Tabs_default as MTabs, Text_default as MText, Textarea_default as MTextarea, Time_default as MTime, Timerange_default as MTimerange, adaptFormValidator, applyExtendState, clearTypeMatchRules, createForm, createObjectProp, createValues, datetimeFormatter, plugin_default as default, deleteField as deleteFormField, deleteTypeMatchRule, display, filterFunction, getDataByPage, getField as getFormField, getRules, getTypeMatchRule, initValue, optionSuggestion, registerField as registerFormField, registerTypeMatchRule, registerTypeMatchRules, sortArray, sortChange, stringifyExampleValue, stripTabItemsLazy, submitForm, useAddField, validateForm, validateTypeMatch };
package/dist/es/schema.js CHANGED
@@ -1,4 +1,3 @@
1
- import "./_virtual/_rolldown/runtime.js";
2
1
  export * from "@tmagic/form-schema";
3
2
  //#region packages/form/src/schema.ts
4
3
  var FORM_DIFF_CONFIG_KEY = Symbol("mFormDiffConfig");
@@ -85,13 +85,14 @@ var mountFormInstance = (options) => {
85
85
  return () => h(userWrapper);
86
86
  }
87
87
  }) : userWrapper;
88
- const app = createApp(hidden ? defineComponent({
88
+ const rootComponent = hidden ? defineComponent({
89
89
  name: "MFormSilentProvider",
90
90
  setup() {
91
91
  provide(FORM_SILENT_MODE_KEY, true);
92
92
  return () => h(wrapperComponent);
93
93
  }
94
- }) : wrapperComponent);
94
+ }) : wrapperComponent;
95
+ const app = createApp(rootComponent);
95
96
  instance.app = app;
96
97
  if (appContext) Object.assign(app._context, appContext);
97
98
  if (!skipTimeout) timer = setTimeout(() => {
@@ -162,6 +162,9 @@ var getRules = function(mForm, r = [], props, typeMatchValid) {
162
162
  }, mForm));
163
163
  }
164
164
  return item;
165
+ }).filter((item) => {
166
+ if (item.typeMatch === false && typeof item.validator !== "function") return false;
167
+ return true;
165
168
  });
166
169
  };
167
170
  var initValue = async (mForm, { initValues, config }) => {
@@ -89,17 +89,20 @@ var stringifyExampleValue = (value) => {
89
89
  }
90
90
  return String(value);
91
91
  };
92
+ /** 参考建议中可选值全量展示上限;超出时仅举例 EXAMPLE_SUGGESTION_COUNT 个并标明总数。 */
92
93
  var MAX_SUGGESTION_OPTIONS = 20;
94
+ var EXAMPLE_SUGGESTION_COUNT = 5;
93
95
  /**
94
- * 生成「请使用以下某一个值:xxx;xxx」形式的参考建议;无可选值时返回空字符串(不追加建议)。
95
- * 可选值超过 MAX_SUGGESTION_OPTIONS 个时仅展示前若干个并以「等」省略。
96
+ * 生成可选项参考建议;无可选值时返回空字符串(不追加建议)。
97
+ * 未超过 MAX_SUGGESTION_OPTIONS 时全部列举;超过时仅举例前 EXAMPLE_SUGGESTION_COUNT 个并标明总数,避免 AI 误以为仅有举例值合法。
96
98
  */
97
99
  var optionSuggestion = (optionValues) => {
98
100
  const values = optionValues.filter((item) => typeof item !== "undefined");
99
101
  if (!values.length) return "";
100
- const shown = values.slice(0, MAX_SUGGESTION_OPTIONS).map(stringifyExampleValue);
101
- const suffix = values.length > MAX_SUGGESTION_OPTIONS ? " 等" : "";
102
- return `请使用以下某一个值:${shown.join(";")}${suffix}`;
102
+ const truncated = values.length > 20;
103
+ const shown = values.slice(0, truncated ? EXAMPLE_SUGGESTION_COUNT : values.length).map(stringifyExampleValue);
104
+ if (truncated) return `请从可选项中选用合法值(共 ${values.length} 个,例如:${shown.join(";")})`;
105
+ return `请使用以下某一个值:${shown.join(";")}`;
103
106
  };
104
107
  /**
105
108
  * 基于真实 options 生成类型不匹配场景的「参考示例值」。
@@ -484,4 +487,4 @@ var createTypeMatchValidator = (mForm, props, rule) => {
484
487
  };
485
488
  };
486
489
  //#endregion
487
- export { clearTypeMatchRules, createTypeMatchValidator, deleteTypeMatchRule, getTypeMatchRule, registerTypeMatchRule, registerTypeMatchRules, validateTypeMatch };
490
+ export { MAX_SUGGESTION_OPTIONS, clearTypeMatchRules, createTypeMatchValidator, deleteTypeMatchRule, getTypeMatchRule, optionSuggestion, registerTypeMatchRule, registerTypeMatchRules, stringifyExampleValue, validateTypeMatch };