@iswangh/element-plus-kit-form 0.1.2 → 0.1.4

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 (42) hide show
  1. package/README.md +137 -4
  2. package/dist/FormAction.vue.d.ts +27 -1
  3. package/dist/FormAction.vue.d.ts.map +1 -1
  4. package/dist/FormItem.vue.d.ts.map +1 -1
  5. package/dist/composables/index.d.ts +3 -0
  6. package/dist/composables/index.d.ts.map +1 -0
  7. package/dist/composables/useAutoExpandOnHover.d.ts +15 -0
  8. package/dist/composables/useAutoExpandOnHover.d.ts.map +1 -0
  9. package/dist/composables/useChangeEventState.d.ts +35 -0
  10. package/dist/composables/useChangeEventState.d.ts.map +1 -0
  11. package/dist/config/action.d.ts +29 -0
  12. package/dist/config/action.d.ts.map +1 -0
  13. package/dist/config/component.d.ts +38 -0
  14. package/dist/config/component.d.ts.map +1 -0
  15. package/dist/config/form.d.ts +6 -0
  16. package/dist/config/form.d.ts.map +1 -0
  17. package/dist/config/index.d.ts +4 -64
  18. package/dist/config/index.d.ts.map +1 -1
  19. package/dist/config/scroll.d.ts +7 -0
  20. package/dist/config/scroll.d.ts.map +1 -0
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +630 -227
  24. package/dist/style.css +1 -1
  25. package/dist/types/action.d.ts +74 -0
  26. package/dist/types/common.d.ts +9 -0
  27. package/dist/types/el.d.ts +43 -0
  28. package/dist/types/form-item.d.ts +109 -0
  29. package/dist/types/index.d.ts +5 -125
  30. package/dist/types/index.d.ts.map +1 -1
  31. package/dist/types/options.d.ts +89 -0
  32. package/dist/utils/action.d.ts +10 -0
  33. package/dist/utils/action.d.ts.map +1 -0
  34. package/dist/utils/debounce.d.ts +25 -0
  35. package/dist/utils/debounce.d.ts.map +1 -0
  36. package/dist/utils/index.d.ts +5 -0
  37. package/dist/utils/index.d.ts.map +1 -0
  38. package/dist/utils/options.d.ts +21 -0
  39. package/dist/utils/options.d.ts.map +1 -0
  40. package/dist/utils/value.d.ts +27 -0
  41. package/dist/utils/value.d.ts.map +1 -0
  42. package/package.json +9 -12
package/README.md CHANGED
@@ -93,13 +93,16 @@ import '@iswangh/element-plus-kit-form/style.css'
93
93
  | reset | 重置按钮点击事件 | - |
94
94
  | submit | 提交按钮点击事件 | - |
95
95
  | cancel | 取消按钮点击事件 | - |
96
+ | expand | 展开状态变化事件 | `(value: boolean)` |
96
97
 
97
98
  ### Slots
98
99
 
99
100
  | 插槽名 | 说明 | 作用域参数 |
100
101
  | --- | --- | --- |
102
+ | `{prop}` | 自定义组件插槽,当 `comp` 为 `custom` 时使用 | `FormItemSlotScope` |
101
103
  | `form-item-{prop}` | 表单项插槽,用于自定义表单项内容 | `FormItemSlotScope` |
102
104
  | `{prop}-{slotName}` | 动态组件插槽,如 `username-prefix`、`email-suffix` | `FormItemSlotScope` |
105
+ | `expand-toggle` | 展开/折叠按钮插槽,用于自定义按钮 | `{ expanded: boolean, toggle: (value?: boolean) => void }` |
103
106
 
104
107
  ### FormItem 配置
105
108
 
@@ -111,6 +114,10 @@ interface FormItem<C extends FormItemComp = FormItemComp> {
111
114
  label: string // 标签文本
112
115
  comp: FormItemComp // 组件类型(必填)
113
116
  compAttrs?: FormItemCompAttrs<C> // 组件属性配置
117
+ // 对于支持 options 的组件(如 select、cascader、radio、checkbox 等),compAttrs.options 支持三种模式:
118
+ // 1. 静态数组:options: [{ label: '选项1', value: '1' }]
119
+ // 2. 函数模式:options: (formData) => [{ label: '选项1', value: '1' }]
120
+ // 3. 对象模式:options: { loader: (formData) => [...], deps: ['field1'], immediate: true }
114
121
  vIf?: boolean | ((data?: any) => boolean) // 条件渲染(v-if)
115
122
  vShow?: boolean | ((data?: any) => boolean) // 显示/隐藏(v-show)
116
123
  colAttrs?: ColAttrs // 列布局属性(ElCol 属性)
@@ -196,6 +203,7 @@ interface ActionConfig {
196
203
  vIf?: boolean | ((data?: any) => boolean) // 是否显示操作区域
197
204
  vShow?: boolean | ((data?: any) => boolean) // 显示/隐藏操作区域
198
205
  buttons?: ActionConfigButtons[] // 按钮列表
206
+ expand?: ExpandRule // 默认展开规则(仅在 buttons 包含 'expand' 时生效)
199
207
  }
200
208
  ```
201
209
 
@@ -207,6 +215,7 @@ interface ActionConfig {
207
215
  - `'reset'` - 重置按钮
208
216
  - `'search'` - 搜索按钮
209
217
  - `'cancel'` - 取消按钮
218
+ - `'expand'` - 展开/折叠按钮(仅在 `inline` 模式下可用)
210
219
 
211
220
  #### 自定义按钮
212
221
 
@@ -293,22 +302,146 @@ const formItems: FormItems = [
293
302
  <WForm
294
303
  :model="form"
295
304
  :form-items="formItems"
296
- @change="handleChange"
297
- @submit="handleSubmit"
305
+ @change="onChange"
306
+ @submit="onSubmit"
298
307
  />
299
308
  </template>
300
309
 
301
310
  <script setup lang="ts">
302
- const handleChange = (extendedParams: EventExtendedParams, value: any) => {
311
+ const onChange = (extendedParams: EventExtendedParams, value: any) => {
303
312
  console.log('字段变化:', extendedParams.prop, value)
304
313
  }
305
314
 
306
- const handleSubmit = () => {
315
+ const onSubmit = () => {
307
316
  console.log('提交表单:', form.value)
308
317
  }
309
318
  </script>
310
319
  ```
311
320
 
321
+ ### 展开/折叠功能
322
+
323
+ 表单支持展开/折叠功能,可以控制表单项的显示和隐藏,适用于字段较多的表单场景。
324
+
325
+ **重要说明**:
326
+ - 展开/折叠功能仅在 `inline` 模式下可用(`inline: true`)
327
+ - 通过 `actionConfig.buttons` 包含 `'expand'` 来启用展开/折叠功能
328
+ - 通过 `actionConfig.expand` 配置展开规则
329
+
330
+ #### 基础用法
331
+
332
+ ```vue
333
+ <template>
334
+ <WForm
335
+ :model="form"
336
+ :form-items="formItems"
337
+ inline
338
+ :action-config="{
339
+ buttons: ['expand', 'search', 'reset'],
340
+ expand: {
341
+ count: 3, // 默认展开前 3 个字段
342
+ },
343
+ }"
344
+ />
345
+ </template>
346
+ ```
347
+
348
+ #### 配置说明
349
+
350
+ 展开规则通过 `actionConfig.expand` 配置,支持三种配置方式:
351
+
352
+ | 配置方式 | 说明 | 类型 | 示例 |
353
+ | --- | --- | --- | --- |
354
+ | `count` | 按字段数量展开(从第一个开始) | `{ count: number }` | `{ count: 3 }` |
355
+ | `include` | 指定展示的字段(白名单,字段 prop 数组) | `{ include: string[] }` | `{ include: ['field1', 'field2'] }` |
356
+ | `exclude` | 指定折叠的字段(黑名单,字段 prop 数组) | `{ exclude: string[] }` | `{ exclude: ['field3', 'field4'] }` |
357
+
358
+ **配置优先级**:`exclude` > `include` > `count`
359
+
360
+ #### 展开规则高级配置
361
+
362
+ 展开规则还支持以下高级配置:
363
+
364
+ | 配置项 | 说明 | 类型 | 默认值 |
365
+ | --- | --- | --- | --- |
366
+ | `autoExpandOnHover` | 是否启用鼠标悬停自动展开功能 | `boolean` | `false` |
367
+ | `scrollOnToggle` | 是否在展开/收起后自动滚动到表单中心 | `boolean` | `false` |
368
+ | `scrollIntoViewOptions` | 自定义滚动选项(仅在 `scrollOnToggle` 为 true 时生效) | `ScrollIntoViewOptions` | `{ behavior: 'smooth', block: 'center', inline: 'nearest' }` |
369
+
370
+ **使用示例**:
371
+
372
+ ```typescript
373
+ const actionConfig: ActionConfig = {
374
+ buttons: ['expand', 'search', 'reset'],
375
+ expand: {
376
+ count: 3, // 默认展开前 3 个字段
377
+ autoExpandOnHover: true, // 鼠标悬停时自动展开
378
+ scrollOnToggle: true, // 展开/收起后自动滚动
379
+ },
380
+ }
381
+ ```
382
+
383
+ #### 受控模式
384
+
385
+ 使用 `v-model:expanded` 实现受控模式:
386
+
387
+ ```vue
388
+ <template>
389
+ <WForm
390
+ v-model:expanded="isExpanded"
391
+ :model="form"
392
+ :form-items="formItems"
393
+ inline
394
+ :action-config="{
395
+ buttons: ['expand', 'search', 'reset'],
396
+ expand: { count: 3 },
397
+ }"
398
+ />
399
+ <el-button @click="formRef?.toggleExpand(true)">展开</el-button>
400
+ <el-button @click="formRef?.toggleExpand(false)">折叠</el-button>
401
+ </template>
402
+
403
+ <script setup lang="ts">
404
+ const isExpanded = ref(false)
405
+ const formRef = ref<InstanceType<typeof WForm>>()
406
+
407
+ // 或者使用组件暴露的方法
408
+ function toggle() {
409
+ formRef.value?.toggleExpand() // 切换
410
+ formRef.value?.toggleExpand(true) // 展开
411
+ formRef.value?.toggleExpand(false) // 折叠
412
+ }
413
+
414
+ // 或者直接使用 v-model:expanded
415
+ function toggleExpanded() {
416
+ isExpanded.value = !isExpanded.value
417
+ }
418
+ </script>
419
+ ```
420
+
421
+ #### 自定义按钮
422
+
423
+ 使用 `expand-toggle` 插槽自定义展开/折叠按钮:
424
+
425
+ ```vue
426
+ <template>
427
+ <WForm
428
+ :model="form"
429
+ :form-items="formItems"
430
+ inline
431
+ :action-config="{
432
+ buttons: ['expand', 'search', 'reset'],
433
+ expand: { count: 3 },
434
+ }"
435
+ >
436
+ <template #expand-toggle="{ expanded, toggle }">
437
+ <el-button type="success" :icon="expanded ? ArrowUp : ArrowDown" @click="toggle()">
438
+ {{ expanded ? '收起高级搜索' : '展开高级搜索' }}
439
+ </el-button>
440
+ </template>
441
+ </WForm>
442
+ </template>
443
+ ```
444
+
312
445
  ## 🔗 相关链接
313
446
 
314
447
  - [主包文档](../kit/README.md)
@@ -4,10 +4,28 @@ interface Props {
4
4
  inline?: boolean;
5
5
  actionSlot?: Slot;
6
6
  config?: ActionConfig;
7
+ /** 展开/折叠状态(仅在 buttons 包含 'expand' 时有效) */
8
+ expanded?: boolean;
9
+ /** 是否启用鼠标悬停自动展开 */
10
+ autoExpandOnHover?: boolean;
11
+ /** 鼠标移入事件处理函数(用于空白区域和展开图标) */
12
+ onMouseEnter?: () => void;
13
+ /** 鼠标移出事件处理函数(用于空白区域和展开图标) */
14
+ onMouseLeave?: () => void;
7
15
  }
8
- declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
16
+ declare function __VLS_template(): {
17
+ attrs: Partial<{}>;
18
+ slots: {
19
+ default?(_: {}): any;
20
+ };
21
+ refs: {};
22
+ rootEl: any;
23
+ };
24
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
25
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
9
26
  inline: boolean;
10
27
  config: () => {};
28
+ expanded: boolean;
11
29
  }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
30
  action: (payload: {
13
31
  eventName: string;
@@ -16,15 +34,18 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
16
34
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
17
35
  inline: boolean;
18
36
  config: () => {};
37
+ expanded: boolean;
19
38
  }>>> & Readonly<{
20
39
  onAction?: ((payload: {
21
40
  eventName: string;
22
41
  data?: any;
23
42
  }) => any) | undefined;
24
43
  }>, {
44
+ expanded: boolean;
25
45
  inline: boolean;
26
46
  config: ActionConfig;
27
47
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
48
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
28
49
  export default _default;
29
50
  type __VLS_WithDefaults<P, D> = {
30
51
  [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
@@ -40,6 +61,11 @@ type __VLS_TypePropsToOption<T> = {
40
61
  required: true;
41
62
  };
42
63
  };
64
+ type __VLS_WithTemplateSlots<T, S> = T & {
65
+ new (): {
66
+ $slots: S;
67
+ };
68
+ };
43
69
  type __VLS_PrettifyLocal<T> = {
44
70
  [K in keyof T]: T[K];
45
71
  } & {};
@@ -1 +1 @@
1
- {"version":3,"file":"FormAction.vue.d.ts","sourceRoot":"","sources":["../src/FormAction.vue"],"names":[],"mappings":"AACA;AAkEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAA;AAKnE,UAAU,KAAK;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;;;;;;mBAGqC,MAAM;eAAS,GAAG;;;;;;;mBAAlB,MAAM;eAAS,GAAG;;;YAN7C,OAAO;YAEP,YAAY;;AA2IvB,wBAOG;AAEH,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AACF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC;AACF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"FormAction.vue.d.ts","sourceRoot":"","sources":["../src/FormAction.vue"],"names":[],"mappings":"AACA;AAkKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAA;AAMnE,UAAU,KAAK;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mBAAmB;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAwGD,iBAAS,cAAc;WAsHT,OAAO,IAA6B;;yBAVpB,GAAG;;;;EAehC;AAoBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;mBArPiB,MAAM;eAAS,GAAG;;;;;;;;mBAAlB,MAAM;eAAS,GAAG;;;cAV3C,OAAO;YAJT,OAAO;YAEP,YAAY;4EAwQrB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AACF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC;AACF,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC;AACF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormItem.vue.d.ts","sourceRoot":"","sources":["../src/FormItem.vue"],"names":[],"mappings":"AACA;AA+HA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,KAAK,EAAuB,QAAQ,EAAE,MAAM,SAAS,CAAA;AAK5D,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,IAAI,CAAA;CACb;AAED,UAAU,SAAS;IACjB,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;CACpD;AAED,UAAU,KAAK;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAQD,KAAK,WAAW,GAAG,KAAK,CAAC;AAyEzB,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;CAChB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WA0GT,OAAO,IAA6B;;;;;UAXqC,GAAG;;;EAgBzF;AAoBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;cA/NR,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;eAElB,SAAS;4EAuOrB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AACF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC;AACF,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC;AACF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"FormItem.vue.d.ts","sourceRoot":"","sources":["../src/FormItem.vue"],"names":[],"mappings":"AACA;AAgYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,KAAK,EAAuB,QAAQ,EAAgC,MAAM,SAAS,CAAA;AAO1F,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,IAAI,CAAA;CACb;AAED,UAAU,SAAS;IACjB,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;CACpD;AAED,UAAU,KAAK;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAQD,KAAK,WAAW,GAAG,KAAK,CAAC;AAwUzB,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;CAChB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAuGT,OAAO,IAA6B;;;;;UAXqC,GAAG;;;EAgBzF;AAoBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;cA3dR,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;eAElB,SAAS;4EAmerB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AACF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC;AACF,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC;AACF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './useAutoExpandOnHover';
2
+ export * from './useChangeEventState';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composables/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ /**
3
+ * 鼠标悬停自动展开组合式函数
4
+ *
5
+ * @param isExpanded - 展开/折叠状态
6
+ * @param autoExpandOnHover - 是否启用鼠标悬停自动展开
7
+ * @param onToggleExpanded - 切换展开/折叠状态的回调函数
8
+ * @returns 鼠标事件处理函数和记录手动操作状态的函数
9
+ */
10
+ export declare function useAutoExpandOnHover(isExpanded: Ref<boolean>, autoExpandOnHover: ComputedRef<boolean> | Ref<boolean>, onToggleExpanded: (value: boolean) => void): {
11
+ onMouseEnter: () => void;
12
+ onMouseLeave: () => void;
13
+ recordManualToggle: () => void;
14
+ };
15
+ //# sourceMappingURL=useAutoExpandOnHover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutoExpandOnHover.d.ts","sourceRoot":"","sources":["../../src/composables/useAutoExpandOnHover.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAG3C;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,EACxB,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EACtD,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;;;;EAkF3C"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Change 事件状态管理组合式函数
3
+ * 用于区分不同类型的值变化,防止重复触发 change 事件
4
+ */
5
+ export declare function useChangeEventState(): {
6
+ /** 是否正在清理 */
7
+ readonly isClearing: boolean;
8
+ /** 是否用户交互 */
9
+ readonly isUserInteraction: boolean;
10
+ /**
11
+ * 开始清理操作
12
+ * @param value - 清理前的值
13
+ */
14
+ startClearing(value: any): void;
15
+ /**
16
+ * 结束清理操作(在 nextTick 中调用)
17
+ */
18
+ endClearing(): void;
19
+ /**
20
+ * 开始用户交互
21
+ */
22
+ startUserInteraction(): void;
23
+ /**
24
+ * 结束用户交互(在 nextTick 中调用)
25
+ */
26
+ endUserInteraction(): void;
27
+ /**
28
+ * 判断是否是清理操作
29
+ * @param oldValue - 旧值
30
+ * @param newValue - 新值
31
+ * @param isEmpty - 检查值是否为空的函数
32
+ */
33
+ isClearingOperation(oldValue: any, newValue: any, isEmpty: (val: any) => boolean): boolean;
34
+ };
35
+ //# sourceMappingURL=useChangeEventState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChangeEventState.d.ts","sourceRoot":"","sources":["../../src/composables/useChangeEventState.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,wBAAgB,mBAAmB;IAO/B,aAAa;;IAKb,aAAa;;IAKb;;;OAGG;yBACkB,GAAG;IAMxB;;OAEG;;IAOH;;OAEG;;IAKH;;OAEG;;IAKH;;;;;OAKG;kCAC2B,GAAG,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO;EAgB7F"}
@@ -0,0 +1,29 @@
1
+ import { ActionConfig, ActionConfigButtonItem } from '../types';
2
+ /**
3
+ * 表单动作按钮默认配置
4
+ */
5
+ export declare const DEFAULT_FORM_ACTION_BUTTONS: Record<string, Partial<Omit<ActionConfigButtonItem, 'eventName'>>>;
6
+ /**
7
+ * 展开/收起功能默认滚动选项
8
+ */
9
+ export declare const DEFAULT_EXPAND_SCROLL_OPTIONS: ScrollIntoViewOptions;
10
+ /**
11
+ * 表单动作默认配置
12
+ */
13
+ export declare const ACTION_DEFAULT_CONFIG: {
14
+ getDefaults(inline?: boolean, actionConfig?: ActionConfig): {
15
+ vIf: boolean | ((data?: any) => boolean);
16
+ vShow: boolean | ((data?: any) => boolean);
17
+ buttons: string[] | import('../types').ActionConfigButtons[];
18
+ expand?: import('..').ExpandRule;
19
+ autoExpandOnError: boolean;
20
+ };
21
+ generateActionButtons(inline?: boolean): string[];
22
+ buildActionAttrs(inline?: boolean): {
23
+ buttons: string[];
24
+ vIf: boolean | undefined;
25
+ autoExpandOnError: boolean;
26
+ vShow: boolean;
27
+ };
28
+ };
29
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/config/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAIpE;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC,CAM1G,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,uBAAyB,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,qBAAqB;yBACX,OAAO,iBAAiB,YAAY;6BAoB4gB,CAAC;+BAAmF,CAAC;;;;;mCAZ3nB,OAAO;8BAGZ,OAAO;;;;;;CAQlC,CAAA"}
@@ -0,0 +1,38 @@
1
+ import { FormItem } from '../types';
2
+ /**
3
+ * 需要从 FormItem 中排除的自定义属性键名
4
+ * 这些属性不会传递给 el-form-item 组件
5
+ */
6
+ export declare const FORM_ITEM_EXCLUDED_KEYS: readonly ["comp", "compAttrs", "vIf", "vShow"];
7
+ /**
8
+ * 表单组件类型映射配置
9
+ *
10
+ * 使用显式类型注解避免类型推断超出编译器序列化限制
11
+ * 类型提示通过 keyof 提取键名,不依赖完整的类型定义
12
+ */
13
+ export declare const FORM_ITEM_COMP_MAP: Record<string, any>;
14
+ /**
15
+ * 动态组件默认配置
16
+ */
17
+ export declare const COMPONENT_DEFAULT_CONFIG: {
18
+ /**
19
+ * 获取组件默认属性
20
+ */
21
+ getDefaults(formItem: FormItem): {
22
+ [x: string]: any;
23
+ options?: import('../types').FormItemOptions<C>;
24
+ };
25
+ /**
26
+ * 判断组件类型
27
+ */
28
+ getComponentType(comp: string): "input" | "select" | "picker" | "other";
29
+ /**
30
+ * 动态生成 placeholder
31
+ */
32
+ generatePlaceholder(formItem: FormItem, type: string): string;
33
+ /**
34
+ * 构建组件属性
35
+ */
36
+ buildComponentAttrs(formItem: FormItem, type: string): Record<string, any>;
37
+ };
38
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/config/component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGxC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,gDAAiD,CAAA;AAsCrF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAGzC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,wBAAwB;IACnC;;OAEG;0BACmB,QAAQ;;;;IAe9B;;OAEG;2BACoB,MAAM;IAoB7B;;OAEG;kCAC2B,QAAQ,QAAQ,MAAM;IAkBpD;;OAEG;kCAC2B,QAAQ,QAAQ,MAAM;CAYrD,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { FormProps } from 'element-plus';
2
+ /**
3
+ * 表单属性默认配置
4
+ */
5
+ export declare const DEFAULT_FORM_ATTRS: Partial<FormProps>;
6
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/config/form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAG7C;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAIf,OAAO,CAAC,SAAS,CAAC,CAAA"}
@@ -1,65 +1,5 @@
1
- import { FormProps } from 'element-plus';
2
- import { ActionConfig, ActionConfigButtonItem, FormItem } from '../types';
3
- /**
4
- * 表单组件配置常量
5
- */
6
- /**
7
- * 需要从 FormItem 中排除的自定义属性键名
8
- * 这些属性不会传递给 el-form-item 组件
9
- */
10
- export declare const FORM_ITEM_EXCLUDED_KEYS: readonly ["comp", "compAttrs", "vIf", "vShow"];
11
- /**
12
- * 表单组件类型映射配置
13
- *
14
- * 使用显式类型注解避免类型推断超出编译器序列化限制
15
- * 类型提示通过 keyof 提取键名,不依赖完整的类型定义
16
- */
17
- export declare const FORM_ITEM_COMP_MAP: Record<string, any>;
18
- /**
19
- * 动态组件默认配置
20
- */
21
- export declare const COMPONENT_DEFAULT_CONFIG: {
22
- /**
23
- * 获取组件默认属性
24
- */
25
- getDefaults(formItem: FormItem): {
26
- [x: string]: any;
27
- };
28
- /**
29
- * 判断组件类型
30
- */
31
- getComponentType(comp: string): "input" | "select" | "picker" | "other";
32
- /**
33
- * 动态生成 placeholder
34
- */
35
- generatePlaceholder(formItem: FormItem, type: string): string;
36
- /**
37
- * 构建组件属性
38
- */
39
- buildComponentAttrs(formItem: FormItem, type: string): Record<string, any>;
40
- };
41
- /**
42
- * 表单属性默认配置
43
- */
44
- export declare const DEFAULT_FORM_ATTRS: Partial<FormProps>;
45
- /**
46
- * 表单动作按钮默认配置
47
- */
48
- export declare const DEFAULT_FORM_ACTION_BUTTONS: Record<string, Partial<Omit<ActionConfigButtonItem, 'eventName'>>>;
49
- /**
50
- * 表单动作默认配置
51
- */
52
- export declare const ACTION_DEFAULT_CONFIG: {
53
- getDefaults(inline?: boolean, actionConfig?: ActionConfig): {
54
- vIf: boolean | ((data?: any) => boolean);
55
- vShow: boolean | ((data?: any) => boolean);
56
- buttons: string[] | import('../types').ActionConfigButtons[];
57
- };
58
- generateActionButtons(inline?: boolean): string[];
59
- buildActionAttrs(inline?: boolean): {
60
- buttons: string[];
61
- vIf: boolean | undefined;
62
- vShow: boolean;
63
- };
64
- };
1
+ export * from './action';
2
+ export * from './component';
3
+ export * from './form';
4
+ export * from './scroll';
65
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAI9E;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,gDAAiD,CAAA;AAsCrF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAGzC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,wBAAwB;IACnC;;OAEG;0BACmB,QAAQ;;;IAe9B;;OAEG;2BACoB,MAAM;IAoB7B;;OAEG;kCAC2B,QAAQ,QAAQ,MAAM;IAkBpD;;OAEG;kCAC2B,QAAQ,QAAQ,MAAM;CAYrD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAQf,OAAO,CAAC,SAAS,CAAC,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC,CAK1G,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;yBACX,OAAO,iBAAiB,YAAY;6BAXgB,CAAC;+BACpE,CAAC;;;mCAkBwB,OAAO;8BAGZ,OAAO;;;;;CAOlC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 默认滚动选项配置
3
+ *
4
+ * 用于表单验证错误滚动和展开/收起功能滚动
5
+ */
6
+ export declare const DEFAULT_SCROLL_OPTIONS: ScrollIntoViewOptions;
7
+ //# sourceMappingURL=scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/config/scroll.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,qBAIpC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { default } from './Form.vue';
2
2
  export { default as WForm } from './Form.vue';
3
- export type { ActionConfig, ActionConfigButtonItem, Arrayable, ColAttrs, ElFormAttrs, EventExtendedParams, FormItem, FormItemComp, FormItemCompAttrs, FormItems, FormItemSlotScope, RowAttrs, } from './types';
3
+ export type { ActionConfig, ActionConfigButtonItem, Arrayable, ColAttrs, ElFormAttrs, EventExtendedParams, ExpandRule, FormItem, FormItemComp, FormItemCompAttrs, FormItems, FormItemSlotScope, RowAttrs, } from './types';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,2CAA2C,CAAA;AAClD,OAAO,gDAAgD,CAAA;AAEvD,OAAO,0CAA0C,CAAA;AACjD,OAAO,0CAA0C,CAAA;AAEjD,OAAO,6CAA6C,CAAA;AAKpD,OAAO,4CAA4C,CAAA;AACnD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,gDAAgD,CAAA;AACvD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,8CAA8C,CAAA;AAErD,OAAO,6CAA6C,CAAA;AACpD,OAAO,gDAAgD,CAAA;AACvD,OAAO,+CAA+C,CAAA;AACtD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,kDAAkD,CAAA;AACzD,OAAO,wDAAwD,CAAA;AAC/D,OAAO,kDAAkD,CAAA;AACzD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,qDAAqD,CAAA;AAC5D,OAAO,kDAAkD,CAAA;AACzD,OAAO,6CAA6C,CAAA;AACpD,OAAO,6CAA6C,CAAA;AACpD,OAAO,2CAA2C,CAAA;AAClD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,yDAAyD,CAAA;AAChE,OAAO,+CAA+C,CAAA;AAEtD,OAAO,oBAAoB,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAE7C,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACT,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,2CAA2C,CAAA;AAClD,OAAO,gDAAgD,CAAA;AAEvD,OAAO,0CAA0C,CAAA;AACjD,OAAO,0CAA0C,CAAA;AAEjD,OAAO,6CAA6C,CAAA;AAEpD,OAAO,2CAA2C,CAAA;AAKlD,OAAO,4CAA4C,CAAA;AACnD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,gDAAgD,CAAA;AACvD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,8CAA8C,CAAA;AAErD,OAAO,6CAA6C,CAAA;AACpD,OAAO,gDAAgD,CAAA;AACvD,OAAO,+CAA+C,CAAA;AACtD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,kDAAkD,CAAA;AACzD,OAAO,wDAAwD,CAAA;AAC/D,OAAO,kDAAkD,CAAA;AACzD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,qDAAqD,CAAA;AAC5D,OAAO,kDAAkD,CAAA;AACzD,OAAO,6CAA6C,CAAA;AACpD,OAAO,6CAA6C,CAAA;AACpD,OAAO,2CAA2C,CAAA;AAClD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,yDAAyD,CAAA;AAChE,OAAO,+CAA+C,CAAA;AAEtD,OAAO,oBAAoB,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAE7C,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACT,MAAM,SAAS,CAAA"}