@lytjs/component 4.0.5 → 4.2.0
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.md +288 -0
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/types/define-component.d.ts +49 -37
- package/dist/types/define-component.d.ts.map +1 -1
- package/dist/types/emit.d.ts +13 -0
- package/dist/types/emit.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
# @lytjs/component
|
|
2
|
+
|
|
3
|
+
Lyt.js 组件系统 - 提供 defineComponent、组件生命周期、插槽、内置组件等能力。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @lytjs/component
|
|
9
|
+
|
|
10
|
+
# 或使用 pnpm
|
|
11
|
+
pnpm add @lytjs/component
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 特性
|
|
15
|
+
|
|
16
|
+
- 📦 defineComponent
|
|
17
|
+
- 🔄 完整生命周期钩子
|
|
18
|
+
- 🎯 插槽系统
|
|
19
|
+
- 💾 KeepAlive 缓存
|
|
20
|
+
- ⏳ Suspense 异步
|
|
21
|
+
- 🎭 Teleport 传送门
|
|
22
|
+
|
|
23
|
+
## 快速开始
|
|
24
|
+
|
|
25
|
+
### 定义组件
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
import { defineComponent } from '@lytjs/component';
|
|
29
|
+
|
|
30
|
+
const MyComponent = defineComponent({
|
|
31
|
+
props: {
|
|
32
|
+
msg: {
|
|
33
|
+
type: String,
|
|
34
|
+
default: 'Hello'
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
emits: ['click'],
|
|
38
|
+
setup(props, { emit }) {
|
|
39
|
+
const handleClick = () => {
|
|
40
|
+
emit('click', props.msg);
|
|
41
|
+
};
|
|
42
|
+
return { handleClick };
|
|
43
|
+
},
|
|
44
|
+
template: `
|
|
45
|
+
<div>
|
|
46
|
+
<p>{{ msg }}</p>
|
|
47
|
+
<button @click="handleClick">Click me</button>
|
|
48
|
+
</div>
|
|
49
|
+
`
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 使用插槽
|
|
54
|
+
|
|
55
|
+
```javascript
|
|
56
|
+
import { defineComponent } from '@lytjs/component';
|
|
57
|
+
|
|
58
|
+
const Layout = defineComponent({
|
|
59
|
+
template: `
|
|
60
|
+
<div class="layout">
|
|
61
|
+
<header>
|
|
62
|
+
<slot name="header">默认头部</slot>
|
|
63
|
+
</header>
|
|
64
|
+
<main>
|
|
65
|
+
<slot></slot>
|
|
66
|
+
</main>
|
|
67
|
+
<footer>
|
|
68
|
+
<slot name="footer"></slot>
|
|
69
|
+
</footer>
|
|
70
|
+
</div>
|
|
71
|
+
`
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 作用域插槽
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
import { defineComponent, ref } from '@lytjs/component';
|
|
79
|
+
|
|
80
|
+
const List = defineComponent({
|
|
81
|
+
props: ['items'],
|
|
82
|
+
template: `
|
|
83
|
+
<ul>
|
|
84
|
+
<li each="item in items" :key="item.id">
|
|
85
|
+
<slot name="item" :item="item" :index="index"></slot>
|
|
86
|
+
</li>
|
|
87
|
+
</ul>
|
|
88
|
+
`
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## API 参考
|
|
93
|
+
|
|
94
|
+
### 组件定义
|
|
95
|
+
|
|
96
|
+
| API | 说明 |
|
|
97
|
+
|------|------|
|
|
98
|
+
| `defineComponent(options)` | 定义组件 |
|
|
99
|
+
| `defineAsyncComponent(loader)` | 定义异步组件 |
|
|
100
|
+
| `resolveComponent(name)` | 解析组件 |
|
|
101
|
+
| `resolveDynamicComponent(component)` | 解析动态组件 |
|
|
102
|
+
|
|
103
|
+
### 生命周期
|
|
104
|
+
|
|
105
|
+
| 钩子 | 说明 |
|
|
106
|
+
|------|------|
|
|
107
|
+
| `onBeforeMount` | 组件挂载前 |
|
|
108
|
+
| `onMounted` | 组件挂载后 |
|
|
109
|
+
| `onBeforeUpdate` | 组件更新前 |
|
|
110
|
+
| `onUpdated` | 组件更新后 |
|
|
111
|
+
| `onBeforeUnmount` | 组件卸载前 |
|
|
112
|
+
| `onUnmounted` | 组件卸载后 |
|
|
113
|
+
| `onActivated` | KeepAlive 激活时 |
|
|
114
|
+
| `onDeactivated` | KeepAlive 失活时 |
|
|
115
|
+
| `onErrorCaptured` | 捕获后代错误时 |
|
|
116
|
+
|
|
117
|
+
### 内置组件
|
|
118
|
+
|
|
119
|
+
| 组件 | 说明 |
|
|
120
|
+
|------|------|
|
|
121
|
+
| `KeepAlive` | 缓存组件实例 |
|
|
122
|
+
| `Teleport` | 传送门 |
|
|
123
|
+
| `Transition` | 过渡动画 |
|
|
124
|
+
| `TransitionGroup` | 列表过渡 |
|
|
125
|
+
| `Suspense` | 异步依赖 |
|
|
126
|
+
|
|
127
|
+
## 内置组件使用
|
|
128
|
+
|
|
129
|
+
### KeepAlive
|
|
130
|
+
|
|
131
|
+
```javascript
|
|
132
|
+
import { defineComponent, KeepAlive } from '@lytjs/component';
|
|
133
|
+
|
|
134
|
+
const App = defineComponent({
|
|
135
|
+
template: `
|
|
136
|
+
<KeepAlive :include="['Home,About">
|
|
137
|
+
<component :is="currentComponent"></component>
|
|
138
|
+
</KeepAlive>
|
|
139
|
+
`
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Teleport
|
|
144
|
+
|
|
145
|
+
```javascript
|
|
146
|
+
import { defineComponent, Teleport } from '@lytjs/component';
|
|
147
|
+
|
|
148
|
+
const Modal = defineComponent({
|
|
149
|
+
props: ['show'],
|
|
150
|
+
template: `
|
|
151
|
+
<Teleport to="body">
|
|
152
|
+
<div v-if="show" class="modal">
|
|
153
|
+
<slot></slot>
|
|
154
|
+
</div>
|
|
155
|
+
</Teleport>
|
|
156
|
+
`
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Transition
|
|
161
|
+
|
|
162
|
+
```javascript
|
|
163
|
+
import { defineComponent, Transition } from '@lytjs/component';
|
|
164
|
+
|
|
165
|
+
const App = defineComponent({
|
|
166
|
+
template: `
|
|
167
|
+
<Transition name="fade" mode="out-in">
|
|
168
|
+
<div v-if="show">Hello</div>
|
|
169
|
+
</Transition>
|
|
170
|
+
`
|
|
171
|
+
});
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Suspense
|
|
175
|
+
|
|
176
|
+
```javascript
|
|
177
|
+
import { defineComponent, Suspense, defineAsyncComponent } from '@lytjs/component';
|
|
178
|
+
|
|
179
|
+
const AsyncComponent = defineAsyncComponent(() =>
|
|
180
|
+
import('./HeavyComponent.vue')
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
const App = defineComponent({
|
|
184
|
+
template: `
|
|
185
|
+
<Suspense>
|
|
186
|
+
<template #default>
|
|
187
|
+
<AsyncComponent />
|
|
188
|
+
</template>
|
|
189
|
+
<template #fallback>
|
|
190
|
+
<div>Loading...</div>
|
|
191
|
+
</template>
|
|
192
|
+
</Suspense>
|
|
193
|
+
`
|
|
194
|
+
});
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## 示例
|
|
198
|
+
|
|
199
|
+
### 完整组件示例
|
|
200
|
+
|
|
201
|
+
```javascript
|
|
202
|
+
import { defineComponent, ref, computed } from '@lytjs/component';
|
|
203
|
+
|
|
204
|
+
const Counter = defineComponent({
|
|
205
|
+
props: {
|
|
206
|
+
initial: {
|
|
207
|
+
type: Number,
|
|
208
|
+
default: 0
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
emits: ['update:count'],
|
|
212
|
+
setup(props, { emit }) {
|
|
213
|
+
const count = ref(props.initial);
|
|
214
|
+
|
|
215
|
+
const doubled = computed(() => count.value * 2);
|
|
216
|
+
|
|
217
|
+
function increment() {
|
|
218
|
+
count.value++;
|
|
219
|
+
emit('update:count', count.value);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return { count, doubled, increment };
|
|
223
|
+
},
|
|
224
|
+
template: `
|
|
225
|
+
<div class="counter">
|
|
226
|
+
<p>Count: {{ count }}</p>
|
|
227
|
+
<p>Doubled: {{ doubled }}</p>
|
|
228
|
+
<button @click="increment">+1</button>
|
|
229
|
+
</div>
|
|
230
|
+
`
|
|
231
|
+
});
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### 使用插槽示例
|
|
235
|
+
|
|
236
|
+
```javascript
|
|
237
|
+
import { defineComponent } from '@lytjs/component';
|
|
238
|
+
|
|
239
|
+
const Card = defineComponent({
|
|
240
|
+
template: `
|
|
241
|
+
<div class="card">
|
|
242
|
+
<div class="card-header">
|
|
243
|
+
<slot name="header"></slot>
|
|
244
|
+
</div>
|
|
245
|
+
<div class="card-body">
|
|
246
|
+
<slot></slot>
|
|
247
|
+
</div>
|
|
248
|
+
<div class="card-footer">
|
|
249
|
+
<slot name="footer"></slot>
|
|
250
|
+
</div>
|
|
251
|
+
</div>
|
|
252
|
+
`
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
// 使用
|
|
256
|
+
const App = defineComponent({
|
|
257
|
+
components: { Card },
|
|
258
|
+
template: `
|
|
259
|
+
<Card>
|
|
260
|
+
<template #header>
|
|
261
|
+
<h2>标题</h2>
|
|
262
|
+
</template>
|
|
263
|
+
<p>内容</p>
|
|
264
|
+
<template #footer>
|
|
265
|
+
<button>确定</button>
|
|
266
|
+
</template>
|
|
267
|
+
</Card>
|
|
268
|
+
`
|
|
269
|
+
});
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## 性能
|
|
273
|
+
|
|
274
|
+
- 体积:3.55 KB (ESM gzip)
|
|
275
|
+
- 零运行时依赖
|
|
276
|
+
- 高效的组件实例管理
|
|
277
|
+
|
|
278
|
+
## 兼容性
|
|
279
|
+
|
|
280
|
+
- Node.js >= 18.0.0
|
|
281
|
+
- Chrome 64+
|
|
282
|
+
- Firefox 63+
|
|
283
|
+
- Safari 12+
|
|
284
|
+
- Edge 79+
|
|
285
|
+
|
|
286
|
+
## License
|
|
287
|
+
|
|
288
|
+
MIT
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var j=Object.defineProperty;var be=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames;var ke=Object.prototype.hasOwnProperty;var Oe=(e,t)=>{for(var n in t)j(e,n,{get:t[n],enumerable:!0})},Pe=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of xe(t))!ke.call(e,r)&&r!==n&&j(e,r,{get:()=>t[r],enumerable:!(o=be(t,r))||o.enumerable});return e};var Ce=e=>Pe(j({},"__esModule",{value:!0}),e);var Fe={};Oe(Fe,{LifecycleHook:()=>w,callLifecycleHook:()=>m,camelizeToHyphen:()=>C,compositionOnBeforeMount:()=>pe,compositionOnBeforeUnmount:()=>ae,compositionOnMounted:()=>ie,compositionOnUnmounted:()=>se,compositionOnUpdated:()=>le,createComponentInstance:()=>de,createLifecycleHook:()=>g,createSignalState:()=>N,createSignalStateProxy:()=>U,currentInstance:()=>h,defineComponent:()=>ye,disposeSignalState:()=>G,emit:()=>L,getCurrentInstance:()=>fe,getPropDefaultValue:()=>A,getSignalStateSnapshot:()=>Z,hasSlot:()=>re,hyphenToCamel:()=>J,initProps:()=>P,initSlots:()=>F,inject:()=>ce,mountComponent:()=>ge,normalizeEmits:()=>H,normalizePropsOptions:()=>T,normalizeSlotValue:()=>k,onBeforeUnmount:()=>te,onBeforeUpdate:()=>Y,onInit:()=>Q,onMounted:()=>X,onUnmounted:()=>ne,onUpdated:()=>ee,patchSignalState:()=>R,provide:()=>ue,renderSlot:()=>oe,runSetup:()=>v,setCurrentInstance:()=>E,setupComponent:()=>me,setupFunctionComponent:()=>K,setupStatefulComponent:()=>V,unmountComponent:()=>W,updateComponent:()=>Se,validateProp:()=>_});module.exports=Ce(Fe);var S=require("@lytjs/reactivity"),M=require("@lytjs/reactivity/signal");var q=require("@lytjs/reactivity/signal");function N(e){let t={},n=Object.keys(e);for(let o=0;o<n.length;o++){let r=n[o];t[r]=(0,q.signal)(e[r])}return t}function b(e){return typeof e=="function"&&e!==null&&"set"in e}function U(e){return new Proxy(e,{get(t,n){if(typeof n=="symbol")return t[n];let o=t[n];return b(o)?o():t[n]},set(t,n,o){if(typeof n=="symbol")return t[n]=o,!0;let r=t[n];return b(r)?r.set(o):t[n]=o,!0},has(t,n){return n in t},ownKeys(t){return Object.keys(t)},getOwnPropertyDescriptor(t,n){if(typeof n=="string"&&n in t)return{configurable:!0,enumerable:!0,get:()=>{let o=t[n];return b(o)?o():o},set:o=>{let r=t[n];b(r)?r.set(o):t[n]=o}}}})}function Z(e){let t={},n=Object.keys(e);for(let o=0;o<n.length;o++){let r=n[o],l=e[r];t[r]=b(l)?l():l}return t}function R(e,t){let n=Object.keys(t);for(let o=0;o<n.length;o++){let r=n[o],l=e[r];b(l)&&l.set(t[r])}}function G(e){}function he(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function D(e){return typeof e=="function"}function Ee(e){return typeof e=="string"}function Ie(e){return typeof e=="boolean"}function Ne(e){return typeof e=="number"&&!isNaN(e)}function x(e){return Array.isArray(e)}function Ue(e){return e!==null&&typeof e=="object"}function Re(e){return e===String?"String":e===Number?"Number":e===Boolean?"Boolean":e===Array?"Array":e===Object?"Object":e===Function?"Function":"unknown"}function T(e){if(!e)return{options:{},keys:[]};if(x(e)){let r={},l=[];for(let i=0;i<e.length;i++){let s=e[i];r[s]={type:null},l.push(s)}return{options:r,keys:l}}let t={},n=[],o=Object.keys(e);for(let r=0;r<o.length;r++){let l=o[r],i=e[l];i==null?t[l]={type:null}:i===String||i===Number||i===Boolean||i===Array||i===Object||i===Function?t[l]={type:i}:he(i)?t[l]={...i}:x(i)?t[l]={type:i}:t[l]={type:null},n.push(l)}return{options:t,keys:n}}function _(e,t,n){let{type:o,required:r,validator:l}=t;if(n==null)return!r;if(o!=null){let i=x(o)?o:[o],s=!1;for(let p=0;p<i.length;p++){let a=i[p],u=!1;if(a===String?u=Ee(n):a===Number?u=Ne(n):a===Boolean?u=Ie(n):a===Function?u=D(n):a===Array?u=x(n):a===Object&&(u=Ue(n)),u){s=!0;break}}if(!s){let p=i.map(Re).join(" | ");return!1}}if(l&&D(l))try{if(!l(n))return!1}catch(i){return!1}return!0}function A(e,t){let{default:n}=e;if(n!==void 0){if(D(n)){let o=e.type;if(!(o===Function||x(o)&&o.indexOf(Function)!==-1))return n()}return n}}function P(e,t){let{options:n,keys:o}=e.propsOptions,r={};for(let l=0;l<o.length;l++){let i=o[l],s=n[i],p=t?t[i]:void 0;p===void 0&&(p=A(s,i)),s.type!==null&&s.type!==void 0&&(x(s.type)?s.type:[s.type]).indexOf(Boolean)!==-1&&p===void 0&&(p=!1),_(i,s,p),r[i]=p}return e.props=r,r}function C(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function J(e){return e.replace(/-(\w)/g,(t,n)=>n.toUpperCase())}function $(e){return typeof e=="function"}function Te(e){return Array.isArray(e)}function H(e){if(!e)return{keys:[],validators:{}};let t=[],n={};if(Te(e)){for(let r=0;r<e.length;r++){let l=C(e[r]);t.push(l),n[l]=null}return{keys:t,validators:n}}let o=Object.keys(e);for(let r=0;r<o.length;r++){let l=o[r],i=C(l),s=e[l];t.push(i),$(s)?n[i]=s:n[i]=null}return{keys:t,validators:n}}function L(e,t,...n){let o=C(t),r=e.emitsOptions;if(r&&r.keys.length>0){let a=r.keys.indexOf(o)!==-1,u=r.validators[o];if($(u))try{if(!u(...n))return!1}catch(y){return!1}}let l="on"+o.charAt(0).toUpperCase()+o.slice(1),i=l.replace(/-([a-z])/g,(a,u)=>u.toUpperCase()),s=e.props||{},p=s[i]||s[l];return $(p)?(p(...n),!0):!1}var w=(i=>(i.INIT="init",i.MOUNTED="mounted",i.BEFORE_UPDATE="beforeUpdate",i.UPDATED="updated",i.BEFORE_UNMOUNT="beforeUnmount",i.UNMOUNTED="unmounted",i))(w||{}),h=null;function He(e){return typeof e=="function"}function E(e){let t=h;return h=e,t}function g(e){return function(n,o){if(!He(n))return;let r=o||h;r&&(r[e]||(r[e]=[]),r[e].push(n))}}function m(e,t,...n){let o=e[t];if(!(!o||o.length===0))for(let r=0;r<o.length;r++)try{o[r](...n)}catch(l){}}var Q=g("init"),X=g("mounted"),Y=g("beforeUpdate"),ee=g("updated"),te=g("beforeUnmount"),ne=g("unmounted");function z(e){return typeof e=="function"}function Le(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function k(e){return e==null?null:z(e)?e:Array.isArray(e)?e.length>0?e:null:e}function F(e,t){let n={};if(t==null)return e.slots=n,n;if(z(t)||Array.isArray(t))return n.default=k(t),e.slots=n,n;if(Le(t)){let o=Object.keys(t);for(let r=0;r<o.length;r++){let l=o[r],i=t[l];i!==void 0&&(n[l]=k(i))}return e.slots=n,n}return n.default=k(t),e.slots=n,n}function oe(e,t="default",n){let o=e[t];return o==null?null:z(o)?o(n):o}function re(e,t="default"){let n=e[t];return n!=null}var c=null;function ie(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.mounted||(t.mounted=[])).push(e)}}function se(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.unmounted||(t.unmounted=[])).push(e)}}function le(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.updated||(t.updated=[])).push(e)}}function pe(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.beforeMount||(t.beforeMount=[])).push(e)}}function ae(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.beforeUnmount||(t.beforeUnmount=[])).push(e)}}var B=new WeakMap;function ue(e,t){if(c){let n=B.get(c);n||(n=new Map,B.set(c,n)),n.set(e,t)}}function ce(e,t){if(c){let n=c;for(;n;){let o=B.get(n);if(o&&o.has(e))return o.get(e);n=n._parent}}return t}function v(e,t,n,o){c=t;try{return e(n,o)}finally{c=null}}function fe(){return c}var f=require("@lytjs/common");function ye(e){return{name:e.name,options:e,_isComponentDefine:!0}}function de(e){let t=e.options,n=T(t.props),o=H(t.emits),r={_isComponent:!0,type:t,name:e.name||t.name,propsOptions:n,emitsOptions:o,props:{},state:{},setupState:{},computedRefs:{},subTree:null,isMounted:!1,isUnmounted:!1,slots:{},watchStopHandles:[],renderProxy:null,emit:null};return r.emit=(l,...i)=>L(r,l,...i),r.renderProxy=we(r),r}function we(e){return{get $name(){return e.name},get $props(){return e.props},get $state(){return e.state},get $slots(){return e.slots},get $isMounted(){return e.isMounted},$emit:e.emit,$forceUpdate(){e.update&&e.update()},$unmount(){W(e)},$setState(n){e._signalState?R(e._signalState,n):(0,f.mergeObjects)(e.state,n),e.update&&e.update()}}}function me(e,t,n){P(e,t||null),F(e,n||null);let o=e.type;(0,f.isFunction)(o)&&!o._isComponentDefine?K(e):V(e)}function V(e){let{type:t}=e,n=t.reactivityMode==="signal",o=E(e);try{if((0,f.isFunction)(t.setup)){let i={attrs:e.props,slots:e.slots,emit:e.emit},s=v(t.setup,e,e.props,i);if((0,f.isFunction)(s))t.render=s;else if((0,f.isPlainObject)(s)){e.setupState={...s};let p=Object.keys(s);for(let a=0;a<p.length;a++)Object.defineProperty(e.renderProxy,p[a],{get(){return e.setupState[p[a]]},set(u){e.setupState[p[a]]=u},enumerable:!0})}}if((0,f.isFunction)(t.state)){let i=t.state();if((0,f.isPlainObject)(i))if(n){let s=N(i);e._signalState=s,e.state=U(s)}else e.state=(0,S.shallowReactive)({...i})}if(t.computed){let i=Object.keys(t.computed);for(let s=0;s<i.length;s++){let p=i[s],a=t.computed[p],u=typeof a=="function"?()=>a.call(e.renderProxy):()=>a.get.call(e.renderProxy),y=typeof a=="function"?void 0:O=>a.set.call(e.renderProxy,O),d;n?d=(0,M.computed)(u):y?d=(0,S.computed)({get:u,set:y}):d=(0,S.computed)(u),e.computedRefs[p]=d}}let r=t.methods;if((0,f.isPlainObject)(r)){let i=Object.keys(r);for(let s=0;s<i.length;s++){let p=i[s],a=r[p];(0,f.isFunction)(a)&&(e.renderProxy[p]=a.bind(e.renderProxy))}}if((0,f.isFunction)(t.init)){let i=t.init.call(e.renderProxy,e.props,e.state);if((0,f.isPlainObject)(i)){e.setupState={...e.setupState,...i};let s=Object.keys(i);for(let p=0;p<s.length;p++)Object.defineProperty(e.renderProxy,s[p],{get(){return e.setupState[s[p]]},set(a){e.setupState[s[p]]=a},enumerable:!0})}}let l=Object.keys(e.state);for(let i=0;i<l.length;i++){let s=l[i];Object.defineProperty(e.renderProxy,s,{get(){return e.state[s]},set(p){e.state[s]=p},enumerable:!0})}if(t.computed){let i=Object.keys(t.computed);for(let s=0;s<i.length;s++){let p=i[s],a=e.computedRefs[p];n?Object.defineProperty(e.renderProxy,p,{get(){return a()},enumerable:!0}):Object.defineProperty(e.renderProxy,p,{get(){return a.value},set(u){a.value=u},enumerable:!0})}}if(t.watch){let i=Object.keys(t.watch);for(let s=0;s<i.length;s++){let p=i[s],a=t.watch[p],u=()=>{let y=e.state[p];if(y!==void 0)return y;let d=e.props[p];return d!==void 0?d:e.renderProxy[p]};if(n){let y=(0,M.effect)(d=>{let O=u();a.handler.call(e.renderProxy,O,void 0)});e.watchStopHandles.push(y)}else{let y=(0,S.watch)(u,(d,O)=>{a.handler.call(e.renderProxy,d,O)},{immediate:!!a.immediate,deep:!!a.deep});e.watchStopHandles.push(y)}}}m(e,"init")}finally{E(o)}}function K(e){let t=e.type,n={slots:e.slots,emit:e.emit},o=t(e.props,n);e.subTree=o}function I(e,t){let n=e._lifecycleHooks;if(!n||!n[t])return;let o=n[t];for(let r=0;r<o.length;r++)try{o[r]()}catch(l){}}function ge(e,t){if(e.isMounted)return;I(e,"beforeMount");let{type:n}=e;(0,f.isFunction)(n.render)&&t&&(e.subTree=n.render.call(e.renderProxy,t,e)),e.isMounted=!0,m(e,"mounted"),I(e,"mounted")}function Se(e,t,n){if(e.isUnmounted)return;n&&P(e,n),m(e,"beforeUpdate");let{type:o}=e;(0,f.isFunction)(o.render)&&t&&(e.subTree=o.render.call(e.renderProxy,t,e)),m(e,"updated"),I(e,"updated")}function W(e){if(e.isUnmounted)return;m(e,"beforeUnmount"),I(e,"beforeUnmount"),e.isUnmounted=!0,e.isMounted=!1,e.subTree=null;for(let n of e.watchStopHandles)n();e.watchStopHandles=[],m(e,"unmounted"),I(e,"unmounted");let t=["init","mounted","beforeUpdate","updated","beforeUnmount","unmounted"];for(let n=0;n<t.length;n++)e[t[n]]=void 0;e._lifecycleHooks=void 0}
|
|
1
|
+
var j=Object.defineProperty;var ke=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Pe=Object.prototype.hasOwnProperty;var Ce=(e,t)=>{for(var n in t)j(e,n,{get:t[n],enumerable:!0})},he=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Oe(t))!Pe.call(e,r)&&r!==n&&j(e,r,{get:()=>t[r],enumerable:!(o=ke(t,r))||o.enumerable});return e};var Ee=e=>he(j({},"__esModule",{value:!0}),e);var Me={};Ce(Me,{LifecycleHook:()=>v,callLifecycleHook:()=>m,camelizeToHyphen:()=>C,compositionOnBeforeMount:()=>pe,compositionOnBeforeUnmount:()=>ue,compositionOnMounted:()=>se,compositionOnUnmounted:()=>le,compositionOnUpdated:()=>ae,createComponentInstance:()=>ge,createLifecycleHook:()=>g,createSignalState:()=>N,createSignalStateProxy:()=>U,currentInstance:()=>h,defineComponent:()=>de,defineEmits:()=>J,defineFunctionalComponent:()=>me,disposeSignalState:()=>G,emit:()=>L,getCurrentInstance:()=>ye,getPropDefaultValue:()=>_,getSignalStateSnapshot:()=>Z,hasSlot:()=>ie,hyphenToCamel:()=>Q,initProps:()=>P,initSlots:()=>F,inject:()=>fe,mountComponent:()=>xe,normalizeEmits:()=>H,normalizePropsOptions:()=>T,normalizeSlotValue:()=>k,onBeforeUnmount:()=>ne,onBeforeUpdate:()=>ee,onInit:()=>X,onMounted:()=>Y,onUnmounted:()=>oe,onUpdated:()=>te,patchSignalState:()=>R,provide:()=>ce,renderSlot:()=>re,runSetup:()=>w,setCurrentInstance:()=>E,setupComponent:()=>Se,setupFunctionComponent:()=>K,setupStatefulComponent:()=>V,unmountComponent:()=>W,updateComponent:()=>be,validateProp:()=>A});module.exports=Ee(Me);var S=require("@lytjs/reactivity"),M=require("@lytjs/reactivity/signal");var q=require("@lytjs/reactivity/signal");function N(e){let t={},n=Object.keys(e);for(let o=0;o<n.length;o++){let r=n[o];t[r]=(0,q.signal)(e[r])}return t}function x(e){return typeof e=="function"&&e!==null&&"set"in e}function U(e){return new Proxy(e,{get(t,n){if(typeof n=="symbol")return t[n];let o=t[n];return x(o)?o():t[n]},set(t,n,o){if(typeof n=="symbol")return t[n]=o,!0;let r=t[n];return x(r)?r.set(o):t[n]=o,!0},has(t,n){return n in t},ownKeys(t){return Object.keys(t)},getOwnPropertyDescriptor(t,n){if(typeof n=="string"&&n in t)return{configurable:!0,enumerable:!0,get:()=>{let o=t[n];return x(o)?o():o},set:o=>{let r=t[n];x(r)?r.set(o):t[n]=o}}}})}function Z(e){let t={},n=Object.keys(e);for(let o=0;o<n.length;o++){let r=n[o],l=e[r];t[r]=x(l)?l():l}return t}function R(e,t){let n=Object.keys(t);for(let o=0;o<n.length;o++){let r=n[o],l=e[r];x(l)&&l.set(t[r])}}function G(e){}function Ie(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function D(e){return typeof e=="function"}function Ne(e){return typeof e=="string"}function Ue(e){return typeof e=="boolean"}function Re(e){return typeof e=="number"&&!isNaN(e)}function b(e){return Array.isArray(e)}function Te(e){return e!==null&&typeof e=="object"}function He(e){return e===String?"String":e===Number?"Number":e===Boolean?"Boolean":e===Array?"Array":e===Object?"Object":e===Function?"Function":"unknown"}function T(e){if(!e)return{options:{},keys:[]};if(b(e)){let r={},l=[];for(let i=0;i<e.length;i++){let s=e[i];r[s]={type:null},l.push(s)}return{options:r,keys:l}}let t={},n=[],o=Object.keys(e);for(let r=0;r<o.length;r++){let l=o[r],i=e[l];i==null?t[l]={type:null}:i===String||i===Number||i===Boolean||i===Array||i===Object||i===Function?t[l]={type:i}:Ie(i)?t[l]={...i}:b(i)?t[l]={type:i}:t[l]={type:null},n.push(l)}return{options:t,keys:n}}function A(e,t,n){let{type:o,required:r,validator:l}=t;if(n==null)return!r;if(o!=null){let i=b(o)?o:[o],s=!1;for(let a=0;a<i.length;a++){let p=i[a],u=!1;if(p===String?u=Ne(n):p===Number?u=Re(n):p===Boolean?u=Ue(n):p===Function?u=D(n):p===Array?u=b(n):p===Object&&(u=Te(n)),u){s=!0;break}}if(!s){let a=i.map(He).join(" | ");return!1}}if(l&&D(l))try{if(!l(n))return!1}catch(i){return!1}return!0}function _(e,t){let{default:n}=e;if(n!==void 0){if(D(n)){let o=e.type;if(!(o===Function||b(o)&&o.indexOf(Function)!==-1))return n()}return n}}function P(e,t){let{options:n,keys:o}=e.propsOptions,r={};for(let l=0;l<o.length;l++){let i=o[l],s=n[i],a=t?t[i]:void 0;a===void 0&&(a=_(s,i)),s.type!==null&&s.type!==void 0&&(b(s.type)?s.type:[s.type]).indexOf(Boolean)!==-1&&a===void 0&&(a=!1),A(i,s,a),r[i]=a}return e.props=r,r}function J(e){return e}function C(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function Q(e){return e.replace(/-(\w)/g,(t,n)=>n.toUpperCase())}function $(e){return typeof e=="function"}function Le(e){return Array.isArray(e)}function H(e){if(!e)return{keys:[],validators:{}};let t=[],n={};if(Le(e)){for(let r=0;r<e.length;r++){let l=C(e[r]);t.push(l),n[l]=null}return{keys:t,validators:n}}let o=Object.keys(e);for(let r=0;r<o.length;r++){let l=o[r],i=C(l),s=e[l];t.push(i),$(s)?n[i]=s:n[i]=null}return{keys:t,validators:n}}function L(e,t,...n){let o=C(t),r=e.emitsOptions;if(r&&r.keys.length>0){let p=r.keys.indexOf(o)!==-1,u=r.validators[o];if($(u))try{if(!u(...n))return!1}catch(y){return!1}}let l="on"+o.charAt(0).toUpperCase()+o.slice(1),i=l.replace(/-([a-z])/g,(p,u)=>u.toUpperCase()),s=e.props||{},a=s[i]||s[l];return $(a)?(a(...n),!0):!1}var v=(i=>(i.INIT="init",i.MOUNTED="mounted",i.BEFORE_UPDATE="beforeUpdate",i.UPDATED="updated",i.BEFORE_UNMOUNT="beforeUnmount",i.UNMOUNTED="unmounted",i))(v||{}),h=null;function ve(e){return typeof e=="function"}function E(e){let t=h;return h=e,t}function g(e){return function(n,o){if(!ve(n))return;let r=o||h;r&&(r[e]||(r[e]=[]),r[e].push(n))}}function m(e,t,...n){let o=e[t];if(!(!o||o.length===0))for(let r=0;r<o.length;r++)try{o[r](...n)}catch(l){}}var X=g("init"),Y=g("mounted"),ee=g("beforeUpdate"),te=g("updated"),ne=g("beforeUnmount"),oe=g("unmounted");function z(e){return typeof e=="function"}function Fe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function k(e){return e==null?null:z(e)?e:Array.isArray(e)?e.length>0?e:null:e}function F(e,t){let n={};if(t==null)return e.slots=n,n;if(z(t)||Array.isArray(t))return n.default=k(t),e.slots=n,n;if(Fe(t)){let o=Object.keys(t);for(let r=0;r<o.length;r++){let l=o[r],i=t[l];i!==void 0&&(n[l]=k(i))}return e.slots=n,n}return n.default=k(t),e.slots=n,n}function re(e,t="default",n){let o=e[t];return o==null?null:z(o)?o(n):o}function ie(e,t="default"){let n=e[t];return n!=null}var c=null;function se(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.mounted||(t.mounted=[])).push(e)}}function le(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.unmounted||(t.unmounted=[])).push(e)}}function ae(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.updated||(t.updated=[])).push(e)}}function pe(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.beforeMount||(t.beforeMount=[])).push(e)}}function ue(e){if(c){let t=c._lifecycleHooks||(c._lifecycleHooks={});(t.beforeUnmount||(t.beforeUnmount=[])).push(e)}}var B=new WeakMap;function ce(e,t){if(c){let n=B.get(c);n||(n=new Map,B.set(c,n)),n.set(e,t)}}function fe(e,t){if(c){let n=c;for(;n;){let o=B.get(n);if(o&&o.has(e))return o.get(e);n=n._parent}}return t}function w(e,t,n,o){c=t;try{return e(n,o)}finally{c=null}}function ye(){return c}var f=require("@lytjs/common");function de(e){return{name:e.name,options:e,_isComponentDefine:!0}}function me(e){return{options:e,_isComponentDefine:!0}}function ge(e){let t=e.options,n=T(t.props),o=H(t.emits),r={_isComponent:!0,type:t,name:e.name||t.name,propsOptions:n,emitsOptions:o,props:{},state:{},setupState:{},computedRefs:{},subTree:null,isMounted:!1,isUnmounted:!1,slots:{},watchStopHandles:[],renderProxy:null,emit:null};return r.emit=(l,...i)=>L(r,l,...i),r.renderProxy=we(r),r}function we(e){return{get $name(){return e.name},get $props(){return e.props},get $state(){return e.state},get $slots(){return e.slots},get $isMounted(){return e.isMounted},$emit:e.emit,$forceUpdate(){e.update&&e.update()},$unmount(){W(e)},$setState(n){e._signalState?R(e._signalState,n):(0,f.mergeObjects)(e.state,n),e.update&&e.update()}}}function Se(e,t,n){P(e,t||null),F(e,n||null);let o=e.type;(0,f.isFunction)(o)&&!o._isComponentDefine?K(e):V(e)}function V(e){let{type:t}=e,n=t.reactivityMode==="signal",o=E(e);try{if((0,f.isFunction)(t.setup)){let i={attrs:e.props,slots:e.slots,emit:e.emit},s=w(t.setup,e,e.props,i);if((0,f.isFunction)(s))t.render=s;else if((0,f.isPlainObject)(s)){e.setupState={...s};let a=Object.keys(s);for(let p=0;p<a.length;p++)Object.defineProperty(e.renderProxy,a[p],{get(){return e.setupState[a[p]]},set(u){e.setupState[a[p]]=u},enumerable:!0})}}if((0,f.isFunction)(t.state)){let i=t.state();if((0,f.isPlainObject)(i))if(n){let s=N(i);e._signalState=s,e.state=U(s)}else e.state=(0,S.shallowReactive)({...i})}if(t.computed){let i=Object.keys(t.computed);for(let s=0;s<i.length;s++){let a=i[s],p=t.computed[a],u=typeof p=="function"?()=>p.call(e.renderProxy):()=>p.get.call(e.renderProxy),y=typeof p=="function"?void 0:O=>p.set.call(e.renderProxy,O),d;n?d=(0,M.computed)(u):y?d=(0,S.computed)({get:u,set:y}):d=(0,S.computed)(u),e.computedRefs[a]=d}}let r=t.methods;if((0,f.isPlainObject)(r)){let i=Object.keys(r);for(let s=0;s<i.length;s++){let a=i[s],p=r[a];(0,f.isFunction)(p)&&(e.renderProxy[a]=p.bind(e.renderProxy))}}if((0,f.isFunction)(t.init)){let i=t.init.call(e.renderProxy,e.props,e.state);if((0,f.isPlainObject)(i)){e.setupState={...e.setupState,...i};let s=Object.keys(i);for(let a=0;a<s.length;a++)Object.defineProperty(e.renderProxy,s[a],{get(){return e.setupState[s[a]]},set(p){e.setupState[s[a]]=p},enumerable:!0})}}let l=Object.keys(e.state);for(let i=0;i<l.length;i++){let s=l[i];Object.defineProperty(e.renderProxy,s,{get(){return e.state[s]},set(a){e.state[s]=a},enumerable:!0})}if(t.computed){let i=Object.keys(t.computed);for(let s=0;s<i.length;s++){let a=i[s],p=e.computedRefs[a];n?Object.defineProperty(e.renderProxy,a,{get(){return p()},enumerable:!0}):Object.defineProperty(e.renderProxy,a,{get(){return p.value},set(u){p.value=u},enumerable:!0})}}if(t.watch){let i=Object.keys(t.watch);for(let s=0;s<i.length;s++){let a=i[s],p=t.watch[a],u=()=>{let y=e.state[a];if(y!==void 0)return y;let d=e.props[a];return d!==void 0?d:e.renderProxy[a]};if(n){let y=(0,M.effect)(d=>{let O=u();p.handler.call(e.renderProxy,O,void 0)});e.watchStopHandles.push(y)}else{let y=(0,S.watch)(u,(d,O)=>{p.handler.call(e.renderProxy,d,O)},{immediate:!!p.immediate,deep:!!p.deep});e.watchStopHandles.push(y)}}}m(e,"init")}finally{E(o)}}function K(e){let t=e.type,n={slots:e.slots,emit:e.emit},o=t(e.props,n);e.subTree=o}function I(e,t){let n=e._lifecycleHooks;if(!n||!n[t])return;let o=n[t];for(let r=0;r<o.length;r++)try{o[r]()}catch(l){}}function xe(e,t){if(e.isMounted)return;I(e,"beforeMount");let{type:n}=e;(0,f.isFunction)(n.render)&&t&&(e.subTree=n.render.call(e.renderProxy,t,e)),e.isMounted=!0,m(e,"mounted"),I(e,"mounted")}function be(e,t,n){if(e.isUnmounted)return;n&&P(e,n),m(e,"beforeUpdate");let{type:o}=e;(0,f.isFunction)(o.render)&&t&&(e.subTree=o.render.call(e.renderProxy,t,e)),m(e,"updated"),I(e,"updated")}function W(e){if(e.isUnmounted)return;m(e,"beforeUnmount"),I(e,"beforeUnmount"),e.isUnmounted=!0,e.isMounted=!1,e.subTree=null;for(let n of e.watchStopHandles)n();e.watchStopHandles=[],m(e,"unmounted"),I(e,"unmounted");let t=["init","mounted","beforeUpdate","updated","beforeUnmount","unmounted"];for(let n=0;n<t.length;n++)e[t[n]]=void 0;e._lifecycleHooks=void 0}
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{shallowReactive as Oe,computed as z,watch as Pe}from"@lytjs/reactivity";import{computed as Ce,effect as he}from"@lytjs/reactivity/signal";import{signal as W}from"@lytjs/reactivity/signal";function N(e){let n={},t=Object.keys(e);for(let o=0;o<t.length;o++){let i=t[o];n[i]=W(e[i])}return n}function S(e){return typeof e=="function"&&e!==null&&"set"in e}function U(e){return new Proxy(e,{get(n,t){if(typeof t=="symbol")return n[t];let o=n[t];return S(o)?o():n[t]},set(n,t,o){if(typeof t=="symbol")return n[t]=o,!0;let i=n[t];return S(i)?i.set(o):n[t]=o,!0},has(n,t){return t in n},ownKeys(n){return Object.keys(n)},getOwnPropertyDescriptor(n,t){if(typeof t=="string"&&t in n)return{configurable:!0,enumerable:!0,get:()=>{let o=n[t];return S(o)?o():o},set:o=>{let i=n[t];S(i)?i.set(o):n[t]=o}}}})}function q(e){let n={},t=Object.keys(e);for(let o=0;o<t.length;o++){let i=t[o],l=e[i];n[i]=S(l)?l():l}return n}function R(e,n){let t=Object.keys(n);for(let o=0;o<t.length;o++){let i=t[o],l=e[i];S(l)&&l.set(n[i])}}function Z(e){}function G(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function T(e){return typeof e=="function"}function J(e){return typeof e=="string"}function Q(e){return typeof e=="boolean"}function X(e){return typeof e=="number"&&!isNaN(e)}function b(e){return Array.isArray(e)}function Y(e){return e!==null&&typeof e=="object"}function ee(e){return e===String?"String":e===Number?"Number":e===Boolean?"Boolean":e===Array?"Array":e===Object?"Object":e===Function?"Function":"unknown"}function H(e){if(!e)return{options:{},keys:[]};if(b(e)){let i={},l=[];for(let r=0;r<e.length;r++){let s=e[r];i[s]={type:null},l.push(s)}return{options:i,keys:l}}let n={},t=[],o=Object.keys(e);for(let i=0;i<o.length;i++){let l=o[i],r=e[l];r==null?n[l]={type:null}:r===String||r===Number||r===Boolean||r===Array||r===Object||r===Function?n[l]={type:r}:G(r)?n[l]={...r}:b(r)?n[l]={type:r}:n[l]={type:null},t.push(l)}return{options:n,keys:t}}function A(e,n,t){let{type:o,required:i,validator:l}=n;if(t==null)return!i;if(o!=null){let r=b(o)?o:[o],s=!1;for(let p=0;p<r.length;p++){let a=r[p],u=!1;if(a===String?u=J(t):a===Number?u=X(t):a===Boolean?u=Q(t):a===Function?u=T(t):a===Array?u=b(t):a===Object&&(u=Y(t)),u){s=!0;break}}if(!s){let p=r.map(ee).join(" | ");return!1}}if(l&&T(l))try{if(!l(t))return!1}catch(r){return!1}return!0}function $(e,n){let{default:t}=e;if(t!==void 0){if(T(t)){let o=e.type;if(!(o===Function||b(o)&&o.indexOf(Function)!==-1))return t()}return t}}function P(e,n){let{options:t,keys:o}=e.propsOptions,i={};for(let l=0;l<o.length;l++){let r=o[l],s=t[r],p=n?n[r]:void 0;p===void 0&&(p=$(s,r)),s.type!==null&&s.type!==void 0&&(b(s.type)?s.type:[s.type]).indexOf(Boolean)!==-1&&p===void 0&&(p=!1),A(r,s,p),i[r]=p}return e.props=i,i}function C(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function te(e){return e.replace(/-(\w)/g,(n,t)=>t.toUpperCase())}function L(e){return typeof e=="function"}function ne(e){return Array.isArray(e)}function w(e){if(!e)return{keys:[],validators:{}};let n=[],t={};if(ne(e)){for(let i=0;i<e.length;i++){let l=C(e[i]);n.push(l),t[l]=null}return{keys:n,validators:t}}let o=Object.keys(e);for(let i=0;i<o.length;i++){let l=o[i],r=C(l),s=e[l];n.push(r),L(s)?t[r]=s:t[r]=null}return{keys:n,validators:t}}function F(e,n,...t){let o=C(n),i=e.emitsOptions;if(i&&i.keys.length>0){let a=i.keys.indexOf(o)!==-1,u=i.validators[o];if(L(u))try{if(!u(...t))return!1}catch(f){return!1}}let l="on"+o.charAt(0).toUpperCase()+o.slice(1),r=l.replace(/-([a-z])/g,(a,u)=>u.toUpperCase()),s=e.props||{},p=s[r]||s[l];return L(p)?(p(...t),!0):!1}var v=(r=>(r.INIT="init",r.MOUNTED="mounted",r.BEFORE_UPDATE="beforeUpdate",r.UPDATED="updated",r.BEFORE_UNMOUNT="beforeUnmount",r.UNMOUNTED="unmounted",r))(v||{}),h=null;function oe(e){return typeof e=="function"}function E(e){let n=h;return h=e,n}function g(e){return function(t,o){if(!oe(t))return;let i=o||h;i&&(i[e]||(i[e]=[]),i[e].push(t))}}function d(e,n,...t){let o=e[n];if(!(!o||o.length===0))for(let i=0;i<o.length;i++)try{o[i](...t)}catch(l){}}var re=g("init"),ie=g("mounted"),se=g("beforeUpdate"),le=g("updated"),pe=g("beforeUnmount"),ae=g("unmounted");function M(e){return typeof e=="function"}function ue(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function k(e){return e==null?null:M(e)?e:Array.isArray(e)?e.length>0?e:null:e}function j(e,n){let t={};if(n==null)return e.slots=t,t;if(M(n)||Array.isArray(n))return t.default=k(n),e.slots=t,t;if(ue(n)){let o=Object.keys(n);for(let i=0;i<o.length;i++){let l=o[i],r=n[l];r!==void 0&&(t[l]=k(r))}return e.slots=t,t}return t.default=k(n),e.slots=t,t}function ce(e,n="default",t){let o=e[n];return o==null?null:M(o)?o(t):o}function fe(e,n="default"){let t=e[n];return t!=null}var c=null;function ye(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.mounted||(n.mounted=[])).push(e)}}function de(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.unmounted||(n.unmounted=[])).push(e)}}function me(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.updated||(n.updated=[])).push(e)}}function ge(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.beforeMount||(n.beforeMount=[])).push(e)}}function Se(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.beforeUnmount||(n.beforeUnmount=[])).push(e)}}var D=new WeakMap;function be(e,n){if(c){let t=D.get(c);t||(t=new Map,D.set(c,t)),t.set(e,n)}}function xe(e,n){if(c){let t=c;for(;t;){let o=D.get(t);if(o&&o.has(e))return o.get(e);t=t._parent}}return n}function _(e,n,t,o){c=n;try{return e(t,o)}finally{c=null}}function ke(){return c}import{isFunction as m,isPlainObject as I,mergeObjects as Ee}from"@lytjs/common";function Ie(e){return{name:e.name,options:e,_isComponentDefine:!0}}function Ne(e){let n=e.options,t=H(n.props),o=w(n.emits),i={_isComponent:!0,type:n,name:e.name||n.name,propsOptions:t,emitsOptions:o,props:{},state:{},setupState:{},computedRefs:{},subTree:null,isMounted:!1,isUnmounted:!1,slots:{},watchStopHandles:[],renderProxy:null,emit:null};return i.emit=(l,...r)=>F(i,l,...r),i.renderProxy=Ue(i),i}function Ue(e){return{get $name(){return e.name},get $props(){return e.props},get $state(){return e.state},get $slots(){return e.slots},get $isMounted(){return e.isMounted},$emit:e.emit,$forceUpdate(){e.update&&e.update()},$unmount(){K(e)},$setState(t){e._signalState?R(e._signalState,t):Ee(e.state,t),e.update&&e.update()}}}function Re(e,n,t){P(e,n||null),j(e,t||null);let o=e.type;m(o)&&!o._isComponentDefine?V(e):B(e)}function B(e){let{type:n}=e,t=n.reactivityMode==="signal",o=E(e);try{if(m(n.setup)){let r={attrs:e.props,slots:e.slots,emit:e.emit},s=_(n.setup,e,e.props,r);if(m(s))n.render=s;else if(I(s)){e.setupState={...s};let p=Object.keys(s);for(let a=0;a<p.length;a++)Object.defineProperty(e.renderProxy,p[a],{get(){return e.setupState[p[a]]},set(u){e.setupState[p[a]]=u},enumerable:!0})}}if(m(n.state)){let r=n.state();if(I(r))if(t){let s=N(r);e._signalState=s,e.state=U(s)}else e.state=Oe({...r})}if(n.computed){let r=Object.keys(n.computed);for(let s=0;s<r.length;s++){let p=r[s],a=n.computed[p],u=typeof a=="function"?()=>a.call(e.renderProxy):()=>a.get.call(e.renderProxy),f=typeof a=="function"?void 0:x=>a.set.call(e.renderProxy,x),y;t?y=Ce(u):f?y=z({get:u,set:f}):y=z(u),e.computedRefs[p]=y}}let i=n.methods;if(I(i)){let r=Object.keys(i);for(let s=0;s<r.length;s++){let p=r[s],a=i[p];m(a)&&(e.renderProxy[p]=a.bind(e.renderProxy))}}if(m(n.init)){let r=n.init.call(e.renderProxy,e.props,e.state);if(I(r)){e.setupState={...e.setupState,...r};let s=Object.keys(r);for(let p=0;p<s.length;p++)Object.defineProperty(e.renderProxy,s[p],{get(){return e.setupState[s[p]]},set(a){e.setupState[s[p]]=a},enumerable:!0})}}let l=Object.keys(e.state);for(let r=0;r<l.length;r++){let s=l[r];Object.defineProperty(e.renderProxy,s,{get(){return e.state[s]},set(p){e.state[s]=p},enumerable:!0})}if(n.computed){let r=Object.keys(n.computed);for(let s=0;s<r.length;s++){let p=r[s],a=e.computedRefs[p];t?Object.defineProperty(e.renderProxy,p,{get(){return a()},enumerable:!0}):Object.defineProperty(e.renderProxy,p,{get(){return a.value},set(u){a.value=u},enumerable:!0})}}if(n.watch){let r=Object.keys(n.watch);for(let s=0;s<r.length;s++){let p=r[s],a=n.watch[p],u=()=>{let f=e.state[p];if(f!==void 0)return f;let y=e.props[p];return y!==void 0?y:e.renderProxy[p]};if(t){let f=he(y=>{let x=u();a.handler.call(e.renderProxy,x,void 0)});e.watchStopHandles.push(f)}else{let f=Pe(u,(y,x)=>{a.handler.call(e.renderProxy,y,x)},{immediate:!!a.immediate,deep:!!a.deep});e.watchStopHandles.push(f)}}}d(e,"init")}finally{E(o)}}function V(e){let n=e.type,t={slots:e.slots,emit:e.emit},o=n(e.props,t);e.subTree=o}function O(e,n){let t=e._lifecycleHooks;if(!t||!t[n])return;let o=t[n];for(let i=0;i<o.length;i++)try{o[i]()}catch(l){}}function Te(e,n){if(e.isMounted)return;O(e,"beforeMount");let{type:t}=e;m(t.render)&&n&&(e.subTree=t.render.call(e.renderProxy,n,e)),e.isMounted=!0,d(e,"mounted"),O(e,"mounted")}function He(e,n,t){if(e.isUnmounted)return;t&&P(e,t),d(e,"beforeUpdate");let{type:o}=e;m(o.render)&&n&&(e.subTree=o.render.call(e.renderProxy,n,e)),d(e,"updated"),O(e,"updated")}function K(e){if(e.isUnmounted)return;d(e,"beforeUnmount"),O(e,"beforeUnmount"),e.isUnmounted=!0,e.isMounted=!1,e.subTree=null;for(let t of e.watchStopHandles)t();e.watchStopHandles=[],d(e,"unmounted"),O(e,"unmounted");let n=["init","mounted","beforeUpdate","updated","beforeUnmount","unmounted"];for(let t=0;t<n.length;t++)e[n[t]]=void 0;e._lifecycleHooks=void 0}export{v as LifecycleHook,d as callLifecycleHook,C as camelizeToHyphen,ge as compositionOnBeforeMount,Se as compositionOnBeforeUnmount,ye as compositionOnMounted,de as compositionOnUnmounted,me as compositionOnUpdated,Ne as createComponentInstance,g as createLifecycleHook,N as createSignalState,U as createSignalStateProxy,h as currentInstance,Ie as defineComponent,Z as disposeSignalState,F as emit,ke as getCurrentInstance,$ as getPropDefaultValue,q as getSignalStateSnapshot,fe as hasSlot,te as hyphenToCamel,P as initProps,j as initSlots,xe as inject,Te as mountComponent,w as normalizeEmits,H as normalizePropsOptions,k as normalizeSlotValue,pe as onBeforeUnmount,se as onBeforeUpdate,re as onInit,ie as onMounted,ae as onUnmounted,le as onUpdated,R as patchSignalState,be as provide,ce as renderSlot,_ as runSetup,E as setCurrentInstance,Re as setupComponent,V as setupFunctionComponent,B as setupStatefulComponent,K as unmountComponent,He as updateComponent,A as validateProp};
|
|
1
|
+
import{shallowReactive as Pe,computed as z,watch as Ce}from"@lytjs/reactivity";import{computed as he,effect as Ee}from"@lytjs/reactivity/signal";import{signal as W}from"@lytjs/reactivity/signal";function N(e){let n={},t=Object.keys(e);for(let o=0;o<t.length;o++){let i=t[o];n[i]=W(e[i])}return n}function S(e){return typeof e=="function"&&e!==null&&"set"in e}function U(e){return new Proxy(e,{get(n,t){if(typeof t=="symbol")return n[t];let o=n[t];return S(o)?o():n[t]},set(n,t,o){if(typeof t=="symbol")return n[t]=o,!0;let i=n[t];return S(i)?i.set(o):n[t]=o,!0},has(n,t){return t in n},ownKeys(n){return Object.keys(n)},getOwnPropertyDescriptor(n,t){if(typeof t=="string"&&t in n)return{configurable:!0,enumerable:!0,get:()=>{let o=n[t];return S(o)?o():o},set:o=>{let i=n[t];S(i)?i.set(o):n[t]=o}}}})}function q(e){let n={},t=Object.keys(e);for(let o=0;o<t.length;o++){let i=t[o],l=e[i];n[i]=S(l)?l():l}return n}function R(e,n){let t=Object.keys(n);for(let o=0;o<t.length;o++){let i=t[o],l=e[i];S(l)&&l.set(n[i])}}function Z(e){}function G(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function T(e){return typeof e=="function"}function J(e){return typeof e=="string"}function Q(e){return typeof e=="boolean"}function X(e){return typeof e=="number"&&!isNaN(e)}function x(e){return Array.isArray(e)}function Y(e){return e!==null&&typeof e=="object"}function ee(e){return e===String?"String":e===Number?"Number":e===Boolean?"Boolean":e===Array?"Array":e===Object?"Object":e===Function?"Function":"unknown"}function H(e){if(!e)return{options:{},keys:[]};if(x(e)){let i={},l=[];for(let r=0;r<e.length;r++){let s=e[r];i[s]={type:null},l.push(s)}return{options:i,keys:l}}let n={},t=[],o=Object.keys(e);for(let i=0;i<o.length;i++){let l=o[i],r=e[l];r==null?n[l]={type:null}:r===String||r===Number||r===Boolean||r===Array||r===Object||r===Function?n[l]={type:r}:G(r)?n[l]={...r}:x(r)?n[l]={type:r}:n[l]={type:null},t.push(l)}return{options:n,keys:t}}function _(e,n,t){let{type:o,required:i,validator:l}=n;if(t==null)return!i;if(o!=null){let r=x(o)?o:[o],s=!1;for(let a=0;a<r.length;a++){let p=r[a],u=!1;if(p===String?u=J(t):p===Number?u=X(t):p===Boolean?u=Q(t):p===Function?u=T(t):p===Array?u=x(t):p===Object&&(u=Y(t)),u){s=!0;break}}if(!s){let a=r.map(ee).join(" | ");return!1}}if(l&&T(l))try{if(!l(t))return!1}catch(r){return!1}return!0}function $(e,n){let{default:t}=e;if(t!==void 0){if(T(t)){let o=e.type;if(!(o===Function||x(o)&&o.indexOf(Function)!==-1))return t()}return t}}function P(e,n){let{options:t,keys:o}=e.propsOptions,i={};for(let l=0;l<o.length;l++){let r=o[l],s=t[r],a=n?n[r]:void 0;a===void 0&&(a=$(s,r)),s.type!==null&&s.type!==void 0&&(x(s.type)?s.type:[s.type]).indexOf(Boolean)!==-1&&a===void 0&&(a=!1),_(r,s,a),i[r]=a}return e.props=i,i}function te(e){return e}function C(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function ne(e){return e.replace(/-(\w)/g,(n,t)=>t.toUpperCase())}function L(e){return typeof e=="function"}function oe(e){return Array.isArray(e)}function v(e){if(!e)return{keys:[],validators:{}};let n=[],t={};if(oe(e)){for(let i=0;i<e.length;i++){let l=C(e[i]);n.push(l),t[l]=null}return{keys:n,validators:t}}let o=Object.keys(e);for(let i=0;i<o.length;i++){let l=o[i],r=C(l),s=e[l];n.push(r),L(s)?t[r]=s:t[r]=null}return{keys:n,validators:t}}function F(e,n,...t){let o=C(n),i=e.emitsOptions;if(i&&i.keys.length>0){let p=i.keys.indexOf(o)!==-1,u=i.validators[o];if(L(u))try{if(!u(...t))return!1}catch(f){return!1}}let l="on"+o.charAt(0).toUpperCase()+o.slice(1),r=l.replace(/-([a-z])/g,(p,u)=>u.toUpperCase()),s=e.props||{},a=s[r]||s[l];return L(a)?(a(...t),!0):!1}var w=(r=>(r.INIT="init",r.MOUNTED="mounted",r.BEFORE_UPDATE="beforeUpdate",r.UPDATED="updated",r.BEFORE_UNMOUNT="beforeUnmount",r.UNMOUNTED="unmounted",r))(w||{}),h=null;function re(e){return typeof e=="function"}function E(e){let n=h;return h=e,n}function g(e){return function(t,o){if(!re(t))return;let i=o||h;i&&(i[e]||(i[e]=[]),i[e].push(t))}}function d(e,n,...t){let o=e[n];if(!(!o||o.length===0))for(let i=0;i<o.length;i++)try{o[i](...t)}catch(l){}}var ie=g("init"),se=g("mounted"),le=g("beforeUpdate"),ae=g("updated"),pe=g("beforeUnmount"),ue=g("unmounted");function M(e){return typeof e=="function"}function ce(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function k(e){return e==null?null:M(e)?e:Array.isArray(e)?e.length>0?e:null:e}function j(e,n){let t={};if(n==null)return e.slots=t,t;if(M(n)||Array.isArray(n))return t.default=k(n),e.slots=t,t;if(ce(n)){let o=Object.keys(n);for(let i=0;i<o.length;i++){let l=o[i],r=n[l];r!==void 0&&(t[l]=k(r))}return e.slots=t,t}return t.default=k(n),e.slots=t,t}function fe(e,n="default",t){let o=e[n];return o==null?null:M(o)?o(t):o}function ye(e,n="default"){let t=e[n];return t!=null}var c=null;function de(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.mounted||(n.mounted=[])).push(e)}}function me(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.unmounted||(n.unmounted=[])).push(e)}}function ge(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.updated||(n.updated=[])).push(e)}}function Se(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.beforeMount||(n.beforeMount=[])).push(e)}}function xe(e){if(c){let n=c._lifecycleHooks||(c._lifecycleHooks={});(n.beforeUnmount||(n.beforeUnmount=[])).push(e)}}var D=new WeakMap;function be(e,n){if(c){let t=D.get(c);t||(t=new Map,D.set(c,t)),t.set(e,n)}}function ke(e,n){if(c){let t=c;for(;t;){let o=D.get(t);if(o&&o.has(e))return o.get(e);t=t._parent}}return n}function A(e,n,t,o){c=n;try{return e(t,o)}finally{c=null}}function Oe(){return c}import{isFunction as m,isPlainObject as I,mergeObjects as Ie}from"@lytjs/common";function Ne(e){return{name:e.name,options:e,_isComponentDefine:!0}}function Ue(e){return{options:e,_isComponentDefine:!0}}function Re(e){let n=e.options,t=H(n.props),o=v(n.emits),i={_isComponent:!0,type:n,name:e.name||n.name,propsOptions:t,emitsOptions:o,props:{},state:{},setupState:{},computedRefs:{},subTree:null,isMounted:!1,isUnmounted:!1,slots:{},watchStopHandles:[],renderProxy:null,emit:null};return i.emit=(l,...r)=>F(i,l,...r),i.renderProxy=Te(i),i}function Te(e){return{get $name(){return e.name},get $props(){return e.props},get $state(){return e.state},get $slots(){return e.slots},get $isMounted(){return e.isMounted},$emit:e.emit,$forceUpdate(){e.update&&e.update()},$unmount(){K(e)},$setState(t){e._signalState?R(e._signalState,t):Ie(e.state,t),e.update&&e.update()}}}function He(e,n,t){P(e,n||null),j(e,t||null);let o=e.type;m(o)&&!o._isComponentDefine?V(e):B(e)}function B(e){let{type:n}=e,t=n.reactivityMode==="signal",o=E(e);try{if(m(n.setup)){let r={attrs:e.props,slots:e.slots,emit:e.emit},s=A(n.setup,e,e.props,r);if(m(s))n.render=s;else if(I(s)){e.setupState={...s};let a=Object.keys(s);for(let p=0;p<a.length;p++)Object.defineProperty(e.renderProxy,a[p],{get(){return e.setupState[a[p]]},set(u){e.setupState[a[p]]=u},enumerable:!0})}}if(m(n.state)){let r=n.state();if(I(r))if(t){let s=N(r);e._signalState=s,e.state=U(s)}else e.state=Pe({...r})}if(n.computed){let r=Object.keys(n.computed);for(let s=0;s<r.length;s++){let a=r[s],p=n.computed[a],u=typeof p=="function"?()=>p.call(e.renderProxy):()=>p.get.call(e.renderProxy),f=typeof p=="function"?void 0:b=>p.set.call(e.renderProxy,b),y;t?y=he(u):f?y=z({get:u,set:f}):y=z(u),e.computedRefs[a]=y}}let i=n.methods;if(I(i)){let r=Object.keys(i);for(let s=0;s<r.length;s++){let a=r[s],p=i[a];m(p)&&(e.renderProxy[a]=p.bind(e.renderProxy))}}if(m(n.init)){let r=n.init.call(e.renderProxy,e.props,e.state);if(I(r)){e.setupState={...e.setupState,...r};let s=Object.keys(r);for(let a=0;a<s.length;a++)Object.defineProperty(e.renderProxy,s[a],{get(){return e.setupState[s[a]]},set(p){e.setupState[s[a]]=p},enumerable:!0})}}let l=Object.keys(e.state);for(let r=0;r<l.length;r++){let s=l[r];Object.defineProperty(e.renderProxy,s,{get(){return e.state[s]},set(a){e.state[s]=a},enumerable:!0})}if(n.computed){let r=Object.keys(n.computed);for(let s=0;s<r.length;s++){let a=r[s],p=e.computedRefs[a];t?Object.defineProperty(e.renderProxy,a,{get(){return p()},enumerable:!0}):Object.defineProperty(e.renderProxy,a,{get(){return p.value},set(u){p.value=u},enumerable:!0})}}if(n.watch){let r=Object.keys(n.watch);for(let s=0;s<r.length;s++){let a=r[s],p=n.watch[a],u=()=>{let f=e.state[a];if(f!==void 0)return f;let y=e.props[a];return y!==void 0?y:e.renderProxy[a]};if(t){let f=Ee(y=>{let b=u();p.handler.call(e.renderProxy,b,void 0)});e.watchStopHandles.push(f)}else{let f=Ce(u,(y,b)=>{p.handler.call(e.renderProxy,y,b)},{immediate:!!p.immediate,deep:!!p.deep});e.watchStopHandles.push(f)}}}d(e,"init")}finally{E(o)}}function V(e){let n=e.type,t={slots:e.slots,emit:e.emit},o=n(e.props,t);e.subTree=o}function O(e,n){let t=e._lifecycleHooks;if(!t||!t[n])return;let o=t[n];for(let i=0;i<o.length;i++)try{o[i]()}catch(l){}}function Le(e,n){if(e.isMounted)return;O(e,"beforeMount");let{type:t}=e;m(t.render)&&n&&(e.subTree=t.render.call(e.renderProxy,n,e)),e.isMounted=!0,d(e,"mounted"),O(e,"mounted")}function ve(e,n,t){if(e.isUnmounted)return;t&&P(e,t),d(e,"beforeUpdate");let{type:o}=e;m(o.render)&&n&&(e.subTree=o.render.call(e.renderProxy,n,e)),d(e,"updated"),O(e,"updated")}function K(e){if(e.isUnmounted)return;d(e,"beforeUnmount"),O(e,"beforeUnmount"),e.isUnmounted=!0,e.isMounted=!1,e.subTree=null;for(let t of e.watchStopHandles)t();e.watchStopHandles=[],d(e,"unmounted"),O(e,"unmounted");let n=["init","mounted","beforeUpdate","updated","beforeUnmount","unmounted"];for(let t=0;t<n.length;t++)e[n[t]]=void 0;e._lifecycleHooks=void 0}export{w as LifecycleHook,d as callLifecycleHook,C as camelizeToHyphen,Se as compositionOnBeforeMount,xe as compositionOnBeforeUnmount,de as compositionOnMounted,me as compositionOnUnmounted,ge as compositionOnUpdated,Re as createComponentInstance,g as createLifecycleHook,N as createSignalState,U as createSignalStateProxy,h as currentInstance,Ne as defineComponent,te as defineEmits,Ue as defineFunctionalComponent,Z as disposeSignalState,F as emit,Oe as getCurrentInstance,$ as getPropDefaultValue,q as getSignalStateSnapshot,ye as hasSlot,ne as hyphenToCamel,P as initProps,j as initSlots,ke as inject,Le as mountComponent,v as normalizeEmits,H as normalizePropsOptions,k as normalizeSlotValue,pe as onBeforeUnmount,le as onBeforeUpdate,ie as onInit,se as onMounted,ue as onUnmounted,ae as onUpdated,R as patchSignalState,be as provide,fe as renderSlot,A as runSetup,E as setCurrentInstance,He as setupComponent,V as setupFunctionComponent,B as setupStatefulComponent,K as unmountComponent,ve as updateComponent,_ as validateProp};
|
|
@@ -11,7 +11,6 @@ import { type NormalizedProps, type PropOptions, type PropType } from './props';
|
|
|
11
11
|
import { type NormalizedEmitsOptions, type EmitsOptions } from './emit';
|
|
12
12
|
import { type LifecycleInstance } from './lifecycle';
|
|
13
13
|
import { type Slots, type SlotChildren } from './slots';
|
|
14
|
-
import { type SetupFunction } from './composition-api';
|
|
15
14
|
/** 组件渲染函数类型 */
|
|
16
15
|
export type RenderFunction = (h: CreateElement, instance: ComponentInternalInstance) => any;
|
|
17
16
|
/** 简易 createElement 函数类型 */
|
|
@@ -38,7 +37,7 @@ export interface WatchOptions {
|
|
|
38
37
|
}
|
|
39
38
|
/** 响应式模式 */
|
|
40
39
|
export type ReactivityMode = 'proxy' | 'signal';
|
|
41
|
-
/**
|
|
40
|
+
/** 组件选项类型(保持向后兼容) */
|
|
42
41
|
export interface ComponentOptions {
|
|
43
42
|
/** 组件名称 */
|
|
44
43
|
name?: string;
|
|
@@ -59,7 +58,11 @@ export interface ComponentOptions {
|
|
|
59
58
|
/** 初始化函数(setup 阶段调用) */
|
|
60
59
|
init?: (this: ComponentPublicInstance, props: Record<string, any>, state: Record<string, any>) => void | Record<string, any>;
|
|
61
60
|
/** Composition API setup 函数 */
|
|
62
|
-
setup?:
|
|
61
|
+
setup?: (props: Record<string, any>, ctx: {
|
|
62
|
+
attrs: Record<string, any>;
|
|
63
|
+
slots: Slots;
|
|
64
|
+
emit: (event: string, ...args: any[]) => void;
|
|
65
|
+
}) => any;
|
|
63
66
|
/** Emits 声明 */
|
|
64
67
|
emits?: EmitsOptions;
|
|
65
68
|
/** 默认插槽内容(由父组件传入) */
|
|
@@ -69,14 +72,14 @@ export interface ComponentOptions {
|
|
|
69
72
|
/** 组件样式字符串 */
|
|
70
73
|
styles?: string;
|
|
71
74
|
}
|
|
72
|
-
/**
|
|
75
|
+
/** 函数组件类型(保持简单,向后兼容) */
|
|
73
76
|
export type FunctionalComponent = (props: Record<string, any>, context: {
|
|
74
77
|
slots: Slots;
|
|
75
|
-
emit:
|
|
78
|
+
emit: (event: string, ...args: any[]) => void;
|
|
76
79
|
}) => any;
|
|
77
80
|
/** emit 函数类型 */
|
|
78
81
|
export type EmitFunction = (event: string, ...args: any[]) => boolean;
|
|
79
|
-
/**
|
|
82
|
+
/** 组件公共实例(保持简单,向后兼容) */
|
|
80
83
|
export interface ComponentPublicInstance {
|
|
81
84
|
/** 组件名称 */
|
|
82
85
|
$name?: string;
|
|
@@ -96,6 +99,8 @@ export interface ComponentPublicInstance {
|
|
|
96
99
|
$unmount: () => void;
|
|
97
100
|
/** 设置状态 */
|
|
98
101
|
$setState: (partial: Record<string, any>) => void;
|
|
102
|
+
/** 允许访问其他属性 */
|
|
103
|
+
[key: string]: any;
|
|
99
104
|
}
|
|
100
105
|
/** 组件内部实例(框架内部使用) */
|
|
101
106
|
export interface ComponentInternalInstance extends LifecycleInstance {
|
|
@@ -140,7 +145,7 @@ export interface ComponentInternalInstance extends LifecycleInstance {
|
|
|
140
145
|
/** Composition API 生命周期钩子 */
|
|
141
146
|
_lifecycleHooks?: Record<string, Function[]>;
|
|
142
147
|
}
|
|
143
|
-
/** defineComponent
|
|
148
|
+
/** defineComponent 的返回类型(保持简单,向后兼容) */
|
|
144
149
|
export interface ComponentDefine {
|
|
145
150
|
/** 组件名称 */
|
|
146
151
|
name?: string;
|
|
@@ -156,44 +161,51 @@ export interface ComponentDefine {
|
|
|
156
161
|
*
|
|
157
162
|
* 接收组件选项对象,返回标准化的组件定义。
|
|
158
163
|
* 支持的选项:
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
164
|
+
* - name: 组件名称
|
|
165
|
+
* - props: 属性声明(数组或对象形式)
|
|
166
|
+
* - state: 响应式数据工厂函数
|
|
167
|
+
* - computed: 计算属性
|
|
168
|
+
* - watch: 侦听器
|
|
169
|
+
* - methods: 方法
|
|
170
|
+
* - template: 模板字符串
|
|
171
|
+
* - render: 渲染函数
|
|
172
|
+
* - init: 初始化函数
|
|
173
|
+
* - emits: 事件声明
|
|
174
|
+
* - slots: 默认插槽
|
|
170
175
|
*
|
|
171
176
|
* @param options - 组件选项
|
|
172
177
|
* @returns 组件定义对象
|
|
173
178
|
*
|
|
174
179
|
* @example
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
180
|
+
* ```ts
|
|
181
|
+
* const MyComponent = defineComponent({
|
|
182
|
+
* name: 'MyComponent',
|
|
183
|
+
* props: {
|
|
184
|
+
* title: { type: String, default: 'Hello' },
|
|
185
|
+
* count: { type: Number, required: true }
|
|
186
|
+
* },
|
|
187
|
+
* state() {
|
|
188
|
+
* return { inner: 0 };
|
|
189
|
+
* },
|
|
190
|
+
* methods: {
|
|
191
|
+
* increment() {
|
|
192
|
+
* this.$setState({ inner: this.$state.inner + 1 });
|
|
193
|
+
* }
|
|
194
|
+
* },
|
|
195
|
+
* init(props, state) {
|
|
196
|
+
* console.log('组件初始化', props.title);
|
|
188
197
|
* }
|
|
189
|
-
* }
|
|
190
|
-
*
|
|
191
|
-
* console.log('组件初始化', props.title);
|
|
192
|
-
* }
|
|
193
|
-
* });
|
|
194
|
-
* ```
|
|
198
|
+
* });
|
|
199
|
+
* ```
|
|
195
200
|
*/
|
|
196
201
|
export declare function defineComponent(options: ComponentOptions): ComponentDefine;
|
|
202
|
+
/**
|
|
203
|
+
* 定义函数组件
|
|
204
|
+
*
|
|
205
|
+
* @param fn - 函数组件
|
|
206
|
+
* @returns 组件定义对象
|
|
207
|
+
*/
|
|
208
|
+
export declare function defineFunctionalComponent(fn: FunctionalComponent): ComponentDefine;
|
|
197
209
|
/**
|
|
198
210
|
* 创建组件内部实例
|
|
199
211
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-component.d.ts","sourceRoot":"","sources":["../../src/define-component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EAClB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"define-component.d.ts","sourceRoot":"","sources":["../../src/define-component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EAClB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAiBjB,eAAe;AACf,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,yBAAyB,KAAK,GAAG,CAAC;AAE5F,4BAA4B;AAC5B,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAE3G,aAAa;AACb,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG;QAC3B,mBAAmB;QACnB,GAAG,EAAE,MAAM,GAAG,CAAC;QACf,uBAAuB;QACvB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5B,CAAC;CACH;AAED,YAAY;AACZ,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,sBAAsB;QACtB,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;QAChD,aAAa;QACb,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa;QACb,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,YAAY;AACZ,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,qBAAqB;AACrB,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;IAC7E,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,WAAW;IACX,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU;IACV,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS;IACT,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;IAClD,YAAY;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,wBAAwB;IACxB,IAAI,CAAC,EAAE,CACL,IAAI,EAAE,uBAAuB,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACvB,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,CACN,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KAC/C,KACE,GAAG,CAAC;IACT,eAAe;IACf,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,qBAAqB;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,sDAAsD;IACtD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAwB;AACxB,MAAM,MAAM,mBAAmB,GAAG,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,EAAE;IACP,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAC/C,KACE,GAAG,CAAC;AAET,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAEtE,wBAAwB;AACxB,MAAM,WAAW,uBAAuB;IACtC,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,aAAa;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,WAAW;IACX,MAAM,EAAE,KAAK,CAAC;IACd,cAAc;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW;IACX,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW;IACX,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW;IACX,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAClD,eAAe;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAqB;AACrB,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,aAAa;IACb,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,YAAY,EAAE,eAAe,CAAC;IAC9B,qBAAqB;IACrB,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,eAAe;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,8BAA8B;IAC9B,WAAW,EAAE,uBAAuB,CAAC;IACrC,aAAa;IACb,OAAO,EAAE,GAAG,CAAC;IACb,YAAY;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW;IACX,KAAK,EAAE,KAAK,CAAC;IACb,4BAA4B;IAC5B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,mBAAmB;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;CAC9C;AAED,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,gBAAgB,CAAC;IAC1B,cAAc;IACd,kBAAkB,EAAE,IAAI,CAAC;IACzB,eAAe;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAM1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,mBAAmB,GAAG,eAAe,CAKlF;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,GACzB,yBAAyB,CAoC3B;AA0DD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACrC,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,GAC7B,IAAI,CAiBN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,yBAAyB,GAClC,IAAI,CA8NN;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,yBAAyB,GAClC,IAAI,CAYN;AA0BD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,yBAAyB,EACnC,CAAC,CAAC,EAAE,aAAa,GAChB,IAAI,CAsBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,yBAAyB,EACnC,CAAC,CAAC,EAAE,aAAa,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,IAAI,CAyBN;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,yBAAyB,GAClC,IAAI,CA2CN"}
|
package/dist/types/emit.d.ts
CHANGED
|
@@ -21,6 +21,19 @@ export interface EmitInstance {
|
|
|
21
21
|
/** 组件注册的事件处理函数映射(key 为短横线形式) */
|
|
22
22
|
props?: Record<string, any>;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* 从事件处理器类型提取事件类型
|
|
26
|
+
* 例如:
|
|
27
|
+
* - { onClick: (e: MouseEvent) => void } → { click: (e: MouseEvent) => void }
|
|
28
|
+
*/
|
|
29
|
+
export type ExtractEmitsFromHandlers<Handlers> = {
|
|
30
|
+
[K in keyof Handlers as K extends `on${infer E}` ? Uncapitalize<E> : never]: Handlers[K] extends (...args: infer Args) => any ? (...args: Args) => void : never;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* 定义 emits 类型的工具函数
|
|
34
|
+
* 用于类型安全的事件声明
|
|
35
|
+
*/
|
|
36
|
+
export declare function defineEmits<T extends EmitsOptions>(emits: T): T;
|
|
24
37
|
/**
|
|
25
38
|
* 将驼峰命名转为短横线命名
|
|
26
39
|
*
|
package/dist/types/emit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/emit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAE3F,qBAAqB;AACrB,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CAClE;AAED,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GACrC,sBAAsB,CAmCxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAqDT"}
|
|
1
|
+
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/emit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAE3F,qBAAqB;AACrB,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CAClE;AAED,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,CAAC,QAAQ,IAAI;KAC9C,CAAC,IAAI,MAAM,QAAQ,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,GAC5C,YAAY,CAAC,CAAC,CAAC,GACf,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,GAAG,GACtD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,GACvB,KAAK;CACZ,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE/D;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GACrC,sBAAsB,CAmCxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAqDT"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* 导出所有公共 API 和类型定义。
|
|
5
5
|
* 纯原生实现,零外部依赖。
|
|
6
6
|
*/
|
|
7
|
-
export { defineComponent, createComponentInstance, setupComponent, setupStatefulComponent, setupFunctionComponent, mountComponent, updateComponent, unmountComponent, } from './define-component';
|
|
7
|
+
export { defineComponent, defineFunctionalComponent, createComponentInstance, setupComponent, setupStatefulComponent, setupFunctionComponent, mountComponent, updateComponent, unmountComponent, } from './define-component';
|
|
8
8
|
export type { ComponentOptions, ComponentDefine, ComponentPublicInstance, ComponentInternalInstance, RenderFunction, CreateElement, ComputedOptions, WatchOptions, FunctionalComponent, EmitFunction, ReactivityMode, } from './define-component';
|
|
9
9
|
export { normalizePropsOptions, validateProp, initProps, getPropDefaultValue, } from './props';
|
|
10
10
|
export type { PropType, PropOptions, NormalizedPropsOptions, NormalizedProps, } from './props';
|
|
11
|
-
export { emit, normalizeEmits, camelizeToHyphen, hyphenToCamel, } from './emit';
|
|
12
|
-
export type { EmitsOptions, NormalizedEmitsOptions, EmitInstance, } from './emit';
|
|
11
|
+
export { emit, normalizeEmits, camelizeToHyphen, hyphenToCamel, defineEmits, } from './emit';
|
|
12
|
+
export type { EmitsOptions, NormalizedEmitsOptions, EmitInstance, ExtractEmitsFromHandlers, } from './emit';
|
|
13
13
|
export { LifecycleHook, createLifecycleHook, callLifecycleHook, setCurrentInstance, onInit, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted, currentInstance, } from './lifecycle';
|
|
14
14
|
export type { LifecycleHookCallback, LifecycleInstance, } from './lifecycle';
|
|
15
15
|
export { initSlots, normalizeSlotValue, renderSlot, hasSlot, } from './slots';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,eAAe,GAChB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,IAAI,EACJ,cAAc,EACd,gBAAgB,EAChB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,eAAe,GAChB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,IAAI,EACJ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAMhB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,cAAc,EACd,SAAS,EACT,eAAe,EACf,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,OAAO,GACR,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,SAAS,EACT,KAAK,EACL,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AAYjB,OAAO,EACL,SAAS,IAAI,oBAAoB,EACjC,WAAW,IAAI,sBAAsB,EACrC,SAAS,IAAI,oBAAoB,EACjC,aAAa,IAAI,wBAAwB,EACzC,eAAe,IAAI,0BAA0B,EAC7C,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,GACd,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lytjs/component",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "Lyt.js 组件系统 - defineComponent、生命周期、插槽、KeepAlive、Suspense",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"defineComponent"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@lytjs/common": "^4.0
|
|
47
|
-
"@lytjs/reactivity": "^4.0
|
|
46
|
+
"@lytjs/common": "^4.2.0",
|
|
47
|
+
"@lytjs/reactivity": "^4.2.0"
|
|
48
48
|
},
|
|
49
49
|
"engines": {
|
|
50
50
|
"node": ">=18.0.0"
|