@silver-formily/vue 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.en.md ADDED
@@ -0,0 +1,118 @@
1
+ # Silver Formily Vue
2
+
3
+ [Documentation](https://vue.silver-formily.org/) · [Local docs index](./docs/index.md) · [中文 README](./README.md)
4
+
5
+ @silver-formily/vue is a Vue 3–first runtime wrapper around [Formily](https://formilyjs.org/). It keeps the orchestration power of `@formily/vue` while removing Vue 2 compatibility layers, redundant DOM wrappers, and inconsistent event contracts. The source lives in `src/`, docs in `docs/`, and build artifacts in `esm/`.
6
+
7
+ ## ✨ Features
8
+
9
+ - **Pure Vue 3 runtime** – no `vue-demi`, `vue-frag`, or compatibility shims; the render tree mirrors native Vue component libraries.
10
+ - **Native DOM & events** – relies on `modelValue` / `onUpdate:modelValue`, so Element Plus and most Vue 3 UI kits work without extra adapters.
11
+ - **Richer TypeScript hints** – explicit generics and shared interfaces sit beside the runtime to keep emitted `.d.ts` files in sync.
12
+ - **Formily ecosystem alignment** – works with `@formily/core`, `@formily/json-schema`, and other official packages, keeping migration costs low.
13
+ - **Docs & demos included** – VitePress docs describe APIs, migration notes, and Element Plus demos; run `pnpm docs:dev` to browse locally.
14
+
15
+ ## 🔄 Differences vs `@formily/vue`
16
+
17
+ | Aspect | `@silver-formily/vue` 2.x | Official `@formily/vue` |
18
+ | -------------- | ------------------------------------------------------------------ | ---------------------------------------- |
19
+ | Event contract | `modelValue` / `onUpdate:modelValue` | `value` / `onChange` |
20
+ | DOM structure | No extra `template` / `display: contents` wrappers | Extra containers for Vue 2 compatibility |
21
+ | Dependencies | Vue 3–only runtime deps | Uses `vue-demi` to target Vue 2 + 3 |
22
+ | Schema export | Schema is **not** re-exported (import from `@formily/json-schema`) | Schema is re-exported |
23
+ | Compatibility | Use `@silver-formily/vue@1.x` for strict parity | Official package |
24
+
25
+ ## 📦 Peer Dependencies
26
+
27
+ Install these alongside the library in your host app:
28
+
29
+ ```
30
+ @formily/core ^2
31
+ @formily/json-schema ^2
32
+ @formily/reactive ^2
33
+ @formily/reactive-vue ^2
34
+ @formily/shared ^2
35
+ vue ^3.3.0+
36
+ ```
37
+
38
+ ## 🚀 Installation
39
+
40
+ Recommended pnpm command:
41
+
42
+ ```bash
43
+ pnpm add @silver-formily/vue @formily/core @formily/json-schema @formily/reactive @formily/reactive-vue @formily/shared
44
+ ```
45
+
46
+ ## ⚡️ Quick Start
47
+
48
+ The snippet below wires Element Plus inputs into Formily:
49
+
50
+ ```vue
51
+ <script setup lang="ts">
52
+ import { createForm } from '@formily/core'
53
+ import {
54
+ connect,
55
+ Field,
56
+ FormProvider,
57
+ mapProps,
58
+ } from '@silver-formily/vue'
59
+ import { ElFormItem, ElInput } from 'element-plus'
60
+
61
+ const form = createForm({ validateFirst: true })
62
+
63
+ const FormItem = connect(
64
+ ElFormItem,
65
+ mapProps(
66
+ { title: 'label', required: true },
67
+ (_, field) => ({ error: field.selfErrors[0] || undefined })
68
+ ),
69
+ )
70
+ </script>
71
+
72
+ <template>
73
+ <FormProvider :form="form">
74
+ <Field
75
+ name="email"
76
+ title="Email"
77
+ required
78
+ :decorator="[FormItem]"
79
+ :component="[ElInput, { placeholder: 'hello@formily.dev' }]"
80
+ />
81
+ </FormProvider>
82
+ </template>
83
+ ```
84
+
85
+ Explore more components (`SchemaField`, `RecursionField`, `ArrayField`, etc.) and composables in [`docs/api`](./docs/api).
86
+
87
+ ## 🧱 API Overview
88
+
89
+ - **Components**: `FormProvider`, `FormConsumer`, `Field`, `ArrayField`, `ObjectField`, `VoidField`, `SchemaField`, `RecursionField`, `ReactiveField`, `ExpressionScope`.
90
+ - **Composables**: `useForm`, `useField`, `useFieldSchema`, `useFormEffects`, `useParentForm`, `useAttach`, `useInjectionCleaner`.
91
+ - **Shared helpers**: `connect`, `mapProps`, plus factories in `src/shared` and `src/utils`.
92
+
93
+ All public symbols are re-exported from `src/index.ts`, and the published bundle (JS + declarations) lives in `esm/`.
94
+
95
+ ## 🛠️ Local Development
96
+
97
+ ```bash
98
+ pnpm install # Install dependencies
99
+ pnpm lint # Run Antfu ESLint rules
100
+ pnpm build # Build the library + types via Vite
101
+ pnpm docs:dev # Launch the VitePress docs site
102
+ pnpm docs:build # Generate static docs into docs/.vitepress/dist
103
+ pnpm commit # Conventional Commit helper (czg)
104
+ pnpm release # release-it workflow (requires clean tree)
105
+ ```
106
+
107
+ - Build output is generated into `esm/`; do not hand-edit this directory.
108
+ - Automated tests are not wired yet—document manual verification (Vue + Formily versions, schema, browser) in every PR.
109
+ - Follow `@antfu/eslint-config` style: 2 spaces, single quotes, dangling commas where allowed, no semicolons.
110
+
111
+ ## 📚 Docs & Examples
112
+
113
+ - Visit the published site: <https://vue.silver-formily.org/>.
114
+ - `docs/demos` contains Element Plus playgrounds that double as regression samples.
115
+
116
+ ## 📄 License
117
+
118
+ MIT © hezhengxu
package/README.md ADDED
@@ -0,0 +1,118 @@
1
+ # Silver Formily Vue
2
+
3
+ [文档网站](https://vue.silver-formily.org/) · [本地文档首页](./docs/zh/index.md) · [English README](./README.en.md)
4
+
5
+ @silver-formily/vue 是一个专注于 Vue 3 生态的 [Formily](https://formilyjs.org/) 运行时封装。它保留了 `@formily/vue` 的编排能力,同时去除了 Vue 2 兼容层、冗余 DOM 包裹以及不一致的事件契约。源码位于 `src/`,文档位于 `docs/`,构建产物存放在 `esm/`。
6
+
7
+ ## ✨ 特性
8
+
9
+ - **纯粹的 Vue 3 代码路径**:完全抛弃 `vue-demi`、`vue-frag` 等兼容依赖,渲染树贴近原生组件库。
10
+ - **原生 DOM 与事件语义**:统一使用 `modelValue` / `onUpdate:modelValue`,Element Plus 等组件可直接对接。
11
+ - **完善的 TypeScript 类型**:在运行时附近维护显式泛型与公共接口,确保生成的 `.d.ts` 与实现同步。
12
+ - **Formily 生态对齐**:与 `@formily/core`、`@formily/json-schema` 等官方包保持兼容,迁移成本低。
13
+ - **配套文档与示例**:内置 VitePress 文档,包含 API、迁移提示以及 Element Plus 示例,执行 `pnpm docs:dev` 即可查看。
14
+
15
+ ## 🔄 与 `@formily/vue` 的差异
16
+
17
+ | 项目 | `@silver-formily/vue` 2.x | 官方 `@formily/vue` |
18
+ | ----------- | ----------------------------------------------------------- | -------------------------------- |
19
+ | 事件契约 | `modelValue` / `onUpdate:modelValue` | `value` / `onChange` |
20
+ | DOM 结构 | 无额外 `template` / `display: contents` 包裹 | 含 Vue 2 兼容容器 |
21
+ | 依赖 | 仅依赖 Vue 3 生态 | 借助 `vue-demi` 同时支持 Vue 2/3 |
22
+ | Schema 导出 | 不再 re-export `Schema`(请从 `@formily/json-schema` 引入) | 仍导出 |
23
+ | 兼容策略 | 需要与官方保持完全一致时可使用 `@silver-formily/vue@1.x` | 官方包 |
24
+
25
+ ## 📦 Peer Dependencies
26
+
27
+ 在宿主应用中需要同时安装:
28
+
29
+ ```
30
+ @formily/core ^2
31
+ @formily/json-schema ^2
32
+ @formily/reactive ^2
33
+ @formily/reactive-vue ^2
34
+ @formily/shared ^2
35
+ vue ^3.3.0+
36
+ ```
37
+
38
+ ## 🚀 安装
39
+
40
+ 推荐使用 pnpm:
41
+
42
+ ```bash
43
+ pnpm add @silver-formily/vue @formily/core @formily/json-schema @formily/reactive @formily/reactive-vue @formily/shared
44
+ ```
45
+
46
+ ## ⚡️ 快速开始
47
+
48
+ 以下示例演示如何结合 Element Plus 构建最小表单:
49
+
50
+ ```vue
51
+ <script setup lang="ts">
52
+ import { createForm } from '@formily/core'
53
+ import {
54
+ connect,
55
+ Field,
56
+ FormProvider,
57
+ mapProps,
58
+ } from '@silver-formily/vue'
59
+ import { ElFormItem, ElInput } from 'element-plus'
60
+
61
+ const form = createForm({ validateFirst: true })
62
+
63
+ const FormItem = connect(
64
+ ElFormItem,
65
+ mapProps(
66
+ { title: 'label', required: true },
67
+ (_, field) => ({ error: field.selfErrors[0] || undefined })
68
+ ),
69
+ )
70
+ </script>
71
+
72
+ <template>
73
+ <FormProvider :form="form">
74
+ <Field
75
+ name="email"
76
+ title="Email"
77
+ required
78
+ :decorator="[FormItem]"
79
+ :component="[ElInput, { placeholder: 'hello@formily.dev' }]"
80
+ />
81
+ </FormProvider>
82
+ </template>
83
+ ```
84
+
85
+ 更多组件(`SchemaField`、`RecursionField`、`ArrayField` 等)与组合式 API 请参阅 [`docs/api`](./docs/api)。
86
+
87
+ ## 🧱 API 速览
88
+
89
+ - **组件**:`FormProvider`、`FormConsumer`、`Field`、`ArrayField`、`ObjectField`、`VoidField`、`SchemaField`、`RecursionField`、`ReactiveField`、`ExpressionScope`。
90
+ - **组合式函数**:`useForm`、`useField`、`useFieldSchema`、`useFormEffects`、`useParentForm`、`useAttach`、`useInjectionCleaner`。
91
+ - **共享工具**:`connect`、`mapProps` 以及位于 `src/shared`、`src/utils` 的渲染辅助。
92
+
93
+ 所有公共符号均通过 `src/index.ts` 输出,构建后的 JS 与 `.d.ts` 保存在 `esm/`。
94
+
95
+ ## 🛠️ 本地开发
96
+
97
+ ```bash
98
+ pnpm install # 安装依赖
99
+ pnpm lint # 运行 Antfu ESLint 规则
100
+ pnpm build # 基于 Vite 生成库与类型
101
+ pnpm docs:dev # 启动 VitePress 文档站点
102
+ pnpm docs:build # 生成静态文档 (docs/.vitepress/dist)
103
+ pnpm commit # 使用 czg 编写 Conventional Commit
104
+ pnpm release # release-it 发布,需要干净工作区
105
+ ```
106
+
107
+ - 构建输出位于 `esm/`,请勿手动修改。
108
+ - 目前没有自动化测试,请在 PR 中记录手动验证(Vue/Formily 版本、使用的 schema、浏览器等)。
109
+ - 代码风格遵循 `@antfu/eslint-config`:2 空格、单引号、允许尾随逗号、无分号。
110
+
111
+ ## 📚 文档与示例
112
+
113
+ - 在线站点:<https://vue.silver-formily.org/>
114
+ - `docs/demos` 提供 Element Plus 示例,可作为封装自定义组件的起点。
115
+
116
+ ## 📄 License
117
+
118
+ MIT © hezhengxu
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayField.mjs","sources":["../../src/components/ArrayField.ts"],"sourcesContent":["import type { IArrayFieldProps } from '../types'\nimport { defineComponent, h } from 'vue'\nimport { fieldProps } from '../utils/fieldProps'\nimport { getRawComponent } from '../utils/getRawComponent'\nimport ReactiveField from './ReactiveField'\n\nexport default defineComponent({\n name: 'ArrayField',\n props: fieldProps,\n setup(props: IArrayFieldProps, { slots }) {\n return () => {\n const componentData = {\n fieldType: 'ArrayField',\n fieldProps: {\n ...props,\n ...getRawComponent(props),\n },\n }\n return h(ReactiveField, componentData, slots)\n }\n },\n})\n"],"names":["ArrayField","defineComponent","fieldProps","props","slots","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAyB,EAAE,OAAAC,KAAS;AACxC,WAAO,MAAM;AACX,YAAMC,IAAgB;AAAA,QACpB,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,CAAK;AAAA,IAC9C;AAAA,EACF;AACF,CAAC;"}
1
+ {"version":3,"file":"ArrayField.mjs","sources":["../../src/components/ArrayField.ts"],"sourcesContent":["import type { IArrayFieldProps } from '../types'\r\nimport { defineComponent, h } from 'vue'\r\nimport { fieldProps } from '../utils/fieldProps'\r\nimport { getRawComponent } from '../utils/getRawComponent'\r\nimport ReactiveField from './ReactiveField'\r\n\r\nexport default defineComponent({\r\n name: 'ArrayField',\r\n props: fieldProps,\r\n setup(props: IArrayFieldProps, { slots }) {\r\n return () => {\r\n const componentData = {\r\n fieldType: 'ArrayField',\r\n fieldProps: {\r\n ...props,\r\n ...getRawComponent(props),\r\n },\r\n }\r\n return h(ReactiveField, componentData, slots)\r\n }\r\n },\r\n})\r\n"],"names":["ArrayField","defineComponent","fieldProps","props","slots","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAyB,EAAE,OAAAC,KAAS;AACxC,WAAO,MAAM;AACX,YAAMC,IAAgB;AAAA,QACpB,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,CAAK;AAAA,IAC9C;AAAA,EACF;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressionScope.mjs","sources":["../../src/components/ExpressionScope.ts"],"sourcesContent":["import type { PropType, Ref } from 'vue'\nimport type { IExpressionScopeProps, SchemaExpressionScope } from '../types'\nimport { lazyMerge } from '@formily/shared'\nimport { computed, defineComponent, inject, provide } from 'vue'\nimport { SchemaExpressionScopeSymbol } from '../shared'\n\nexport default defineComponent({\n name: 'ExpressionScope',\n props: {\n value: {\n type: Object as PropType<IExpressionScopeProps['value']>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const parentScopeRef = inject<Ref<SchemaExpressionScope>>(SchemaExpressionScopeSymbol)\n const expressionScopeRef = computed<SchemaExpressionScope>(() => {\n const parentScope = parentScopeRef?.value ?? {}\n return lazyMerge(parentScope, props.value)\n })\n\n provide(SchemaExpressionScopeSymbol, expressionScopeRef)\n\n return () => slots.default?.()\n },\n})\n"],"names":["ExpressionScope","defineComponent","props","slots","parentScopeRef","inject","SchemaExpressionScopeSymbol","expressionScopeRef","computed","parentScope","lazyMerge","provide"],"mappings":";;;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,UAAMC,IAAiBC,EAAmCC,CAA2B,GAC/EC,IAAqBC,EAAgC,MAAM;AAC/D,YAAMC,IAAcL,GAAgB,SAAS,CAAA;AAC7C,aAAOM,EAAUD,GAAaP,EAAM,KAAK;AAAA,IAC3C,CAAC;AAED,WAAAS,EAAQL,GAA6BC,CAAkB,GAEhD,MAAMJ,EAAM,UAAA;AAAA,EACrB;AACF,CAAC;"}
1
+ {"version":3,"file":"ExpressionScope.mjs","sources":["../../src/components/ExpressionScope.ts"],"sourcesContent":["import type { PropType, Ref } from 'vue'\r\nimport type { IExpressionScopeProps, SchemaExpressionScope } from '../types'\r\nimport { lazyMerge } from '@formily/shared'\r\nimport { computed, defineComponent, inject, provide } from 'vue'\r\nimport { SchemaExpressionScopeSymbol } from '../shared'\r\n\r\nexport default defineComponent({\r\n name: 'ExpressionScope',\r\n props: {\r\n value: {\r\n type: Object as PropType<IExpressionScopeProps['value']>,\r\n required: true,\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const parentScopeRef = inject<Ref<SchemaExpressionScope>>(SchemaExpressionScopeSymbol)\r\n const expressionScopeRef = computed<SchemaExpressionScope>(() => {\r\n const parentScope = parentScopeRef?.value ?? {}\r\n return lazyMerge(parentScope, props.value)\r\n })\r\n\r\n provide(SchemaExpressionScopeSymbol, expressionScopeRef)\r\n\r\n return () => slots.default?.()\r\n },\r\n})\r\n"],"names":["ExpressionScope","defineComponent","props","slots","parentScopeRef","inject","SchemaExpressionScopeSymbol","expressionScopeRef","computed","parentScope","lazyMerge","provide"],"mappings":";;;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,UAAMC,IAAiBC,EAAmCC,CAA2B,GAC/EC,IAAqBC,EAAgC,MAAM;AAC/D,YAAMC,IAAcL,GAAgB,SAAS,CAAA;AAC7C,aAAOM,EAAUD,GAAaP,EAAM,KAAK;AAAA,IAC3C,CAAC;AAED,WAAAS,EAAQL,GAA6BC,CAAkB,GAEhD,MAAMJ,EAAM,UAAA;AAAA,EACrB;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Field.mjs","sources":["../../src/components/Field.ts"],"sourcesContent":["import type { IFieldProps, IReactiveFieldProps } from '../types'\nimport { defineComponent, h } from 'vue'\nimport { fieldProps } from '../utils/fieldProps'\nimport { getRawComponent } from '../utils/getRawComponent'\nimport ReactiveField from './ReactiveField'\n\nexport default defineComponent({\n name: 'Field',\n props: fieldProps,\n setup(props: IFieldProps, context) {\n return () => {\n const componentData: IReactiveFieldProps = {\n fieldType: 'Field',\n fieldProps: {\n ...props,\n ...getRawComponent(props),\n },\n }\n return h(ReactiveField, componentData, context.slots)\n }\n },\n})\n"],"names":["Field","defineComponent","fieldProps","props","context","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAoBC,GAAS;AACjC,WAAO,MAAM;AACX,YAAMC,IAAqC;AAAA,QACzC,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,EAAQ,KAAK;AAAA,IACtD;AAAA,EACF;AACF,CAAC;"}
1
+ {"version":3,"file":"Field.mjs","sources":["../../src/components/Field.ts"],"sourcesContent":["import type { IFieldProps, IReactiveFieldProps } from '../types'\r\nimport { defineComponent, h } from 'vue'\r\nimport { fieldProps } from '../utils/fieldProps'\r\nimport { getRawComponent } from '../utils/getRawComponent'\r\nimport ReactiveField from './ReactiveField'\r\n\r\nexport default defineComponent({\r\n name: 'Field',\r\n props: fieldProps,\r\n setup(props: IFieldProps, context) {\r\n return () => {\r\n const componentData: IReactiveFieldProps = {\r\n fieldType: 'Field',\r\n fieldProps: {\r\n ...props,\r\n ...getRawComponent(props),\r\n },\r\n }\r\n return h(ReactiveField, componentData, context.slots)\r\n }\r\n },\r\n})\r\n"],"names":["Field","defineComponent","fieldProps","props","context","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAoBC,GAAS;AACjC,WAAO,MAAM;AACX,YAAMC,IAAqC;AAAA,QACzC,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,EAAQ,KAAK;AAAA,IACtD;AAAA,EACF;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormConsumer.mjs","sources":["../../src/components/FormConsumer.ts"],"sourcesContent":["import { useObserver } from '@formily/reactive-vue'\nimport { defineComponent } from 'vue'\nimport { useForm } from '../hooks'\n\nexport default defineComponent({\n name: 'FormConsumer',\n inheritAttrs: false,\n setup(_, { slots }) {\n useObserver({\n scheduler: update => Promise.resolve().then(update),\n })\n\n const form = useForm()\n\n return () => slots.default?.({ form: form.value }) ?? null\n },\n})\n"],"names":["FormConsumer","defineComponent","_","slots","useObserver","update","form","useForm"],"mappings":";;;;AAIA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,MAAMC,GAAG,EAAE,OAAAC,KAAS;AAClB,IAAAC,EAAY;AAAA,MACV,WAAW,CAAAC,MAAU,QAAQ,QAAA,EAAU,KAAKA,CAAM;AAAA,IAAA,CACnD;AAED,UAAMC,IAAOC,EAAA;AAEb,WAAO,MAAMJ,EAAM,UAAU,EAAE,MAAMG,EAAK,MAAA,CAAO,KAAK;AAAA,EACxD;AACF,CAAC;"}
1
+ {"version":3,"file":"FormConsumer.mjs","sources":["../../src/components/FormConsumer.ts"],"sourcesContent":["import { useObserver } from '@formily/reactive-vue'\r\nimport { defineComponent } from 'vue'\r\nimport { useForm } from '../hooks'\r\n\r\nexport default defineComponent({\r\n name: 'FormConsumer',\r\n inheritAttrs: false,\r\n setup(_, { slots }) {\r\n useObserver({\r\n scheduler: update => Promise.resolve().then(update),\r\n })\r\n\r\n const form = useForm()\r\n\r\n return () => slots.default?.({ form: form.value }) ?? null\r\n },\r\n})\r\n"],"names":["FormConsumer","defineComponent","_","slots","useObserver","update","form","useForm"],"mappings":";;;;AAIA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,MAAMC,GAAG,EAAE,OAAAC,KAAS;AAClB,IAAAC,EAAY;AAAA,MACV,WAAW,CAAAC,MAAU,QAAQ,QAAA,EAAU,KAAKA,CAAM;AAAA,IAAA,CACnD;AAED,UAAMC,IAAOC,EAAA;AAEb,WAAO,MAAMJ,EAAM,UAAU,EAAE,MAAMG,EAAK,MAAA,CAAO,KAAK;AAAA,EACxD;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormProvider.mjs","sources":["../../src/components/FormProvider.ts"],"sourcesContent":["import type { PropType } from 'vue'\nimport type { IProviderProps } from '../types'\nimport { defineComponent, provide, toRef } from 'vue'\nimport { useAttach } from '../hooks/useAttach'\nimport { useInjectionCleaner } from '../hooks/useInjectionCleaner'\nimport {\n FieldSymbol,\n FormSymbol,\n SchemaExpressionScopeSymbol,\n SchemaMarkupSymbol,\n SchemaOptionsSymbol,\n SchemaSymbol,\n} from '../shared/context'\n\nexport default defineComponent({\n name: 'FormProvider',\n props: {\n form: {\n type: Object as PropType<IProviderProps['form']>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const formRef = useAttach(toRef(props, 'form'))\n provide(FormSymbol, formRef)\n useInjectionCleaner([\n FieldSymbol,\n SchemaMarkupSymbol,\n SchemaSymbol,\n SchemaExpressionScopeSymbol,\n SchemaOptionsSymbol,\n ])\n\n return () => slots.default?.()\n },\n})\n"],"names":["FormProvider","defineComponent","props","slots","formRef","useAttach","toRef","provide","FormSymbol","useInjectionCleaner","FieldSymbol","SchemaMarkupSymbol","SchemaSymbol","SchemaExpressionScopeSymbol","SchemaOptionsSymbol"],"mappings":";;;;AAcA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,UAAMC,IAAUC,EAAUC,EAAMJ,GAAO,MAAM,CAAC;AAC9C,WAAAK,EAAQC,GAAYJ,CAAO,GAC3BK,EAAoB;AAAA,MAClBC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA,CACD,GAEM,MAAMX,EAAM,UAAA;AAAA,EACrB;AACF,CAAC;"}
1
+ {"version":3,"file":"FormProvider.mjs","sources":["../../src/components/FormProvider.ts"],"sourcesContent":["import type { PropType } from 'vue'\r\nimport type { IProviderProps } from '../types'\r\nimport { defineComponent, provide, toRef } from 'vue'\r\nimport { useAttach } from '../hooks/useAttach'\r\nimport { useInjectionCleaner } from '../hooks/useInjectionCleaner'\r\nimport {\r\n FieldSymbol,\r\n FormSymbol,\r\n SchemaExpressionScopeSymbol,\r\n SchemaMarkupSymbol,\r\n SchemaOptionsSymbol,\r\n SchemaSymbol,\r\n} from '../shared/context'\r\n\r\nexport default defineComponent({\r\n name: 'FormProvider',\r\n props: {\r\n form: {\r\n type: Object as PropType<IProviderProps['form']>,\r\n required: true,\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const formRef = useAttach(toRef(props, 'form'))\r\n provide(FormSymbol, formRef)\r\n useInjectionCleaner([\r\n FieldSymbol,\r\n SchemaMarkupSymbol,\r\n SchemaSymbol,\r\n SchemaExpressionScopeSymbol,\r\n SchemaOptionsSymbol,\r\n ])\r\n\r\n return () => slots.default?.()\r\n },\r\n})\r\n"],"names":["FormProvider","defineComponent","props","slots","formRef","useAttach","toRef","provide","FormSymbol","useInjectionCleaner","FieldSymbol","SchemaMarkupSymbol","SchemaSymbol","SchemaExpressionScopeSymbol","SchemaOptionsSymbol"],"mappings":";;;;AAcA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,UAAMC,IAAUC,EAAUC,EAAMJ,GAAO,MAAM,CAAC;AAC9C,WAAAK,EAAQC,GAAYJ,CAAO,GAC3BK,EAAoB;AAAA,MAClBC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA,CACD,GAEM,MAAMX,EAAM,UAAA;AAAA,EACrB;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectField.mjs","sources":["../../src/components/ObjectField.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { fieldProps } from '../utils/fieldProps'\nimport { getRawComponent } from '../utils/getRawComponent'\nimport ReactiveField from './ReactiveField'\n\nexport default defineComponent({\n name: 'ObjectField',\n props: fieldProps,\n setup(props, { slots }) {\n return () => {\n const componentData = {\n fieldType: 'ObjectField',\n fieldProps: {\n ...props,\n ...getRawComponent(props),\n },\n }\n return h(ReactiveField, componentData, slots)\n }\n },\n})\n"],"names":["ObjectField","defineComponent","fieldProps","props","slots","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAKA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,WAAO,MAAM;AACX,YAAMC,IAAgB;AAAA,QACpB,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,CAAK;AAAA,IAC9C;AAAA,EACF;AACF,CAAC;"}
1
+ {"version":3,"file":"ObjectField.mjs","sources":["../../src/components/ObjectField.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\r\nimport { fieldProps } from '../utils/fieldProps'\r\nimport { getRawComponent } from '../utils/getRawComponent'\r\nimport ReactiveField from './ReactiveField'\r\n\r\nexport default defineComponent({\r\n name: 'ObjectField',\r\n props: fieldProps,\r\n setup(props, { slots }) {\r\n return () => {\r\n const componentData = {\r\n fieldType: 'ObjectField',\r\n fieldProps: {\r\n ...props,\r\n ...getRawComponent(props),\r\n },\r\n }\r\n return h(ReactiveField, componentData, slots)\r\n }\r\n },\r\n})\r\n"],"names":["ObjectField","defineComponent","fieldProps","props","slots","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAKA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,WAAO,MAAM;AACX,YAAMC,IAAgB;AAAA,QACpB,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,CAAK;AAAA,IAC9C;AAAA,EACF;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveField.mjs","sources":["../../src/components/ReactiveField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Ref, VNode } from 'vue'\nimport type { IReactiveFieldProps } from '../types'\nimport { isVoidField } from '@formily/core'\nimport { toJS } from '@formily/reactive'\nimport { useObserver } from '@formily/reactive-vue'\nimport { FormPath } from '@formily/shared'\nimport { defineComponent, h, inject, provide, ref, shallowRef, watch } from 'vue'\nimport { useField, useForm } from '../hooks'\nimport { useAttach } from '../hooks/useAttach'\n\nimport { FieldSymbol, SchemaOptionsSymbol } from '../shared'\nimport { createVNodeProps, extractAttrsAndEvents, mergeSlots, wrapFragment } from '../utils/reactiveFieldHelpers'\n\ntype ComponentEventArgs = unknown[]\ntype ComponentEventHandler = (...args: ComponentEventArgs) => unknown\n\nexport default defineComponent({\n name: 'ReactiveField',\n props: {\n fieldType: {\n type: String,\n default: 'Field',\n },\n fieldProps: {\n type: Object,\n default: () => ({}),\n },\n },\n setup(props: IReactiveFieldProps, { slots }) {\n const formRef = useForm()\n const parentRef = useField()\n const optionsRef = inject(SchemaOptionsSymbol, ref())\n\n useObserver()\n\n const createField = () =>\n formRef?.value?.[`create${props.fieldType}`]?.({\n ...props.fieldProps,\n basePath: props.fieldProps?.basePath ?? parentRef.value?.address,\n })\n\n const fieldRef = shallowRef(createField()) as Ref<GeneralField>\n\n watch(\n () => props.fieldProps,\n () => (fieldRef.value = createField()),\n )\n\n useAttach(fieldRef)\n provide(FieldSymbol, fieldRef)\n\n return () => {\n const field = fieldRef.value\n const options = optionsRef.value\n\n if (!field) {\n return slots.default?.()\n }\n\n if (field.display !== 'visible') {\n return null\n }\n\n const mergedSlots = mergeSlots(field, slots, field.content)\n\n const renderDecorator = (childNodes: Array<VNode | null | undefined>) => {\n const normalizedChildren = childNodes.filter(child => child != null) as VNode[]\n if (!field.decoratorType) {\n return wrapFragment(normalizedChildren)\n }\n\n const finalComponent\n = FormPath.getIn(options?.components, field.decoratorType as string) ?? field.decoratorType\n const decoratorEntry = Array.isArray(field.decorator) ? field.decorator[1] : undefined\n const decoratorAttrs = toJS(decoratorEntry) || {}\n const { attrs, events } = extractAttrsAndEvents(decoratorAttrs)\n const decoratorProps = createVNodeProps(attrs, events)\n\n return h(finalComponent, decoratorProps, {\n default: () => normalizedChildren,\n })\n }\n\n const renderComponent = (): VNode | null => {\n if (!field.componentType) {\n return wrapFragment(mergedSlots?.default?.())\n }\n\n const component\n = FormPath.getIn(options?.components, field.componentType as string) ?? field.componentType\n\n const componentEntry = Array.isArray(field.component) ? field.component[1] : undefined\n const originData = toJS(componentEntry) || {}\n const fieldValue = !isVoidField(field) ? field.value : undefined\n const composedAttrs = {\n disabled: !isVoidField(field)\n ? field.pattern === 'disabled' || field.pattern === 'readPretty'\n : undefined,\n readOnly: !isVoidField(field) ? field.pattern === 'readOnly' : undefined,\n ...originData,\n modelValue: fieldValue,\n }\n const { attrs, events } = extractAttrsAndEvents(composedAttrs)\n const modelUpdateHandler: ComponentEventHandler | undefined = events['update:modelValue']\n const focusHandler: ComponentEventHandler | undefined = events.focus\n const blurHandler: ComponentEventHandler | undefined = events.blur\n\n const emitInput = (...args: ComponentEventArgs) => {\n if (!isVoidField(field)) {\n field.onInput(...(args as Parameters<typeof field.onInput>))\n }\n }\n\n events['update:modelValue'] = (...args: ComponentEventArgs) => {\n emitInput(...args)\n modelUpdateHandler?.(...args)\n }\n events.focus = (...args: ComponentEventArgs) => {\n if (!isVoidField(field)) {\n field.onFocus(...(args as Parameters<typeof field.onFocus>))\n }\n focusHandler?.(...args)\n }\n events.blur = (...args: ComponentEventArgs) => {\n if (!isVoidField(field)) {\n field.onBlur(...(args as Parameters<typeof field.onBlur>))\n }\n blurHandler?.(...args)\n }\n\n const componentProps = createVNodeProps(attrs, events)\n return h(component, componentProps, mergedSlots)\n }\n\n return renderDecorator([renderComponent()])\n }\n },\n})\n"],"names":["ReactiveField","defineComponent","props","slots","formRef","useForm","parentRef","useField","optionsRef","inject","SchemaOptionsSymbol","ref","useObserver","createField","fieldRef","shallowRef","watch","useAttach","provide","FieldSymbol","field","options","mergedSlots","mergeSlots","childNodes","normalizedChildren","child","wrapFragment","finalComponent","FormPath","decoratorEntry","decoratorAttrs","toJS","attrs","events","extractAttrsAndEvents","decoratorProps","createVNodeProps","component","componentEntry","originData","fieldValue","isVoidField","composedAttrs","modelUpdateHandler","focusHandler","blurHandler","emitInput","args","componentProps"],"mappings":"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"}
1
+ {"version":3,"file":"ReactiveField.mjs","sources":["../../src/components/ReactiveField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\r\nimport type { Ref, VNode } from 'vue'\r\nimport type { IReactiveFieldProps } from '../types'\r\nimport { isVoidField } from '@formily/core'\r\nimport { toJS } from '@formily/reactive'\r\nimport { useObserver } from '@formily/reactive-vue'\r\nimport { FormPath } from '@formily/shared'\r\nimport { defineComponent, h, inject, provide, ref, shallowRef, watch } from 'vue'\r\nimport { useField, useForm } from '../hooks'\r\nimport { useAttach } from '../hooks/useAttach'\r\n\r\nimport { FieldSymbol, SchemaOptionsSymbol } from '../shared'\r\nimport { createVNodeProps, extractAttrsAndEvents, mergeSlots, wrapFragment } from '../utils/reactiveFieldHelpers'\r\n\r\ntype ComponentEventArgs = unknown[]\r\ntype ComponentEventHandler = (...args: ComponentEventArgs) => unknown\r\n\r\nexport default defineComponent({\r\n name: 'ReactiveField',\r\n props: {\r\n fieldType: {\r\n type: String,\r\n default: 'Field',\r\n },\r\n fieldProps: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n },\r\n setup(props: IReactiveFieldProps, { slots }) {\r\n const formRef = useForm()\r\n const parentRef = useField()\r\n const optionsRef = inject(SchemaOptionsSymbol, ref())\r\n\r\n useObserver()\r\n\r\n const createField = () =>\r\n formRef?.value?.[`create${props.fieldType}`]?.({\r\n ...props.fieldProps,\r\n basePath: props.fieldProps?.basePath ?? parentRef.value?.address,\r\n })\r\n\r\n const fieldRef = shallowRef(createField()) as Ref<GeneralField>\r\n\r\n watch(\r\n () => props.fieldProps,\r\n () => (fieldRef.value = createField()),\r\n )\r\n\r\n useAttach(fieldRef)\r\n provide(FieldSymbol, fieldRef)\r\n\r\n return () => {\r\n const field = fieldRef.value\r\n const options = optionsRef.value\r\n\r\n if (!field) {\r\n return slots.default?.()\r\n }\r\n\r\n if (field.display !== 'visible') {\r\n return null\r\n }\r\n\r\n const mergedSlots = mergeSlots(field, slots, field.content)\r\n\r\n const renderDecorator = (childNodes: Array<VNode | null | undefined>) => {\r\n const normalizedChildren = childNodes.filter(child => child != null) as VNode[]\r\n if (!field.decoratorType) {\r\n return wrapFragment(normalizedChildren)\r\n }\r\n\r\n const finalComponent\r\n = FormPath.getIn(options?.components, field.decoratorType as string) ?? field.decoratorType\r\n const decoratorEntry = Array.isArray(field.decorator) ? field.decorator[1] : undefined\r\n const decoratorAttrs = toJS(decoratorEntry) || {}\r\n const { attrs, events } = extractAttrsAndEvents(decoratorAttrs)\r\n const decoratorProps = createVNodeProps(attrs, events)\r\n\r\n return h(finalComponent, decoratorProps, {\r\n default: () => normalizedChildren,\r\n })\r\n }\r\n\r\n const renderComponent = (): VNode | null => {\r\n if (!field.componentType) {\r\n return wrapFragment(mergedSlots?.default?.())\r\n }\r\n\r\n const component\r\n = FormPath.getIn(options?.components, field.componentType as string) ?? field.componentType\r\n\r\n const componentEntry = Array.isArray(field.component) ? field.component[1] : undefined\r\n const originData = toJS(componentEntry) || {}\r\n const fieldValue = !isVoidField(field) ? field.value : undefined\r\n const composedAttrs = {\r\n disabled: !isVoidField(field)\r\n ? field.pattern === 'disabled' || field.pattern === 'readPretty'\r\n : undefined,\r\n readOnly: !isVoidField(field) ? field.pattern === 'readOnly' : undefined,\r\n ...originData,\r\n modelValue: fieldValue,\r\n }\r\n const { attrs, events } = extractAttrsAndEvents(composedAttrs)\r\n const modelUpdateHandler: ComponentEventHandler | undefined = events['update:modelValue']\r\n const focusHandler: ComponentEventHandler | undefined = events.focus\r\n const blurHandler: ComponentEventHandler | undefined = events.blur\r\n\r\n const emitInput = (...args: ComponentEventArgs) => {\r\n if (!isVoidField(field)) {\r\n field.onInput(...(args as Parameters<typeof field.onInput>))\r\n }\r\n }\r\n\r\n events['update:modelValue'] = (...args: ComponentEventArgs) => {\r\n emitInput(...args)\r\n modelUpdateHandler?.(...args)\r\n }\r\n events.focus = (...args: ComponentEventArgs) => {\r\n if (!isVoidField(field)) {\r\n field.onFocus(...(args as Parameters<typeof field.onFocus>))\r\n }\r\n focusHandler?.(...args)\r\n }\r\n events.blur = (...args: ComponentEventArgs) => {\r\n if (!isVoidField(field)) {\r\n field.onBlur(...(args as Parameters<typeof field.onBlur>))\r\n }\r\n blurHandler?.(...args)\r\n }\r\n\r\n const componentProps = createVNodeProps(attrs, events)\r\n return h(component, componentProps, mergedSlots)\r\n }\r\n\r\n return renderDecorator([renderComponent()])\r\n }\r\n },\r\n})\r\n"],"names":["ReactiveField","defineComponent","props","slots","formRef","useForm","parentRef","useField","optionsRef","inject","SchemaOptionsSymbol","ref","useObserver","createField","fieldRef","shallowRef","watch","useAttach","provide","FieldSymbol","field","options","mergedSlots","mergeSlots","childNodes","normalizedChildren","child","wrapFragment","finalComponent","FormPath","decoratorEntry","decoratorAttrs","toJS","attrs","events","extractAttrsAndEvents","decoratorProps","createVNodeProps","component","componentEntry","originData","fieldValue","isVoidField","composedAttrs","modelUpdateHandler","focusHandler","blurHandler","emitInput","args","componentProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecursionField.mjs","sources":["../../src/components/RecursionField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Slots, VNode } from 'vue'\nimport type { IRecursionFieldProps, SchemaExpressionScope } from '../types'\nimport { Schema } from '@formily/json-schema'\nimport { isFn, isValid, lazyMerge } from '@formily/shared'\nimport { computed, defineComponent, Fragment, h, inject, markRaw, provide, shallowRef, watch } from 'vue'\nimport { useField } from '../hooks'\nimport { SchemaExpressionScopeSymbol, SchemaOptionsSymbol, SchemaSymbol } from '../shared'\nimport { recursionFieldProps } from '../utils/recursionFieldProps'\nimport ArrayField from './ArrayField'\nimport Field from './Field'\n\nimport ObjectField from './ObjectField'\nimport VoidField from './VoidField'\n\ntype PropertyRenderFn = (field?: GeneralField) => VNode\ninterface ScopedSlotPayload { field?: GeneralField }\ntype SlotRender = (payload?: ScopedSlotPayload) => VNode[] | undefined\ntype SlotMap = Record<string, SlotRender>\n\nfunction resolveEmptySlot(slots: SlotMap) {\n const slotKeys = Object.keys(slots)\n if (!slotKeys.length)\n return undefined\n const children = slotKeys.reduce<VNode[]>((acc, key) => {\n const slot = slots[key]\n if (!slot)\n return acc\n const result = slot()\n if (!result?.length)\n return acc\n const validChildren = result.filter(child => isValid(child))\n acc.push(...validChildren)\n return acc\n }, [])\n if (!children.length)\n return undefined\n return h(Fragment, null, children)\n}\n\nconst RecursionField = defineComponent({\n name: 'RecursionField',\n inheritAttrs: false,\n props: recursionFieldProps,\n setup(props: IRecursionFieldProps) {\n const parentRef = useField()\n const optionsRef = inject(SchemaOptionsSymbol)\n const scopeRef = inject(SchemaExpressionScopeSymbol)\n\n if (!optionsRef || !scopeRef) {\n throw new Error('RecursionField must be used under SchemaField.')\n }\n const createSchema = (schemaProp: IRecursionFieldProps['schema']) =>\n markRaw(Schema.isSchemaInstance(schemaProp) ? schemaProp : new Schema(schemaProp))\n const fieldSchemaRef = computed(() => createSchema(props.schema))\n\n const getPropsFromSchema = (schema: Schema) =>\n schema?.toFieldProps?.({\n ...optionsRef.value,\n get scope() {\n return lazyMerge(\n {} as SchemaExpressionScope,\n optionsRef.value.scope ?? {},\n scopeRef.value,\n )\n },\n })\n const fieldPropsRef = shallowRef(getPropsFromSchema(fieldSchemaRef.value))\n\n watch([fieldSchemaRef, optionsRef], () => {\n fieldPropsRef.value = getPropsFromSchema(fieldSchemaRef.value)\n })\n\n const getBasePath = () => {\n if (props.onlyRenderProperties) {\n return props.basePath ?? parentRef?.value?.address.concat(props.name!)\n }\n return props.basePath ?? parentRef?.value?.address\n }\n\n provide(SchemaSymbol, fieldSchemaRef)\n\n return () => {\n const basePath = getBasePath()\n const fieldProps = fieldPropsRef.value\n\n const generateSlotsByProperties = (scoped = false): SlotMap => {\n if (props.onlyRenderSelf)\n return {}\n const properties = Schema.getOrderProperties(fieldSchemaRef.value)\n if (!properties.length)\n return {}\n const renderMap: Record<string, PropertyRenderFn[]> = {}\n const setRender = (key: string, value: PropertyRenderFn) => {\n if (!renderMap[key]) {\n renderMap[key] = []\n }\n renderMap[key].push(value)\n }\n for (const [index, { schema: item, key: name }] of properties.entries()) {\n let schema: Schema = item\n if (isFn(props.mapProperties)) {\n const mapped = props.mapProperties(item, name)\n if (mapped) {\n schema = mapped\n }\n }\n if (isFn(props.filterProperties) && props.filterProperties(schema, name) === false) {\n continue\n }\n setRender(schema['x-slot'] ?? 'default', (field?: GeneralField) =>\n h(RecursionField, {\n key: `${index}-${name}`,\n schema,\n name,\n basePath: field?.address ?? basePath,\n slot: schema['x-slot'],\n }))\n }\n const slots: SlotMap = {}\n for (const key of Object.keys(renderMap)) {\n const renderFns = renderMap[key]\n const slotRender: SlotRender = scoped\n ? payload => renderFns!.map(fn => fn(payload?.field))\n : () => renderFns!.map(fn => fn())\n slots[key] = slotRender\n }\n return slots\n }\n\n const render = () => {\n if (!isValid(props.name))\n return resolveEmptySlot(generateSlotsByProperties())\n if (fieldSchemaRef.value.type === 'object') {\n if (props.onlyRenderProperties)\n return resolveEmptySlot(generateSlotsByProperties())\n return h(\n ObjectField,\n {\n ...fieldProps,\n name: props.name!,\n basePath,\n },\n generateSlotsByProperties(true) as Slots,\n )\n }\n else if (fieldSchemaRef.value.type === 'array') {\n return h(ArrayField, {\n ...fieldProps,\n name: props.name!,\n basePath,\n })\n }\n else if (fieldSchemaRef.value.type === 'void') {\n if (props.onlyRenderProperties)\n return resolveEmptySlot(generateSlotsByProperties())\n const slots = generateSlotsByProperties(true)\n return h(\n VoidField,\n {\n ...fieldProps,\n name: props.name!,\n basePath,\n },\n slots as Slots,\n )\n }\n\n return h(Field, {\n ...fieldProps,\n name: props.name!,\n basePath,\n })\n }\n\n if (!fieldSchemaRef.value)\n return\n\n return render()\n }\n },\n})\n\nexport default RecursionField\n"],"names":["resolveEmptySlot","slots","slotKeys","children","acc","key","slot","result","validChildren","child","isValid","h","Fragment","RecursionField","defineComponent","recursionFieldProps","props","parentRef","useField","optionsRef","inject","SchemaOptionsSymbol","scopeRef","SchemaExpressionScopeSymbol","createSchema","schemaProp","markRaw","Schema","fieldSchemaRef","computed","getPropsFromSchema","schema","lazyMerge","fieldPropsRef","shallowRef","watch","getBasePath","provide","SchemaSymbol","basePath","fieldProps","generateSlotsByProperties","scoped","properties","renderMap","setRender","value","index","item","name","isFn","mapped","field","renderFns","slotRender","payload","fn","render","ObjectField","ArrayField","VoidField","Field"],"mappings":"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"}
1
+ {"version":3,"file":"RecursionField.mjs","sources":["../../src/components/RecursionField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\r\nimport type { Slots, VNode } from 'vue'\r\nimport type { IRecursionFieldProps, SchemaExpressionScope } from '../types'\r\nimport { Schema } from '@formily/json-schema'\r\nimport { isFn, isValid, lazyMerge } from '@formily/shared'\r\nimport { computed, defineComponent, Fragment, h, inject, markRaw, provide, shallowRef, watch } from 'vue'\r\nimport { useField } from '../hooks'\r\nimport { SchemaExpressionScopeSymbol, SchemaOptionsSymbol, SchemaSymbol } from '../shared'\r\nimport { recursionFieldProps } from '../utils/recursionFieldProps'\r\nimport ArrayField from './ArrayField'\r\nimport Field from './Field'\r\n\r\nimport ObjectField from './ObjectField'\r\nimport VoidField from './VoidField'\r\n\r\ntype PropertyRenderFn = (field?: GeneralField) => VNode\r\ninterface ScopedSlotPayload { field?: GeneralField }\r\ntype SlotRender = (payload?: ScopedSlotPayload) => VNode[] | undefined\r\ntype SlotMap = Record<string, SlotRender>\r\n\r\nfunction resolveEmptySlot(slots: SlotMap) {\r\n const slotKeys = Object.keys(slots)\r\n if (!slotKeys.length)\r\n return undefined\r\n const children = slotKeys.reduce<VNode[]>((acc, key) => {\r\n const slot = slots[key]\r\n if (!slot)\r\n return acc\r\n const result = slot()\r\n if (!result?.length)\r\n return acc\r\n const validChildren = result.filter(child => isValid(child))\r\n acc.push(...validChildren)\r\n return acc\r\n }, [])\r\n if (!children.length)\r\n return undefined\r\n return h(Fragment, null, children)\r\n}\r\n\r\nconst RecursionField = defineComponent({\r\n name: 'RecursionField',\r\n inheritAttrs: false,\r\n props: recursionFieldProps,\r\n setup(props: IRecursionFieldProps) {\r\n const parentRef = useField()\r\n const optionsRef = inject(SchemaOptionsSymbol)\r\n const scopeRef = inject(SchemaExpressionScopeSymbol)\r\n\r\n if (!optionsRef || !scopeRef) {\r\n throw new Error('RecursionField must be used under SchemaField.')\r\n }\r\n const createSchema = (schemaProp: IRecursionFieldProps['schema']) =>\r\n markRaw(Schema.isSchemaInstance(schemaProp) ? schemaProp : new Schema(schemaProp))\r\n const fieldSchemaRef = computed(() => createSchema(props.schema))\r\n\r\n const getPropsFromSchema = (schema: Schema) =>\r\n schema?.toFieldProps?.({\r\n ...optionsRef.value,\r\n get scope() {\r\n return lazyMerge(\r\n {} as SchemaExpressionScope,\r\n optionsRef.value.scope ?? {},\r\n scopeRef.value,\r\n )\r\n },\r\n })\r\n const fieldPropsRef = shallowRef(getPropsFromSchema(fieldSchemaRef.value))\r\n\r\n watch([fieldSchemaRef, optionsRef], () => {\r\n fieldPropsRef.value = getPropsFromSchema(fieldSchemaRef.value)\r\n })\r\n\r\n const getBasePath = () => {\r\n if (props.onlyRenderProperties) {\r\n return props.basePath ?? parentRef?.value?.address.concat(props.name!)\r\n }\r\n return props.basePath ?? parentRef?.value?.address\r\n }\r\n\r\n provide(SchemaSymbol, fieldSchemaRef)\r\n\r\n return () => {\r\n const basePath = getBasePath()\r\n const fieldProps = fieldPropsRef.value\r\n\r\n const generateSlotsByProperties = (scoped = false): SlotMap => {\r\n if (props.onlyRenderSelf)\r\n return {}\r\n const properties = Schema.getOrderProperties(fieldSchemaRef.value)\r\n if (!properties.length)\r\n return {}\r\n const renderMap: Record<string, PropertyRenderFn[]> = {}\r\n const setRender = (key: string, value: PropertyRenderFn) => {\r\n if (!renderMap[key]) {\r\n renderMap[key] = []\r\n }\r\n renderMap[key].push(value)\r\n }\r\n for (const [index, { schema: item, key: name }] of properties.entries()) {\r\n let schema: Schema = item\r\n if (isFn(props.mapProperties)) {\r\n const mapped = props.mapProperties(item, name)\r\n if (mapped) {\r\n schema = mapped\r\n }\r\n }\r\n if (isFn(props.filterProperties) && props.filterProperties(schema, name) === false) {\r\n continue\r\n }\r\n setRender(schema['x-slot'] ?? 'default', (field?: GeneralField) =>\r\n h(RecursionField, {\r\n key: `${index}-${name}`,\r\n schema,\r\n name,\r\n basePath: field?.address ?? basePath,\r\n slot: schema['x-slot'],\r\n }))\r\n }\r\n const slots: SlotMap = {}\r\n for (const key of Object.keys(renderMap)) {\r\n const renderFns = renderMap[key]\r\n const slotRender: SlotRender = scoped\r\n ? payload => renderFns!.map(fn => fn(payload?.field))\r\n : () => renderFns!.map(fn => fn())\r\n slots[key] = slotRender\r\n }\r\n return slots\r\n }\r\n\r\n const render = () => {\r\n if (!isValid(props.name))\r\n return resolveEmptySlot(generateSlotsByProperties())\r\n if (fieldSchemaRef.value.type === 'object') {\r\n if (props.onlyRenderProperties)\r\n return resolveEmptySlot(generateSlotsByProperties())\r\n return h(\r\n ObjectField,\r\n {\r\n ...fieldProps,\r\n name: props.name!,\r\n basePath,\r\n },\r\n generateSlotsByProperties(true) as Slots,\r\n )\r\n }\r\n else if (fieldSchemaRef.value.type === 'array') {\r\n return h(ArrayField, {\r\n ...fieldProps,\r\n name: props.name!,\r\n basePath,\r\n })\r\n }\r\n else if (fieldSchemaRef.value.type === 'void') {\r\n if (props.onlyRenderProperties)\r\n return resolveEmptySlot(generateSlotsByProperties())\r\n const slots = generateSlotsByProperties(true)\r\n return h(\r\n VoidField,\r\n {\r\n ...fieldProps,\r\n name: props.name!,\r\n basePath,\r\n },\r\n slots as Slots,\r\n )\r\n }\r\n\r\n return h(Field, {\r\n ...fieldProps,\r\n name: props.name!,\r\n basePath,\r\n })\r\n }\r\n\r\n if (!fieldSchemaRef.value)\r\n return\r\n\r\n return render()\r\n }\r\n },\r\n})\r\n\r\nexport default RecursionField\r\n"],"names":["resolveEmptySlot","slots","slotKeys","children","acc","key","slot","result","validChildren","child","isValid","h","Fragment","RecursionField","defineComponent","recursionFieldProps","props","parentRef","useField","optionsRef","inject","SchemaOptionsSymbol","scopeRef","SchemaExpressionScopeSymbol","createSchema","schemaProp","markRaw","Schema","fieldSchemaRef","computed","getPropsFromSchema","schema","lazyMerge","fieldPropsRef","shallowRef","watch","getBasePath","provide","SchemaSymbol","basePath","fieldProps","generateSlotsByProperties","scoped","properties","renderMap","setRender","value","index","item","name","isFn","mapped","field","renderFns","slotRender","payload","fn","render","ObjectField","ArrayField","VoidField","Field"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaField.mjs","sources":["../../src/components/SchemaField.ts"],"sourcesContent":["import type { ISchema, SchemaTypes } from '@formily/json-schema'\nimport type {\n ISchemaFieldProps,\n ISchemaFieldVueFactoryOptions,\n SchemaExpressionScope,\n SchemaVueComponents,\n} from '../types'\nimport type { MarkupSchemaProps } from '../utils/schemaFieldProps'\nimport { Schema } from '@formily/json-schema'\nimport { lazyMerge } from '@formily/shared'\nimport { computed, defineComponent, Fragment, h, inject, provide, shallowRef, watch } from 'vue'\nimport { SchemaExpressionScopeSymbol, SchemaMarkupSymbol, SchemaOptionsSymbol } from '../shared'\nimport { resolveSchemaProps } from '../utils/resolveSchemaProps'\nimport { markupSchemaProps, schemaFieldProps } from '../utils/schemaFieldProps'\nimport RecursionField from './RecursionField'\n\nconst env = {\n nonameId: 0,\n}\n\nfunction getRandomName() {\n return `NO_NAME_FIELD_$${env.nonameId++}`\n}\n\nexport function createSchemaField<Components extends SchemaVueComponents = SchemaVueComponents>(\n options: ISchemaFieldVueFactoryOptions<Components> = {},\n) {\n const SchemaField = defineComponent({\n name: 'SchemaField',\n inheritAttrs: false,\n props: schemaFieldProps,\n setup(props: ISchemaFieldProps, { slots }) {\n const schemaRef = computed(() =>\n Schema.isSchemaInstance(props.schema)\n ? props.schema\n : new Schema({\n type: 'object',\n ...props.schema,\n }),\n )\n\n const scopeRef = computed<SchemaExpressionScope>(() =>\n lazyMerge({} as SchemaExpressionScope, options.scope ?? {}, props.scope ?? {}),\n )\n\n const optionsRef = computed(() => ({\n ...options,\n components: {\n ...options.components,\n ...props.components,\n },\n }))\n\n provide(SchemaMarkupSymbol, schemaRef)\n provide(SchemaOptionsSymbol, optionsRef)\n provide(SchemaExpressionScopeSymbol, scopeRef)\n\n return () => {\n env.nonameId = 0\n\n const slotContent = slots.default?.()\n const normalizedSlots = Array.isArray(slotContent)\n ? slotContent\n : slotContent\n ? [slotContent]\n : []\n\n const recursionNode = h(RecursionField, {\n ...props,\n schema: schemaRef.value,\n })\n\n return h(Fragment, null, [...normalizedSlots, recursionNode])\n }\n },\n })\n\n const MarkupField = defineComponent({\n name: 'MarkupField',\n props: {\n type: String,\n ...markupSchemaProps,\n },\n setup(props: MarkupSchemaProps, { slots }) {\n const parentRef = inject(SchemaMarkupSymbol, null)\n if (!parentRef || !parentRef.value)\n return () => null\n\n const name = props.name || getRandomName()\n const appendArraySchema = (schema: ISchema) => {\n if (parentRef.value.items) {\n return parentRef.value.addProperty(name, schema)\n }\n else {\n return parentRef.value.setItems(resolveSchemaProps(props))\n }\n }\n\n const schemaRef = shallowRef()\n\n watch(\n parentRef,\n () => {\n if (parentRef.value.type === 'object' || parentRef.value.type === 'void') {\n schemaRef.value = parentRef.value.addProperty(name, resolveSchemaProps(props))\n }\n else if (parentRef.value.type === 'array') {\n const schema = appendArraySchema(resolveSchemaProps(props))\n schemaRef.value = Array.isArray(schema) ? schema[0] : schema\n }\n },\n { immediate: true },\n )\n provide(SchemaMarkupSymbol, schemaRef)\n\n return () => h(Fragment, null, slots.default?.())\n },\n })\n\n const SchemaFieldFactory = (type: SchemaTypes, name: string) => {\n return defineComponent({\n name,\n props: { ...markupSchemaProps },\n setup(props, { slots }) {\n return () =>\n h(\n MarkupField,\n {\n ...props,\n type,\n },\n slots,\n )\n },\n })\n }\n\n return {\n SchemaField,\n SchemaMarkupField: MarkupField,\n SchemaStringField: SchemaFieldFactory('string', 'SchemaStringField'),\n SchemaObjectField: SchemaFieldFactory('object', 'SchemaObjectField'),\n SchemaArrayField: SchemaFieldFactory('array', 'SchemaArrayField'),\n SchemaBooleanField: SchemaFieldFactory('boolean', 'SchemaBooleanField'),\n SchemaDateField: SchemaFieldFactory('date', 'SchemaDateField'),\n SchemaDateTimeField: SchemaFieldFactory('datetime', 'SchemaDatetimeField'),\n SchemaVoidField: SchemaFieldFactory('void', 'SchemaVoidField'),\n SchemaNumberField: SchemaFieldFactory('number', 'SchemaNumberField'),\n }\n}\n"],"names":["env","getRandomName","createSchemaField","options","SchemaField","defineComponent","schemaFieldProps","props","slots","schemaRef","computed","Schema","scopeRef","lazyMerge","optionsRef","provide","SchemaMarkupSymbol","SchemaOptionsSymbol","SchemaExpressionScopeSymbol","slotContent","normalizedSlots","recursionNode","h","RecursionField","Fragment","MarkupField","markupSchemaProps","parentRef","inject","name","appendArraySchema","schema","resolveSchemaProps","shallowRef","watch","SchemaFieldFactory","type"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaField.mjs","sources":["../../src/components/SchemaField.ts"],"sourcesContent":["import type { ISchema, SchemaTypes } from '@formily/json-schema'\r\nimport type {\r\n ISchemaFieldProps,\r\n ISchemaFieldVueFactoryOptions,\r\n SchemaExpressionScope,\r\n SchemaVueComponents,\r\n} from '../types'\r\nimport type { MarkupSchemaProps } from '../utils/schemaFieldProps'\r\nimport { Schema } from '@formily/json-schema'\r\nimport { lazyMerge } from '@formily/shared'\r\nimport { computed, defineComponent, Fragment, h, inject, provide, shallowRef, watch } from 'vue'\r\nimport { SchemaExpressionScopeSymbol, SchemaMarkupSymbol, SchemaOptionsSymbol } from '../shared'\r\nimport { resolveSchemaProps } from '../utils/resolveSchemaProps'\r\nimport { markupSchemaProps, schemaFieldProps } from '../utils/schemaFieldProps'\r\nimport RecursionField from './RecursionField'\r\n\r\nconst env = {\r\n nonameId: 0,\r\n}\r\n\r\nfunction getRandomName() {\r\n return `NO_NAME_FIELD_$${env.nonameId++}`\r\n}\r\n\r\nexport function createSchemaField<Components extends SchemaVueComponents = SchemaVueComponents>(\r\n options: ISchemaFieldVueFactoryOptions<Components> = {},\r\n) {\r\n const SchemaField = defineComponent({\r\n name: 'SchemaField',\r\n inheritAttrs: false,\r\n props: schemaFieldProps,\r\n setup(props: ISchemaFieldProps, { slots }) {\r\n const schemaRef = computed(() =>\r\n Schema.isSchemaInstance(props.schema)\r\n ? props.schema\r\n : new Schema({\r\n type: 'object',\r\n ...props.schema,\r\n }),\r\n )\r\n\r\n const scopeRef = computed<SchemaExpressionScope>(() =>\r\n lazyMerge({} as SchemaExpressionScope, options.scope ?? {}, props.scope ?? {}),\r\n )\r\n\r\n const optionsRef = computed(() => ({\r\n ...options,\r\n components: {\r\n ...options.components,\r\n ...props.components,\r\n },\r\n }))\r\n\r\n provide(SchemaMarkupSymbol, schemaRef)\r\n provide(SchemaOptionsSymbol, optionsRef)\r\n provide(SchemaExpressionScopeSymbol, scopeRef)\r\n\r\n return () => {\r\n env.nonameId = 0\r\n\r\n const slotContent = slots.default?.()\r\n const normalizedSlots = Array.isArray(slotContent)\r\n ? slotContent\r\n : slotContent\r\n ? [slotContent]\r\n : []\r\n\r\n const recursionNode = h(RecursionField, {\r\n ...props,\r\n schema: schemaRef.value,\r\n })\r\n\r\n return h(Fragment, null, [...normalizedSlots, recursionNode])\r\n }\r\n },\r\n })\r\n\r\n const MarkupField = defineComponent({\r\n name: 'MarkupField',\r\n props: {\r\n type: String,\r\n ...markupSchemaProps,\r\n },\r\n setup(props: MarkupSchemaProps, { slots }) {\r\n const parentRef = inject(SchemaMarkupSymbol, null)\r\n if (!parentRef || !parentRef.value)\r\n return () => null\r\n\r\n const name = props.name || getRandomName()\r\n const appendArraySchema = (schema: ISchema) => {\r\n if (parentRef.value.items) {\r\n return parentRef.value.addProperty(name, schema)\r\n }\r\n else {\r\n return parentRef.value.setItems(resolveSchemaProps(props))\r\n }\r\n }\r\n\r\n const schemaRef = shallowRef()\r\n\r\n watch(\r\n parentRef,\r\n () => {\r\n if (parentRef.value.type === 'object' || parentRef.value.type === 'void') {\r\n schemaRef.value = parentRef.value.addProperty(name, resolveSchemaProps(props))\r\n }\r\n else if (parentRef.value.type === 'array') {\r\n const schema = appendArraySchema(resolveSchemaProps(props))\r\n schemaRef.value = Array.isArray(schema) ? schema[0] : schema\r\n }\r\n },\r\n { immediate: true },\r\n )\r\n provide(SchemaMarkupSymbol, schemaRef)\r\n\r\n return () => h(Fragment, null, slots.default?.())\r\n },\r\n })\r\n\r\n const SchemaFieldFactory = (type: SchemaTypes, name: string) => {\r\n return defineComponent({\r\n name,\r\n props: { ...markupSchemaProps },\r\n setup(props, { slots }) {\r\n return () =>\r\n h(\r\n MarkupField,\r\n {\r\n ...props,\r\n type,\r\n },\r\n slots,\r\n )\r\n },\r\n })\r\n }\r\n\r\n return {\r\n SchemaField,\r\n SchemaMarkupField: MarkupField,\r\n SchemaStringField: SchemaFieldFactory('string', 'SchemaStringField'),\r\n SchemaObjectField: SchemaFieldFactory('object', 'SchemaObjectField'),\r\n SchemaArrayField: SchemaFieldFactory('array', 'SchemaArrayField'),\r\n SchemaBooleanField: SchemaFieldFactory('boolean', 'SchemaBooleanField'),\r\n SchemaDateField: SchemaFieldFactory('date', 'SchemaDateField'),\r\n SchemaDateTimeField: SchemaFieldFactory('datetime', 'SchemaDatetimeField'),\r\n SchemaVoidField: SchemaFieldFactory('void', 'SchemaVoidField'),\r\n SchemaNumberField: SchemaFieldFactory('number', 'SchemaNumberField'),\r\n }\r\n}\r\n"],"names":["env","getRandomName","createSchemaField","options","SchemaField","defineComponent","schemaFieldProps","props","slots","schemaRef","computed","Schema","scopeRef","lazyMerge","optionsRef","provide","SchemaMarkupSymbol","SchemaOptionsSymbol","SchemaExpressionScopeSymbol","slotContent","normalizedSlots","recursionNode","h","RecursionField","Fragment","MarkupField","markupSchemaProps","parentRef","inject","name","appendArraySchema","schema","resolveSchemaProps","shallowRef","watch","SchemaFieldFactory","type"],"mappings":";;;;;;;;;AAgBA,MAAMA,IAAM;AAAA,EACV,UAAU;AACZ;AAEA,SAASC,IAAgB;AACvB,SAAO,kBAAkBD,EAAI,UAAU;AACzC;AAEO,SAASE,EACdC,IAAqD,IACrD;AACA,QAAMC,IAAcC,EAAgB;AAAA,IAClC,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAOC;AAAA,IACP,MAAMC,GAA0B,EAAE,OAAAC,KAAS;AACzC,YAAMC,IAAYC;AAAA,QAAS,MACzBC,EAAO,iBAAiBJ,EAAM,MAAM,IAChCA,EAAM,SACN,IAAII,EAAO;AAAA,UACX,MAAM;AAAA,UACN,GAAGJ,EAAM;AAAA,QAAA,CACV;AAAA,MAAA,GAGCK,IAAWF;AAAA,QAAgC,MAC/CG,EAAU,CAAA,GAA6BV,EAAQ,SAAS,IAAII,EAAM,SAAS,CAAA,CAAE;AAAA,MAAA,GAGzEO,IAAaJ,EAAS,OAAO;AAAA,QACjC,GAAGP;AAAA,QACH,YAAY;AAAA,UACV,GAAGA,EAAQ;AAAA,UACX,GAAGI,EAAM;AAAA,QAAA;AAAA,MACX,EACA;AAEF,aAAAQ,EAAQC,GAAoBP,CAAS,GACrCM,EAAQE,GAAqBH,CAAU,GACvCC,EAAQG,GAA6BN,CAAQ,GAEtC,MAAM;AACX,QAAAZ,EAAI,WAAW;AAEf,cAAMmB,IAAcX,EAAM,UAAA,GACpBY,IAAkB,MAAM,QAAQD,CAAW,IAC7CA,IACAA,IACE,CAACA,CAAW,IACZ,CAAA,GAEAE,IAAgBC,EAAEC,GAAgB;AAAA,UACtC,GAAGhB;AAAA,UACH,QAAQE,EAAU;AAAA,QAAA,CACnB;AAED,eAAOa,EAAEE,GAAU,MAAM,CAAC,GAAGJ,GAAiBC,CAAa,CAAC;AAAA,MAC9D;AAAA,IACF;AAAA,EAAA,CACD,GAEKI,IAAcpB,EAAgB;AAAA,IAClC,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,GAAGqB;AAAA,IAAA;AAAA,IAEL,MAAMnB,GAA0B,EAAE,OAAAC,KAAS;AACzC,YAAMmB,IAAYC,EAAOZ,GAAoB,IAAI;AACjD,UAAI,CAACW,KAAa,CAACA,EAAU;AAC3B,eAAO,MAAM;AAEf,YAAME,IAAOtB,EAAM,QAAQN,EAAA,GACrB6B,IAAoB,CAACC,MACrBJ,EAAU,MAAM,QACXA,EAAU,MAAM,YAAYE,GAAME,CAAM,IAGxCJ,EAAU,MAAM,SAASK,EAAmBzB,CAAK,CAAC,GAIvDE,IAAYwB,EAAA;AAElB,aAAAC;AAAA,QACEP;AAAA,QACA,MAAM;AACJ,cAAIA,EAAU,MAAM,SAAS,YAAYA,EAAU,MAAM,SAAS;AAChE,YAAAlB,EAAU,QAAQkB,EAAU,MAAM,YAAYE,GAAMG,EAAmBzB,CAAK,CAAC;AAAA,mBAEtEoB,EAAU,MAAM,SAAS,SAAS;AACzC,kBAAMI,IAASD,EAAkBE,EAAmBzB,CAAK,CAAC;AAC1D,YAAAE,EAAU,QAAQ,MAAM,QAAQsB,CAAM,IAAIA,EAAO,CAAC,IAAIA;AAAA,UACxD;AAAA,QACF;AAAA,QACA,EAAE,WAAW,GAAA;AAAA,MAAK,GAEpBhB,EAAQC,GAAoBP,CAAS,GAE9B,MAAMa,EAAEE,GAAU,MAAMhB,EAAM,WAAW;AAAA,IAClD;AAAA,EAAA,CACD,GAEK2B,IAAqB,CAACC,GAAmBP,MACtCxB,EAAgB;AAAA,IACrB,MAAAwB;AAAA,IACA,OAAO,EAAE,GAAGH,EAAA;AAAA,IACZ,MAAMnB,GAAO,EAAE,OAAAC,KAAS;AACtB,aAAO,MACLc;AAAA,QACEG;AAAA,QACA;AAAA,UACE,GAAGlB;AAAA,UACH,MAAA6B;AAAA,QAAA;AAAA,QAEF5B;AAAA,MAAA;AAAA,IAEN;AAAA,EAAA,CACD;AAGH,SAAO;AAAA,IACL,aAAAJ;AAAA,IACA,mBAAmBqB;AAAA,IACnB,mBAAmBU,EAAmB,UAAU,mBAAmB;AAAA,IACnE,mBAAmBA,EAAmB,UAAU,mBAAmB;AAAA,IACnE,kBAAkBA,EAAmB,SAAS,kBAAkB;AAAA,IAChE,oBAAoBA,EAAmB,WAAW,oBAAoB;AAAA,IACtE,iBAAiBA,EAAmB,QAAQ,iBAAiB;AAAA,IAC7D,qBAAqBA,EAAmB,YAAY,qBAAqB;AAAA,IACzE,iBAAiBA,EAAmB,QAAQ,iBAAiB;AAAA,IAC7D,mBAAmBA,EAAmB,UAAU,mBAAmB;AAAA,EAAA;AAEvE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoidField.mjs","sources":["../../src/components/VoidField.ts"],"sourcesContent":["import type { IReactiveFieldProps, IVoidFieldProps } from '../types'\nimport { defineComponent, h } from 'vue'\nimport { voidFieldProps } from '../utils/fieldProps'\nimport { getRawComponent } from '../utils/getRawComponent'\nimport ReactiveField from './ReactiveField'\n\nexport default defineComponent({\n name: 'VoidField',\n props: voidFieldProps,\n setup(props: IVoidFieldProps, { slots }) {\n return () => {\n const componentData: IReactiveFieldProps = {\n fieldType: 'VoidField',\n fieldProps: {\n ...props,\n ...getRawComponent(props),\n },\n }\n return h(ReactiveField, componentData, slots)\n }\n },\n})\n"],"names":["VoidField","defineComponent","voidFieldProps","props","slots","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAwB,EAAE,OAAAC,KAAS;AACvC,WAAO,MAAM;AACX,YAAMC,IAAqC;AAAA,QACzC,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,CAAK;AAAA,IAC9C;AAAA,EACF;AACF,CAAC;"}
1
+ {"version":3,"file":"VoidField.mjs","sources":["../../src/components/VoidField.ts"],"sourcesContent":["import type { IReactiveFieldProps, IVoidFieldProps } from '../types'\r\nimport { defineComponent, h } from 'vue'\r\nimport { voidFieldProps } from '../utils/fieldProps'\r\nimport { getRawComponent } from '../utils/getRawComponent'\r\nimport ReactiveField from './ReactiveField'\r\n\r\nexport default defineComponent({\r\n name: 'VoidField',\r\n props: voidFieldProps,\r\n setup(props: IVoidFieldProps, { slots }) {\r\n return () => {\r\n const componentData: IReactiveFieldProps = {\r\n fieldType: 'VoidField',\r\n fieldProps: {\r\n ...props,\r\n ...getRawComponent(props),\r\n },\r\n }\r\n return h(ReactiveField, componentData, slots)\r\n }\r\n },\r\n})\r\n"],"names":["VoidField","defineComponent","voidFieldProps","props","slots","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAwB,EAAE,OAAAC,KAAS;AACvC,WAAO,MAAM;AACX,YAAMC,IAAqC;AAAA,QACzC,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,CAAK;AAAA,IAC9C;AAAA,EACF;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useField.mjs","sources":["../../src/hooks/useField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Ref } from 'vue'\nimport { inject, ref } from 'vue'\nimport { FieldSymbol } from '../shared/context'\n\nexport function useField<T = GeneralField>() {\n return inject(FieldSymbol, ref()) as Ref<T>\n}\n"],"names":["useField","inject","FieldSymbol","ref"],"mappings":";;AAKO,SAASA,IAA6B;AAC3C,SAAOC,EAAOC,GAAaC,GAAK;AAClC;"}
1
+ {"version":3,"file":"useField.mjs","sources":["../../src/hooks/useField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\r\nimport type { Ref } from 'vue'\r\nimport { inject, ref } from 'vue'\r\nimport { FieldSymbol } from '../shared/context'\r\n\r\nexport function useField<T = GeneralField>() {\r\n return inject(FieldSymbol, ref()) as Ref<T>\r\n}\r\n"],"names":["useField","inject","FieldSymbol","ref"],"mappings":";;AAKO,SAASA,IAA6B;AAC3C,SAAOC,EAAOC,GAAaC,GAAK;AAClC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.mjs","sources":["../../src/hooks/useForm.ts"],"sourcesContent":["import type { Form } from '@formily/core'\nimport type { Ref } from 'vue'\nimport { inject, ref } from 'vue'\nimport { FormSymbol } from '../shared/context'\n\nexport function useForm() {\n const form = inject(FormSymbol, ref())\n return form as Ref<Form>\n}\n"],"names":["useForm","inject","FormSymbol","ref"],"mappings":";;AAKO,SAASA,IAAU;AAExB,SADaC,EAAOC,GAAYC,EAAA,CAAK;AAEvC;"}
1
+ {"version":3,"file":"useForm.mjs","sources":["../../src/hooks/useForm.ts"],"sourcesContent":["import type { Form } from '@formily/core'\r\nimport type { Ref } from 'vue'\r\nimport { inject, ref } from 'vue'\r\nimport { FormSymbol } from '../shared/context'\r\n\r\nexport function useForm() {\r\n const form = inject(FormSymbol, ref())\r\n return form as Ref<Form>\r\n}\r\n"],"names":["useForm","inject","FormSymbol","ref"],"mappings":";;AAKO,SAASA,IAAU;AAExB,SADaC,EAAOC,GAAYC,EAAA,CAAK;AAEvC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"connect.mjs","sources":["../../src/shared/connect.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Component } from 'vue'\nimport type { IComponentMapper, IStateMapper, VueComponentProps } from '../types'\nimport { isVoidField } from '@formily/core'\nimport { observer } from '@formily/reactive-vue'\nimport { each, FormPath, isFn, isStr, isValid } from '@formily/shared'\nimport { defineComponent, h, markRaw } from 'vue'\nimport { useField } from '../hooks/useField'\n\nimport { createVNodeProps, extractAttrsAndEvents } from '../utils/reactiveFieldHelpers'\n\nexport function mapProps<T extends Component = Component>(\n ...args: IStateMapper<VueComponentProps<T>>[]\n) {\n const transform = (input: VueComponentProps<T>, field: GeneralField) =>\n args.reduce((props, mapper) => {\n if (isFn(mapper)) {\n props = Object.assign(props, mapper(props, field))\n }\n else {\n each(mapper, (to, extract) => {\n const extractValue = FormPath.getIn(field, extract)\n const targetValue = isStr(to) ? to : extract\n const originalValue = FormPath.getIn(props, targetValue)\n if (extract === 'value') {\n if (to !== extract) {\n delete props.value\n }\n }\n if (isValid(originalValue) && !isValid(extractValue))\n return\n FormPath.setIn(props, targetValue, extractValue)\n })\n }\n return props\n }, input)\n\n return (target: T) => {\n return observer(\n defineComponent({\n name: target.name ? `Connected${target.name}` : `ConnectedComponent`,\n setup(_, { attrs, slots }) {\n const fieldRef = useField()\n return () => {\n const { attrs: normalizedAttrs, events } = extractAttrsAndEvents(attrs)\n const baseAttrs = { ...normalizedAttrs } as VueComponentProps<T>\n const newAttrs = fieldRef.value ? transform(baseAttrs, fieldRef.value) : baseAttrs\n return h(target, createVNodeProps(newAttrs, events), slots)\n }\n },\n }),\n )\n }\n}\n\nexport function mapReadPretty<T extends Component, C extends Component>(\n component: C,\n readPrettyProps?: Record<string, any>,\n) {\n return (target: T) => {\n return observer(\n defineComponent({\n name: target.name ? `Read${target.name}` : `ReadComponent`,\n setup(_, { attrs, slots }) {\n const fieldRef = useField()\n return () => {\n const field = fieldRef.value\n const { attrs: normalizedAttrs, events } = extractAttrsAndEvents(attrs)\n return h(\n field && !isVoidField(field) && field.pattern === 'readPretty' ? component : target,\n createVNodeProps(\n {\n ...readPrettyProps,\n ...normalizedAttrs,\n },\n events,\n ),\n slots,\n )\n }\n },\n }),\n )\n }\n}\n\nexport function connect<T extends Component>(target: T, ...args: IComponentMapper[]): T {\n const Component = args.reduce((target: Component, mapper) => {\n return mapper(target)\n }, target)\n\n const functionalComponent = defineComponent({\n name: target.name,\n setup(_, { attrs, slots }) {\n return () => {\n const { attrs: normalizedAttrs, events } = extractAttrsAndEvents(attrs)\n return h(Component, createVNodeProps(normalizedAttrs, events), slots)\n }\n },\n })\n\n return markRaw(functionalComponent) as unknown as T\n}\n"],"names":["mapProps","args","transform","input","field","props","mapper","isFn","each","to","extract","extractValue","FormPath","targetValue","isStr","originalValue","isValid","target","observer","defineComponent","_","attrs","slots","fieldRef","useField","normalizedAttrs","events","extractAttrsAndEvents","baseAttrs","newAttrs","h","createVNodeProps","mapReadPretty","component","readPrettyProps","isVoidField","connect","Component","functionalComponent","markRaw"],"mappings":";;;;;;AAWO,SAASA,KACXC,GACH;AACA,QAAMC,IAAY,CAACC,GAA6BC,MAC9CH,EAAK,OAAO,CAACI,GAAOC,OACdC,EAAKD,CAAM,IACbD,IAAQ,OAAO,OAAOA,GAAOC,EAAOD,GAAOD,CAAK,CAAC,IAGjDI,EAAKF,GAAQ,CAACG,GAAIC,MAAY;AAC5B,UAAMC,IAAeC,EAAS,MAAMR,GAAOM,CAAO,GAC5CG,IAAcC,EAAML,CAAE,IAAIA,IAAKC,GAC/BK,IAAgBH,EAAS,MAAMP,GAAOQ,CAAW;AAMvD,IALIH,MAAY,WACVD,MAAOC,KACT,OAAOL,EAAM,OAGb,EAAAW,EAAQD,CAAa,KAAK,CAACC,EAAQL,CAAY,MAEnDC,EAAS,MAAMP,GAAOQ,GAAaF,CAAY;AAAA,EACjD,CAAC,GAEIN,IACNF,CAAK;AAEV,SAAO,CAACc,MACCC;AAAA,IACLC,EAAgB;AAAA,MACd,MAAMF,EAAO,OAAO,YAAYA,EAAO,IAAI,KAAK;AAAA,MAChD,MAAMG,GAAG,EAAE,OAAAC,GAAO,OAAAC,KAAS;AACzB,cAAMC,IAAWC,EAAA;AACjB,eAAO,MAAM;AACX,gBAAM,EAAE,OAAOC,GAAiB,QAAAC,EAAA,IAAWC,EAAsBN,CAAK,GAChEO,IAAY,EAAE,GAAGH,EAAA,GACjBI,IAAWN,EAAS,QAAQrB,EAAU0B,GAAWL,EAAS,KAAK,IAAIK;AACzE,iBAAOE,EAAEb,GAAQc,EAAiBF,GAAUH,CAAM,GAAGJ,CAAK;AAAA,QAC5D;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EAAA;AAGP;AAEO,SAASU,EACdC,GACAC,GACA;AACA,SAAO,CAACjB,MACCC;AAAA,IACLC,EAAgB;AAAA,MACd,MAAMF,EAAO,OAAO,OAAOA,EAAO,IAAI,KAAK;AAAA,MAC3C,MAAMG,GAAG,EAAE,OAAAC,GAAO,OAAAC,KAAS;AACzB,cAAMC,IAAWC,EAAA;AACjB,eAAO,MAAM;AACX,gBAAMpB,IAAQmB,EAAS,OACjB,EAAE,OAAOE,GAAiB,QAAAC,EAAA,IAAWC,EAAsBN,CAAK;AACtE,iBAAOS;AAAA,YACL1B,KAAS,CAAC+B,EAAY/B,CAAK,KAAKA,EAAM,YAAY,eAAe6B,IAAYhB;AAAA,YAC7Ec;AAAA,cACE;AAAA,gBACE,GAAGG;AAAA,gBACH,GAAGT;AAAA,cAAA;AAAA,cAELC;AAAA,YAAA;AAAA,YAEFJ;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EAAA;AAGP;AAEO,SAASc,EAA6BnB,MAAchB,GAA6B;AACtF,QAAMoC,IAAYpC,EAAK,OAAO,CAACgB,GAAmBX,MACzCA,EAAOW,CAAM,GACnBA,CAAM,GAEHqB,IAAsBnB,EAAgB;AAAA,IAC1C,MAAMF,EAAO;AAAA,IACb,MAAMG,GAAG,EAAE,OAAAC,GAAO,OAAAC,KAAS;AACzB,aAAO,MAAM;AACX,cAAM,EAAE,OAAOG,GAAiB,QAAAC,EAAA,IAAWC,EAAsBN,CAAK;AACtE,eAAOS,EAAEO,GAAWN,EAAiBN,GAAiBC,CAAM,GAAGJ,CAAK;AAAA,MACtE;AAAA,IACF;AAAA,EAAA,CACD;AAED,SAAOiB,EAAQD,CAAmB;AACpC;"}
1
+ {"version":3,"file":"connect.mjs","sources":["../../src/shared/connect.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\r\nimport type { Component } from 'vue'\r\nimport type { IComponentMapper, IStateMapper, VueComponentProps } from '../types'\r\nimport { isVoidField } from '@formily/core'\r\nimport { observer } from '@formily/reactive-vue'\r\nimport { each, FormPath, isFn, isStr, isValid } from '@formily/shared'\r\nimport { defineComponent, h, markRaw } from 'vue'\r\nimport { useField } from '../hooks/useField'\r\n\r\nimport { createVNodeProps, extractAttrsAndEvents } from '../utils/reactiveFieldHelpers'\r\n\r\nexport function mapProps<T extends Component = Component>(\r\n ...args: IStateMapper<VueComponentProps<T>>[]\r\n) {\r\n const transform = (input: VueComponentProps<T>, field: GeneralField) =>\r\n args.reduce((props, mapper) => {\r\n if (isFn(mapper)) {\r\n props = Object.assign(props, mapper(props, field))\r\n }\r\n else {\r\n each(mapper, (to, extract) => {\r\n const extractValue = FormPath.getIn(field, extract)\r\n const targetValue = isStr(to) ? to : extract\r\n const originalValue = FormPath.getIn(props, targetValue)\r\n if (extract === 'value') {\r\n if (to !== extract) {\r\n delete props.value\r\n }\r\n }\r\n if (isValid(originalValue) && !isValid(extractValue))\r\n return\r\n FormPath.setIn(props, targetValue, extractValue)\r\n })\r\n }\r\n return props\r\n }, input)\r\n\r\n return (target: T) => {\r\n return observer(\r\n defineComponent({\r\n name: target.name ? `Connected${target.name}` : `ConnectedComponent`,\r\n setup(_, { attrs, slots }) {\r\n const fieldRef = useField()\r\n return () => {\r\n const { attrs: normalizedAttrs, events } = extractAttrsAndEvents(attrs)\r\n const baseAttrs = { ...normalizedAttrs } as VueComponentProps<T>\r\n const newAttrs = fieldRef.value ? transform(baseAttrs, fieldRef.value) : baseAttrs\r\n return h(target, createVNodeProps(newAttrs, events), slots)\r\n }\r\n },\r\n }),\r\n )\r\n }\r\n}\r\n\r\nexport function mapReadPretty<T extends Component, C extends Component>(\r\n component: C,\r\n readPrettyProps?: Record<string, any>,\r\n) {\r\n return (target: T) => {\r\n return observer(\r\n defineComponent({\r\n name: target.name ? `Read${target.name}` : `ReadComponent`,\r\n setup(_, { attrs, slots }) {\r\n const fieldRef = useField()\r\n return () => {\r\n const field = fieldRef.value\r\n const { attrs: normalizedAttrs, events } = extractAttrsAndEvents(attrs)\r\n return h(\r\n field && !isVoidField(field) && field.pattern === 'readPretty' ? component : target,\r\n createVNodeProps(\r\n {\r\n ...readPrettyProps,\r\n ...normalizedAttrs,\r\n },\r\n events,\r\n ),\r\n slots,\r\n )\r\n }\r\n },\r\n }),\r\n )\r\n }\r\n}\r\n\r\nexport function connect<T extends Component>(target: T, ...args: IComponentMapper[]): T {\r\n const Component = args.reduce((target: Component, mapper) => {\r\n return mapper(target)\r\n }, target)\r\n\r\n const functionalComponent = defineComponent({\r\n name: target.name,\r\n setup(_, { attrs, slots }) {\r\n return () => {\r\n const { attrs: normalizedAttrs, events } = extractAttrsAndEvents(attrs)\r\n return h(Component, createVNodeProps(normalizedAttrs, events), slots)\r\n }\r\n },\r\n })\r\n\r\n return markRaw(functionalComponent) as unknown as T\r\n}\r\n"],"names":["mapProps","args","transform","input","field","props","mapper","isFn","each","to","extract","extractValue","FormPath","targetValue","isStr","originalValue","isValid","target","observer","defineComponent","_","attrs","slots","fieldRef","useField","normalizedAttrs","events","extractAttrsAndEvents","baseAttrs","newAttrs","h","createVNodeProps","mapReadPretty","component","readPrettyProps","isVoidField","connect","Component","functionalComponent","markRaw"],"mappings":";;;;;;AAWO,SAASA,KACXC,GACH;AACA,QAAMC,IAAY,CAACC,GAA6BC,MAC9CH,EAAK,OAAO,CAACI,GAAOC,OACdC,EAAKD,CAAM,IACbD,IAAQ,OAAO,OAAOA,GAAOC,EAAOD,GAAOD,CAAK,CAAC,IAGjDI,EAAKF,GAAQ,CAACG,GAAIC,MAAY;AAC5B,UAAMC,IAAeC,EAAS,MAAMR,GAAOM,CAAO,GAC5CG,IAAcC,EAAML,CAAE,IAAIA,IAAKC,GAC/BK,IAAgBH,EAAS,MAAMP,GAAOQ,CAAW;AAMvD,IALIH,MAAY,WACVD,MAAOC,KACT,OAAOL,EAAM,OAGb,EAAAW,EAAQD,CAAa,KAAK,CAACC,EAAQL,CAAY,MAEnDC,EAAS,MAAMP,GAAOQ,GAAaF,CAAY;AAAA,EACjD,CAAC,GAEIN,IACNF,CAAK;AAEV,SAAO,CAACc,MACCC;AAAA,IACLC,EAAgB;AAAA,MACd,MAAMF,EAAO,OAAO,YAAYA,EAAO,IAAI,KAAK;AAAA,MAChD,MAAMG,GAAG,EAAE,OAAAC,GAAO,OAAAC,KAAS;AACzB,cAAMC,IAAWC,EAAA;AACjB,eAAO,MAAM;AACX,gBAAM,EAAE,OAAOC,GAAiB,QAAAC,EAAA,IAAWC,EAAsBN,CAAK,GAChEO,IAAY,EAAE,GAAGH,EAAA,GACjBI,IAAWN,EAAS,QAAQrB,EAAU0B,GAAWL,EAAS,KAAK,IAAIK;AACzE,iBAAOE,EAAEb,GAAQc,EAAiBF,GAAUH,CAAM,GAAGJ,CAAK;AAAA,QAC5D;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EAAA;AAGP;AAEO,SAASU,EACdC,GACAC,GACA;AACA,SAAO,CAACjB,MACCC;AAAA,IACLC,EAAgB;AAAA,MACd,MAAMF,EAAO,OAAO,OAAOA,EAAO,IAAI,KAAK;AAAA,MAC3C,MAAMG,GAAG,EAAE,OAAAC,GAAO,OAAAC,KAAS;AACzB,cAAMC,IAAWC,EAAA;AACjB,eAAO,MAAM;AACX,gBAAMpB,IAAQmB,EAAS,OACjB,EAAE,OAAOE,GAAiB,QAAAC,EAAA,IAAWC,EAAsBN,CAAK;AACtE,iBAAOS;AAAA,YACL1B,KAAS,CAAC+B,EAAY/B,CAAK,KAAKA,EAAM,YAAY,eAAe6B,IAAYhB;AAAA,YAC7Ec;AAAA,cACE;AAAA,gBACE,GAAGG;AAAA,gBACH,GAAGT;AAAA,cAAA;AAAA,cAELC;AAAA,YAAA;AAAA,YAEFJ;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EAAA;AAGP;AAEO,SAASc,EAA6BnB,MAAchB,GAA6B;AACtF,QAAMoC,IAAYpC,EAAK,OAAO,CAACgB,GAAmBX,MACzCA,EAAOW,CAAM,GACnBA,CAAM,GAEHqB,IAAsBnB,EAAgB;AAAA,IAC1C,MAAMF,EAAO;AAAA,IACb,MAAMG,GAAG,EAAE,OAAAC,GAAO,OAAAC,KAAS;AACzB,aAAO,MAAM;AACX,cAAM,EAAE,OAAOG,GAAiB,QAAAC,EAAA,IAAWC,EAAsBN,CAAK;AACtE,eAAOS,EAAEO,GAAWN,EAAiBN,GAAiBC,CAAM,GAAGJ,CAAK;AAAA,MACtE;AAAA,IACF;AAAA,EAAA,CACD;AAED,SAAOiB,EAAQD,CAAmB;AACpC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.mjs","sources":["../../src/shared/context.ts"],"sourcesContent":["import type { Form, GeneralField } from '@formily/core'\nimport type { Schema } from '@formily/json-schema'\nimport type { InjectionKey, Ref } from 'vue'\nimport type { ISchemaFieldVueFactoryOptions, SchemaExpressionScope } from '../types'\n\nexport const FormSymbol: InjectionKey<Ref<Form>> = Symbol('form')\nexport const FieldSymbol: InjectionKey<Ref<GeneralField>> = Symbol('field')\nexport const SchemaMarkupSymbol: InjectionKey<Ref<Schema>> = Symbol('schemaMarkup')\nexport const SchemaSymbol: InjectionKey<Ref<Schema>> = Symbol('schema')\nexport const SchemaExpressionScopeSymbol: InjectionKey<Ref<SchemaExpressionScope>>\n = Symbol('schemaExpression')\nexport const SchemaOptionsSymbol: InjectionKey<Ref<ISchemaFieldVueFactoryOptions>>\n = Symbol('schemaOptions')\n"],"names":["FormSymbol","FieldSymbol","SchemaMarkupSymbol","SchemaSymbol","SchemaExpressionScopeSymbol","SchemaOptionsSymbol"],"mappings":"AAKO,MAAMA,2BAA6C,MAAM,GACnDC,2BAAsD,OAAO,GAC7DC,2BAAuD,cAAc,GACrEC,2BAAiD,QAAQ,GACzDC,2BACF,kBAAkB,GAChBC,2BACF,eAAe;"}
1
+ {"version":3,"file":"context.mjs","sources":["../../src/shared/context.ts"],"sourcesContent":["import type { Form, GeneralField } from '@formily/core'\r\nimport type { Schema } from '@formily/json-schema'\r\nimport type { InjectionKey, Ref } from 'vue'\r\nimport type { ISchemaFieldVueFactoryOptions, SchemaExpressionScope } from '../types'\r\n\r\nexport const FormSymbol: InjectionKey<Ref<Form>> = Symbol('form')\r\nexport const FieldSymbol: InjectionKey<Ref<GeneralField>> = Symbol('field')\r\nexport const SchemaMarkupSymbol: InjectionKey<Ref<Schema>> = Symbol('schemaMarkup')\r\nexport const SchemaSymbol: InjectionKey<Ref<Schema>> = Symbol('schema')\r\nexport const SchemaExpressionScopeSymbol: InjectionKey<Ref<SchemaExpressionScope>>\r\n = Symbol('schemaExpression')\r\nexport const SchemaOptionsSymbol: InjectionKey<Ref<ISchemaFieldVueFactoryOptions>>\r\n = Symbol('schemaOptions')\r\n"],"names":["FormSymbol","FieldSymbol","SchemaMarkupSymbol","SchemaSymbol","SchemaExpressionScopeSymbol","SchemaOptionsSymbol"],"mappings":"AAKO,MAAMA,2BAA6C,MAAM,GACnDC,2BAAsD,OAAO,GAC7DC,2BAAuD,cAAc,GACrEC,2BAAiD,QAAQ,GACzDC,2BACF,kBAAkB,GAChBC,2BACF,eAAe;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fieldProps.mjs","sources":["../../src/utils/fieldProps.ts"],"sourcesContent":["import type { ComponentObjectPropsOptions, ExtractPropTypes } from 'vue'\nimport type { IFieldProps, IVoidFieldProps } from '../types'\nimport { createBooleanProp, createProp } from './runtimeProps'\n\nexport const fieldProps = {\n name: createProp<IFieldProps['name']>({ required: true }),\n title: createProp<IFieldProps['title']>(),\n description: createProp<IFieldProps['description']>(),\n value: createProp<IFieldProps['value']>(),\n initialValue: createProp<IFieldProps['initialValue']>(),\n basePath: createProp<IFieldProps['basePath']>(),\n decorator: createProp<IFieldProps['decorator']>(),\n component: createProp<IFieldProps['component']>(),\n display: createProp<IFieldProps['display']>(),\n pattern: createProp<IFieldProps['pattern']>(),\n required: createBooleanProp(),\n validateFirst: createBooleanProp(),\n hidden: createBooleanProp(),\n visible: createBooleanProp(),\n editable: createBooleanProp(),\n disabled: createBooleanProp(),\n readOnly: createBooleanProp(),\n readPretty: createBooleanProp(),\n dataSource: createProp<IFieldProps['dataSource']>(),\n validatePattern: createProp<IFieldProps['validatePattern']>(),\n validateDisplay: createProp<IFieldProps['validateDisplay']>(),\n validator: createProp<IFieldProps['validator']>(),\n reactions: createProp<IFieldProps['reactions']>(),\n content: createProp<IFieldProps['content']>(),\n data: createProp<IFieldProps['data']>(),\n} as const satisfies ComponentObjectPropsOptions<IFieldProps>\n\nexport const voidFieldProps = {\n name: createProp<IVoidFieldProps['name']>({ required: true }),\n title: createProp<IVoidFieldProps['title']>(),\n description: createProp<IVoidFieldProps['description']>(),\n basePath: createProp<IVoidFieldProps['basePath']>(),\n decorator: createProp<IVoidFieldProps['decorator']>(),\n component: createProp<IVoidFieldProps['component']>(),\n display: createProp<IVoidFieldProps['display']>(),\n pattern: createProp<IVoidFieldProps['pattern']>(),\n hidden: createBooleanProp(),\n visible: createBooleanProp(),\n editable: createBooleanProp(),\n disabled: createBooleanProp(),\n readOnly: createBooleanProp(),\n readPretty: createBooleanProp(),\n reactions: createProp<IVoidFieldProps['reactions']>(),\n content: createProp<IVoidFieldProps['content']>(),\n data: createProp<IVoidFieldProps['data']>(),\n} as const satisfies ComponentObjectPropsOptions<IVoidFieldProps>\n\nexport type FieldProps = ExtractPropTypes<typeof fieldProps>\nexport type VoidFieldProps = ExtractPropTypes<typeof voidFieldProps>\n"],"names":["fieldProps","createProp","createBooleanProp","voidFieldProps"],"mappings":";AAIO,MAAMA,IAAa;AAAA,EACxB,MAAMC,EAAgC,EAAE,UAAU,IAAM;AAAA,EACxD,OAAOA,EAAA;AAAA,EACP,aAAaA,EAAA;AAAA,EACb,OAAOA,EAAA;AAAA,EACP,cAAcA,EAAA;AAAA,EACd,UAAUA,EAAA;AAAA,EACV,WAAWA,EAAA;AAAA,EACX,WAAWA,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,SAASA,EAAA;AAAA,EACT,UAAUC,EAAA;AAAA,EACV,eAAeA,EAAA;AAAA,EACf,QAAQA,EAAA;AAAA,EACR,SAASA,EAAA;AAAA,EACT,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,YAAYA,EAAA;AAAA,EACZ,YAAYD,EAAA;AAAA,EACZ,iBAAiBA,EAAA;AAAA,EACjB,iBAAiBA,EAAA;AAAA,EACjB,WAAWA,EAAA;AAAA,EACX,WAAWA,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,MAAMA,EAAA;AACR,GAEaE,IAAiB;AAAA,EAC5B,MAAMF,EAAoC,EAAE,UAAU,IAAM;AAAA,EAC5D,OAAOA,EAAA;AAAA,EACP,aAAaA,EAAA;AAAA,EACb,UAAUA,EAAA;AAAA,EACV,WAAWA,EAAA;AAAA,EACX,WAAWA,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,SAASA,EAAA;AAAA,EACT,QAAQC,EAAA;AAAA,EACR,SAASA,EAAA;AAAA,EACT,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,YAAYA,EAAA;AAAA,EACZ,WAAWD,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,MAAMA,EAAA;AACR;"}
1
+ {"version":3,"file":"fieldProps.mjs","sources":["../../src/utils/fieldProps.ts"],"sourcesContent":["import type { ComponentObjectPropsOptions, ExtractPropTypes } from 'vue'\r\nimport type { IFieldProps, IVoidFieldProps } from '../types'\r\nimport { createBooleanProp, createProp } from './runtimeProps'\r\n\r\nexport const fieldProps = {\r\n name: createProp<IFieldProps['name']>({ required: true }),\r\n title: createProp<IFieldProps['title']>(),\r\n description: createProp<IFieldProps['description']>(),\r\n value: createProp<IFieldProps['value']>(),\r\n initialValue: createProp<IFieldProps['initialValue']>(),\r\n basePath: createProp<IFieldProps['basePath']>(),\r\n decorator: createProp<IFieldProps['decorator']>(),\r\n component: createProp<IFieldProps['component']>(),\r\n display: createProp<IFieldProps['display']>(),\r\n pattern: createProp<IFieldProps['pattern']>(),\r\n required: createBooleanProp(),\r\n validateFirst: createBooleanProp(),\r\n hidden: createBooleanProp(),\r\n visible: createBooleanProp(),\r\n editable: createBooleanProp(),\r\n disabled: createBooleanProp(),\r\n readOnly: createBooleanProp(),\r\n readPretty: createBooleanProp(),\r\n dataSource: createProp<IFieldProps['dataSource']>(),\r\n validatePattern: createProp<IFieldProps['validatePattern']>(),\r\n validateDisplay: createProp<IFieldProps['validateDisplay']>(),\r\n validator: createProp<IFieldProps['validator']>(),\r\n reactions: createProp<IFieldProps['reactions']>(),\r\n content: createProp<IFieldProps['content']>(),\r\n data: createProp<IFieldProps['data']>(),\r\n} as const satisfies ComponentObjectPropsOptions<IFieldProps>\r\n\r\nexport const voidFieldProps = {\r\n name: createProp<IVoidFieldProps['name']>({ required: true }),\r\n title: createProp<IVoidFieldProps['title']>(),\r\n description: createProp<IVoidFieldProps['description']>(),\r\n basePath: createProp<IVoidFieldProps['basePath']>(),\r\n decorator: createProp<IVoidFieldProps['decorator']>(),\r\n component: createProp<IVoidFieldProps['component']>(),\r\n display: createProp<IVoidFieldProps['display']>(),\r\n pattern: createProp<IVoidFieldProps['pattern']>(),\r\n hidden: createBooleanProp(),\r\n visible: createBooleanProp(),\r\n editable: createBooleanProp(),\r\n disabled: createBooleanProp(),\r\n readOnly: createBooleanProp(),\r\n readPretty: createBooleanProp(),\r\n reactions: createProp<IVoidFieldProps['reactions']>(),\r\n content: createProp<IVoidFieldProps['content']>(),\r\n data: createProp<IVoidFieldProps['data']>(),\r\n} as const satisfies ComponentObjectPropsOptions<IVoidFieldProps>\r\n\r\nexport type FieldProps = ExtractPropTypes<typeof fieldProps>\r\nexport type VoidFieldProps = ExtractPropTypes<typeof voidFieldProps>\r\n"],"names":["fieldProps","createProp","createBooleanProp","voidFieldProps"],"mappings":";AAIO,MAAMA,IAAa;AAAA,EACxB,MAAMC,EAAgC,EAAE,UAAU,IAAM;AAAA,EACxD,OAAOA,EAAA;AAAA,EACP,aAAaA,EAAA;AAAA,EACb,OAAOA,EAAA;AAAA,EACP,cAAcA,EAAA;AAAA,EACd,UAAUA,EAAA;AAAA,EACV,WAAWA,EAAA;AAAA,EACX,WAAWA,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,SAASA,EAAA;AAAA,EACT,UAAUC,EAAA;AAAA,EACV,eAAeA,EAAA;AAAA,EACf,QAAQA,EAAA;AAAA,EACR,SAASA,EAAA;AAAA,EACT,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,YAAYA,EAAA;AAAA,EACZ,YAAYD,EAAA;AAAA,EACZ,iBAAiBA,EAAA;AAAA,EACjB,iBAAiBA,EAAA;AAAA,EACjB,WAAWA,EAAA;AAAA,EACX,WAAWA,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,MAAMA,EAAA;AACR,GAEaE,IAAiB;AAAA,EAC5B,MAAMF,EAAoC,EAAE,UAAU,IAAM;AAAA,EAC5D,OAAOA,EAAA;AAAA,EACP,aAAaA,EAAA;AAAA,EACb,UAAUA,EAAA;AAAA,EACV,WAAWA,EAAA;AAAA,EACX,WAAWA,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,SAASA,EAAA;AAAA,EACT,QAAQC,EAAA;AAAA,EACR,SAASA,EAAA;AAAA,EACT,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,UAAUA,EAAA;AAAA,EACV,YAAYA,EAAA;AAAA,EACZ,WAAWD,EAAA;AAAA,EACX,SAASA,EAAA;AAAA,EACT,MAAMA,EAAA;AACR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRawComponent.mjs","sources":["../../src/utils/getRawComponent.ts"],"sourcesContent":["import type { Component } from 'vue'\nimport type { IFieldProps } from '../types'\nimport { toRaw } from 'vue'\n\ntype ComponentLikeProps = Pick<IFieldProps<Component, Component>, 'component' | 'decorator'>\n\nexport function getRawComponent(props: ComponentLikeProps) {\n const { component, decorator } = props\n let newComponent: typeof component | undefined\n let newDecorator: typeof decorator | undefined\n if (Array.isArray(component)) {\n newComponent = [toRaw(component[0]), component[1]]\n }\n if (Array.isArray(decorator)) {\n newDecorator = [toRaw(decorator[0]), decorator[1]]\n }\n return {\n component: newComponent ?? component,\n decorator: newDecorator ?? decorator,\n }\n}\n"],"names":["getRawComponent","props","component","decorator","newComponent","newDecorator","toRaw"],"mappings":";AAMO,SAASA,EAAgBC,GAA2B;AACzD,QAAM,EAAE,WAAAC,GAAW,WAAAC,EAAA,IAAcF;AACjC,MAAIG,GACAC;AACJ,SAAI,MAAM,QAAQH,CAAS,MACzBE,IAAe,CAACE,EAAMJ,EAAU,CAAC,CAAC,GAAGA,EAAU,CAAC,CAAC,IAE/C,MAAM,QAAQC,CAAS,MACzBE,IAAe,CAACC,EAAMH,EAAU,CAAC,CAAC,GAAGA,EAAU,CAAC,CAAC,IAE5C;AAAA,IACL,WAAWC,KAAgBF;AAAA,IAC3B,WAAWG,KAAgBF;AAAA,EAAA;AAE/B;"}
1
+ {"version":3,"file":"getRawComponent.mjs","sources":["../../src/utils/getRawComponent.ts"],"sourcesContent":["import type { Component } from 'vue'\r\nimport type { IFieldProps } from '../types'\r\nimport { toRaw } from 'vue'\r\n\r\ntype ComponentLikeProps = Pick<IFieldProps<Component, Component>, 'component' | 'decorator'>\r\n\r\nexport function getRawComponent(props: ComponentLikeProps) {\r\n const { component, decorator } = props\r\n let newComponent: typeof component | undefined\r\n let newDecorator: typeof decorator | undefined\r\n if (Array.isArray(component)) {\r\n newComponent = [toRaw(component[0]), component[1]]\r\n }\r\n if (Array.isArray(decorator)) {\r\n newDecorator = [toRaw(decorator[0]), decorator[1]]\r\n }\r\n return {\r\n component: newComponent ?? component,\r\n decorator: newDecorator ?? decorator,\r\n }\r\n}\r\n"],"names":["getRawComponent","props","component","decorator","newComponent","newDecorator","toRaw"],"mappings":";AAMO,SAASA,EAAgBC,GAA2B;AACzD,QAAM,EAAE,WAAAC,GAAW,WAAAC,EAAA,IAAcF;AACjC,MAAIG,GACAC;AACJ,SAAI,MAAM,QAAQH,CAAS,MACzBE,IAAe,CAACE,EAAMJ,EAAU,CAAC,CAAC,GAAGA,EAAU,CAAC,CAAC,IAE/C,MAAM,QAAQC,CAAS,MACzBE,IAAe,CAACC,EAAMH,EAAU,CAAC,CAAC,GAAGA,EAAU,CAAC,CAAC,IAE5C;AAAA,IACL,WAAWC,KAAgBF;AAAA,IAC3B,WAAWG,KAAgBF;AAAA,EAAA;AAE/B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactiveFieldHelpers.mjs","sources":["../../src/utils/reactiveFieldHelpers.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Component, Slot, Slots, VNode } from 'vue'\nimport { createTextVNode, Fragment, h } from 'vue'\n\ninterface VueLikeOptions {\n template?: string\n render?: (...args: unknown[]) => unknown\n setup?: (...args: unknown[]) => unknown\n}\n\ntype SlotContent = string | Component | null | undefined\ntype SlotContentMap = Record<string, SlotContent>\ntype FieldContent = SlotContent | SlotContentMap | null | undefined\n\ntype EventHandler = (...args: unknown[]) => unknown\ntype EventMap = Partial<Record<string, EventHandler>>\ntype Attrs = Record<string, unknown>\n\nconst EMPTY_SLOT: Slot = () => []\n\ntype ComponentWithProps = Component & { props?: unknown }\n\nfunction normalizePropKeys(propsDef: unknown): string[] | null {\n if (!propsDef)\n return null\n if (Array.isArray(propsDef))\n return propsDef.map(key => String(key))\n if (typeof propsDef === 'object')\n return Object.keys(propsDef as Record<string, unknown>)\n return null\n}\n\nfunction extractComponentPropKeys(component: SlotContent): string[] | null {\n if (!component || typeof component === 'string')\n return null\n const target = component as ComponentWithProps\n return normalizePropKeys(target.props)\n}\n\nfunction pickScopedProps(\n scopedProps: Record<string, unknown> | undefined,\n propKeys: string[] | null | undefined,\n) {\n if (!scopedProps)\n return undefined\n if (!propKeys || !propKeys.length)\n return scopedProps\n const picked: Record<string, unknown> = {}\n propKeys.forEach((key) => {\n if (key in scopedProps)\n picked[key] = scopedProps[key]\n })\n if (!Object.keys(picked).length)\n return undefined\n return picked\n}\n\nfunction isVueOptions(options: unknown): options is VueLikeOptions {\n if (typeof options !== 'object' || options === null) {\n return false\n }\n const candidates = options as Record<string, unknown>\n return (\n typeof candidates.template === 'string'\n || typeof candidates.render === 'function'\n || typeof candidates.setup === 'function'\n )\n}\n\nfunction isSlotContentMap(content: unknown): content is SlotContentMap {\n if (typeof content !== 'object' || content === null) {\n return false\n }\n return !isVueOptions(content)\n}\n\nexport function wrapFragment(childNodes?: VNode[] | VNode | null): VNode | null {\n if (!childNodes) {\n return null\n }\n if (!Array.isArray(childNodes)) {\n return childNodes\n }\n if (childNodes.length === 0) {\n return null\n }\n if (childNodes.length === 1) {\n return childNodes[0] ?? null\n }\n return h(Fragment, null, childNodes)\n}\n\nfunction resolveComponent(render: Slot, extra?: SlotContent): Slot {\n if (extra === undefined || extra === null) {\n return render\n }\n if (typeof extra === 'string') {\n return () => [...render(), createTextVNode(extra)]\n }\n\n const component = extra\n const propKeys = extractComponentPropKeys(component)\n const needsScopedProps\n = (typeof component === 'function' && component.length > 1)\n || (isVueOptions(component)\n && typeof component.render === 'function'\n && component.render.length > 1)\n || !!(propKeys && propKeys.length)\n\n if (needsScopedProps) {\n return (scopedProps?: Record<string, unknown>) => [\n ...render(),\n h(component, pickScopedProps(scopedProps, propKeys) ?? {}),\n ]\n }\n\n return () => [...render(), h(component)]\n}\n\nexport function mergeSlots(field: GeneralField, slots: Slots, content: FieldContent): Slots {\n const slotNames = Object.keys(slots)\n if (!slotNames.length) {\n if (!content) {\n return {}\n }\n if (typeof content === 'string') {\n return {\n default: resolveComponent(EMPTY_SLOT, content),\n }\n }\n }\n const patchSlot\n = (slotName: string): Slot =>\n (...originArgs: Parameters<Slot>) => {\n const firstArg = originArgs[0]\n const scopedProps\n = typeof firstArg === 'object' && firstArg !== null\n ? (firstArg as Record<string, unknown>)\n : {}\n return slots[slotName]?.({ field, form: field.form, ...scopedProps }) ?? []\n }\n\n const patchedSlots: Record<string, Slot> = {}\n slotNames.forEach((name) => {\n patchedSlots[name] = patchSlot(name)\n })\n\n if (isSlotContentMap(content)) {\n Object.keys(content).forEach((key) => {\n const child = content[key]\n const slot = patchedSlots[key] ?? EMPTY_SLOT\n patchedSlots[key] = resolveComponent(slot, child)\n })\n return patchedSlots\n }\n patchedSlots.default = resolveComponent(patchedSlots.default ?? EMPTY_SLOT, content)\n return patchedSlots\n}\n\nfunction normalizeOnEventName(eventKey: string) {\n if (eventKey.length <= 2)\n return ''\n const rawName = eventKey.slice(2)\n return rawName.charAt(0).toLowerCase() + rawName.slice(1)\n}\n\nfunction toEventPropKey(eventName: string) {\n if (!eventName)\n return ''\n return `on${eventName.charAt(0).toUpperCase()}${eventName.slice(1)}`\n}\n\nexport function extractAttrsAndEvents(rawAttrs: Attrs = {}): { attrs: Attrs, events: EventMap } {\n const normalizedAttrs: Attrs = { ...rawAttrs }\n const events: EventMap = {}\n\n Object.keys(rawAttrs).forEach((eventKey) => {\n const value = rawAttrs[eventKey]\n const onEvent = eventKey.startsWith('on')\n const atEvent = eventKey.startsWith('@')\n if (!onEvent && !atEvent)\n return\n if (atEvent) {\n const eventName = eventKey.slice(1)\n delete normalizedAttrs[eventKey]\n if (typeof value === 'function') {\n events[eventName] = value as EventHandler\n }\n return\n }\n const eventName = normalizeOnEventName(eventKey)\n if (!eventName)\n return\n if (!events[eventName] && typeof value === 'function') {\n events[eventName] = value as EventHandler\n }\n delete normalizedAttrs[eventKey]\n })\n\n return { attrs: normalizedAttrs, events }\n}\n\nexport function createVNodeProps(attrs: Attrs, events: EventMap): Attrs {\n const { style, class: className, ...rest } = attrs\n const eventProps = Object.keys(events).reduce<Record<string, EventHandler>>((acc, eventName) => {\n const propKey = toEventPropKey(eventName)\n const handler = events[eventName]\n if (propKey && handler) {\n acc[propKey] = handler\n }\n return acc\n }, {})\n\n return {\n ...rest,\n style,\n class: className,\n ...eventProps,\n }\n}\n"],"names":["EMPTY_SLOT","normalizePropKeys","propsDef","key","extractComponentPropKeys","component","pickScopedProps","scopedProps","propKeys","picked","isVueOptions","options","candidates","isSlotContentMap","content","wrapFragment","childNodes","h","Fragment","resolveComponent","render","extra","createTextVNode","mergeSlots","field","slots","slotNames","patchSlot","slotName","originArgs","firstArg","patchedSlots","name","child","slot","normalizeOnEventName","eventKey","rawName","toEventPropKey","eventName","extractAttrsAndEvents","rawAttrs","normalizedAttrs","events","value","onEvent","atEvent","createVNodeProps","attrs","style","className","rest","eventProps","acc","propKey","handler"],"mappings":"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"}
1
+ {"version":3,"file":"reactiveFieldHelpers.mjs","sources":["../../src/utils/reactiveFieldHelpers.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\r\nimport type { Component, Slot, Slots, VNode } from 'vue'\r\nimport { createTextVNode, Fragment, h } from 'vue'\r\n\r\ninterface VueLikeOptions {\r\n template?: string\r\n render?: (...args: unknown[]) => unknown\r\n setup?: (...args: unknown[]) => unknown\r\n}\r\n\r\ntype SlotContent = string | Component | null | undefined\r\ntype SlotContentMap = Record<string, SlotContent>\r\ntype FieldContent = SlotContent | SlotContentMap | null | undefined\r\n\r\ntype EventHandler = (...args: unknown[]) => unknown\r\ntype EventMap = Partial<Record<string, EventHandler>>\r\ntype Attrs = Record<string, unknown>\r\n\r\nconst EMPTY_SLOT: Slot = () => []\r\n\r\ntype ComponentWithProps = Component & { props?: unknown }\r\n\r\nfunction normalizePropKeys(propsDef: unknown): string[] | null {\r\n if (!propsDef)\r\n return null\r\n if (Array.isArray(propsDef))\r\n return propsDef.map(key => String(key))\r\n if (typeof propsDef === 'object')\r\n return Object.keys(propsDef as Record<string, unknown>)\r\n return null\r\n}\r\n\r\nfunction extractComponentPropKeys(component: SlotContent): string[] | null {\r\n if (!component || typeof component === 'string')\r\n return null\r\n const target = component as ComponentWithProps\r\n return normalizePropKeys(target.props)\r\n}\r\n\r\nfunction pickScopedProps(\r\n scopedProps: Record<string, unknown> | undefined,\r\n propKeys: string[] | null | undefined,\r\n) {\r\n if (!scopedProps)\r\n return undefined\r\n if (!propKeys || !propKeys.length)\r\n return scopedProps\r\n const picked: Record<string, unknown> = {}\r\n propKeys.forEach((key) => {\r\n if (key in scopedProps)\r\n picked[key] = scopedProps[key]\r\n })\r\n if (!Object.keys(picked).length)\r\n return undefined\r\n return picked\r\n}\r\n\r\nfunction isVueOptions(options: unknown): options is VueLikeOptions {\r\n if (typeof options !== 'object' || options === null) {\r\n return false\r\n }\r\n const candidates = options as Record<string, unknown>\r\n return (\r\n typeof candidates.template === 'string'\r\n || typeof candidates.render === 'function'\r\n || typeof candidates.setup === 'function'\r\n )\r\n}\r\n\r\nfunction isSlotContentMap(content: unknown): content is SlotContentMap {\r\n if (typeof content !== 'object' || content === null) {\r\n return false\r\n }\r\n return !isVueOptions(content)\r\n}\r\n\r\nexport function wrapFragment(childNodes?: VNode[] | VNode | null): VNode | null {\r\n if (!childNodes) {\r\n return null\r\n }\r\n if (!Array.isArray(childNodes)) {\r\n return childNodes\r\n }\r\n if (childNodes.length === 0) {\r\n return null\r\n }\r\n if (childNodes.length === 1) {\r\n return childNodes[0] ?? null\r\n }\r\n return h(Fragment, null, childNodes)\r\n}\r\n\r\nfunction resolveComponent(render: Slot, extra?: SlotContent): Slot {\r\n if (extra === undefined || extra === null) {\r\n return render\r\n }\r\n if (typeof extra === 'string') {\r\n return () => [...render(), createTextVNode(extra)]\r\n }\r\n\r\n const component = extra\r\n const propKeys = extractComponentPropKeys(component)\r\n const needsScopedProps\r\n = (typeof component === 'function' && component.length > 1)\r\n || (isVueOptions(component)\r\n && typeof component.render === 'function'\r\n && component.render.length > 1)\r\n || !!(propKeys && propKeys.length)\r\n\r\n if (needsScopedProps) {\r\n return (scopedProps?: Record<string, unknown>) => [\r\n ...render(),\r\n h(component, pickScopedProps(scopedProps, propKeys) ?? {}),\r\n ]\r\n }\r\n\r\n return () => [...render(), h(component)]\r\n}\r\n\r\nexport function mergeSlots(field: GeneralField, slots: Slots, content: FieldContent): Slots {\r\n const slotNames = Object.keys(slots)\r\n if (!slotNames.length) {\r\n if (!content) {\r\n return {}\r\n }\r\n if (typeof content === 'string') {\r\n return {\r\n default: resolveComponent(EMPTY_SLOT, content),\r\n }\r\n }\r\n }\r\n const patchSlot\r\n = (slotName: string): Slot =>\r\n (...originArgs: Parameters<Slot>) => {\r\n const firstArg = originArgs[0]\r\n const scopedProps\r\n = typeof firstArg === 'object' && firstArg !== null\r\n ? (firstArg as Record<string, unknown>)\r\n : {}\r\n return slots[slotName]?.({ field, form: field.form, ...scopedProps }) ?? []\r\n }\r\n\r\n const patchedSlots: Record<string, Slot> = {}\r\n slotNames.forEach((name) => {\r\n patchedSlots[name] = patchSlot(name)\r\n })\r\n\r\n if (isSlotContentMap(content)) {\r\n Object.keys(content).forEach((key) => {\r\n const child = content[key]\r\n const slot = patchedSlots[key] ?? EMPTY_SLOT\r\n patchedSlots[key] = resolveComponent(slot, child)\r\n })\r\n return patchedSlots\r\n }\r\n patchedSlots.default = resolveComponent(patchedSlots.default ?? EMPTY_SLOT, content)\r\n return patchedSlots\r\n}\r\n\r\nfunction normalizeOnEventName(eventKey: string) {\r\n if (eventKey.length <= 2)\r\n return ''\r\n const rawName = eventKey.slice(2)\r\n return rawName.charAt(0).toLowerCase() + rawName.slice(1)\r\n}\r\n\r\nfunction toEventPropKey(eventName: string) {\r\n if (!eventName)\r\n return ''\r\n return `on${eventName.charAt(0).toUpperCase()}${eventName.slice(1)}`\r\n}\r\n\r\nexport function extractAttrsAndEvents(rawAttrs: Attrs = {}): { attrs: Attrs, events: EventMap } {\r\n const normalizedAttrs: Attrs = { ...rawAttrs }\r\n const events: EventMap = {}\r\n\r\n Object.keys(rawAttrs).forEach((eventKey) => {\r\n const value = rawAttrs[eventKey]\r\n const onEvent = eventKey.startsWith('on')\r\n const atEvent = eventKey.startsWith('@')\r\n if (!onEvent && !atEvent)\r\n return\r\n if (atEvent) {\r\n const eventName = eventKey.slice(1)\r\n delete normalizedAttrs[eventKey]\r\n if (typeof value === 'function') {\r\n events[eventName] = value as EventHandler\r\n }\r\n return\r\n }\r\n const eventName = normalizeOnEventName(eventKey)\r\n if (!eventName)\r\n return\r\n if (!events[eventName] && typeof value === 'function') {\r\n events[eventName] = value as EventHandler\r\n }\r\n delete normalizedAttrs[eventKey]\r\n })\r\n\r\n return { attrs: normalizedAttrs, events }\r\n}\r\n\r\nexport function createVNodeProps(attrs: Attrs, events: EventMap): Attrs {\r\n const { style, class: className, ...rest } = attrs\r\n const eventProps = Object.keys(events).reduce<Record<string, EventHandler>>((acc, eventName) => {\r\n const propKey = toEventPropKey(eventName)\r\n const handler = events[eventName]\r\n if (propKey && handler) {\r\n acc[propKey] = handler\r\n }\r\n return acc\r\n }, {})\r\n\r\n return {\r\n ...rest,\r\n style,\r\n class: className,\r\n ...eventProps,\r\n }\r\n}\r\n"],"names":["EMPTY_SLOT","normalizePropKeys","propsDef","key","extractComponentPropKeys","component","pickScopedProps","scopedProps","propKeys","picked","isVueOptions","options","candidates","isSlotContentMap","content","wrapFragment","childNodes","h","Fragment","resolveComponent","render","extra","createTextVNode","mergeSlots","field","slots","slotNames","patchSlot","slotName","originArgs","firstArg","patchedSlots","name","child","slot","normalizeOnEventName","eventKey","rawName","toEventPropKey","eventName","extractAttrsAndEvents","rawAttrs","normalizedAttrs","events","value","onEvent","atEvent","createVNodeProps","attrs","style","className","rest","eventProps","acc","propKey","handler"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recursionFieldProps.mjs","sources":["../../src/utils/recursionFieldProps.ts"],"sourcesContent":["import type { ComponentObjectPropsOptions, ExtractPropTypes } from 'vue'\nimport type { IRecursionFieldProps } from '../types'\nimport { createBooleanProp, createProp } from './runtimeProps'\n\nexport const recursionFieldProps = {\n schema: createProp<IRecursionFieldProps['schema']>({ required: true }),\n name: createProp<IRecursionFieldProps['name']>(),\n basePath: createProp<IRecursionFieldProps['basePath']>(),\n onlyRenderProperties: createBooleanProp(),\n onlyRenderSelf: createBooleanProp(),\n mapProperties: createProp<IRecursionFieldProps['mapProperties']>(),\n filterProperties: createProp<IRecursionFieldProps['filterProperties']>(),\n} as const satisfies ComponentObjectPropsOptions<IRecursionFieldProps>\n\nexport type RecursionFieldProps = ExtractPropTypes<typeof recursionFieldProps>\n"],"names":["recursionFieldProps","createProp","createBooleanProp"],"mappings":";AAIO,MAAMA,IAAsB;AAAA,EACjC,QAAQC,EAA2C,EAAE,UAAU,IAAM;AAAA,EACrE,MAAMA,EAAA;AAAA,EACN,UAAUA,EAAA;AAAA,EACV,sBAAsBC,EAAA;AAAA,EACtB,gBAAgBA,EAAA;AAAA,EAChB,eAAeD,EAAA;AAAA,EACf,kBAAkBA,EAAA;AACpB;"}
1
+ {"version":3,"file":"recursionFieldProps.mjs","sources":["../../src/utils/recursionFieldProps.ts"],"sourcesContent":["import type { ComponentObjectPropsOptions, ExtractPropTypes } from 'vue'\r\nimport type { IRecursionFieldProps } from '../types'\r\nimport { createBooleanProp, createProp } from './runtimeProps'\r\n\r\nexport const recursionFieldProps = {\r\n schema: createProp<IRecursionFieldProps['schema']>({ required: true }),\r\n name: createProp<IRecursionFieldProps['name']>(),\r\n basePath: createProp<IRecursionFieldProps['basePath']>(),\r\n onlyRenderProperties: createBooleanProp(),\r\n onlyRenderSelf: createBooleanProp(),\r\n mapProperties: createProp<IRecursionFieldProps['mapProperties']>(),\r\n filterProperties: createProp<IRecursionFieldProps['filterProperties']>(),\r\n} as const satisfies ComponentObjectPropsOptions<IRecursionFieldProps>\r\n\r\nexport type RecursionFieldProps = ExtractPropTypes<typeof recursionFieldProps>\r\n"],"names":["recursionFieldProps","createProp","createBooleanProp"],"mappings":";AAIO,MAAMA,IAAsB;AAAA,EACjC,QAAQC,EAA2C,EAAE,UAAU,IAAM;AAAA,EACrE,MAAMA,EAAA;AAAA,EACN,UAAUA,EAAA;AAAA,EACV,sBAAsBC,EAAA;AAAA,EACtB,gBAAgBA,EAAA;AAAA,EAChB,eAAeD,EAAA;AAAA,EACf,kBAAkBA,EAAA;AACpB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveSchemaProps.mjs","sources":["../../src/utils/resolveSchemaProps.ts"],"sourcesContent":["import { paramCase } from '@formily/shared'\n\nexport function resolveSchemaProps(props: Record<string, unknown>) {\n const newProps = {} as Record<string, unknown>\n Object.keys(props).forEach((key) => {\n if (key.indexOf('x') === 0 && !key.includes('x-')) {\n newProps[paramCase(key)] = props[key]\n }\n else {\n newProps[key] = props[key]\n }\n })\n return newProps\n}\n"],"names":["resolveSchemaProps","props","newProps","key","paramCase"],"mappings":";AAEO,SAASA,EAAmBC,GAAgC;AACjE,QAAMC,IAAW,CAAA;AACjB,gBAAO,KAAKD,CAAK,EAAE,QAAQ,CAACE,MAAQ;AAClC,IAAIA,EAAI,QAAQ,GAAG,MAAM,KAAK,CAACA,EAAI,SAAS,IAAI,IAC9CD,EAASE,EAAUD,CAAG,CAAC,IAAIF,EAAME,CAAG,IAGpCD,EAASC,CAAG,IAAIF,EAAME,CAAG;AAAA,EAE7B,CAAC,GACMD;AACT;"}
1
+ {"version":3,"file":"resolveSchemaProps.mjs","sources":["../../src/utils/resolveSchemaProps.ts"],"sourcesContent":["import { paramCase } from '@formily/shared'\r\n\r\nexport function resolveSchemaProps(props: Record<string, unknown>) {\r\n const newProps = {} as Record<string, unknown>\r\n Object.keys(props).forEach((key) => {\r\n if (key.indexOf('x') === 0 && !key.includes('x-')) {\r\n newProps[paramCase(key)] = props[key]\r\n }\r\n else {\r\n newProps[key] = props[key]\r\n }\r\n })\r\n return newProps\r\n}\r\n"],"names":["resolveSchemaProps","props","newProps","key","paramCase"],"mappings":";AAEO,SAASA,EAAmBC,GAAgC;AACjE,QAAMC,IAAW,CAAA;AACjB,gBAAO,KAAKD,CAAK,EAAE,QAAQ,CAACE,MAAQ;AAClC,IAAIA,EAAI,QAAQ,GAAG,MAAM,KAAK,CAACA,EAAI,SAAS,IAAI,IAC9CD,EAASE,EAAUD,CAAG,CAAC,IAAIF,EAAME,CAAG,IAGpCD,EAASC,CAAG,IAAIF,EAAME,CAAG;AAAA,EAE7B,CAAC,GACMD;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeProps.mjs","sources":["../../src/utils/runtimeProps.ts"],"sourcesContent":["import type { PropType } from 'vue'\n\nexport interface RuntimeProp<T> {\n type: PropType<T> | null\n required?: boolean\n default?: T | (() => T)\n}\n\nexport function createProp<T>(options: Partial<RuntimeProp<T>> = {}): RuntimeProp<T> {\n return {\n type: options.type ?? (null as unknown as PropType<T>),\n ...options,\n }\n}\n\nexport function createBooleanProp() {\n return createProp<boolean>({\n type: Boolean as PropType<boolean>,\n default: undefined,\n })\n}\n"],"names":["createProp","options","createBooleanProp"],"mappings":"AAQO,SAASA,EAAcC,IAAmC,IAAoB;AACnF,SAAO;AAAA,IACL,MAAMA,EAAQ,QAAS;AAAA,IACvB,GAAGA;AAAA,EAAA;AAEP;AAEO,SAASC,IAAoB;AAClC,SAAOF,EAAoB;AAAA,IACzB,MAAM;AAAA,IACN,SAAS;AAAA,EAAA,CACV;AACH;"}
1
+ {"version":3,"file":"runtimeProps.mjs","sources":["../../src/utils/runtimeProps.ts"],"sourcesContent":["import type { PropType } from 'vue'\r\n\r\nexport interface RuntimeProp<T> {\r\n type: PropType<T> | null\r\n required?: boolean\r\n default?: T | (() => T)\r\n}\r\n\r\nexport function createProp<T>(options: Partial<RuntimeProp<T>> = {}): RuntimeProp<T> {\r\n return {\r\n type: options.type ?? (null as unknown as PropType<T>),\r\n ...options,\r\n }\r\n}\r\n\r\nexport function createBooleanProp() {\r\n return createProp<boolean>({\r\n type: Boolean as PropType<boolean>,\r\n default: undefined,\r\n })\r\n}\r\n"],"names":["createProp","options","createBooleanProp"],"mappings":"AAQO,SAASA,EAAcC,IAAmC,IAAoB;AACnF,SAAO;AAAA,IACL,MAAMA,EAAQ,QAAS;AAAA,IACvB,GAAGA;AAAA,EAAA;AAEP;AAEO,SAASC,IAAoB;AAClC,SAAOF,EAAoB;AAAA,IACzB,MAAM;AAAA,IACN,SAAS;AAAA,EAAA,CACV;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"schemaFieldProps.mjs","sources":["../../src/utils/schemaFieldProps.ts"],"sourcesContent":["import type { ComponentObjectPropsOptions, ExtractPropTypes } from 'vue'\nimport type {\n ISchemaFieldProps,\n ISchemaMarkupFieldProps,\n SchemaMarkupValidator,\n} from '../types'\nimport { createBooleanProp, createProp } from './runtimeProps'\n\nexport const schemaFieldProps = {\n schema: createProp<ISchemaFieldProps['schema']>(),\n scope: createProp<ISchemaFieldProps['scope']>(),\n components: createProp<ISchemaFieldProps['components']>(),\n name: createProp<ISchemaFieldProps['name']>(),\n basePath: createProp<ISchemaFieldProps['basePath']>(),\n onlyRenderProperties: createBooleanProp(),\n onlyRenderSelf: createBooleanProp(),\n mapProperties: createProp<ISchemaFieldProps['mapProperties']>(),\n filterProperties: createProp<ISchemaFieldProps['filterProperties']>(),\n} as const satisfies ComponentObjectPropsOptions<ISchemaFieldProps>\n\nexport const markupSchemaProps = {\n 'version': createProp<ISchemaMarkupFieldProps['version']>(),\n 'name': createProp<ISchemaMarkupFieldProps['name']>(),\n 'title': createProp<ISchemaMarkupFieldProps['title']>(),\n 'description': createProp<ISchemaMarkupFieldProps['description']>(),\n 'default': createProp<ISchemaMarkupFieldProps['default']>(),\n 'readOnly': createBooleanProp(),\n 'writeOnly': createBooleanProp(),\n 'enum': createProp<ISchemaMarkupFieldProps['enum']>(),\n 'const': createProp<ISchemaMarkupFieldProps['const']>(),\n 'multipleOf': createProp<ISchemaMarkupFieldProps['multipleOf']>(),\n 'maximum': createProp<ISchemaMarkupFieldProps['maximum']>(),\n 'exclusiveMaximum': createProp<ISchemaMarkupFieldProps['exclusiveMaximum']>(),\n 'minimum': createProp<ISchemaMarkupFieldProps['minimum']>(),\n 'exclusiveMinimum': createProp<ISchemaMarkupFieldProps['exclusiveMinimum']>(),\n 'maxLength': createProp<ISchemaMarkupFieldProps['maxLength']>(),\n 'minLength': createProp<ISchemaMarkupFieldProps['minLength']>(),\n 'pattern': createProp<ISchemaMarkupFieldProps['pattern']>(),\n 'maxItems': createProp<ISchemaMarkupFieldProps['maxItems']>(),\n 'minItems': createProp<ISchemaMarkupFieldProps['minItems']>(),\n 'uniqueItems': createBooleanProp(),\n 'maxProperties': createProp<ISchemaMarkupFieldProps['maxProperties']>(),\n 'minProperties': createProp<ISchemaMarkupFieldProps['minProperties']>(),\n 'required': createProp<ISchemaMarkupFieldProps['required']>(),\n 'format': createProp<ISchemaMarkupFieldProps['format']>(),\n 'properties': createProp<ISchemaMarkupFieldProps['properties']>(),\n 'items': createProp<ISchemaMarkupFieldProps['items']>(),\n 'additionalItems': createProp<ISchemaMarkupFieldProps['additionalItems']>(),\n 'patternProperties': createProp<ISchemaMarkupFieldProps['patternProperties']>(),\n 'additionalProperties': createProp<ISchemaMarkupFieldProps['additionalProperties']>(),\n 'x-index': createProp<ISchemaMarkupFieldProps['x-index']>(),\n 'x-pattern': createProp<ISchemaMarkupFieldProps['x-pattern']>(),\n 'x-display': createProp<ISchemaMarkupFieldProps['x-display']>(),\n 'x-validator': createProp<SchemaMarkupValidator>(),\n 'x-decorator': createProp<ISchemaMarkupFieldProps['x-decorator']>(),\n 'x-decorator-props': createProp<ISchemaMarkupFieldProps['x-decorator-props']>(),\n 'x-component': createProp<ISchemaMarkupFieldProps['x-component']>(),\n 'x-component-props': createProp<ISchemaMarkupFieldProps['x-component-props']>(),\n 'x-reactions': createProp<ISchemaMarkupFieldProps['x-reactions']>(),\n 'x-content': createProp<ISchemaMarkupFieldProps['x-content']>(),\n 'x-visible': createBooleanProp(),\n 'x-hidden': createBooleanProp(),\n 'x-disabled': createBooleanProp(),\n 'x-editable': createBooleanProp(),\n 'x-read-only': createBooleanProp(),\n 'x-read-pretty': createBooleanProp(),\n} as const satisfies ComponentObjectPropsOptions<ISchemaMarkupFieldProps>\n\nexport type SchemaFieldProps = ExtractPropTypes<typeof schemaFieldProps>\nexport type MarkupSchemaProps = ExtractPropTypes<typeof markupSchemaProps>\n"],"names":["schemaFieldProps","createProp","createBooleanProp","markupSchemaProps"],"mappings":";AAQO,MAAMA,IAAmB;AAAA,EAC9B,QAAQC,EAAA;AAAA,EACR,OAAOA,EAAA;AAAA,EACP,YAAYA,EAAA;AAAA,EACZ,MAAMA,EAAA;AAAA,EACN,UAAUA,EAAA;AAAA,EACV,sBAAsBC,EAAA;AAAA,EACtB,gBAAgBA,EAAA;AAAA,EAChB,eAAeD,EAAA;AAAA,EACf,kBAAkBA,EAAA;AACpB,GAEaE,IAAoB;AAAA,EAC/B,SAAWF,EAAA;AAAA,EACX,MAAQA,EAAA;AAAA,EACR,OAASA,EAAA;AAAA,EACT,aAAeA,EAAA;AAAA,EACf,SAAWA,EAAA;AAAA,EACX,UAAYC,EAAA;AAAA,EACZ,WAAaA,EAAA;AAAA,EACb,MAAQD,EAAA;AAAA,EACR,OAASA,EAAA;AAAA,EACT,YAAcA,EAAA;AAAA,EACd,SAAWA,EAAA;AAAA,EACX,kBAAoBA,EAAA;AAAA,EACpB,SAAWA,EAAA;AAAA,EACX,kBAAoBA,EAAA;AAAA,EACpB,WAAaA,EAAA;AAAA,EACb,WAAaA,EAAA;AAAA,EACb,SAAWA,EAAA;AAAA,EACX,UAAYA,EAAA;AAAA,EACZ,UAAYA,EAAA;AAAA,EACZ,aAAeC,EAAA;AAAA,EACf,eAAiBD,EAAA;AAAA,EACjB,eAAiBA,EAAA;AAAA,EACjB,UAAYA,EAAA;AAAA,EACZ,QAAUA,EAAA;AAAA,EACV,YAAcA,EAAA;AAAA,EACd,OAASA,EAAA;AAAA,EACT,iBAAmBA,EAAA;AAAA,EACnB,mBAAqBA,EAAA;AAAA,EACrB,sBAAwBA,EAAA;AAAA,EACxB,WAAWA,EAAA;AAAA,EACX,aAAaA,EAAA;AAAA,EACb,aAAaA,EAAA;AAAA,EACb,eAAeA,EAAA;AAAA,EACf,eAAeA,EAAA;AAAA,EACf,qBAAqBA,EAAA;AAAA,EACrB,eAAeA,EAAA;AAAA,EACf,qBAAqBA,EAAA;AAAA,EACrB,eAAeA,EAAA;AAAA,EACf,aAAaA,EAAA;AAAA,EACb,aAAaC,EAAA;AAAA,EACb,YAAYA,EAAA;AAAA,EACZ,cAAcA,EAAA;AAAA,EACd,cAAcA,EAAA;AAAA,EACd,eAAeA,EAAA;AAAA,EACf,iBAAiBA,EAAA;AACnB;"}
1
+ {"version":3,"file":"schemaFieldProps.mjs","sources":["../../src/utils/schemaFieldProps.ts"],"sourcesContent":["import type { ComponentObjectPropsOptions, ExtractPropTypes } from 'vue'\r\nimport type {\r\n ISchemaFieldProps,\r\n ISchemaMarkupFieldProps,\r\n SchemaMarkupValidator,\r\n} from '../types'\r\nimport { createBooleanProp, createProp } from './runtimeProps'\r\n\r\nexport const schemaFieldProps = {\r\n schema: createProp<ISchemaFieldProps['schema']>(),\r\n scope: createProp<ISchemaFieldProps['scope']>(),\r\n components: createProp<ISchemaFieldProps['components']>(),\r\n name: createProp<ISchemaFieldProps['name']>(),\r\n basePath: createProp<ISchemaFieldProps['basePath']>(),\r\n onlyRenderProperties: createBooleanProp(),\r\n onlyRenderSelf: createBooleanProp(),\r\n mapProperties: createProp<ISchemaFieldProps['mapProperties']>(),\r\n filterProperties: createProp<ISchemaFieldProps['filterProperties']>(),\r\n} as const satisfies ComponentObjectPropsOptions<ISchemaFieldProps>\r\n\r\nexport const markupSchemaProps = {\r\n 'version': createProp<ISchemaMarkupFieldProps['version']>(),\r\n 'name': createProp<ISchemaMarkupFieldProps['name']>(),\r\n 'title': createProp<ISchemaMarkupFieldProps['title']>(),\r\n 'description': createProp<ISchemaMarkupFieldProps['description']>(),\r\n 'default': createProp<ISchemaMarkupFieldProps['default']>(),\r\n 'readOnly': createBooleanProp(),\r\n 'writeOnly': createBooleanProp(),\r\n 'enum': createProp<ISchemaMarkupFieldProps['enum']>(),\r\n 'const': createProp<ISchemaMarkupFieldProps['const']>(),\r\n 'multipleOf': createProp<ISchemaMarkupFieldProps['multipleOf']>(),\r\n 'maximum': createProp<ISchemaMarkupFieldProps['maximum']>(),\r\n 'exclusiveMaximum': createProp<ISchemaMarkupFieldProps['exclusiveMaximum']>(),\r\n 'minimum': createProp<ISchemaMarkupFieldProps['minimum']>(),\r\n 'exclusiveMinimum': createProp<ISchemaMarkupFieldProps['exclusiveMinimum']>(),\r\n 'maxLength': createProp<ISchemaMarkupFieldProps['maxLength']>(),\r\n 'minLength': createProp<ISchemaMarkupFieldProps['minLength']>(),\r\n 'pattern': createProp<ISchemaMarkupFieldProps['pattern']>(),\r\n 'maxItems': createProp<ISchemaMarkupFieldProps['maxItems']>(),\r\n 'minItems': createProp<ISchemaMarkupFieldProps['minItems']>(),\r\n 'uniqueItems': createBooleanProp(),\r\n 'maxProperties': createProp<ISchemaMarkupFieldProps['maxProperties']>(),\r\n 'minProperties': createProp<ISchemaMarkupFieldProps['minProperties']>(),\r\n 'required': createProp<ISchemaMarkupFieldProps['required']>(),\r\n 'format': createProp<ISchemaMarkupFieldProps['format']>(),\r\n 'properties': createProp<ISchemaMarkupFieldProps['properties']>(),\r\n 'items': createProp<ISchemaMarkupFieldProps['items']>(),\r\n 'additionalItems': createProp<ISchemaMarkupFieldProps['additionalItems']>(),\r\n 'patternProperties': createProp<ISchemaMarkupFieldProps['patternProperties']>(),\r\n 'additionalProperties': createProp<ISchemaMarkupFieldProps['additionalProperties']>(),\r\n 'x-index': createProp<ISchemaMarkupFieldProps['x-index']>(),\r\n 'x-pattern': createProp<ISchemaMarkupFieldProps['x-pattern']>(),\r\n 'x-display': createProp<ISchemaMarkupFieldProps['x-display']>(),\r\n 'x-validator': createProp<SchemaMarkupValidator>(),\r\n 'x-decorator': createProp<ISchemaMarkupFieldProps['x-decorator']>(),\r\n 'x-decorator-props': createProp<ISchemaMarkupFieldProps['x-decorator-props']>(),\r\n 'x-component': createProp<ISchemaMarkupFieldProps['x-component']>(),\r\n 'x-component-props': createProp<ISchemaMarkupFieldProps['x-component-props']>(),\r\n 'x-reactions': createProp<ISchemaMarkupFieldProps['x-reactions']>(),\r\n 'x-content': createProp<ISchemaMarkupFieldProps['x-content']>(),\r\n 'x-visible': createBooleanProp(),\r\n 'x-hidden': createBooleanProp(),\r\n 'x-disabled': createBooleanProp(),\r\n 'x-editable': createBooleanProp(),\r\n 'x-read-only': createBooleanProp(),\r\n 'x-read-pretty': createBooleanProp(),\r\n} as const satisfies ComponentObjectPropsOptions<ISchemaMarkupFieldProps>\r\n\r\nexport type SchemaFieldProps = ExtractPropTypes<typeof schemaFieldProps>\r\nexport type MarkupSchemaProps = ExtractPropTypes<typeof markupSchemaProps>\r\n"],"names":["schemaFieldProps","createProp","createBooleanProp","markupSchemaProps"],"mappings":";AAQO,MAAMA,IAAmB;AAAA,EAC9B,QAAQC,EAAA;AAAA,EACR,OAAOA,EAAA;AAAA,EACP,YAAYA,EAAA;AAAA,EACZ,MAAMA,EAAA;AAAA,EACN,UAAUA,EAAA;AAAA,EACV,sBAAsBC,EAAA;AAAA,EACtB,gBAAgBA,EAAA;AAAA,EAChB,eAAeD,EAAA;AAAA,EACf,kBAAkBA,EAAA;AACpB,GAEaE,IAAoB;AAAA,EAC/B,SAAWF,EAAA;AAAA,EACX,MAAQA,EAAA;AAAA,EACR,OAASA,EAAA;AAAA,EACT,aAAeA,EAAA;AAAA,EACf,SAAWA,EAAA;AAAA,EACX,UAAYC,EAAA;AAAA,EACZ,WAAaA,EAAA;AAAA,EACb,MAAQD,EAAA;AAAA,EACR,OAASA,EAAA;AAAA,EACT,YAAcA,EAAA;AAAA,EACd,SAAWA,EAAA;AAAA,EACX,kBAAoBA,EAAA;AAAA,EACpB,SAAWA,EAAA;AAAA,EACX,kBAAoBA,EAAA;AAAA,EACpB,WAAaA,EAAA;AAAA,EACb,WAAaA,EAAA;AAAA,EACb,SAAWA,EAAA;AAAA,EACX,UAAYA,EAAA;AAAA,EACZ,UAAYA,EAAA;AAAA,EACZ,aAAeC,EAAA;AAAA,EACf,eAAiBD,EAAA;AAAA,EACjB,eAAiBA,EAAA;AAAA,EACjB,UAAYA,EAAA;AAAA,EACZ,QAAUA,EAAA;AAAA,EACV,YAAcA,EAAA;AAAA,EACd,OAASA,EAAA;AAAA,EACT,iBAAmBA,EAAA;AAAA,EACnB,mBAAqBA,EAAA;AAAA,EACrB,sBAAwBA,EAAA;AAAA,EACxB,WAAWA,EAAA;AAAA,EACX,aAAaA,EAAA;AAAA,EACb,aAAaA,EAAA;AAAA,EACb,eAAeA,EAAA;AAAA,EACf,eAAeA,EAAA;AAAA,EACf,qBAAqBA,EAAA;AAAA,EACrB,eAAeA,EAAA;AAAA,EACf,qBAAqBA,EAAA;AAAA,EACrB,eAAeA,EAAA;AAAA,EACf,aAAaA,EAAA;AAAA,EACb,aAAaC,EAAA;AAAA,EACb,YAAYA,EAAA;AAAA,EACZ,cAAcA,EAAA;AAAA,EACd,cAAcA,EAAA;AAAA,EACd,eAAeA,EAAA;AAAA,EACf,iBAAiBA,EAAA;AACnB;"}
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "@silver-formily/vue",
3
3
  "type": "module",
4
- "version": "2.0.2",
4
+ "version": "2.0.3",
5
5
  "description": "Vue3 版本的 @formily/vue",
6
6
  "author": "hezhengxu",
7
7
  "license": "MIT",
8
- "main": "esm",
9
- "types": "esm/index.d.ts",
8
+ "exports": {
9
+ ".": "./esm/index.mjs",
10
+ "./*": "./esm/*"
11
+ },
12
+ "main": "./esm/index.mjs",
13
+ "types": "./esm/index.d.ts",
10
14
  "files": [
11
15
  "esm"
12
16
  ],