@shwfed/nuxt 0.11.24 → 0.11.26

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/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shwfed/nuxt",
3
3
  "configKey": "shwfed",
4
- "version": "0.11.24",
4
+ "version": "0.11.26",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
@@ -5,14 +5,15 @@ const fieldIdC = z.uuid().describe("\u5B57\u6BB5\u552F\u4E00\u6807\u8BC6\uFF0C\u
5
5
  const inheritedFieldContext = {
6
6
  form: "map<string, dyn>",
7
7
  row: "map<string, dyn>",
8
- index: "int"
8
+ index: "int",
9
+ id: "string"
9
10
  };
10
11
  export const KIND = "shwfed.component.fields";
11
12
  export const CURRENT_COMPATIBILITY_DATE = "2026-03-20";
12
13
  export const SUPPORTED_COMPATIBILITY_DATES = [CURRENT_COMPATIBILITY_DATE];
13
14
  export const ValidationRuleC = z.object({
14
- expression: expressionC(["bool", "dyn"], { value: "dyn", ...inheritedFieldContext }).describe("\u8FD4\u56DE\u5E03\u5C14\u503C\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u4F7F\u7528 value\u3001form\u3001row \u548C index \u53D8\u91CF"),
15
- message: z.string().describe("\u6821\u9A8C\u5931\u8D25\u65F6\u5C55\u793A\u7684 Markdown \u6D88\u606F\uFF0C\u53EF\u5728 {{ expression }} \u4E2D\u4F7F\u7528 value\u3001form\u3001row \u548C index \u53D8\u91CF")
15
+ expression: expressionC(["bool", "dyn"], { value: "dyn", ...inheritedFieldContext }).describe("\u8FD4\u56DE\u5E03\u5C14\u503C\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u4F7F\u7528 value\u3001form\u3001row\u3001index \u548C id \u53D8\u91CF"),
16
+ message: z.string().describe("\u6821\u9A8C\u5931\u8D25\u65F6\u5C55\u793A\u7684 Markdown \u6D88\u606F\uFF0C\u53EF\u5728 {{ expression }} \u4E2D\u4F7F\u7528 value\u3001form\u3001row\u3001index \u548C id \u53D8\u91CF")
16
17
  }).readonly();
17
18
  export const validationC = z.array(ValidationRuleC).readonly().optional().describe("\u5B57\u6BB5\u5931\u7126\u65F6\u6309\u987A\u5E8F\u6267\u884C\u7684\u6821\u9A8C\u89C4\u5219\uFF0C\u547D\u4E2D\u7B2C\u4E00\u4E2A\u5931\u8D25\u89C4\u5219\u540E\u505C\u6B62");
18
19
  export const StringFieldC = z.object({
@@ -24,10 +25,10 @@ export const StringFieldC = z.object({
24
25
  icon: z.string().optional().describe("Iconify \u56FE\u6807\u6807\u8BC6\u7B26\uFF0C\u663E\u793A\u5728\u8F93\u5165\u6846\u5185\u4FA7"),
25
26
  style: z.string().optional().describe("CSS \u6837\u5F0F\u5BF9\u8C61\u8868\u8FBE\u5F0F\uFF0C\u63A7\u5236\u5B57\u6BB5\u7684\u5E03\u5C40\u4E0E\u5916\u89C2"),
26
27
  discardEmptyString: z.boolean().optional().describe("\u4E3A true \u65F6\uFF0C\u7A7A\u5B57\u7B26\u4E32\u4F5C\u4E3A\u6709\u6548\u503C\u5B58\u50A8\uFF1B\u5426\u5219\u6E05\u7A7A\u8F93\u5165\u5C06\u5220\u9664\u5BF9\u5E94\u5C5E\u6027"),
27
- initialValue: expressionC(["string", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE string \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
28
+ initialValue: expressionC(["string", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE string \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
28
29
  maxLength: expressionC("int").optional().describe('\u8FD4\u56DE\u6574\u6570\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u9650\u5236\u8F93\u5165\u7684\u6700\u5927\u5B57\u7B26\u6570\uFF0C\u5982 "100"'),
29
- hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
30
- disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
30
+ hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
31
+ disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
31
32
  validation: validationC
32
33
  });
33
34
  export const TextareaFieldC = z.object({
@@ -39,10 +40,10 @@ export const TextareaFieldC = z.object({
39
40
  icon: z.string().optional().describe("Iconify \u56FE\u6807\u6807\u8BC6\u7B26\uFF0C\u663E\u793A\u5728\u8F93\u5165\u6846\u5185\u4FA7"),
40
41
  style: z.string().optional().describe("CSS \u6837\u5F0F\u5BF9\u8C61\u8868\u8FBE\u5F0F\uFF0C\u63A7\u5236\u5B57\u6BB5\u7684\u5E03\u5C40\u4E0E\u5916\u89C2"),
41
42
  discardEmptyString: z.boolean().optional().describe("\u4E3A true \u65F6\uFF0C\u7A7A\u5B57\u7B26\u4E32\u4F5C\u4E3A\u6709\u6548\u503C\u5B58\u50A8\uFF1B\u5426\u5219\u6E05\u7A7A\u8F93\u5165\u5C06\u5220\u9664\u5BF9\u5E94\u5C5E\u6027"),
42
- initialValue: expressionC(["string", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE string \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
43
+ initialValue: expressionC(["string", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE string \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
43
44
  maxLength: expressionC("int").optional().describe('\u8FD4\u56DE\u6574\u6570\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u9650\u5236\u8F93\u5165\u7684\u6700\u5927\u5B57\u7B26\u6570\uFF0C\u5982 "100"'),
44
- hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
45
- disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
45
+ hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
46
+ disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
46
47
  validation: validationC
47
48
  });
48
49
  export const NumberFieldC = z.object({
@@ -53,12 +54,12 @@ export const NumberFieldC = z.object({
53
54
  required: z.boolean().optional().describe("\u4E3A true \u65F6\uFF0C\u4EC5\u5728\u5B57\u6BB5\u6807\u7B7E\u540E\u663E\u793A\u5FC5\u586B\u63D0\u793A\u661F\u53F7\uFF0C\u4E0D\u5F71\u54CD\u5B9E\u9645\u6821\u9A8C\u903B\u8F91"),
54
55
  icon: z.string().optional().describe("Iconify \u56FE\u6807\u6807\u8BC6\u7B26\uFF0C\u663E\u793A\u5728\u8F93\u5165\u6846\u5185\u4FA7"),
55
56
  style: z.string().optional().describe("CSS \u6837\u5F0F\u5BF9\u8C61\u8868\u8FBE\u5F0F\uFF0C\u63A7\u5236\u5B57\u6BB5\u7684\u5E03\u5C40\u4E0E\u5916\u89C2"),
56
- initialValue: expressionC(["int", "double", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE number \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
57
+ initialValue: expressionC(["int", "double", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE number \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
57
58
  min: expressionC("double").optional().describe('\u8FD4\u56DE\u6D6E\u70B9\u6570\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u9650\u5236\u5141\u8BB8\u7684\u6700\u5C0F\u503C\uFF0C\u5982 "0.0"'),
58
59
  max: expressionC("double").optional().describe('\u8FD4\u56DE\u6D6E\u70B9\u6570\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u9650\u5236\u5141\u8BB8\u7684\u6700\u5927\u503C\uFF0C\u5982 "100.0"'),
59
60
  step: expressionC("double").optional().describe('\u8FD4\u56DE\u6D6E\u70B9\u6570\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u63A7\u5236\u6570\u503C\u9012\u589E\u6B65\u957F\uFF0C\u5982 "0.5"'),
60
- hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
61
- disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
61
+ hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
62
+ disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
62
63
  validation: validationC
63
64
  });
64
65
  export const SelectFieldC = z.object({
@@ -73,9 +74,9 @@ export const SelectFieldC = z.object({
73
74
  value: expressionC(/.+/, { option: "dyn" }).describe("\u8FD4\u56DE\u4EFB\u610F\u503C\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u63D0\u4F9B option \u53D8\u91CF\uFF0C\u8FD4\u56DE\u503C\u5C06\u88AB\u5199\u5165\u7ED1\u5B9A\u5B57\u6BB5"),
74
75
  key: expressionC("string", { option: "dyn" }).describe("\u8FD4\u56DE\u5B57\u7B26\u4E32\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u63D0\u4F9B option \u53D8\u91CF\uFF0C\u8FD4\u56DE\u503C\u4E0E\u9009\u9879\u6784\u6210\u5168\u6620\u5C04"),
75
76
  style: z.string().optional().describe("CSS \u6837\u5F0F\u5BF9\u8C61\u8868\u8FBE\u5F0F\uFF0C\u63A7\u5236\u5B57\u6BB5\u7684\u5E03\u5C40\u4E0E\u5916\u89C2"),
76
- initialValue: expressionC(/.+/, inheritedFieldContext).optional().describe("\u8FD4\u56DE\u4EFB\u610F\u503C\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
77
- hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
78
- disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
77
+ initialValue: expressionC(/.+/, inheritedFieldContext).optional().describe("\u8FD4\u56DE\u4EFB\u610F\u503C\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
78
+ hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
79
+ disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
79
80
  validation: validationC
80
81
  });
81
82
  export const CalendarFieldC = z.object({
@@ -89,10 +90,10 @@ export const CalendarFieldC = z.object({
89
90
  mode: z.enum(["year", "month", "date"]).describe("\u65E5\u5386\u9009\u62E9\u7CBE\u5EA6\uFF1Ayear \u4EC5\u9009\u5E74\uFF0Cmonth \u9009\u5E74\u6708\uFF0Cdate \u9009\u5E74\u6708\u65E5"),
90
91
  display: z.string().optional().describe('date-fns \u683C\u5F0F\u5B57\u7B26\u4E32\uFF0C\u63A7\u5236\u8F93\u5165\u6846\u4E2D\u7684\u5C55\u793A\u683C\u5F0F\uFF0C\u5982 "yyyy\u5E74MM\u6708dd\u65E5"\uFF1B\u7559\u7A7A\u5219\u663E\u793A\u539F\u59CB\u5B58\u50A8\u503C'),
91
92
  value: z.string().describe('date-fns \u683C\u5F0F\u5B57\u7B26\u4E32\uFF0C\u5B9A\u4E49\u65E5\u671F\u5728 model \u4E2D\u7684\u5B58\u50A8\u683C\u5F0F\uFF0C\u5982 "yyyy-MM-dd"'),
92
- initialValue: expressionC(["string", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE string \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
93
+ initialValue: expressionC(["string", "dyn"], inheritedFieldContext).optional().describe("\u8FD4\u56DE string \u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u5728\u5B57\u6BB5\u9996\u6B21\u521D\u59CB\u5316\u4E14 path \u4E0D\u5B58\u5728\u65F6\u5199\u5165\u521D\u59CB\u503C\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
93
94
  disableDate: expressionC(["bool", "dyn"], { date: "Date" }).optional().describe("\u8FD4\u56DE\u5E03\u5C14\u503C\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u4EE5 date\uFF08Date \u7C7B\u578B\uFF09\u4E3A\u53D8\u91CF\uFF0C\u8FD4\u56DE true \u65F6\u8BE5\u65E5\u671F\u5728\u65E5\u5386\u4E2D\u88AB\u7981\u7528"),
94
- hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
95
- disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF"),
95
+ hidden: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u9690\u85CF\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
96
+ disabled: expressionC(["bool", "dyn"], inheritedFieldContext).optional().describe("\u4E3A true \u65F6\uFF0C\u7981\u7528\u8FD9\u4E2A\u5B57\u6BB5\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF"),
96
97
  validation: validationC
97
98
  });
98
99
  export const SlotFieldC = z.strictObject({
@@ -117,7 +118,7 @@ export const FieldC = z.discriminatedUnion("type", [
117
118
  export const FieldsOrientationC = z.enum(["horizontal", "vertical", "floating"]);
118
119
  export const FieldsStyleC = expressionC([/^map/, "dyn"], {
119
120
  ...inheritedFieldContext
120
- }).optional().describe("\u8FD4\u56DE\u5B57\u6BB5\u96C6\u5408\u5BB9\u5668\u6837\u5F0F\u5BF9\u8C61\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u4F7F\u7528 form\u3001row \u548C index \u53D8\u91CF\u3002");
121
+ }).optional().describe("\u8FD4\u56DE\u5B57\u6BB5\u96C6\u5408\u5BB9\u5668\u6837\u5F0F\u5BF9\u8C61\u7684 CEL \u8868\u8FBE\u5F0F\uFF0C\u53EF\u4F7F\u7528 form\u3001row\u3001index \u548C id \u53D8\u91CF\u3002");
121
122
  const FieldsBodyObjectC = z.object({
122
123
  orientation: FieldsOrientationC.optional().describe("\u5B57\u6BB5\u5E03\u5C40\u65B9\u5411\uFF0C\u53EF\u9009 horizontal\u3001vertical \u6216 floating\uFF1B\u7559\u7A7A\u65F6\u9ED8\u8BA4 horizontal"),
123
124
  style: FieldsStyleC,
@@ -79,10 +79,11 @@ function getColumnTitle(column) {
79
79
  function getColumnTooltip(column) {
80
80
  return getLocalizedText(column.tooltip, locale.value);
81
81
  }
82
- function getRowDslContext(row, index) {
82
+ function getRowDslContext(row, index, id) {
83
83
  return mergeDslContexts({
84
84
  row,
85
- index: BigInt(index)
85
+ index: BigInt(index),
86
+ id
86
87
  }, inheritedDslContext);
87
88
  }
88
89
  function translate(column) {
@@ -114,7 +115,7 @@ function translate(column) {
114
115
  }
115
116
  return renderer.cell({
116
117
  ctx,
117
- dslContext: getRowDslContext(ctx.row.original, ctx.row.index),
118
+ dslContext: getRowDslContext(ctx.row.original, ctx.row.index, ctx.row.id),
118
119
  options
119
120
  });
120
121
  },
@@ -147,7 +148,8 @@ function translate(column) {
147
148
  }
148
149
  const columns = computed(() => currentConfig.value?.columns.map((column) => translate(column)) ?? []);
149
150
  const data = computed(() => props.data);
150
- const isManualPagination = computed(() => props.rowCount !== void 0);
151
+ const isPaginationEnabled = computed(() => currentConfig.value?.props?.initialState?.pagination?.pageSize !== void 0);
152
+ const isManualPagination = computed(() => isPaginationEnabled.value && props.rowCount !== void 0);
151
153
  const totalItems = computed(() => props.rowCount ?? data.value.length);
152
154
  const paginationLeft = computed(() => currentConfig.value?.paginationLeft ?? "");
153
155
  const paginationRight = computed(() => currentConfig.value?.paginationRight ?? "");
@@ -162,12 +164,17 @@ const TableRowCELContext = defineComponent({
162
164
  index: {
163
165
  type: Number,
164
166
  required: true
167
+ },
168
+ id: {
169
+ type: String,
170
+ default: void 0
165
171
  }
166
172
  },
167
173
  setup(props2, { slots: slots2 }) {
168
174
  provideCELContext({
169
175
  row: props2.row,
170
- index: BigInt(props2.index)
176
+ index: BigInt(props2.index),
177
+ id: props2.id
171
178
  });
172
179
  return () => slots2.default?.();
173
180
  }
@@ -184,6 +191,9 @@ function handlePaginationPageSizeChange(value) {
184
191
  tableApi.setPageSize(nextPageSize);
185
192
  }
186
193
  function syncPaginationPageSize() {
194
+ if (!isPaginationEnabled.value) {
195
+ return;
196
+ }
187
197
  const nextPageSize = resolvePaginationPageSize(
188
198
  tableApi.getState().pagination.pageSize,
189
199
  resolvedPaginationPageSizes.value
@@ -277,7 +287,7 @@ const baseTableOptions = {
277
287
  return isManualPagination.value;
278
288
  },
279
289
  get rowCount() {
280
- return props.rowCount;
290
+ return isPaginationEnabled.value ? props.rowCount : void 0;
281
291
  },
282
292
  get getRowId() {
283
293
  return currentConfig.value?.getRowId ? getRowId : void 0;
@@ -352,9 +362,11 @@ watch(currentConfig, (config) => {
352
362
  syncPaginationPageSize();
353
363
  }, { immediate: true });
354
364
  defineExpose(tableApi);
365
+ const rows = computed(() => isPaginationEnabled.value ? tableApi.getRowModel().rows : tableApi.getPrePaginationRowModel().rows);
366
+ const maxPage = computed(() => isPaginationEnabled.value ? Math.max(tableApi.getPageCount(), 1) : 1);
355
367
  const rowVirtualizer = useVirtualizer(
356
368
  computed(() => ({
357
- count: tableApi.getRowModel().rows.length,
369
+ count: rows.value.length,
358
370
  estimateSize: () => 35,
359
371
  getScrollElement: () => containerRef.value,
360
372
  overscan: 30
@@ -367,8 +379,6 @@ function measureRow(el) {
367
379
  return;
368
380
  rowVirtualizer.value.measureElement(el);
369
381
  }
370
- const rows = computed(() => tableApi.getRowModel().rows);
371
- const maxPage = computed(() => Math.max(tableApi.getPageCount(), 1));
372
382
  function isStyleRecord(x) {
373
383
  return typeof x === "object" && x !== null && !Array.isArray(x);
374
384
  }
@@ -763,6 +773,7 @@ export {
763
773
  }"
764
774
  >
765
775
  <TableRowCELContext
776
+ :id="cell.row.id"
766
777
  :row="cell.row.original"
767
778
  :index="cell.row.index"
768
779
  >
@@ -835,7 +846,7 @@ export {
835
846
  </template>
836
847
  </i18n-t>
837
848
  <label
838
- v-if="resolvedPaginationPageSizes"
849
+ v-if="isPaginationEnabled && resolvedPaginationPageSizes"
839
850
  data-slot="table-pagination-page-size"
840
851
  class="items-center gap-2 text-xs text-zinc-500 hidden @lg:flex"
841
852
  >
@@ -855,103 +866,105 @@ export {
855
866
  </NativeSelectOption>
856
867
  </NativeSelect>
857
868
  </label>
858
- <Pagination.Root
859
- show-edges
860
- :total="totalItems"
861
- :items-per-page="tableApi.getState().pagination.pageSize"
862
- :page="tableApi.getState().pagination.pageIndex + 1"
863
- @update:page="(page2) => tableApi.setPageIndex(page2 - 1)"
864
- >
865
- <Pagination.List
866
- v-slot="{ items }"
867
- class="flex items-center gap-1"
869
+ <template v-if="isPaginationEnabled">
870
+ <Pagination.Root
871
+ show-edges
872
+ :total="totalItems"
873
+ :items-per-page="tableApi.getState().pagination.pageSize"
874
+ :page="tableApi.getState().pagination.pageIndex + 1"
875
+ @update:page="(page2) => tableApi.setPageIndex(page2 - 1)"
868
876
  >
869
- <Pagination.First
870
- :class="[
877
+ <Pagination.List
878
+ v-slot="{ items }"
879
+ class="flex items-center gap-1"
880
+ >
881
+ <Pagination.First
882
+ :class="[
871
883
  'w-7 h-7 flex items-center justify-center bg-transparent hover:bg-zinc-100 transition disabled:opacity-50 rounded text-zinc-600',
872
884
  'data-disabled:opacity-50 data-disabled:cursor-not-allowed cursor-pointer'
873
885
  ]"
874
- >
875
- <Icon
876
- icon="radix-icons:double-arrow-left"
877
- class="w-4 h-4"
878
- />
879
- </Pagination.First>
880
- <Pagination.Prev
881
- :class="[
886
+ >
887
+ <Icon
888
+ icon="radix-icons:double-arrow-left"
889
+ class="w-4 h-4"
890
+ />
891
+ </Pagination.First>
892
+ <Pagination.Prev
893
+ :class="[
882
894
  'w-7 h-7 flex items-center justify-center bg-transparent hover:bg-zinc-100 transition disabled:opacity-50 rounded text-zinc-600',
883
895
  'data-disabled:opacity-50 data-disabled:cursor-not-allowed cursor-pointer'
884
896
  ]"
885
- >
886
- <Icon
887
- icon="radix-icons:chevron-left"
888
- class="w-4 h-4"
889
- />
890
- </Pagination.Prev>
897
+ >
898
+ <Icon
899
+ icon="radix-icons:chevron-left"
900
+ class="w-4 h-4"
901
+ />
902
+ </Pagination.Prev>
891
903
 
892
- <template
893
- v-for="(page, index) in items"
894
- :key="page.type === 'page' ? `${page.type}-${page.value}` : `${page.type}-${index}`"
895
- >
896
- <Pagination.ListItem
897
- v-if="page.type === 'page'"
898
- :class="[
904
+ <template
905
+ v-for="(page, pageItemIndex) in items"
906
+ :key="page.type === 'page' ? `${page.type}-${page.value}` : `${page.type}-${pageItemIndex}`"
907
+ >
908
+ <Pagination.ListItem
909
+ v-if="page.type === 'page'"
910
+ :class="[
899
911
  'w-7 h-7 items-center justify-center rounded text-xs bg-transparent',
900
912
  'data-selected:text-(--primary) hover:bg-zinc-100 transition cursor-pointer',
901
913
  page.value - 1 === tableApi.getState().pagination.pageIndex ? '' : 'hidden @md:flex'
902
914
  ]"
903
- :value="page.value"
904
- >
905
- {{ page.value }}
906
- </Pagination.ListItem>
907
- <Pagination.Ellipsis
908
- v-else
909
- class="w-7 h-7 items-center justify-center text-zinc-400 hidden @md:flex"
910
- >
911
- &#8230;
912
- </Pagination.Ellipsis>
913
- </template>
915
+ :value="page.value"
916
+ >
917
+ {{ page.value }}
918
+ </Pagination.ListItem>
919
+ <Pagination.Ellipsis
920
+ v-else
921
+ class="w-7 h-7 items-center justify-center text-zinc-400 hidden @md:flex"
922
+ >
923
+ &#8230;
924
+ </Pagination.Ellipsis>
925
+ </template>
914
926
 
915
- <Pagination.Next
916
- :class="[
927
+ <Pagination.Next
928
+ :class="[
917
929
  'w-7 h-7 flex items-center justify-center bg-transparent hover:bg-zinc-100 transition disabled:opacity-50 rounded text-zinc-600',
918
930
  'data-disabled:opacity-50 data-disabled:cursor-not-allowed cursor-pointer'
919
931
  ]"
920
- >
921
- <Icon
922
- icon="radix-icons:chevron-right"
923
- class="w-4 h-4"
924
- />
925
- </Pagination.Next>
926
- <Pagination.Last
927
- :class="[
932
+ >
933
+ <Icon
934
+ icon="radix-icons:chevron-right"
935
+ class="w-4 h-4"
936
+ />
937
+ </Pagination.Next>
938
+ <Pagination.Last
939
+ :class="[
928
940
  'w-7 h-7 flex items-center justify-center bg-transparent hover:bg-zinc-100 transition disabled:opacity-50 rounded text-zinc-600',
929
941
  'data-disabled:opacity-50 data-disabled:cursor-not-allowed cursor-pointer'
930
942
  ]"
931
- >
932
- <Icon
933
- icon="radix-icons:double-arrow-right"
934
- class="w-4 h-4"
935
- />
936
- </Pagination.Last>
937
- </Pagination.List>
938
- </Pagination.Root>
939
- <i18n-t
940
- keypath="goto"
941
- tag="div"
942
- class="text-xs items-center gap-2 hidden @lg:flex"
943
- >
944
- <template #page>
945
- <NumberField
946
- :model-value="tableApi.getState().pagination.pageIndex + 1"
947
- :min="1"
948
- :max="maxPage"
949
- @update:model-value="(value) => tableApi.setPageIndex(value - 1)"
950
- >
951
- <NumberFieldInput class="h-6 w-16 text-xs" />
952
- </NumberField>
953
- </template>
954
- </i18n-t>
943
+ >
944
+ <Icon
945
+ icon="radix-icons:double-arrow-right"
946
+ class="w-4 h-4"
947
+ />
948
+ </Pagination.Last>
949
+ </Pagination.List>
950
+ </Pagination.Root>
951
+ <i18n-t
952
+ keypath="goto"
953
+ tag="div"
954
+ class="text-xs items-center gap-2 hidden @lg:flex"
955
+ >
956
+ <template #page>
957
+ <NumberField
958
+ :model-value="tableApi.getState().pagination.pageIndex + 1"
959
+ :min="1"
960
+ :max="maxPage"
961
+ @update:model-value="(value) => tableApi.setPageIndex(value - 1)"
962
+ >
963
+ <NumberFieldInput class="h-6 w-16 text-xs" />
964
+ </NumberField>
965
+ </template>
966
+ </i18n-t>
967
+ </template>
955
968
  </div>
956
969
  <div
957
970
  :class="[
@@ -577,6 +577,7 @@ function initializeInitialStateGroups(config) {
577
577
  }
578
578
  function resetDraftState(config) {
579
579
  const nextPaginationPageSizes = getInitialPaginationPageSizes(config);
580
+ const initialPageSize = getInitialPageSize(config);
580
581
  draftBaseConfig.value = config;
581
582
  draftColumnTree.value = buildTableConfiguratorColumnTree(config.columns);
582
583
  draftGetRowId.value = config.getRowId;
@@ -586,7 +587,7 @@ function resetDraftState(config) {
586
587
  draftCellStyles.value = config.cellStyles;
587
588
  draftPaginationLeft.value = config.paginationLeft;
588
589
  draftPaginationRight.value = config.paginationRight;
589
- draftPageSize.value = resolvePaginationPageSize(getInitialPageSize(config), nextPaginationPageSizes);
590
+ draftPageSize.value = initialPageSize === void 0 ? void 0 : resolvePaginationPageSize(initialPageSize, nextPaginationPageSizes);
590
591
  draftPaginationPageSizes.value = createPaginationPageSizeItems(nextPaginationPageSizes);
591
592
  initializeInitialStateGroups(config);
592
593
  syncDraftColumnTreeRootOrder();
@@ -1238,9 +1239,12 @@ function buildNextPaginationPageSizes() {
1238
1239
  }
1239
1240
  function buildNextPaginationState() {
1240
1241
  const currentPagination = draftBaseConfig.value.props?.initialState?.pagination;
1242
+ if (draftPageSize.value === void 0) {
1243
+ return void 0;
1244
+ }
1241
1245
  const nextPaginationPageSizes = buildNextPaginationPageSizes();
1242
1246
  const nextPageSize = resolvePaginationPageSize(draftPageSize.value, nextPaginationPageSizes);
1243
- if (!currentPagination && nextPageSize === void 0) {
1247
+ if (nextPageSize === void 0) {
1244
1248
  return void 0;
1245
1249
  }
1246
1250
  return {
@@ -1249,6 +1253,27 @@ function buildNextPaginationState() {
1249
1253
  };
1250
1254
  }
1251
1255
  function buildDraftConfig() {
1256
+ const baseInitialState = draftBaseConfig.value.props?.initialState;
1257
+ const nextPaginationState = buildNextPaginationState();
1258
+ const nextInitialState = {
1259
+ columnPinning: {
1260
+ ...baseInitialState?.columnPinning,
1261
+ left: buildInitialStateLeafColumnIds(leftPinnedRootItemIds.value),
1262
+ right: buildInitialStateLeafColumnIds(rightPinnedRootItemIds.value)
1263
+ },
1264
+ columnOrder: buildInitialStateLeafColumnIds(centerRootItemIds.value),
1265
+ ...baseInitialState?.columnVisibility ? { columnVisibility: baseInitialState.columnVisibility } : {},
1266
+ ...baseInitialState?.rowPinning ? { rowPinning: baseInitialState.rowPinning } : {},
1267
+ ...baseInitialState?.columnFilters ? { columnFilters: baseInitialState.columnFilters } : {},
1268
+ ...baseInitialState?.globalFilter !== void 0 ? { globalFilter: baseInitialState.globalFilter } : {},
1269
+ ...baseInitialState?.sorting ? { sorting: baseInitialState.sorting } : {},
1270
+ ...baseInitialState?.expanded !== void 0 ? { expanded: baseInitialState.expanded } : {},
1271
+ ...baseInitialState?.grouping ? { grouping: baseInitialState.grouping } : {},
1272
+ ...baseInitialState?.columnSizing ? { columnSizing: baseInitialState.columnSizing } : {},
1273
+ ...baseInitialState?.columnSizingInfo ? { columnSizingInfo: baseInitialState.columnSizingInfo } : {},
1274
+ ...baseInitialState?.rowSelection ? { rowSelection: baseInitialState.rowSelection } : {},
1275
+ ...nextPaginationState ? { pagination: nextPaginationState } : {}
1276
+ };
1252
1277
  return TableConfigC.safeParse({
1253
1278
  ...draftBaseConfig.value,
1254
1279
  getRowId: draftGetRowId.value,
@@ -1262,16 +1287,7 @@ function buildDraftConfig() {
1262
1287
  columns: materializeTableConfiguratorColumnTree(draftColumnTree.value).map(normalizeColumn),
1263
1288
  props: {
1264
1289
  ...draftBaseConfig.value.props,
1265
- initialState: {
1266
- ...draftBaseConfig.value.props?.initialState,
1267
- columnPinning: {
1268
- ...draftBaseConfig.value.props?.initialState?.columnPinning,
1269
- left: buildInitialStateLeafColumnIds(leftPinnedRootItemIds.value),
1270
- right: buildInitialStateLeafColumnIds(rightPinnedRootItemIds.value)
1271
- },
1272
- columnOrder: buildInitialStateLeafColumnIds(centerRootItemIds.value),
1273
- pagination: buildNextPaginationState()
1274
- }
1290
+ initialState: nextInitialState
1275
1291
  }
1276
1292
  });
1277
1293
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shwfed/nuxt",
3
- "version": "0.11.24",
3
+ "version": "0.11.26",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "type": "module",