diff --git a/README.md b/README.md
index fe039d86..40195451 100644
--- a/README.md
+++ b/README.md
@@ -8,26 +8,6 @@
[B 站](https://www.bilibili.com/video/BV1Zy4y1J73E) 提供了视频讲解使用方式
-历经半年我把这个项目做成了一套系列视频课
-
-[【课程介绍】](https://www.bilibili.com/video/BV16Z4y1r7Wp?spm_id_from=333.999.0.0)
-
-课程的目标是通过构建自己的 mini-vue3 (同这个库一个复杂级别)来深入学习理解 vue3 源码
-
-只有手写一遍,才能真正的掌握源码
-
-进阶高级前端的编程思想有哪些
-
-如何掌握 Vue3 源码原理实现
-
-面试如何脱颖而出
-
-帮你解决以上痛点问题 [胜利]
-
-vx:cuixr1314
-
-备注一下: github mini-vue
-
## Why
当我们需要深入学习 vue3 时,我们就需要看源码来学习,但是像这种工业级别的库,源码中有很多逻辑是用于处理边缘情况或者是兼容处理逻辑,是不利于我们学习的。
@@ -57,6 +37,7 @@ vx:cuixr1314
- [x] 支持最基础的 slots
- [x] 支持 Text 类型节点
- [x] 支持 $el api
+- [x] 支持 watchEffect
#### reactivity
@@ -87,6 +68,11 @@ vx:cuixr1314
### runtime-dom
- [x] 支持 custom renderer
+### runtime-test
+- [x] 支持测试 runtime-core 的逻辑
+
+### infrastructure
+- [x] support monorepo with pnpm
### build
```shell
@@ -95,7 +81,7 @@ pnpm build
### example
-通过 server 的方式打开 example/\* 下的 index.html 即可
+通过 server 的方式打开 packages/vue/example/\* 下的 index.html 即可
> 推荐使用 [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer)
@@ -108,7 +94,7 @@ pnpm build
#### 关键函数调用图
-
+
> 可以基于函数名快速搜索到源码内容
@@ -125,3 +111,87 @@ pnpm build
> 可以基于函数名快速搜索到源码内容
+
+
+### 从零到一实现一遍
+
+自从有了 mini-vue 之后 很多同学都问我 能不能带着他从零到一敲一遍
+
+因为对于源码的学习来讲 看在多遍也不如自己写一遍
+
+为此我把 mini-vue 做成了一套视频课 从零到一带着大家实现一遍 不跳过任何一行代码
+
+当然除了功能上的实现还有编程思想融入到了课程内
+
+比如 TDD、小步走、重构手法、TPP
+
+> TDD 测试驱动开发 影响了我整个技术生涯 可以说在我认识到 TDD 之后 技术才有了质的飞跃
+
+课程目录如下:
+
+1. vue3 源码结构的介绍
+2. reactivity 的核心流程
+3. runtime-core 初始化的核心流程
+4. runtime-core 更新的核心流程
+5. setup 环境 -> 集成 jest 做单元测试 & 集成 typescript
+6. 实现 effect 返回 runner
+7. 实现 effect 的 scheduler 功能
+8. 实现 effect 的 stop 功能
+9. 实现 readonly 功能
+10. 实现 isReactive 和 isReadonly
+11. 优化 stop 功能
+12. 实现 reactive 和 readonly 嵌套对象转换功能
+13. 实现 shallowReadonly 功能
+14. 实现 isProxy 功能
+15. 实现 isProxy 功能
+16. 实现 ref 功能
+17. 实现 isRef 和 unRef 功能
+18. 实现 proxyR 功能
+19. 实现 computed 计算属性功能
+20. 实现初始化 component 主流程
+21. 实现 rollup 打包
+22. 实现初始化 element 主流程
+23. 实现组件代理对象
+24. 实现 shapeFlags
+25. 实现注册事件功能
+26. 实现组件 props 功能
+27. 实现组件 emit 功能
+28. 实现组件 slots 功能
+29. 实现 Fragment 和 Text 类型节点
+30. 实现 getCurrentInstance
+31. 实现依赖注入功能 provide/inject
+32. 实现自定义渲染器 custom renderer
+33. 更新 element 流程搭建
+34. 更新 element 的props
+35. 更新 element 的 children
+36. 双端对比 diff 算法1
+37. 双端对比 diff 算法2 - key 的作用
+38. 双端对比 diff 算法3 - 最长子序列的作用
+39. 学习尤大解决 bug 的处理方式
+40. 实现组件更新功能
+41. 实现 nextTick 功能
+42. 编译模块概述
+43. 实现解析插值功能
+44. 实现解析 element 标签
+45. 实现解析 text 功能
+46. 实现解析三种联合类型 template
+47. parse 的实现原理&有限状态机
+48. 实现 transform 功能
+49. 实现代码生成 string 类型
+50. 实现代码生成插值类型
+51. 实现代码生成三种联合类型
+52. 实现编译 template 成 render 函数
+53. 实现 monorepo & 使用 vitest 替换 jest
+
+课程内部包含了 vue3 的三大核心模块:reactivity、runtime 以及 compiler 模块
+
+等你自己手写一遍之后 在去看 vue3 源码或者再去看分析解析 vue3 源码的书籍时你会有不同的体验
+
+除此之外 还录制了课程介绍以及课程试听课
+- [课程介绍](https://www.bilibili.com/video/BV16Z4y1r7Wp)
+- [试听课](https://www.bilibili.com/video/BV1R341177P7)
+- [购买链接](https://cua.h5.xeknow.com/s/xDWLc)
+
+> 可以直接购买 也可以加我 wx: cuixr1314 来咨询这门课是否合适你
+
+除了课程内容以外 还有专门的社群来答疑大家在学习上的问题 😊
diff --git a/README_EN.md b/README_EN.md
index 7c623e82..ec1b2e51 100644
--- a/README_EN.md
+++ b/README_EN.md
@@ -72,7 +72,7 @@ Open index.html under example/\* use server
#### flow chart
-
+
#### Key function call graph
@@ -86,10 +86,10 @@ Open index.html under example/\* use server
#### flow chart
-
+
#### Key function call graph
-
+
> The source code content can be quickly searched based on the function name
diff --git a/example/componentUpdate/index.html b/example/componentUpdate/index.html
deleted file mode 100644
index 0900434f..00000000
--- a/example/componentUpdate/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- Document
-
-
-
-
-
-
diff --git a/example/createTextVnode/index.html b/example/createTextVnode/index.html
deleted file mode 100644
index 0900434f..00000000
--- a/example/createTextVnode/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- Document
-
-
-
-
-
-
diff --git a/example/getCurrentInstance/index.html b/example/getCurrentInstance/index.html
deleted file mode 100644
index 0900434f..00000000
--- a/example/getCurrentInstance/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- Document
-
-
-
-
-
-
diff --git a/example/patchChildren/App.js b/example/patchChildren/App.js
deleted file mode 100644
index 6023f2fe..00000000
--- a/example/patchChildren/App.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { h } from "../../lib/mini-vue.esm.js";
-import PatchChildren from "./PatchChildren.js";
-
-export default {
- name: "App",
- setup() {},
-
- render() {
- return h("div", { tId: 1 }, [h("p", {}, "主页"), h(PatchChildren)]);
- },
-};
diff --git a/example/renderComponent/index.html b/example/renderComponent/index.html
deleted file mode 100644
index 0900434f..00000000
--- a/example/renderComponent/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- Document
-
-
-
-
-
-
diff --git a/example/setupStateRenderComponent/index.html b/example/setupStateRenderComponent/index.html
deleted file mode 100644
index 0900434f..00000000
--- a/example/setupStateRenderComponent/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- Document
-
-
-
-
-
-
diff --git a/example/slotsComponent/index.html b/example/slotsComponent/index.html
deleted file mode 100644
index 0900434f..00000000
--- a/example/slotsComponent/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- Document
-
-
-
-
-
-
diff --git a/jest.config.js b/jest.config.js
deleted file mode 100644
index 91a2d2c0..00000000
--- a/jest.config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = {
- preset: 'ts-jest',
- testEnvironment: 'node',
-};
\ No newline at end of file
diff --git a/lib/mini-vue.cjs.js.map b/lib/mini-vue.cjs.js.map
deleted file mode 100644
index 93651f27..00000000
--- a/lib/mini-vue.cjs.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mini-vue.cjs.js","sources":["../src/mini-core/LanguageTranslator.ts","../src/mini-core/Debug.ts","../src/mini-core/index.ts","../src/shared/shapeFlags.ts","../src/shared/toDisplayString.ts","../src/shared/index.ts","../src/runtime-core/vnode.ts","../src/runtime-core/h.ts","../src/runtime-core/createApp.ts","../src/runtime-core/componentProps.ts","../src/runtime-core/componentSlots.ts","../src/runtime-core/componentEmits.ts","../src/runtime-core/componentPublicInstance.ts","../src/reactivity/src/dep.ts","../src/reactivity/src/effect.ts","../src/reactivity/src/baseHandlers.ts","../src/reactivity/src/reactive.ts","../src/reactivity/src/ref.ts","../src/reactivity/src/computed.ts","../src/runtime-core/component.ts","../src/runtime-core/apiInject.ts","../src/runtime-core/helpers/renderSlot.ts","../src/runtime-core/scheduler.ts","../src/runtime-core/componentRenderUtils.ts","../src/runtime-core/renderer.ts","../src/runtime-dom/index.ts","../src/compiler-core/src/runtimeHelpers.ts","../src/compiler-core/src/codegen.ts","../src/compiler-core/src/parse.ts","../src/compiler-core/src/transform.ts","../src/compiler-core/src/transforms/transformExpression.ts","../src/compiler-core/src/ast.ts","../src/compiler-core/src/transforms/transformElement.ts","../src/compiler-core/src/utils.ts","../src/compiler-core/src/transforms/transformText.ts","../src/compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["debug"],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/mini-vue.esm.js.map b/lib/mini-vue.esm.js.map
deleted file mode 100644
index a7f6d49c..00000000
--- a/lib/mini-vue.esm.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mini-vue.esm.js","sources":["../src/mini-core/LanguageTranslator.ts","../src/mini-core/Debug.ts","../src/mini-core/index.ts","../src/shared/shapeFlags.ts","../src/shared/toDisplayString.ts","../src/shared/index.ts","../src/runtime-core/vnode.ts","../src/runtime-core/h.ts","../src/runtime-core/createApp.ts","../src/runtime-core/componentProps.ts","../src/runtime-core/componentSlots.ts","../src/runtime-core/componentEmits.ts","../src/runtime-core/componentPublicInstance.ts","../src/reactivity/src/dep.ts","../src/reactivity/src/effect.ts","../src/reactivity/src/baseHandlers.ts","../src/reactivity/src/reactive.ts","../src/reactivity/src/ref.ts","../src/reactivity/src/computed.ts","../src/runtime-core/component.ts","../src/runtime-core/apiInject.ts","../src/runtime-core/helpers/renderSlot.ts","../src/runtime-core/scheduler.ts","../src/runtime-core/componentRenderUtils.ts","../src/runtime-core/renderer.ts","../src/runtime-dom/index.ts","../src/compiler-core/src/runtimeHelpers.ts","../src/compiler-core/src/codegen.ts","../src/compiler-core/src/parse.ts","../src/compiler-core/src/transform.ts","../src/compiler-core/src/transforms/transformExpression.ts","../src/compiler-core/src/ast.ts","../src/compiler-core/src/transforms/transformElement.ts","../src/compiler-core/src/utils.ts","../src/compiler-core/src/transforms/transformText.ts","../src/compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["debug"],"mappings":"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"}
\ No newline at end of file
diff --git a/package.json b/package.json
index d2826eac..4328f5b0 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "mini-vue",
+ "private": true,
"version": "0.0.1",
"description": "Help you learn more efficiently vue3 source code",
"main": "lib/mini-vue.cjs.js",
@@ -7,8 +7,7 @@
"scripts": {
"dev": "rollup -c -w",
"build": "rollup -c",
- "build:type": "tsc -p ./tsconfig.type.json",
- "test": "jest --no-cache"
+ "test": "vitest"
},
"author": "cuixiaorui",
"homepage": "https://github.com/cuixiaorui",
@@ -18,13 +17,11 @@
"@rollup/plugin-node-resolve": "^8.1.0",
"@rollup/plugin-replace": "^2.3.3",
"@rollup/plugin-typescript": "^8.2.5",
- "@types/jest": "^26.0.0",
- "jest": "^27.2.3",
"rollup": "^2.17.1",
"rollup-plugin-sourcemaps": "^0.6.2",
- "ts-jest": "^27.0.5",
"tslib": "^2.3.1",
- "typescript": "^4.4.3"
+ "typescript": "^4.4.3",
+ "vitest": "^0.22.1"
},
"dependencies": {
"@vue/reactivity": "^3.0.5",
diff --git a/src/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap
similarity index 91%
rename from src/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap
rename to packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap
index 565ffa10..6c31ffa7 100644
--- a/src/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap
+++ b/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap
@@ -1,4 +1,4 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
+// Vitest Snapshot v1
exports[`element and interpolation 1`] = `
"
diff --git a/src/compiler-core/__tests__/codegen.spec.ts b/packages/compiler-core/__tests__/codegen.spec.ts
similarity index 100%
rename from src/compiler-core/__tests__/codegen.spec.ts
rename to packages/compiler-core/__tests__/codegen.spec.ts
diff --git a/src/compiler-core/__tests__/parse.spec.ts b/packages/compiler-core/__tests__/parse.spec.ts
similarity index 100%
rename from src/compiler-core/__tests__/parse.spec.ts
rename to packages/compiler-core/__tests__/parse.spec.ts
diff --git a/src/compiler-core/__tests__/transform.spec.ts b/packages/compiler-core/__tests__/transform.spec.ts
similarity index 100%
rename from src/compiler-core/__tests__/transform.spec.ts
rename to packages/compiler-core/__tests__/transform.spec.ts
diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json
new file mode 100644
index 00000000..7dfa24bf
--- /dev/null
+++ b/packages/compiler-core/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@mini-vue/compiler-core",
+ "version": "1.0.0",
+ "description": "@mini-vue/compiler-core",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@mini-vue/shared": "workspace:^1.0.0"
+ }
+}
diff --git a/src/compiler-core/src/ast.ts b/packages/compiler-core/src/ast.ts
similarity index 100%
rename from src/compiler-core/src/ast.ts
rename to packages/compiler-core/src/ast.ts
diff --git a/src/compiler-core/src/codegen.ts b/packages/compiler-core/src/codegen.ts
similarity index 99%
rename from src/compiler-core/src/codegen.ts
rename to packages/compiler-core/src/codegen.ts
index 8ade3c6b..a210a392 100644
--- a/src/compiler-core/src/codegen.ts
+++ b/packages/compiler-core/src/codegen.ts
@@ -1,4 +1,4 @@
-import { isString } from "../../shared";
+import { isString } from "@mini-vue/shared";
import { NodeTypes } from "./ast";
import {
CREATE_ELEMENT_VNODE,
diff --git a/src/compiler-core/src/compile.ts b/packages/compiler-core/src/compile.ts
similarity index 100%
rename from src/compiler-core/src/compile.ts
rename to packages/compiler-core/src/compile.ts
diff --git a/src/compiler-core/src/index.ts b/packages/compiler-core/src/index.ts
similarity index 100%
rename from src/compiler-core/src/index.ts
rename to packages/compiler-core/src/index.ts
diff --git a/src/compiler-core/src/parse.ts b/packages/compiler-core/src/parse.ts
similarity index 100%
rename from src/compiler-core/src/parse.ts
rename to packages/compiler-core/src/parse.ts
diff --git a/src/compiler-core/src/runtimeHelpers.ts b/packages/compiler-core/src/runtimeHelpers.ts
similarity index 100%
rename from src/compiler-core/src/runtimeHelpers.ts
rename to packages/compiler-core/src/runtimeHelpers.ts
diff --git a/src/compiler-core/src/transform.ts b/packages/compiler-core/src/transform.ts
similarity index 95%
rename from src/compiler-core/src/transform.ts
rename to packages/compiler-core/src/transform.ts
index 5f24e60f..fda05562 100644
--- a/src/compiler-core/src/transform.ts
+++ b/packages/compiler-core/src/transform.ts
@@ -72,7 +72,7 @@ function createTransformContext(root, options): any {
helpers: new Map(),
helper(name) {
// 这里会收集调用的次数
- // TODO 但是为什么收集次数呢?
+ // 收集次数是为了给删除做处理的, (当只有 count 为0 的时候才需要真的删除掉)
// helpers 数据会在后续生成代码的时候用到
const count = context.helpers.get(name) || 0;
context.helpers.set(name, count + 1);
diff --git a/src/compiler-core/src/transforms/transformElement.ts b/packages/compiler-core/src/transforms/transformElement.ts
similarity index 100%
rename from src/compiler-core/src/transforms/transformElement.ts
rename to packages/compiler-core/src/transforms/transformElement.ts
diff --git a/src/compiler-core/src/transforms/transformExpression.ts b/packages/compiler-core/src/transforms/transformExpression.ts
similarity index 100%
rename from src/compiler-core/src/transforms/transformExpression.ts
rename to packages/compiler-core/src/transforms/transformExpression.ts
diff --git a/src/compiler-core/src/transforms/transformText.ts b/packages/compiler-core/src/transforms/transformText.ts
similarity index 61%
rename from src/compiler-core/src/transforms/transformText.ts
rename to packages/compiler-core/src/transforms/transformText.ts
index 45efb5e8..a44c528e 100644
--- a/src/compiler-core/src/transforms/transformText.ts
+++ b/packages/compiler-core/src/transforms/transformText.ts
@@ -26,24 +26,26 @@ export function transformText(node, context) {
// 看看下一个节点是不是 text 类
for (let j = i + 1; j < children.length; j++) {
const next = children[j];
+ if (isText(next)) {
+ // currentContainer 的目的是把相邻的节点都放到一个 容器内
+ if (!currentContainer) {
+ currentContainer = children[i] = {
+ type: NodeTypes.COMPOUND_EXPRESSION,
+ loc: child.loc,
+ children: [child],
+ };
+ }
- // currentContainer 的目的是把相邻的节点都放到一个 容器内
- if (!currentContainer) {
- currentContainer = children[i] = {
- type: NodeTypes.COMPOUND_EXPRESSION,
- loc: child.loc,
- children: [child],
- };
+ currentContainer.children.push(` + `, next);
+ // 把当前的节点放到容器内, 然后删除掉j
+ children.splice(j, 1);
+ // 因为把 j 删除了,所以这里就少了一个元素,那么 j 需要 --
+ j--;
+ } else {
+ currentContainer = undefined;
+ break;
}
-
- currentContainer.children.push(` + `, next);
- // 把当前的节点放到容器内, 然后删除掉j
- children.splice(j, 1);
- // 因为把 j 删除了,所以这里就少了一个元素,那么 j 需要 --
- j--;
}
- } else {
- currentContainer = undefined;
}
}
};
diff --git a/src/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts
similarity index 100%
rename from src/compiler-core/src/utils.ts
rename to packages/compiler-core/src/utils.ts
diff --git a/src/reactivity/__tests__/computed.spec.ts b/packages/reactivity/__tests__/computed.spec.ts
similarity index 94%
rename from src/reactivity/__tests__/computed.spec.ts
rename to packages/reactivity/__tests__/computed.spec.ts
index 59f2ba03..0bc9f811 100644
--- a/src/reactivity/__tests__/computed.spec.ts
+++ b/packages/reactivity/__tests__/computed.spec.ts
@@ -1,5 +1,6 @@
import { computed } from "../src/computed";
import { reactive } from "../src/reactive";
+import {vi} from 'vitest'
describe("computed", () => {
it("happy path", () => {
@@ -19,7 +20,7 @@ describe("computed", () => {
const value = reactive({
foo: 1,
});
- const getter = jest.fn(() => {
+ const getter = vi.fn(() => {
return value.foo;
});
const cValue = computed(getter);
diff --git a/src/reactivity/__tests__/dep.spec.ts b/packages/reactivity/__tests__/dep.spec.ts
similarity index 100%
rename from src/reactivity/__tests__/dep.spec.ts
rename to packages/reactivity/__tests__/dep.spec.ts
diff --git a/src/reactivity/__tests__/effect.spec.ts b/packages/reactivity/__tests__/effect.spec.ts
similarity index 95%
rename from src/reactivity/__tests__/effect.spec.ts
rename to packages/reactivity/__tests__/effect.spec.ts
index 6010da9e..2d098712 100644
--- a/src/reactivity/__tests__/effect.spec.ts
+++ b/packages/reactivity/__tests__/effect.spec.ts
@@ -1,9 +1,10 @@
import { reactive } from "../src/reactive";
import { effect, stop } from "../src/effect";
+import { vi } from "vitest";
describe("effect", () => {
it("should run the passed function once (wrapped by a effect)", () => {
- const fnSpy = jest.fn(() => {});
+ const fnSpy = vi.fn(() => {});
effect(fnSpy);
expect(fnSpy).toHaveBeenCalledTimes(1);
});
@@ -66,7 +67,7 @@ describe("effect", () => {
it("scheduler", () => {
let dummy;
let run: any;
- const scheduler = jest.fn(() => {
+ const scheduler = vi.fn(() => {
run = runner;
});
const obj = reactive({ foo: 1 });
@@ -108,7 +109,7 @@ describe("effect", () => {
});
it("events: onStop", () => {
- const onStop = jest.fn();
+ const onStop = vi.fn();
const runner = effect(() => {}, {
onStop,
});
diff --git a/src/reactivity/__tests__/reactive.spec.ts b/packages/reactivity/__tests__/reactive.spec.ts
similarity index 100%
rename from src/reactivity/__tests__/reactive.spec.ts
rename to packages/reactivity/__tests__/reactive.spec.ts
diff --git a/src/reactivity/__tests__/readonly.spec.ts b/packages/reactivity/__tests__/readonly.spec.ts
similarity index 100%
rename from src/reactivity/__tests__/readonly.spec.ts
rename to packages/reactivity/__tests__/readonly.spec.ts
diff --git a/src/reactivity/__tests__/ref.spec.ts b/packages/reactivity/__tests__/ref.spec.ts
similarity index 100%
rename from src/reactivity/__tests__/ref.spec.ts
rename to packages/reactivity/__tests__/ref.spec.ts
diff --git a/src/reactivity/__tests__/shallowReadonly.spec.ts b/packages/reactivity/__tests__/shallowReadonly.spec.ts
similarity index 100%
rename from src/reactivity/__tests__/shallowReadonly.spec.ts
rename to packages/reactivity/__tests__/shallowReadonly.spec.ts
diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json
new file mode 100644
index 00000000..6056f9ba
--- /dev/null
+++ b/packages/reactivity/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@mini-vue/reactivity",
+ "version": "1.0.0",
+ "description": "@mini-vue/reactivity",
+ "scripts": {
+ "test": "jest"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@mini-vue/shared": "workspace:^1.0.0"
+ }
+}
diff --git a/src/reactivity/src/baseHandlers.ts b/packages/reactivity/src/baseHandlers.ts
similarity index 96%
rename from src/reactivity/src/baseHandlers.ts
rename to packages/reactivity/src/baseHandlers.ts
index 38a91cd3..2bb7ed7f 100644
--- a/src/reactivity/src/baseHandlers.ts
+++ b/packages/reactivity/src/baseHandlers.ts
@@ -1,4 +1,4 @@
-import { ReactiveEffect, track, trigger } from "./effect";
+import { track, trigger } from "./effect";
import {
reactive,
ReactiveFlags,
@@ -7,7 +7,7 @@ import {
readonlyMap,
shallowReadonlyMap,
} from "./reactive";
-import { isObject } from "../../shared/index";
+import { isObject } from "@mini-vue/shared";
const get = createGetter();
const set = createSetter();
diff --git a/src/reactivity/src/computed.ts b/packages/reactivity/src/computed.ts
similarity index 100%
rename from src/reactivity/src/computed.ts
rename to packages/reactivity/src/computed.ts
diff --git a/src/reactivity/src/dep.ts b/packages/reactivity/src/dep.ts
similarity index 100%
rename from src/reactivity/src/dep.ts
rename to packages/reactivity/src/dep.ts
diff --git a/src/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts
similarity index 99%
rename from src/reactivity/src/effect.ts
rename to packages/reactivity/src/effect.ts
index e5f35f3c..cdc21a45 100644
--- a/src/reactivity/src/effect.ts
+++ b/packages/reactivity/src/effect.ts
@@ -1,5 +1,5 @@
import { createDep } from "./dep";
-import { extend } from "../../shared/index";
+import { extend } from "@mini-vue/shared";
let activeEffect = void 0;
let shouldTrack = false;
diff --git a/src/reactivity/src/index.ts b/packages/reactivity/src/index.ts
similarity index 78%
rename from src/reactivity/src/index.ts
rename to packages/reactivity/src/index.ts
index 09dc8098..f95665a4 100644
--- a/src/reactivity/src/index.ts
+++ b/packages/reactivity/src/index.ts
@@ -9,6 +9,6 @@ export {
export { ref, proxyRefs, unRef, isRef } from "./ref";
-export { effect, stop } from "./effect";
+export { effect, stop, ReactiveEffect } from "./effect";
export { computed } from "./computed";
diff --git a/src/reactivity/src/reactive.ts b/packages/reactivity/src/reactive.ts
similarity index 100%
rename from src/reactivity/src/reactive.ts
rename to packages/reactivity/src/reactive.ts
diff --git a/src/reactivity/src/ref.ts b/packages/reactivity/src/ref.ts
similarity index 97%
rename from src/reactivity/src/ref.ts
rename to packages/reactivity/src/ref.ts
index 35b36e47..523b35ad 100644
--- a/src/reactivity/src/ref.ts
+++ b/packages/reactivity/src/ref.ts
@@ -1,6 +1,6 @@
import { trackEffects, triggerEffects, isTracking } from "./effect";
import { createDep } from "./dep";
-import { isObject, hasChanged } from "../../shared";
+import { isObject, hasChanged } from "@mini-vue/shared";
import { reactive } from "./reactive";
export class RefImpl {
diff --git a/packages/runtime-core/__tests__/apiWatch.spec.ts b/packages/runtime-core/__tests__/apiWatch.spec.ts
new file mode 100644
index 00000000..fa0772c2
--- /dev/null
+++ b/packages/runtime-core/__tests__/apiWatch.spec.ts
@@ -0,0 +1,53 @@
+import { reactive } from "@mini-vue/reactivity";
+import { watchEffect } from "../src/apiWatch";
+import { nextTick } from "../src/scheduler";
+import { vi } from "vitest";
+
+describe("api: watch", () => {
+ it("effect", async () => {
+ const state = reactive({ count: 0 });
+ let dummy;
+ watchEffect(() => {
+ dummy = state.count;
+ });
+ expect(dummy).toBe(0);
+
+ state.count++;
+ await nextTick();
+ expect(dummy).toBe(1);
+ });
+
+ it("stopping the watcher (effect)", async () => {
+ const state = reactive({ count: 0 });
+ let dummy;
+ const stop: any = watchEffect(() => {
+ dummy = state.count;
+ });
+ expect(dummy).toBe(0);
+
+ stop();
+ state.count++;
+ await nextTick();
+ // should not update
+ expect(dummy).toBe(0);
+ });
+
+ it("cleanup registration (effect)", async () => {
+ const state = reactive({ count: 0 });
+ const cleanup = vi.fn();
+ let dummy;
+ const stop: any = watchEffect((onCleanup) => {
+ onCleanup(cleanup);
+ dummy = state.count;
+ });
+ expect(dummy).toBe(0);
+
+ state.count++;
+ await nextTick();
+ expect(cleanup).toHaveBeenCalledTimes(1);
+ expect(dummy).toBe(1);
+
+ stop();
+ expect(cleanup).toHaveBeenCalledTimes(2);
+ });
+});
diff --git a/packages/runtime-core/__tests__/componentEmits.spec.ts b/packages/runtime-core/__tests__/componentEmits.spec.ts
new file mode 100644
index 00000000..6f820802
--- /dev/null
+++ b/packages/runtime-core/__tests__/componentEmits.spec.ts
@@ -0,0 +1,73 @@
+import { nodeOps, render, h } from "@mini-vue/runtime-test";
+import {vi} from 'vitest'
+
+describe("component: emits", () => {
+ test("trigger handlers", () => {
+ const Foo = {
+ render() {
+ return h("foo");
+ },
+ setup(props, { emit }) {
+ // the `emit` function is bound on component instances
+ emit("foo");
+ emit("bar");
+ },
+ };
+
+ const onfoo = vi.fn();
+ const onBar = vi.fn();
+ const Comp = {
+ render() {
+ return h(Foo, { onfoo, onBar });
+ },
+ };
+ render(h(Comp), nodeOps.createElement("div"));
+
+ expect(onfoo).not.toHaveBeenCalled();
+ // only capitalized or special chars are considered event listeners
+ expect(onBar).toHaveBeenCalled();
+ });
+
+ test("trigger camelCase handler", () => {
+ const Foo = {
+ render() {
+ return h("foo");
+ },
+ setup(props, { emit }) {
+ emit("test-event");
+ },
+ };
+
+ const fooSpy = vi.fn();
+ const Comp = {
+ render() {
+ return h(Foo, { onTestEvent: fooSpy });
+ },
+ };
+ render(h(Comp), nodeOps.createElement("div"));
+
+ expect(fooSpy).toHaveBeenCalledTimes(1);
+ });
+
+ test("trigger kebab-case handler", () => {
+ const Foo = {
+ render() {
+ return h("foo");
+ },
+ setup(props, { emit }) {
+ emit("test-event");
+ },
+ };
+
+ const fooSpy = vi.fn();
+
+ const Comp = {
+ render() {
+ return h(Foo, { "onTest-event": fooSpy });
+ },
+ };
+ render(h(Comp), nodeOps.createElement("div"));
+
+ expect(fooSpy).toHaveBeenCalledTimes(1);
+ });
+});
diff --git a/packages/runtime-core/__tests__/rendererComponent.spec.ts b/packages/runtime-core/__tests__/rendererComponent.spec.ts
new file mode 100644
index 00000000..f50d48f4
--- /dev/null
+++ b/packages/runtime-core/__tests__/rendererComponent.spec.ts
@@ -0,0 +1,26 @@
+import { h } from "@mini-vue/runtime-dom";
+import { nodeOps, render, serializeInner } from "@mini-vue/runtime-test";
+
+describe("renderer: component", () => {
+ it("should create an Component ", () => {
+ const Comp = {
+ render: () => {
+ return h("div");
+ },
+ };
+ const root = nodeOps.createElement("div");
+ render(h(Comp), root);
+ expect(serializeInner(root)).toBe(``);
+ });
+
+ it("should create an Component with direct text children", () => {
+ const Comp = {
+ render: () => {
+ return h("div", null, "test");
+ },
+ };
+ const root = nodeOps.createElement("div");
+ render(h(Comp), root);
+ expect(serializeInner(root)).toBe(`test
`);
+ });
+});
diff --git a/packages/runtime-core/__tests__/rendererElement.spec.ts b/packages/runtime-core/__tests__/rendererElement.spec.ts
new file mode 100644
index 00000000..f6e939ae
--- /dev/null
+++ b/packages/runtime-core/__tests__/rendererElement.spec.ts
@@ -0,0 +1,26 @@
+import { h } from "@mini-vue/runtime-core";
+import { nodeOps, render, serializeInner as inner } from "@mini-vue/runtime-test";
+
+describe("renderer: element", () => {
+ let root;
+
+ beforeEach(() => {
+ root = nodeOps.createElement("div");
+ });
+
+ it("should create an element", () => {
+ render(h("div"), root);
+ expect(inner(root)).toBe("");
+ });
+
+ it('should create an element with props', () => {
+ render(h('div', { id: 'foo', class: 'bar' },[]), root)
+ expect(inner(root)).toBe('')
+ })
+ it('should create an element with direct text children and props', () => {
+ render(h('div', { id: 'foo' }, "bar"), root)
+ expect(inner(root)).toBe('bar
')
+ })
+});
+
+
diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json
new file mode 100644
index 00000000..fb73d448
--- /dev/null
+++ b/packages/runtime-core/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "@mini-vue/runtime-core",
+ "version": "1.0.0",
+ "description": "@mini-vue/runtime-core",
+ "scripts": {
+ "test": "jest"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@mini-vue/reactivity": "workspace:^1.0.0",
+ "@mini-vue/shared": "workspace:^1.0.0"
+ }
+}
diff --git a/packages/runtime-core/src/.pnpm-debug.log b/packages/runtime-core/src/.pnpm-debug.log
new file mode 100644
index 00000000..36435683
--- /dev/null
+++ b/packages/runtime-core/src/.pnpm-debug.log
@@ -0,0 +1,20 @@
+{
+ "0 debug pnpm:scope": {
+ "selected": 1,
+ "workspacePrefix": "/Users/cxr/projects/mini-vue/code/mini-vue"
+ },
+ "1 error pnpm": {
+ "errno": 1,
+ "code": "ELIFECYCLE",
+ "pkgid": "@mini-vue/runtime-core@1.0.0",
+ "stage": "test",
+ "script": "jest \"runtime-core\"",
+ "pkgname": "@mini-vue/runtime-core",
+ "err": {
+ "name": "pnpm",
+ "message": "@mini-vue/runtime-core@1.0.0 test: `jest \"runtime-core\"`\nExit status 1",
+ "code": "ELIFECYCLE",
+ "stack": "pnpm: @mini-vue/runtime-core@1.0.0 test: `jest \"runtime-core\"`\nExit status 1\n at EventEmitter. (/opt/homebrew/Cellar/pnpm/6.32.4/libexec/lib/node_modules/pnpm/dist/pnpm.cjs:105736:20)\n at EventEmitter.emit (node:events:527:28)\n at ChildProcess. (/opt/homebrew/Cellar/pnpm/6.32.4/libexec/lib/node_modules/pnpm/dist/pnpm.cjs:92297:18)\n at ChildProcess.emit (node:events:527:28)\n at maybeClose (node:internal/child_process:1092:16)\n at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)"
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/runtime-core/apiInject.ts b/packages/runtime-core/src/apiInject.ts
similarity index 100%
rename from src/runtime-core/apiInject.ts
rename to packages/runtime-core/src/apiInject.ts
diff --git a/packages/runtime-core/src/apiWatch.ts b/packages/runtime-core/src/apiWatch.ts
new file mode 100644
index 00000000..f1f1d396
--- /dev/null
+++ b/packages/runtime-core/src/apiWatch.ts
@@ -0,0 +1,53 @@
+import { ReactiveEffect } from "@mini-vue/reactivity";
+import { queuePreFlushCb } from "./scheduler";
+
+// Simple effect.
+export function watchEffect(effect) {
+ return doWatch(effect);
+}
+
+function doWatch(source) {
+ // 把 job 添加到 pre flush 里面
+ // 也就是在视图更新完成之前进行渲染(待确认?)
+ // 当逻辑执行到这里的时候 就已经触发了 watchEffect
+ const job = () => {
+ effect.run();
+ };
+
+ // 当触发 trigger 的时候会调用 scheduler
+ // 这里用 scheduler 的目的就是在更新的时候
+ // 让回调可以在 render 前执行 变成一个异步的行为(这里也可以通过 flush 来改变)
+ const scheduler = () => queuePreFlushCb(job);
+
+ // cleanup 的作用是为了解决初始化的时候不调用 fn(用户传过来的 cleanup)
+ // 第一次执行 watchEffect 的时候 onCleanup 会被调用 而这时候只需要把 fn 赋值给 cleanup 就可以
+ // 当第二次执行 watchEffect 的时候就需要执行 fn 了 也就是 cleanup
+ let cleanup;
+ const onCleanup = (fn) => {
+ // 当 effect stop 的时候也需要执行 cleanup
+ // 所以可以在 onStop 中直接执行 fn
+ cleanup = effect.onStop = () => {
+ fn();
+ };
+ };
+ // 这里是在执行 effect.run 的时候就会调用的
+ const getter = () => {
+ // 这个的检测就是初始化不执行 cleanup 的关键点
+ if (cleanup) {
+ cleanup();
+ }
+
+ source(onCleanup);
+ };
+
+ const effect = new ReactiveEffect(getter, scheduler);
+
+ // 这里执行的就是 getter
+ effect.run();
+
+ // 返回值为 StopHandle
+ // 只需要调用 stop 即可
+ return () => {
+ effect.stop();
+ };
+}
diff --git a/src/runtime-core/component.ts b/packages/runtime-core/src/component.ts
similarity index 96%
rename from src/runtime-core/component.ts
rename to packages/runtime-core/src/component.ts
index c2719424..fa157212 100644
--- a/src/runtime-core/component.ts
+++ b/packages/runtime-core/src/component.ts
@@ -2,7 +2,7 @@ import { initProps } from "./componentProps";
import { initSlots } from "./componentSlots";
import { emit } from "./componentEmits";
import { PublicInstanceProxyHandlers } from "./componentPublicInstance";
-import { proxyRefs, shallowReadonly } from "../reactivity/src";
+import { proxyRefs, shallowReadonly } from "@mini-vue/reactivity";
export function createComponentInstance(vnode, parent) {
const instance = {
type: vnode.type,
@@ -125,7 +125,7 @@ function finishComponentSetup(instance) {
const Component = instance.type;
if (!instance.render) {
- // 如果 compile 有值 并且当然组件没有 render 函数,那么就需要把 template 编译成 render 函数
+ // 如果 compile 有值 并且当组件没有 render 函数,那么就需要把 template 编译成 render 函数
if (compile && !Component.render) {
if (Component.template) {
// 这里就是 runtime 模块和 compile 模块结合点
diff --git a/src/runtime-core/componentEmits.ts b/packages/runtime-core/src/componentEmits.ts
similarity index 61%
rename from src/runtime-core/componentEmits.ts
rename to packages/runtime-core/src/componentEmits.ts
index f535f962..f15eb297 100644
--- a/src/runtime-core/componentEmits.ts
+++ b/packages/runtime-core/src/componentEmits.ts
@@ -1,4 +1,4 @@
-import { camelize, toHandlerKey } from "../shared/index";
+import { camelize, hyphenate, toHandlerKey } from "@mini-vue/shared";
export function emit(instance, event: string, ...rawArgs) {
// 1. emit 是基于 props 里面的 onXXX 的函数来进行匹配的
// 所以我们先从 props 中看看是否有对应的 event handler
@@ -6,8 +6,14 @@ export function emit(instance, event: string, ...rawArgs) {
// ex: event -> click 那么这里取的就是 onClick
// 让事情变的复杂一点如果是烤肉串命名的话,需要转换成 change-page -> changePage
// 需要得到事件名称
- const handlerName = toHandlerKey(camelize(event));
- const handler = props[handlerName];
+ let handler = props[toHandlerKey(camelize(event))];
+
+ // 如果上面没有匹配的话 那么在检测一下 event 是不是 kebab-case 类型
+ if (!handler) {
+ handler = props[(toHandlerKey(hyphenate(event)))]
+ }
+
+
if (handler) {
handler(...rawArgs);
}
diff --git a/src/runtime-core/componentProps.ts b/packages/runtime-core/src/componentProps.ts
similarity index 100%
rename from src/runtime-core/componentProps.ts
rename to packages/runtime-core/src/componentProps.ts
diff --git a/src/runtime-core/componentPublicInstance.ts b/packages/runtime-core/src/componentPublicInstance.ts
similarity index 93%
rename from src/runtime-core/componentPublicInstance.ts
rename to packages/runtime-core/src/componentPublicInstance.ts
index 15ccd74d..c29ecd2c 100644
--- a/src/runtime-core/componentPublicInstance.ts
+++ b/packages/runtime-core/src/componentPublicInstance.ts
@@ -1,4 +1,4 @@
-import { hasOwn } from "../shared";
+import { hasOwn } from "@mini-vue/shared";
const publicPropertiesMap = {
// 当用户调用 instance.proxy.$emit 时就会触发这个函数
@@ -40,7 +40,7 @@ export const PublicInstanceProxyHandlers = {
set({ _: instance }, key, value) {
const { setupState } = instance;
- if (setupState !== {} && hasOwn(setupState, key)) {
+ if (hasOwn(setupState, key)) {
// 有的话 那么就直接赋值
setupState[key] = value;
}
diff --git a/src/runtime-core/componentRenderUtils.ts b/packages/runtime-core/src/componentRenderUtils.ts
similarity index 100%
rename from src/runtime-core/componentRenderUtils.ts
rename to packages/runtime-core/src/componentRenderUtils.ts
diff --git a/src/runtime-core/componentSlots.ts b/packages/runtime-core/src/componentSlots.ts
similarity index 94%
rename from src/runtime-core/componentSlots.ts
rename to packages/runtime-core/src/componentSlots.ts
index 630d2ede..5368d8c3 100644
--- a/src/runtime-core/componentSlots.ts
+++ b/packages/runtime-core/src/componentSlots.ts
@@ -1,4 +1,4 @@
-import { ShapeFlags } from "../shared";
+import { ShapeFlags } from "@mini-vue/shared";
export function initSlots(instance, children) {
const { vnode } = instance;
diff --git a/src/runtime-core/createApp.ts b/packages/runtime-core/src/createApp.ts
similarity index 100%
rename from src/runtime-core/createApp.ts
rename to packages/runtime-core/src/createApp.ts
diff --git a/packages/runtime-core/src/h.ts b/packages/runtime-core/src/h.ts
new file mode 100644
index 00000000..ba305b46
--- /dev/null
+++ b/packages/runtime-core/src/h.ts
@@ -0,0 +1,4 @@
+import { createVNode } from "./vnode";
+export const h = (type: any , props: any = null, children: string | Array = []) => {
+ return createVNode(type, props, children);
+};
diff --git a/src/runtime-core/helpers/renderSlot.ts b/packages/runtime-core/src/helpers/renderSlot.ts
similarity index 97%
rename from src/runtime-core/helpers/renderSlot.ts
rename to packages/runtime-core/src/helpers/renderSlot.ts
index f20cd31a..a20c95e3 100644
--- a/src/runtime-core/helpers/renderSlot.ts
+++ b/packages/runtime-core/src/helpers/renderSlot.ts
@@ -1,4 +1,3 @@
-import { getCurrentInstance } from "../component";
import { createVNode, Fragment } from "../vnode";
/**
diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts
new file mode 100644
index 00000000..42ba6c1f
--- /dev/null
+++ b/packages/runtime-core/src/index.ts
@@ -0,0 +1,28 @@
+export * from "./h";
+export * from "./createApp";
+export { getCurrentInstance, registerRuntimeCompiler } from "./component";
+export { inject, provide } from "./apiInject";
+export { renderSlot } from "./helpers/renderSlot";
+export { createTextVNode, createElementVNode } from "./vnode";
+export { createRenderer } from "./renderer";
+export { toDisplayString } from "@mini-vue/shared";
+export { watchEffect } from "./apiWatch";
+export {
+ // core
+ reactive,
+ ref,
+ readonly,
+ // utilities
+ unRef,
+ proxyRefs,
+ isReadonly,
+ isReactive,
+ isProxy,
+ isRef,
+ // advanced
+ shallowReadonly,
+ // effect
+ effect,
+ stop,
+ computed,
+} from "@mini-vue/reactivity";
diff --git a/src/runtime-core/renderer.ts b/packages/runtime-core/src/renderer.ts
similarity index 97%
rename from src/runtime-core/renderer.ts
rename to packages/runtime-core/src/renderer.ts
index 88b70e18..89cfeccb 100644
--- a/src/runtime-core/renderer.ts
+++ b/packages/runtime-core/src/renderer.ts
@@ -1,7 +1,7 @@
-import { ShapeFlags } from "../shared";
+import { ShapeFlags } from "@mini-vue/shared";
import { createComponentInstance } from "./component";
import { queueJob } from "./scheduler";
-import { effect } from "../reactivity/src";
+import { effect } from "@mini-vue/reactivity";
import { setupComponent } from "./component";
import { Fragment, normalizeVNode, Text } from "./vnode";
import { shouldUpdateComponent } from "./componentRenderUtils";
@@ -19,7 +19,7 @@ export function createRenderer(options) {
} = options;
const render = (vnode, container) => {
- debug.mainPath("调用 patch")();
+ console.log("调用 patch")
patch(null, vnode, container);
};
@@ -157,14 +157,20 @@ export function createRenderer(options) {
hostSetElementText(container, c2 as string);
}
} else {
+ // 看看之前的是不是 text
+ if (prevShapeFlag & ShapeFlags.TEXT_CHILDREN) {
+ // 先清空
+ // 然后在把新的 children 给 mount 生成 element
+ hostSetElementText(container, "");
+ mountChildren(c2, container);
+ } else {
+ // array diff array
// 如果之前是 array_children
// 现在还是 array_children 的话
// 那么我们就需要对比两个 children 啦
- if (prevShapeFlag & ShapeFlags.ARRAY_CHILDREN) {
- if (shapeFlag & ShapeFlags.ARRAY_CHILDREN) {
- patchKeyedChildren(c1, c2, container, anchor, parentComponent);
- }
+ patchKeyedChildren(c1, c2, container, parentComponent, anchor);
}
+
}
}
@@ -598,6 +604,7 @@ export function createRenderer(options) {
}
return {
+ render,
createApp: createAppAPI(render),
};
}
diff --git a/packages/runtime-core/src/scheduler.ts b/packages/runtime-core/src/scheduler.ts
new file mode 100644
index 00000000..b8e197df
--- /dev/null
+++ b/packages/runtime-core/src/scheduler.ts
@@ -0,0 +1,68 @@
+const queue: any[] = [];
+const activePreFlushCbs: any = [];
+
+const p = Promise.resolve();
+let isFlushPending = false;
+
+export function nextTick(fn?) {
+ return fn ? p.then(fn) : p;
+}
+
+export function queueJob(job) {
+ if (!queue.includes(job)) {
+ queue.push(job);
+ // 执行所有的 job
+ queueFlush();
+ }
+}
+
+function queueFlush() {
+ // 如果同时触发了两个组件的更新的话
+ // 这里就会触发两次 then (微任务逻辑)
+ // 但是着是没有必要的
+ // 我们只需要触发一次即可处理完所有的 job 调用
+ // 所以需要判断一下 如果已经触发过 nextTick 了
+ // 那么后面就不需要再次触发一次 nextTick 逻辑了
+ if (isFlushPending) return;
+ isFlushPending = true;
+ nextTick(flushJobs);
+}
+
+export function queuePreFlushCb(cb) {
+ queueCb(cb, activePreFlushCbs);
+}
+
+function queueCb(cb, activeQueue) {
+ // 直接添加到对应的列表内就ok
+ // todo 这里没有考虑 activeQueue 是否已经存在 cb 的情况
+ // 然后在执行 flushJobs 的时候就可以调用 activeQueue 了
+ activeQueue.push(cb);
+
+ // 然后执行队列里面所有的 job
+ queueFlush()
+}
+
+function flushJobs() {
+ isFlushPending = false;
+
+ // 先执行 pre 类型的 job
+ // 所以这里执行的job 是在渲染前的
+ // 也就意味着执行这里的 job 的时候 页面还没有渲染
+ flushPreFlushCbs();
+
+ // 这里是执行 queueJob 的
+ // 比如 render 渲染就是属于这个类型的 job
+ let job;
+ while ((job = queue.shift())) {
+ if (job) {
+ job();
+ }
+ }
+}
+
+function flushPreFlushCbs() {
+ // 执行所有的 pre 类型的 job
+ for (let i = 0; i < activePreFlushCbs.length; i++) {
+ activePreFlushCbs[i]();
+ }
+}
diff --git a/src/runtime-core/vnode.ts b/packages/runtime-core/src/vnode.ts
similarity index 97%
rename from src/runtime-core/vnode.ts
rename to packages/runtime-core/src/vnode.ts
index a582d852..5a5ecf62 100644
--- a/src/runtime-core/vnode.ts
+++ b/packages/runtime-core/src/vnode.ts
@@ -1,4 +1,4 @@
-import { ShapeFlags } from "../shared";
+import { ShapeFlags } from "@mini-vue/shared";
export { createVNode as createElementVNode }
diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json
new file mode 100644
index 00000000..353a6f5a
--- /dev/null
+++ b/packages/runtime-dom/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "@mini-vue/runtime-dom",
+ "version": "1.0.0",
+ "description": "@mini-vue/runtime-dom",
+ "module": "dist/shared.esm-bundler.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@mini-vue/runtime-core": "workspace:^1.0.0",
+ "@mini-vue/shared": "workspace:^1.0.0"
+ }
+}
diff --git a/src/runtime-dom/index.ts b/packages/runtime-dom/src/index.ts
similarity index 94%
rename from src/runtime-dom/index.ts
rename to packages/runtime-dom/src/index.ts
index f808b6e3..582ebaa4 100644
--- a/src/runtime-dom/index.ts
+++ b/packages/runtime-dom/src/index.ts
@@ -1,8 +1,8 @@
// 源码里面这些接口是由 runtime-dom 来实现
// 这里先简单实现
-import { isOn } from "../shared";
-import { createRenderer } from "../runtime-core";
+import { isOn } from "@mini-vue/shared";
+import { createRenderer } from "@mini-vue/runtime-core";
// 后面也修改成和源码一样的实现
function createElement(type) {
@@ -96,4 +96,4 @@ export const createApp = (...args) => {
return ensureRenderer().createApp(...args);
};
-export * from "../runtime-core";
+export * from "@mini-vue/runtime-core"
diff --git a/packages/runtime-test/src/index.ts b/packages/runtime-test/src/index.ts
new file mode 100644
index 00000000..f08dcf8c
--- /dev/null
+++ b/packages/runtime-test/src/index.ts
@@ -0,0 +1,13 @@
+// todo
+// 实现 render 的渲染接口
+// 实现序列化
+import { createRenderer } from "@mini-vue/runtime-core";
+import { extend } from "@mini-vue/shared";
+import { nodeOps } from "./nodeOps";
+import { patchProp } from "./patchProp";
+
+export const { render } = createRenderer(extend({ patchProp }, nodeOps));
+
+export * from "./nodeOps";
+export * from "./serialize"
+export * from '@mini-vue/runtime-core'
\ No newline at end of file
diff --git a/packages/runtime-test/src/nodeOps.ts b/packages/runtime-test/src/nodeOps.ts
new file mode 100644
index 00000000..d4c842de
--- /dev/null
+++ b/packages/runtime-test/src/nodeOps.ts
@@ -0,0 +1,44 @@
+export const enum NodeTypes {
+ ELEMENT = "element",
+ TEXT = "TEXT",
+}
+
+let nodeId = 0;
+// 这个函数会在 runtime-core 初始化 element 的时候调用
+function createElement(tag: string) {
+ // 如果是基于 dom 的话 那么这里会返回 dom 元素
+ // 这里是为了测试 所以只需要反正一个对象就可以了
+ // 后面的话 通过这个对象来做测试
+ const node = {
+ tag,
+ id: nodeId++,
+ type: NodeTypes.ELEMENT,
+ props: {},
+ children: [],
+ parentNode: null,
+ };
+
+ return node;
+}
+
+function insert(child, parent) {
+ parent.children.push(child);
+ child.parentNode = parent;
+}
+
+function parentNode(node) {
+ return node.parentNode;
+}
+
+function setElementText(el, text) {
+ el.children = [
+ {
+ id: nodeId++,
+ type: NodeTypes.TEXT,
+ text,
+ parentNode: el,
+ },
+ ];
+}
+
+export const nodeOps = { createElement, insert, parentNode, setElementText };
diff --git a/packages/runtime-test/src/patchProp.ts b/packages/runtime-test/src/patchProp.ts
new file mode 100644
index 00000000..3812622b
--- /dev/null
+++ b/packages/runtime-test/src/patchProp.ts
@@ -0,0 +1,3 @@
+export function patchProp(el, key, prevValue, nextValue) {
+ el.props[key] = nextValue;
+}
diff --git a/packages/runtime-test/src/serialize.ts b/packages/runtime-test/src/serialize.ts
new file mode 100644
index 00000000..798156af
--- /dev/null
+++ b/packages/runtime-test/src/serialize.ts
@@ -0,0 +1,46 @@
+// 把 node 给序列化
+// 测试的时候好对比
+
+import { NodeTypes } from "./nodeOps";
+
+// 序列化: 把一个对象给处理成 string (进行流化)
+export function serialize(node) {
+ if (node.type === NodeTypes.ELEMENT) {
+ return serializeElement(node);
+ } else {
+ return serializeText(node);
+ }
+}
+
+function serializeText(node) {
+ return node.text;
+}
+
+export function serializeInner(node) {
+ // 把所有节点变成一个string
+ return node.children.map((c) => serialize(c)).join(``);
+}
+
+function serializeElement(node) {
+ // 把 props 处理成字符串
+ // 规则:
+ // 如果 value 是 null 的话 那么直接返回 ``
+ // 如果 value 是 `` 的话,那么返回 key
+ // 不然的话返回 key = value(这里的值需要字符串化)
+ const props = Object.keys(node.props)
+ .map((key) => {
+ const value = node.props[key];
+ return value == null
+ ? ``
+ : value === ``
+ ? key
+ : `${key}=${JSON.stringify(value)}`;
+ })
+ .filter(Boolean)
+ .join(" ");
+
+ console.log("node---------", node.children);
+ return `<${node.tag}${props ? ` ${props}` : ``}>${serializeInner(node)}${
+ node.tag
+ }>`;
+}
diff --git a/packages/shared/package.json b/packages/shared/package.json
new file mode 100644
index 00000000..f24acfa5
--- /dev/null
+++ b/packages/shared/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "@mini-vue/shared",
+ "version": "1.0.0",
+ "description": "@mini-vue/shared",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC"
+}
diff --git a/src/shared/index.ts b/packages/shared/src/index.ts
similarity index 66%
rename from src/shared/index.ts
rename to packages/shared/src/index.ts
index e8eaed36..5f89898a 100644
--- a/src/shared/index.ts
+++ b/packages/shared/src/index.ts
@@ -1,12 +1,11 @@
-export * from "./shapeFlags";
-export * from "./toDisplayString"
+export * from "../src/shapeFlags";
+export * from "../src/toDisplayString";
export const isObject = (val) => {
return val !== null && typeof val === "object";
};
-
-export const isString = (val)=> typeof val === "string"
+export const isString = (val) => typeof val === "string";
const camelizeRE = /-(\w)/g;
/**
@@ -43,3 +42,14 @@ export const capitalize = (str: string) =>
*/
export const toHandlerKey = (str: string) =>
str ? `on${capitalize(str)}` : ``;
+
+// 用来匹配 kebab-case 的情况
+// 比如 onTest-event 可以匹配到 T
+// 然后取到 T 在前面加一个 - 就可以
+// \BT 就可以匹配到 T 前面是字母的位置
+const hyphenateRE = /\B([A-Z])/g;
+/**
+ * @private
+ */
+export const hyphenate = (str: string) =>
+ str.replace(hyphenateRE, "-$1").toLowerCase();
diff --git a/src/shared/shapeFlags.ts b/packages/shared/src/shapeFlags.ts
similarity index 100%
rename from src/shared/shapeFlags.ts
rename to packages/shared/src/shapeFlags.ts
diff --git a/src/shared/toDisplayString.ts b/packages/shared/src/toDisplayString.ts
similarity index 100%
rename from src/shared/toDisplayString.ts
rename to packages/shared/src/toDisplayString.ts
diff --git a/packages/vue/.DS_Store b/packages/vue/.DS_Store
new file mode 100644
index 00000000..b73ff006
Binary files /dev/null and b/packages/vue/.DS_Store differ
diff --git a/packages/vue/cypress.config.js b/packages/vue/cypress.config.js
new file mode 100644
index 00000000..17604d9f
--- /dev/null
+++ b/packages/vue/cypress.config.js
@@ -0,0 +1,10 @@
+const { defineConfig } = require('cypress')
+
+module.exports = defineConfig({
+ e2e: {
+ setupNodeEvents(on, config) {
+ // implement node event listeners here
+ },
+ video:false
+ }
+})
\ No newline at end of file
diff --git a/packages/vue/cypress/e2e/apiInject.cy.js b/packages/vue/cypress/e2e/apiInject.cy.js
new file mode 100644
index 00000000..5d9fb184
--- /dev/null
+++ b/packages/vue/cypress/e2e/apiInject.cy.js
@@ -0,0 +1,7 @@
+describe("apiInject", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/apiInject/");
+ cy.contains("apiInject")
+ cy.contains("fooOverride-bar-baz")
+ });
+});
\ No newline at end of file
diff --git a/packages/vue/cypress/e2e/componentEmit.cy.js b/packages/vue/cypress/e2e/componentEmit.cy.js
new file mode 100644
index 00000000..b22d061a
--- /dev/null
+++ b/packages/vue/cypress/e2e/componentEmit.cy.js
@@ -0,0 +1,7 @@
+describe("componentEmit", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/componentEmit/");
+ cy.contains("你好")
+ cy.contains("child")
+ });
+});
diff --git a/packages/vue/cypress/e2e/componentSlots.cy.js b/packages/vue/cypress/e2e/componentSlots.cy.js
new file mode 100644
index 00000000..ca3aa687
--- /dev/null
+++ b/packages/vue/cypress/e2e/componentSlots.cy.js
@@ -0,0 +1,16 @@
+describe("componentSlots", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/componentSlots/");
+ cy.contains("你好");
+ cy.get("[data-test='child']").within(() => {
+ cy.contains("child");
+ cy.contains("我是通过 slot 渲染出来的第一个元素");
+ cy.contains("我是通过 slot 渲染出来的第一个元素");
+ cy.contains("我可以接收到");
+ cy.contains("age: 16");
+ });
+ });
+});
+
+
+
diff --git a/packages/vue/cypress/e2e/componentUpdate.cy.js b/packages/vue/cypress/e2e/componentUpdate.cy.js
new file mode 100644
index 00000000..68f52bcd
--- /dev/null
+++ b/packages/vue/cypress/e2e/componentUpdate.cy.js
@@ -0,0 +1,8 @@
+describe("componentUpdate", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/componentUpdate/");
+ cy.contains("child123")
+ cy.get("button").click()
+ cy.contains("child456")
+ });
+});
\ No newline at end of file
diff --git a/packages/vue/cypress/e2e/customRenderer.cy.js b/packages/vue/cypress/e2e/customRenderer.cy.js
new file mode 100644
index 00000000..13fc104c
--- /dev/null
+++ b/packages/vue/cypress/e2e/customRenderer.cy.js
@@ -0,0 +1,6 @@
+describe("customRenderer", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/customRenderer/");
+ cy.get("canvas").should("exist")
+ });
+});
\ No newline at end of file
diff --git a/packages/vue/cypress/e2e/getCurrentInstance.cy.js b/packages/vue/cypress/e2e/getCurrentInstance.cy.js
new file mode 100644
index 00000000..acc49fad
--- /dev/null
+++ b/packages/vue/cypress/e2e/getCurrentInstance.cy.js
@@ -0,0 +1,6 @@
+describe("currentInstance", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/getCurrentInstance/");
+ cy.contains("getCurrentInstance")
+ });
+});
\ No newline at end of file
diff --git a/packages/vue/cypress/e2e/helloworld.cy.js b/packages/vue/cypress/e2e/helloworld.cy.js
new file mode 100644
index 00000000..373dd181
--- /dev/null
+++ b/packages/vue/cypress/e2e/helloworld.cy.js
@@ -0,0 +1,8 @@
+describe("helloworld", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/helloWorld/");
+ cy.contains("主页");
+ cy.contains("hello world:");
+ cy.contains("count: 0");
+ });
+});
diff --git a/packages/vue/cypress/e2e/nextTicker.cy.js b/packages/vue/cypress/e2e/nextTicker.cy.js
new file mode 100644
index 00000000..80fbeab6
--- /dev/null
+++ b/packages/vue/cypress/e2e/nextTicker.cy.js
@@ -0,0 +1,10 @@
+describe("nextTicker", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/nextTicker/");
+ cy.contains("主页")
+ cy.contains("child1")
+ cy.contains("count:1")
+ cy.contains("child2")
+ cy.contains("count:1")
+ });
+});
\ No newline at end of file
diff --git a/packages/vue/cypress/e2e/patchChildren.cy.js b/packages/vue/cypress/e2e/patchChildren.cy.js
new file mode 100644
index 00000000..611b5e9b
--- /dev/null
+++ b/packages/vue/cypress/e2e/patchChildren.cy.js
@@ -0,0 +1,15 @@
+describe("patchChildren", () => {
+ it("render", () => {
+ cy.visit("http://localhost:3000/example/patchChildren/");
+
+ cy.get("[data-cy='contain']").should("text", "ABCEFG");
+
+ cy.get("button").click();
+
+ cy.get("[data-cy='contain']").should("text", "ABECDFG");
+
+ cy.get("button").click();
+
+ cy.get("[data-cy='contain']").should("text", "ABCEFG");
+ });
+});
diff --git a/packages/vue/cypress/fixtures/example.json b/packages/vue/cypress/fixtures/example.json
new file mode 100644
index 00000000..02e42543
--- /dev/null
+++ b/packages/vue/cypress/fixtures/example.json
@@ -0,0 +1,5 @@
+{
+ "name": "Using fixtures to represent data",
+ "email": "hello@cypress.io",
+ "body": "Fixtures are a great way to mock data for responses to routes"
+}
diff --git a/packages/vue/cypress/support/commands.js b/packages/vue/cypress/support/commands.js
new file mode 100644
index 00000000..66ea16ef
--- /dev/null
+++ b/packages/vue/cypress/support/commands.js
@@ -0,0 +1,25 @@
+// ***********************************************
+// This example commands.js shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
\ No newline at end of file
diff --git a/packages/vue/cypress/support/e2e.js b/packages/vue/cypress/support/e2e.js
new file mode 100644
index 00000000..0e7290a1
--- /dev/null
+++ b/packages/vue/cypress/support/e2e.js
@@ -0,0 +1,20 @@
+// ***********************************************************
+// This example support/e2e.js is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands'
+
+// Alternatively you can use CommonJS syntax:
+// require('./commands')
\ No newline at end of file
diff --git a/lib/mini-vue.cjs.js b/packages/vue/dist/mini-vue.cjs.js
similarity index 94%
rename from lib/mini-vue.cjs.js
rename to packages/vue/dist/mini-vue.cjs.js
index 17d835a4..8fd76640 100644
--- a/lib/mini-vue.cjs.js
+++ b/packages/vue/dist/mini-vue.cjs.js
@@ -2,38 +2,6 @@
Object.defineProperty(exports, '__esModule', { value: true });
-const c2eMap = {
- 你好: "hello",
- "调用 patch": "call patch function",
-};
-const e2cMap = {
- hello: "你好",
-};
-class LanguageTranslator {
- constructor() {
- this.currentLanguage = "cn";
- }
- get currentMap() {
- return this.currentLanguage === "cn" ? e2cMap : c2eMap;
- }
- transition(text) {
- const result = this.currentMap[text];
- return result ? result : text;
- }
-}
-
-class Debug {
- constructor(languageTranslator) {
- this.languageTranslator = languageTranslator;
- }
- mainPath(text) {
- return window.console.log.bind(window.console, `%c[ mainPath ] ${this.languageTranslator.transition(text)}`, "color:red");
- }
-}
-
-const debug$1 = new Debug(new LanguageTranslator());
-window.debug = debug$1;
-
var ShapeFlags;
(function (ShapeFlags) {
ShapeFlags[ShapeFlags["ELEMENT"] = 1] = "ELEMENT";
@@ -65,6 +33,8 @@ function hasOwn(val, key) {
}
const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
const toHandlerKey = (str) => str ? `on${capitalize(str)}` : ``;
+const hyphenateRE = /\B([A-Z])/g;
+const hyphenate = (str) => str.replace(hyphenateRE, "-$1").toLowerCase();
const createVNode = function (type, props, children) {
const vnode = {
@@ -112,7 +82,7 @@ function getShapeFlag(type) {
: 4;
}
-const h = (type, props, children) => {
+const h = (type, props = null, children = []) => {
return createVNode(type, props, children);
};
@@ -157,8 +127,10 @@ const normalizeObjectSlots = (rawSlots, slots) => {
function emit(instance, event, ...rawArgs) {
const props = instance.props;
- const handlerName = toHandlerKey(camelize(event));
- const handler = props[handlerName];
+ let handler = props[toHandlerKey(camelize(event))];
+ if (!handler) {
+ handler = props[(toHandlerKey(hyphenate(event)))];
+ }
if (handler) {
handler(...rawArgs);
}
@@ -189,7 +161,7 @@ const PublicInstanceProxyHandlers = {
},
set({ _: instance }, key, value) {
const { setupState } = instance;
- if (setupState !== {} && hasOwn(setupState, key)) {
+ if (hasOwn(setupState, key)) {
setupState[key] = value;
}
return true;
@@ -608,6 +580,7 @@ function renderSlot(slots, name, props = {}) {
}
const queue = [];
+const activePreFlushCbs = [];
const p = Promise.resolve();
let isFlushPending = false;
function nextTick(fn) {
@@ -625,8 +598,16 @@ function queueFlush() {
isFlushPending = true;
nextTick(flushJobs);
}
+function queuePreFlushCb(cb) {
+ queueCb(cb, activePreFlushCbs);
+}
+function queueCb(cb, activeQueue) {
+ activeQueue.push(cb);
+ queueFlush();
+}
function flushJobs() {
isFlushPending = false;
+ flushPreFlushCbs();
let job;
while ((job = queue.shift())) {
if (job) {
@@ -634,6 +615,11 @@ function flushJobs() {
}
}
}
+function flushPreFlushCbs() {
+ for (let i = 0; i < activePreFlushCbs.length; i++) {
+ activePreFlushCbs[i]();
+ }
+}
function shouldUpdateComponent(prevVNode, nextVNode) {
const { props: prevProps } = prevVNode;
@@ -666,7 +652,7 @@ function hasPropsChanged(prevProps, nextProps) {
function createRenderer(options) {
const { createElement: hostCreateElement, setElementText: hostSetElementText, patchProp: hostPatchProp, insert: hostInsert, remove: hostRemove, setText: hostSetText, createText: hostCreateText, } = options;
const render = (vnode, container) => {
- debug.mainPath("调用 patch")();
+ console.log("调用 patch");
patch(null, vnode, container);
};
function patch(n1, n2, container = null, anchor = null, parentComponent = null) {
@@ -753,10 +739,12 @@ function createRenderer(options) {
}
}
else {
- if (prevShapeFlag & 16) {
- if (shapeFlag & 16) {
- patchKeyedChildren(c1, c2, container, anchor, parentComponent);
- }
+ if (prevShapeFlag & 8) {
+ hostSetElementText(container, "");
+ mountChildren(c2, container);
+ }
+ else {
+ patchKeyedChildren(c1, c2, container, parentComponent, anchor);
}
}
}
@@ -989,6 +977,7 @@ function createRenderer(options) {
console.log("更新组件的 slots");
}
return {
+ render,
createApp: createAppAPI(render),
};
}
@@ -1034,6 +1023,33 @@ function getSequence(arr) {
return result;
}
+function watchEffect(effect) {
+ return doWatch(effect);
+}
+function doWatch(source) {
+ const job = () => {
+ effect.run();
+ };
+ const scheduler = () => queuePreFlushCb(job);
+ let cleanup;
+ const onCleanup = (fn) => {
+ cleanup = effect.onStop = () => {
+ fn();
+ };
+ };
+ const getter = () => {
+ if (cleanup) {
+ cleanup();
+ }
+ source(onCleanup);
+ };
+ const effect = new ReactiveEffect(getter, scheduler);
+ effect.run();
+ return () => {
+ effect.stop();
+ };
+}
+
function createElement(type) {
console.log("CreateElement", type);
const element = document.createElement(type);
@@ -1118,6 +1134,20 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
createElementVNode: createVNode,
createRenderer: createRenderer,
toDisplayString: toDisplayString,
+ watchEffect: watchEffect,
+ reactive: reactive,
+ ref: ref,
+ readonly: readonly,
+ unRef: unRef,
+ proxyRefs: proxyRefs,
+ isReadonly: isReadonly,
+ isReactive: isReactive,
+ isProxy: isProxy,
+ isRef: isRef,
+ shallowReadonly: shallowReadonly,
+ effect: effect,
+ stop: stop,
+ computed: computed,
h: h,
createAppAPI: createAppAPI
});
@@ -1532,21 +1562,24 @@ function transformText(node, context) {
if (isText(child)) {
for (let j = i + 1; j < children.length; j++) {
const next = children[j];
- if (!currentContainer) {
- currentContainer = children[i] = {
- type: 5,
- loc: child.loc,
- children: [child],
- };
+ if (isText(next)) {
+ if (!currentContainer) {
+ currentContainer = children[i] = {
+ type: 5,
+ loc: child.loc,
+ children: [child],
+ };
+ }
+ currentContainer.children.push(` + `, next);
+ children.splice(j, 1);
+ j--;
+ }
+ else {
+ currentContainer = undefined;
+ break;
}
- currentContainer.children.push(` + `, next);
- children.splice(j, 1);
- j--;
}
}
- else {
- currentContainer = undefined;
- }
}
};
}
@@ -1592,4 +1625,5 @@ exports.shallowReadonly = shallowReadonly;
exports.stop = stop;
exports.toDisplayString = toDisplayString;
exports.unRef = unRef;
+exports.watchEffect = watchEffect;
//# sourceMappingURL=mini-vue.cjs.js.map
diff --git a/packages/vue/dist/mini-vue.cjs.js.map b/packages/vue/dist/mini-vue.cjs.js.map
new file mode 100644
index 00000000..a47792df
--- /dev/null
+++ b/packages/vue/dist/mini-vue.cjs.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"mini-vue.cjs.js","sources":["../../shared/src/shapeFlags.ts","../../shared/src/toDisplayString.ts","../../shared/src/index.ts","../../runtime-core/src/vnode.ts","../../runtime-core/src/h.ts","../../runtime-core/src/createApp.ts","../../runtime-core/src/componentProps.ts","../../runtime-core/src/componentSlots.ts","../../runtime-core/src/componentEmits.ts","../../runtime-core/src/componentPublicInstance.ts","../../reactivity/src/dep.ts","../../reactivity/src/effect.ts","../../reactivity/src/baseHandlers.ts","../../reactivity/src/reactive.ts","../../reactivity/src/ref.ts","../../reactivity/src/computed.ts","../../runtime-core/src/component.ts","../../runtime-core/src/apiInject.ts","../../runtime-core/src/helpers/renderSlot.ts","../../runtime-core/src/scheduler.ts","../../runtime-core/src/componentRenderUtils.ts","../../runtime-core/src/renderer.ts","../../runtime-core/src/apiWatch.ts","../../runtime-dom/src/index.ts","../../compiler-core/src/runtimeHelpers.ts","../../compiler-core/src/codegen.ts","../../compiler-core/src/parse.ts","../../compiler-core/src/transform.ts","../../compiler-core/src/transforms/transformExpression.ts","../../compiler-core/src/ast.ts","../../compiler-core/src/transforms/transformElement.ts","../../compiler-core/src/utils.ts","../../compiler-core/src/transforms/transformText.ts","../../compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib/mini-vue.esm.js b/packages/vue/dist/mini-vue.esm-bundler.js
similarity index 94%
rename from lib/mini-vue.esm.js
rename to packages/vue/dist/mini-vue.esm-bundler.js
index dc3f91a1..0899205b 100644
--- a/lib/mini-vue.esm.js
+++ b/packages/vue/dist/mini-vue.esm-bundler.js
@@ -1,35 +1,3 @@
-const c2eMap = {
- 你好: "hello",
- "调用 patch": "call patch function",
-};
-const e2cMap = {
- hello: "你好",
-};
-class LanguageTranslator {
- constructor() {
- this.currentLanguage = "cn";
- }
- get currentMap() {
- return this.currentLanguage === "cn" ? e2cMap : c2eMap;
- }
- transition(text) {
- const result = this.currentMap[text];
- return result ? result : text;
- }
-}
-
-class Debug {
- constructor(languageTranslator) {
- this.languageTranslator = languageTranslator;
- }
- mainPath(text) {
- return window.console.log.bind(window.console, `%c[ mainPath ] ${this.languageTranslator.transition(text)}`, "color:red");
- }
-}
-
-const debug$1 = new Debug(new LanguageTranslator());
-window.debug = debug$1;
-
var ShapeFlags;
(function (ShapeFlags) {
ShapeFlags[ShapeFlags["ELEMENT"] = 1] = "ELEMENT";
@@ -61,6 +29,8 @@ function hasOwn(val, key) {
}
const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
const toHandlerKey = (str) => str ? `on${capitalize(str)}` : ``;
+const hyphenateRE = /\B([A-Z])/g;
+const hyphenate = (str) => str.replace(hyphenateRE, "-$1").toLowerCase();
const createVNode = function (type, props, children) {
const vnode = {
@@ -108,7 +78,7 @@ function getShapeFlag(type) {
: 4;
}
-const h = (type, props, children) => {
+const h = (type, props = null, children = []) => {
return createVNode(type, props, children);
};
@@ -153,8 +123,10 @@ const normalizeObjectSlots = (rawSlots, slots) => {
function emit(instance, event, ...rawArgs) {
const props = instance.props;
- const handlerName = toHandlerKey(camelize(event));
- const handler = props[handlerName];
+ let handler = props[toHandlerKey(camelize(event))];
+ if (!handler) {
+ handler = props[(toHandlerKey(hyphenate(event)))];
+ }
if (handler) {
handler(...rawArgs);
}
@@ -185,7 +157,7 @@ const PublicInstanceProxyHandlers = {
},
set({ _: instance }, key, value) {
const { setupState } = instance;
- if (setupState !== {} && hasOwn(setupState, key)) {
+ if (hasOwn(setupState, key)) {
setupState[key] = value;
}
return true;
@@ -604,6 +576,7 @@ function renderSlot(slots, name, props = {}) {
}
const queue = [];
+const activePreFlushCbs = [];
const p = Promise.resolve();
let isFlushPending = false;
function nextTick(fn) {
@@ -621,8 +594,16 @@ function queueFlush() {
isFlushPending = true;
nextTick(flushJobs);
}
+function queuePreFlushCb(cb) {
+ queueCb(cb, activePreFlushCbs);
+}
+function queueCb(cb, activeQueue) {
+ activeQueue.push(cb);
+ queueFlush();
+}
function flushJobs() {
isFlushPending = false;
+ flushPreFlushCbs();
let job;
while ((job = queue.shift())) {
if (job) {
@@ -630,6 +611,11 @@ function flushJobs() {
}
}
}
+function flushPreFlushCbs() {
+ for (let i = 0; i < activePreFlushCbs.length; i++) {
+ activePreFlushCbs[i]();
+ }
+}
function shouldUpdateComponent(prevVNode, nextVNode) {
const { props: prevProps } = prevVNode;
@@ -662,7 +648,7 @@ function hasPropsChanged(prevProps, nextProps) {
function createRenderer(options) {
const { createElement: hostCreateElement, setElementText: hostSetElementText, patchProp: hostPatchProp, insert: hostInsert, remove: hostRemove, setText: hostSetText, createText: hostCreateText, } = options;
const render = (vnode, container) => {
- debug.mainPath("调用 patch")();
+ console.log("调用 patch");
patch(null, vnode, container);
};
function patch(n1, n2, container = null, anchor = null, parentComponent = null) {
@@ -749,10 +735,12 @@ function createRenderer(options) {
}
}
else {
- if (prevShapeFlag & 16) {
- if (shapeFlag & 16) {
- patchKeyedChildren(c1, c2, container, anchor, parentComponent);
- }
+ if (prevShapeFlag & 8) {
+ hostSetElementText(container, "");
+ mountChildren(c2, container);
+ }
+ else {
+ patchKeyedChildren(c1, c2, container, parentComponent, anchor);
}
}
}
@@ -985,6 +973,7 @@ function createRenderer(options) {
console.log("更新组件的 slots");
}
return {
+ render,
createApp: createAppAPI(render),
};
}
@@ -1030,6 +1019,33 @@ function getSequence(arr) {
return result;
}
+function watchEffect(effect) {
+ return doWatch(effect);
+}
+function doWatch(source) {
+ const job = () => {
+ effect.run();
+ };
+ const scheduler = () => queuePreFlushCb(job);
+ let cleanup;
+ const onCleanup = (fn) => {
+ cleanup = effect.onStop = () => {
+ fn();
+ };
+ };
+ const getter = () => {
+ if (cleanup) {
+ cleanup();
+ }
+ source(onCleanup);
+ };
+ const effect = new ReactiveEffect(getter, scheduler);
+ effect.run();
+ return () => {
+ effect.stop();
+ };
+}
+
function createElement(type) {
console.log("CreateElement", type);
const element = document.createElement(type);
@@ -1114,6 +1130,20 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
createElementVNode: createVNode,
createRenderer: createRenderer,
toDisplayString: toDisplayString,
+ watchEffect: watchEffect,
+ reactive: reactive,
+ ref: ref,
+ readonly: readonly,
+ unRef: unRef,
+ proxyRefs: proxyRefs,
+ isReadonly: isReadonly,
+ isReactive: isReactive,
+ isProxy: isProxy,
+ isRef: isRef,
+ shallowReadonly: shallowReadonly,
+ effect: effect,
+ stop: stop,
+ computed: computed,
h: h,
createAppAPI: createAppAPI
});
@@ -1528,21 +1558,24 @@ function transformText(node, context) {
if (isText(child)) {
for (let j = i + 1; j < children.length; j++) {
const next = children[j];
- if (!currentContainer) {
- currentContainer = children[i] = {
- type: 5,
- loc: child.loc,
- children: [child],
- };
+ if (isText(next)) {
+ if (!currentContainer) {
+ currentContainer = children[i] = {
+ type: 5,
+ loc: child.loc,
+ children: [child],
+ };
+ }
+ currentContainer.children.push(` + `, next);
+ children.splice(j, 1);
+ j--;
+ }
+ else {
+ currentContainer = undefined;
+ break;
}
- currentContainer.children.push(` + `, next);
- children.splice(j, 1);
- j--;
}
}
- else {
- currentContainer = undefined;
- }
}
};
}
@@ -1563,5 +1596,5 @@ function compileToFunction(template, options = {}) {
}
registerRuntimeCompiler(compileToFunction);
-export { computed, createApp, createAppAPI, createVNode as createElementVNode, createRenderer, createTextVNode, effect, getCurrentInstance, h, inject, isProxy, isReactive, isReadonly, isRef, provide, proxyRefs, reactive, readonly, ref, registerRuntimeCompiler, renderSlot, shallowReadonly, stop, toDisplayString, unRef };
-//# sourceMappingURL=mini-vue.esm.js.map
+export { computed, createApp, createAppAPI, createVNode as createElementVNode, createRenderer, createTextVNode, effect, getCurrentInstance, h, inject, isProxy, isReactive, isReadonly, isRef, provide, proxyRefs, reactive, readonly, ref, registerRuntimeCompiler, renderSlot, shallowReadonly, stop, toDisplayString, unRef, watchEffect };
+//# sourceMappingURL=mini-vue.esm-bundler.js.map
diff --git a/packages/vue/dist/mini-vue.esm-bundler.js.map b/packages/vue/dist/mini-vue.esm-bundler.js.map
new file mode 100644
index 00000000..458b9672
--- /dev/null
+++ b/packages/vue/dist/mini-vue.esm-bundler.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"mini-vue.esm-bundler.js","sources":["../../shared/src/shapeFlags.ts","../../shared/src/toDisplayString.ts","../../shared/src/index.ts","../../runtime-core/src/vnode.ts","../../runtime-core/src/h.ts","../../runtime-core/src/createApp.ts","../../runtime-core/src/componentProps.ts","../../runtime-core/src/componentSlots.ts","../../runtime-core/src/componentEmits.ts","../../runtime-core/src/componentPublicInstance.ts","../../reactivity/src/dep.ts","../../reactivity/src/effect.ts","../../reactivity/src/baseHandlers.ts","../../reactivity/src/reactive.ts","../../reactivity/src/ref.ts","../../reactivity/src/computed.ts","../../runtime-core/src/component.ts","../../runtime-core/src/apiInject.ts","../../runtime-core/src/helpers/renderSlot.ts","../../runtime-core/src/scheduler.ts","../../runtime-core/src/componentRenderUtils.ts","../../runtime-core/src/renderer.ts","../../runtime-core/src/apiWatch.ts","../../runtime-dom/src/index.ts","../../compiler-core/src/runtimeHelpers.ts","../../compiler-core/src/codegen.ts","../../compiler-core/src/parse.ts","../../compiler-core/src/transform.ts","../../compiler-core/src/transforms/transformExpression.ts","../../compiler-core/src/ast.ts","../../compiler-core/src/transforms/transformElement.ts","../../compiler-core/src/utils.ts","../../compiler-core/src/transforms/transformText.ts","../../compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"AACA,IAAkB,UAWf,CAAA;AAXH,CAAA,UAAkB,UAAU,EAAA;AAExB,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AAEX,IAAA,UAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAA2B,CAAA;AAE3B,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAsB,CAAA;AAEtB,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAuB,CAAA;AAEvB,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAuB,CAAA;AACzB,CAAC,EAXe,UAAU,KAAV,UAAU,GAWzB,EAAA,CAAA,CAAA;;ACZU,MAAA,eAAe,GAAG,CAAC,GAAG,KAAI;AACrC,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB;;ACCO,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAI;IAC9B,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjD,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,CAAC;AAEzD,MAAM,UAAU,GAAG,QAAQ,CAAC;AAKrB,MAAM,QAAQ,GAAG,CAAC,GAAW,KAAY;AAC9C,IAAA,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAEK,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAG7B,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElC,SAAA,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAA;IACxC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAEe,SAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAA;AAC7B,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAMM,MAAM,UAAU,GAAG,CAAC,GAAW,KACpC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAMtC,MAAM,YAAY,GAAG,CAAC,GAAW,KACtC,GAAG,GAAG,CAAA,EAAA,EAAK,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAA,CAAE,CAAC;AAMpC,MAAM,WAAW,GAAG,YAAY,CAAC;AAI1B,MAAM,SAAS,GAAG,CAAC,GAAW,KACnC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE;;MClDlC,WAAW,GAAG,UACzB,IAAS,EACT,KAAW,EACX,QAA8B,EAAA;AAQ9B,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,GAAG,EAAE,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,GAAG;QACf,IAAI;QACJ,KAAK,EAAE,KAAK,IAAI,EAAE;QAClB,QAAQ;AACR,QAAA,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC;KAC9B,CAAC;AAGF,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,KAAK,CAAC,SAAS,IAAA,EAA6B,CAAC;AAC9C,KAAA;AAAM,SAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QACvC,KAAK,CAAC,SAAS,IAAA,CAA4B,CAAC;AAC7C,KAAA;AAED,IAAA,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEnC,IAAA,OAAO,KAAK,CAAC;AACf,EAAE;AAEc,SAAA,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAA;AAC/C,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAIhC,QAAA,IAAI,KAAK,CAAC,SAAS,GAAA,CAAqB,EAAE,CAEzC;AAAM,aAAA;YAEL,KAAK,CAAC,SAAS,IAAA,EAA6B,CAAC;AAC9C,SAAA;AACF,KAAA;AACH,CAAC;AAEM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAK3B,SAAA,eAAe,CAAC,IAAA,GAAe,GAAG,EAAA;IAChD,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAIK,SAAU,cAAc,CAAC,KAAK,EAAA;IAElC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC1D,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AACH,CAAC;AAGD,SAAS,YAAY,CAAC,IAAS,EAAA;IAC7B,OAAO,OAAO,IAAI,KAAK,QAAQ;UAC5B,CAAA;AACD,WAA+B,CAAC;AACpC;;AC5EO,MAAM,CAAC,GAAG,CAAC,IAAS,EAAG,KAAA,GAAa,IAAI,EAAE,QAAgC,GAAA,EAAE,KAAI;IACrF,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5C;;ACDM,SAAU,YAAY,CAAC,MAAM,EAAA;IACjC,OAAO,SAAS,SAAS,CAAC,aAAa,EAAA;AACrC,QAAA,MAAM,GAAG,GAAG;AACV,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,KAAK,CAAC,aAAa,EAAA;AACjB,gBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7B,gBAAA,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AACzC,gBAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACvC,gBAAA,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;aAC9B;SACF,CAAC;AAEF,QAAA,OAAO,GAAG,CAAC;AACb,KAAC,CAAC;AACJ;;AChBgB,SAAA,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAA;AAC1C,IAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAQzB,IAAA,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC5B;;ACTgB,SAAA,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAA;AAC1C,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AAE3B,IAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAEzB,IAAA,IAAI,KAAK,CAAC,SAAS,GAAA,EAA4B,EAAE;QAC/C,oBAAoB,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC;AACvD,KAAA;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAK,KAAI;AAEnC,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,KAAK,KAAI;AAC/C,IAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC1B,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,QAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAK/B,YAAA,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,SAAA;AACF,KAAA;AACH,CAAC;;AC1BK,SAAU,IAAI,CAAC,QAAQ,EAAE,KAAa,EAAE,GAAG,OAAO,EAAA;AAGtD,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAI7B,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAGnD,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,GAAG,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;AAClD,KAAA;AAGD,IAAA,IAAI,OAAO,EAAE;AACX,QAAA,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACrB,KAAA;AACH;;ACjBA,MAAM,mBAAmB,GAAG;IAG1B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI;IACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK;IACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK;CACvB,CAAC;AAGK,MAAM,2BAA2B,GAAG;AACzC,IAAA,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAA;AAItB,QAAA,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AACvC,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAA,CAAE,CAAC,CAAC;AAE/C,QAAA,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAGlB,YAAA,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;AAC3B,gBAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACxB,aAAA;AAAM,iBAAA,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AAG7B,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,aAAA;AACF,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAE9C,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC/B,SAAA;KACF;IAED,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAA;AAC7B,QAAA,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;AAEhC,QAAA,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;AAE3B,YAAA,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzB,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACZ;CACF;;AChDK,SAAU,SAAS,CAAC,OAAQ,EAAA;AAChC,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,OAAO,GAAG,CAAC;AACb;;ACDA,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC;AAC1B,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;MAGnB,cAAc,CAAA;IAIzB,WAAmB,CAAA,EAAE,EAAS,SAAU,EAAA;QAArB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAA;QAAS,IAAS,CAAA,SAAA,GAAT,SAAS,CAAC;QAHxC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACd,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAGR,QAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;KACrC;IAED,GAAG,GAAA;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAQnB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AAClB,SAAA;QAID,WAAW,GAAG,IAAI,CAAC;QAInB,YAAY,GAAG,IAAW,CAAC;AAE3B,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC1B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAEzB,WAAW,GAAG,KAAK,CAAC;QACpB,YAAY,GAAG,SAAS,CAAC;AAEzB,QAAA,OAAO,MAAM,CAAC;KACf;IAED,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,MAAM,EAAE;YAGf,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,SAAA;KACF;AACF,CAAA;AAED,SAAS,aAAa,CAAC,MAAM,EAAA;IAG3B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC1B,QAAA,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrB,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC;SAEe,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAA;AACrC,IAAA,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;AAIvC,IAAA,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,EAAE,CAAC;IAId,MAAM,MAAM,GAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,IAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;AACxB,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEK,SAAU,IAAI,CAAC,MAAM,EAAA;AACzB,IAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;SAEe,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAA;IACrC,IAAI,CAAC,UAAU,EAAE,EAAE;QACjB,OAAO;AACR,KAAA;IACD,OAAO,CAAC,GAAG,CAAC,CAAuB,oBAAA,EAAA,MAAM,CAAS,MAAA,EAAA,IAAI,CAAQ,KAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;IAGrE,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE;AAEZ,QAAA,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AACpB,QAAA,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChC,KAAA;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,SAAS,EAAE,CAAC;AAElB,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACvB,KAAA;IAED,YAAY,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAEK,SAAU,YAAY,CAAC,GAAG,EAAA;AAU9B,IAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AAC1B,QAAA,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACrB,QAAA,YAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,KAAA;AACH,CAAC;SAEe,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAA;IAGvC,IAAI,IAAI,GAAe,EAAE,CAAC;IAG1B,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEtC,IAAA,IAAI,CAAC,OAAO;QAAE,OAAO;IAIrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAG7B,IAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,OAAO,GAAe,EAAE,CAAC;AAC/B,IAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAEnB,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACvB,KAAC,CAAC,CAAC;AAGH,IAAA,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;SAEe,UAAU,GAAA;AACxB,IAAA,OAAO,WAAW,IAAI,YAAY,KAAK,SAAS,CAAC;AACnD,CAAC;AAEK,SAAU,cAAc,CAAC,GAAG,EAAA;AAEhC,IAAA,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE;QACxB,IAAI,MAAM,CAAC,SAAS,EAAE;YAIpB,MAAM,CAAC,SAAS,EAAE,CAAC;AACpB,SAAA;AAAM,aAAA;YACL,MAAM,CAAC,GAAG,EAAE,CAAC;AACd,SAAA;AACF,KAAA;AACH;;ACjKA,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAC3B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEpD,SAAS,YAAY,CAAC,UAAU,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAA;AACvD,IAAA,OAAO,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAA;AACvC,QAAA,MAAM,oBAAoB,GAAG,MAC3B,GAAG,KAAsB,SAAA,IAAI,QAAQ,KAAK,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEpE,QAAA,MAAM,oBAAoB,GAAG,MAC3B,GAAG,KAAsB,SAAA,IAAI,QAAQ,KAAK,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEpE,QAAA,MAAM,2BAA2B,GAAG,MAClC,GAAG,KAAsB,SAAA,IAAI,QAAQ,KAAK,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE3E,IAAI,GAAG,qBAA8B,EAAE;YACrC,OAAO,CAAC,UAAU,CAAC;AACpB,SAAA;aAAM,IAAI,GAAG,qBAA8B,EAAE;AAC5C,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AAAM,aAAA,IACL,oBAAoB,EAAE;AACtB,YAAA,oBAAoB,EAAE;AACtB,YAAA,2BAA2B,EAAE,EAC7B;AACA,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAM/C,IAAI,CAAC,UAAU,EAAE;AAEf,YAAA,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;AAED,QAAA,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AAIjB,YAAA,OAAO,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnD,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;AACb,KAAC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,GAAA;IACnB,OAAO,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAGzD,QAAA,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAE5B,QAAA,OAAO,MAAM,CAAC;AAChB,KAAC,CAAC;AACJ,CAAC;AAEM,MAAM,gBAAgB,GAAG;AAC9B,IAAA,GAAG,EAAE,WAAW;IAChB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAA;AAEb,QAAA,OAAO,CAAC,IAAI,CACV,CAAA,sBAAA,EAAyB,MAAM,CAAC,GAAG,CAAC,CAA+B,6BAAA,CAAA,EACnE,MAAM,CACP,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;CACF,CAAC;AAEK,MAAM,eAAe,GAAG;IAC7B,GAAG;IACH,GAAG;CACJ,CAAC;AAEK,MAAM,uBAAuB,GAAG;AACrC,IAAA,GAAG,EAAE,kBAAkB;IACvB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAA;AAEb,QAAA,OAAO,CAAC,IAAI,CACV,CAAA,sBAAA,EAAyB,MAAM,CAAC,GAAG,CAAC,CAA+B,6BAAA,CAAA,EACnE,MAAM,CACP,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;CACF;;ACjGM,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;AAEhD,IAAkB,aAIjB,CAAA;AAJD,CAAA,UAAkB,aAAa,EAAA;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,gBAA8B,CAAA;AAC9B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,gBAA8B,CAAA;AAC9B,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,SAAe,CAAA;AACjB,CAAC,EAJiB,aAAa,KAAb,aAAa,GAI9B,EAAA,CAAA,CAAA,CAAA;AAEK,SAAU,QAAQ,CAAC,MAAM,EAAA;IAC7B,OAAO,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC;AAEK,SAAU,QAAQ,CAAC,MAAM,EAAA;IAC7B,OAAO,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC;AAEK,SAAU,eAAe,CAAC,MAAM,EAAA;IACpC,OAAO,oBAAoB,CACzB,MAAM,EACN,kBAAkB,EAClB,uBAAuB,CACxB,CAAC;AACJ,CAAC;AAEK,SAAU,OAAO,CAAC,KAAK,EAAA;IAC3B,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAEK,SAAU,UAAU,CAAC,KAAK,EAAA;AAC9B,IAAA,OAAO,CAAC,CAAC,KAAK,CAAA,gBAAA,CAA2B,CAAC;AAC5C,CAAC;AAEK,SAAU,UAAU,CAAC,KAAK,EAAA;AAK9B,IAAA,OAAO,CAAC,CAAC,KAAK,CAAA,gBAAA,CAA2B,CAAC;AAC5C,CAAC;AAgBD,SAAS,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAA;IAM1D,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3C,IAAA,IAAI,aAAa,EAAE;AACjB,QAAA,OAAO,aAAa,CAAC;AACtB,KAAA;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAG9C,IAAA,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC5B,IAAA,OAAO,KAAK,CAAC;AACf;;MCzEa,OAAO,CAAA;AAMlB,IAAA,WAAA,CAAY,KAAK,EAAA;QAFV,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAGtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAGvB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC;KACxB;AAED,IAAA,IAAI,KAAK,GAAA;QAEP,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAI,KAAK,CAAC,QAAQ,EAAA;QAGhB,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;AAExC,YAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAE1B,eAAe,CAAC,IAAI,CAAC,CAAC;AACvB,SAAA;KACF;AACF,CAAA;AAEK,SAAU,GAAG,CAAC,KAAK,EAAA;AACvB,IAAA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,OAAO,CAAC,KAAK,EAAA;AACpB,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACnD,CAAC;AAED,SAAS,SAAS,CAAC,KAAK,EAAA;AACtB,IAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAEnC,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAEK,SAAU,eAAe,CAAC,GAAG,EAAA;AACjC,IAAA,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAEK,SAAU,aAAa,CAAC,GAAG,EAAA;IAC/B,IAAI,UAAU,EAAE,EAAE;AAChB,QAAA,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,KAAA;AACH,CAAC;AAQD,MAAM,qBAAqB,GAAG;AAC5B,IAAA,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAA;AAGvB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;KAClD;AACD,IAAA,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACpC,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAClD,SAAA;KACF;CACF,CAAC;AAKI,SAAU,SAAS,CAAC,cAAc,EAAA;AACtC,IAAA,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAC1D,CAAC;AAGK,SAAU,KAAK,CAAC,GAAG,EAAA;AACvB,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;AACtC,CAAC;AAEK,SAAU,KAAK,CAAC,KAAK,EAAA;AACzB,IAAA,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3B;;MC9Fa,eAAe,CAAA;AAO1B,IAAA,WAAA,CAAY,MAAM,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,MAAK;YAI5C,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;AAExB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,eAAe,CAAC,IAAI,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,IAAI,KAAK,GAAA;QAEP,aAAa,CAAC,IAAI,CAAC,CAAC;QAKpB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACjC,SAAA;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AACF,CAAA;AAEK,SAAU,QAAQ,CAAC,MAAM,EAAA;AAC7B,IAAA,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC;;ACvCgB,SAAA,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAA;AACnD,IAAA,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK;AACL,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE,EAAE;QACT,MAAM;QACN,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,EAAE;AACvC,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,IAAI,EAAE,MAAK,GAAG;KACf,CAAC;IAIF,QAAQ,CAAC,GAAG,GAAG;AACb,QAAA,CAAC,EAAE,QAAQ;KACZ,CAAC;IAKF,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAQ,CAAC;AAEjD,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEK,SAAU,cAAc,CAAC,QAAQ,EAAA;IAGrC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC3C,IAAA,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAE3B,IAAA,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAO9B,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAQ,EAAA;AAGtC,IAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAKxB,IAAA,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;AAGtE,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;AAIhC,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;AAC5B,IAAA,IAAI,KAAK,EAAE;QAGT,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAE7B,QAAA,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAElD,QAAA,MAAM,WAAW,GACf,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QAEhE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAGzB,QAAA,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC1C,KAAA;AAAM,SAAA;QACL,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAChC,KAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAQ,EAAA;AAClC,IAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;AACnB,QAAA,MAAM,EAAE,MAAK,GAAG;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAA;AAG9C,IAAA,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAIrC,QAAA,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;AAC/B,KAAA;AAAM,SAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAS1C,QAAA,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAC9C,KAAA;IAED,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAQ,EAAA;AAIpC,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;AAEhC,IAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAEpB,QAAA,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAChC,IAAI,SAAS,CAAC,QAAQ,EAAE;AAEtB,gBAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AACpC,gBAAA,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;AAED,QAAA,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AACpC,KAAA;AAGH,CAAC;AAQD,IAAI,eAAe,GAAG,EAAE,CAAC;SAET,kBAAkB,GAAA;AAChC,IAAA,OAAO,eAAe,CAAC;AACzB,CAAC;AAEK,SAAU,kBAAkB,CAAC,QAAQ,EAAA;IACzC,eAAe,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAED,IAAI,OAAO,CAAC;AACN,SAAU,uBAAuB,CAAC,QAAQ,EAAA;IAC9C,OAAO,GAAG,QAAQ,CAAC;AACrB;;AC/JgB,SAAA,OAAO,CAAC,GAAG,EAAE,KAAK,EAAA;;AAChC,IAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAE7C,IAAA,IAAI,eAAe,EAAE;AACnB,QAAA,IAAI,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QAEnC,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,eAAe,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC;QASxD,IAAI,cAAc,KAAK,QAAQ,EAAE;YAC/B,QAAQ,GAAG,eAAe,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACrE,SAAA;AAED,QAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACvB,KAAA;AACH,CAAC;AAEe,SAAA,MAAM,CAAC,GAAG,EAAE,YAAY,EAAA;;AACtC,IAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAE7C,IAAA,IAAI,eAAe,EAAE;QACnB,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,eAAe,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC;QAElD,IAAI,GAAG,IAAI,QAAQ,EAAE;AACnB,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtB,SAAA;AAAM,aAAA,IAAI,YAAY,EAAE;AACvB,YAAA,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;gBACtC,OAAO,YAAY,EAAE,CAAC;AACvB,aAAA;AACD,YAAA,OAAO,YAAY,CAAC;AACrB,SAAA;AACF,KAAA;AACH;;AC1BM,SAAU,UAAU,CAAC,KAAK,EAAE,IAAY,EAAE,KAAK,GAAG,EAAE,EAAA;AACxD,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACzB,IAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAA,CAAE,CAAC,CAAC;AACpC,IAAA,IAAI,IAAI,EAAE;AAIR,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AAC/C,KAAA;AACH;;ACxBA,MAAM,KAAK,GAAU,EAAE,CAAC;AACxB,MAAM,iBAAiB,GAAQ,EAAE,CAAC;AAElC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;AAErB,SAAU,QAAQ,CAAC,EAAG,EAAA;AAC1B,IAAA,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAEK,SAAU,QAAQ,CAAC,GAAG,EAAA;AAC1B,IAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxB,QAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEhB,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACH,CAAC;AAED,SAAS,UAAU,GAAA;AAOjB,IAAA,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtB,CAAC;AAEK,SAAU,eAAe,CAAC,EAAE,EAAA;AAChC,IAAA,OAAO,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,EAAE,EAAE,WAAW,EAAA;AAI9B,IAAA,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAGrB,IAAA,UAAU,EAAE,CAAA;AACd,CAAC;AAED,SAAS,SAAS,GAAA;IAChB,cAAc,GAAG,KAAK,CAAC;AAKvB,IAAA,gBAAgB,EAAE,CAAC;AAInB,IAAA,IAAI,GAAG,CAAC;IACR,QAAQ,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG;AAC5B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,GAAG,EAAE,CAAC;AACP,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,gBAAgB,GAAA;AAEvB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,QAAA,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;AACxB,KAAA;AACH;;ACnEgB,SAAA,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAA;AACxD,IAAA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;AACvC,IAAA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAOvC,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;IAGD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,CAAC,CAAC,SAAS,CAAC;AACpB,KAAA;IAED,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAID,IAAA,OAAO,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,SAAS,EAAE,SAAS,EAAA;IAI3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,IAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;AACrD,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAGD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACF,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACf;;ACnCM,SAAU,cAAc,CAAC,OAAO,EAAA;AACpC,IAAA,MAAM,EACJ,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,kBAAkB,EAClC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,cAAc,GAC3B,GAAG,OAAO,CAAC;AAEZ,IAAA,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,KAAI;AAClC,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AACvB,QAAA,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAChC,KAAC,CAAC;AAEF,IAAA,SAAS,KAAK,CACZ,EAAE,EACF,EAAE,EACF,SAAS,GAAG,IAAI,EAChB,MAAM,GAAG,IAAI,EACb,eAAe,GAAG,IAAI,EAAA;AAItB,QAAA,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI;AACP,gBAAA,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC/B,MAAM;AAER,YAAA,KAAK,QAAQ;AACX,gBAAA,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBACnC,MAAM;AACR,YAAA;gBAEE,IAAI,SAAS,IAAqB,EAAE;AAClC,oBAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC1B,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AAC5D,iBAAA;qBAAM,IAAI,SAAS,IAAgC,EAAE;AACpD,oBAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC5B,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACtD,iBAAA;AACJ,SAAA;KACF;AAED,IAAA,SAAS,eAAe,CAAC,EAAO,EAAE,EAAO,EAAE,SAAc,EAAA;QAEvD,IAAI,CAAC,EAAE,EAAE;AAEP,YAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAClC,YAAA,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC,SAAA;KACF;AAED,IAAA,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAA;AACpC,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,EAAE,KAAK,IAAI,EAAE;AAGf,YAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9B,YAAA,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,QAAkB,CAAC,GAAG,SAAS,CAAC,CAAC;AACxE,SAAA;AAAM,aAAA;YAML,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAG,CAAC,CAAC;AAC5B,YAAA,IAAI,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,EAAE;AAC/B,gBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7B,gBAAA,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,QAAkB,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;KACF;IAED,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAA;QAChE,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;YAEL,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AAC3D,SAAA;KACF;IAED,SAAS,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAA;QAC/D,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;AACxC,QAAA,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;AAEhC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAG5B,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAG3B,QAAA,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAGnC,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;KACpD;AAED,IAAA,SAAS,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAA;AAQxC,QAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC1B,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBAGzB,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;AAMD,QAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC1B,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE;gBAItB,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;KACF;IAED,SAAS,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAA;QAC/D,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACtD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QAKvC,IAAI,SAAS,IAA2B,EAAE;YACxC,IAAI,EAAE,KAAK,EAAE,EAAE;AACb,gBAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AACzC,gBAAA,kBAAkB,CAAC,SAAS,EAAE,EAAY,CAAC,CAAC;AAC7C,aAAA;AACF,SAAA;AAAM,aAAA;YAOL,IAAI,aAAa,IAA2B,EAAE;AAG5C,gBAAA,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAClC,gBAAA,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9B,aAAA;AAAM,iBAAA;gBAKL,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAChE,aAAA;AAEF,SAAA;KACF;IAED,SAAS,kBAAkB,CACzB,EAAS,EACT,EAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,EAAA;QAEf,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,QAAA,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;AACrB,QAAA,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEhB,QAAA,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,KAAI;AACjC,YAAA,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC;AAClD,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACzB,YAAA,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxB,YAAA,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAExB,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;AAC1C,gBAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACpC,gBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;AACtC,gBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;gBACtC,MAAM;AACP,aAAA;AAED,YAAA,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AACtE,YAAA,CAAC,EAAE,CAAC;AACL,SAAA;AAED,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AAEzB,YAAA,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACzB,YAAA,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAEzB,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;AAC1C,gBAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACpC,gBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;AACtC,gBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;gBACtC,MAAM;AACP,aAAA;AACD,YAAA,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AACtE,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACN,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AAQrB,YAAA,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;AACvB,YAAA,MAAM,MAAM,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC;YAC5D,OAAO,CAAC,IAAI,EAAE,EAAE;AACd,gBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,eAAA,EAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC;AAC3C,gBAAA,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AACvD,gBAAA,CAAC,EAAE,CAAC;AACL,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;YAG5B,OAAO,CAAC,IAAI,EAAE,EAAE;AACd,gBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,eAAA,EAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC;gBAC3C,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,gBAAA,CAAC,EAAE,CAAC;AACL,aAAA;AACF,SAAA;AAAM,aAAA;YAML,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,YAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;YACnC,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,gBAAgB,GAAG,CAAC,CAAC;YAGzB,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC7B,gBAAA,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxB,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,aAAA;AAGD,YAAA,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,OAAO,GAAG,CAAC,CAAC;AAGhB,YAAA,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;AAAE,gBAAA,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAKnE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACzB,gBAAA,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAIxB,IAAI,OAAO,IAAI,WAAW,EAAE;AAC1B,oBAAA,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACzB,SAAS;AACV,iBAAA;AAED,gBAAA,IAAI,QAAQ,CAAC;AACb,gBAAA,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE;oBAGzB,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAChD,iBAAA;AAAM,qBAAA;oBAGL,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;wBAC7B,IAAI,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;4BACrC,QAAQ,GAAG,CAAC,CAAC;4BACb,MAAM;AACP,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAID,IAAI,QAAQ,KAAK,SAAS,EAAE;AAE1B,oBAAA,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC1B,iBAAA;AAAM,qBAAA;AAEL,oBAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAGvB,qBAAqB,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAK7C,IAAI,QAAQ,IAAI,gBAAgB,EAAE;wBAChC,gBAAgB,GAAG,QAAQ,CAAC;AAC7B,qBAAA;AAAM,yBAAA;wBACL,KAAK,GAAG,IAAI,CAAC;AACd,qBAAA;AAED,oBAAA,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA;AACF,aAAA;YASD,MAAM,0BAA0B,GAAG,KAAK;AACtC,kBAAE,WAAW,CAAC,qBAAqB,CAAC;kBAClC,EAAE,CAAC;AACP,YAAA,IAAI,CAAC,GAAG,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAC;AAQ9C,YAAA,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAEzC,gBAAA,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;AACzB,gBAAA,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAGhC,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC;AAExE,gBAAA,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAGlC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AAC5D,iBAAA;AAAM,qBAAA,IAAI,KAAK,EAAE;oBAIhB,IAAI,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBAEhD,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC7C,qBAAA;AAAM,yBAAA;AAGL,wBAAA,CAAC,EAAE,CAAC;AACL,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,SAAS,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAA;AAC5C,QAAA,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;AAGnC,QAAA,MAAM,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAGtD,IAAI,SAAS,IAA2B,EAAE;YAMxC,OAAO,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,KAAK,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AACtC,YAAA,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxC,SAAA;aAAM,IAAI,SAAS,KAA4B,EAAE;AAOhD,YAAA,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnC,SAAA;AAGD,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AAIvB,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACvC,aAAA;AACF,SAAA;AAID,QAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAChD,QAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAC7C,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAG1C,QAAA,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAIlC,QAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC5C,QAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AACzC,QAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;KACrC;AAED,IAAA,SAAS,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAA;AACxC,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;AAI9B,YAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAC1C,YAAA,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACJ;IAED,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAA;QAE1D,IAAI,CAAC,EAAE,EAAE;AAEP,YAAA,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAChD,SAAA;AAAM,aAAA;AACL,YAAA,eAAe,CAAC,EAAE,EAAE,EAAa,CAAC,CAAC;AACpC,SAAA;KACF;AAGD,IAAA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAA;QACxC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,QAAQ,IAAI,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAE/C,QAAA,IAAI,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,YAAA,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAA,CAAE,CAAC,CAAC;AAEnC,YAAA,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;YAOnB,QAAQ,CAAC,MAAM,EAAE,CAAC;AACnB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;AAEpC,YAAA,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AAC5B,YAAA,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACd,YAAA,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AACrB,SAAA;KACF;AAED,IAAA,SAAS,cAAc,CAAC,YAAY,EAAE,SAAS,EAAE,eAAe,EAAA;AAE9D,QAAA,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAS,GAAG,uBAAuB,CAChE,YAAY,EACZ,eAAe,CAChB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,CAAU,OAAA,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;QAE5C,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEzB,QAAA,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;KACtD;AAED,IAAA,SAAS,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAA;AAa1D,QAAA,SAAS,iBAAiB,GAAA;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gBAKvB,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAuB,qBAAA,CAAA,CAAC,CAAC;AAC1D,gBAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAElC,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,GAAG,cAAc,CAChD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7C,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAGhC,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAsB,oBAAA,CAAA,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAA6B,2BAAA,CAAA,CAAC,CAAC;gBAYhE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEhD,gBAAA,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;gBAE7B,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAkB,gBAAA,CAAA,CAAC,CAAC;AACrD,gBAAA,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;AAC3B,aAAA;AAAM,iBAAA;gBAGL,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAS,OAAA,CAAA,CAAC,CAAC;AAE5C,gBAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AAIjC,gBAAA,IAAI,IAAI,EAAE;AAER,oBAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACnB,oBAAA,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1C,iBAAA;AAED,gBAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;AAClC,gBAAA,MAAM,QAAQ,GAAG,cAAc,CAC7B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7C,CAAC;AAEF,gBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;AAClC,gBAAA,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAG5B,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAwB,sBAAA,CAAA,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAA8B,4BAAA,CAAA,CAAC,CAAC;AAGjE,gBAAA,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAGvD,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAkB,gBAAA,CAAA,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,CAAG,EAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAyB,uBAAA,CAAA,CAAC,CAAC;AAC7D,aAAA;SACF;AAQD,QAAA,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE;YAC1C,SAAS,EAAE,MAAK;AAGd,gBAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC3B;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAA;AAKnD,QAAA,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;AAG/B,QAAA,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;AAC3B,QAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAErB,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAClC,QAAA,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,QAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAG5B;IAED,OAAO;QACL,MAAM;AACN,QAAA,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAa,EAAA;AAChC,IAAA,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AACtB,IAAA,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClB,IAAA,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACxB,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,KAAK,CAAC,EAAE;YACd,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9B,YAAA,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AACjB,gBAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACT,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACf,SAAS;AACV,aAAA;YACD,CAAC,GAAG,CAAC,CAAC;AACN,YAAA,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,EAAE;gBACZ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AACzB,oBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACX,iBAAA;AAAM,qBAAA;oBACL,CAAC,GAAG,CAAC,CAAC;AACP,iBAAA;AACF,aAAA;YACD,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,EAAE;oBACT,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,iBAAA;AACD,gBAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAClB,IAAA,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClB,IAAA,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACd,QAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,KAAA;AACD,IAAA,OAAO,MAAM,CAAC;AAChB;;AC3oBM,SAAU,WAAW,CAAC,MAAM,EAAA;AAChC,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,OAAO,CAAC,MAAM,EAAA;IAIrB,MAAM,GAAG,GAAG,MAAK;QACf,MAAM,CAAC,GAAG,EAAE,CAAC;AACf,KAAC,CAAC;IAKF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;AAK7C,IAAA,IAAI,OAAO,CAAC;AACZ,IAAA,MAAM,SAAS,GAAG,CAAC,EAAE,KAAI;AAGvB,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAK;AAC7B,YAAA,EAAE,EAAE,CAAC;AACP,SAAC,CAAC;AACJ,KAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAK;AAElB,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,MAAM,CAAC,SAAS,CAAC,CAAC;AACpB,KAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAGrD,MAAM,CAAC,GAAG,EAAE,CAAC;AAIb,IAAA,OAAO,MAAK;QACV,MAAM,CAAC,IAAI,EAAE,CAAC;AAChB,KAAC,CAAC;AACJ;;AC7CA,SAAS,aAAa,CAAC,IAAI,EAAA;AACzB,IAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,IAAI,EAAA;AACtB,IAAA,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI,EAAA;AACzB,IAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,EAAE,IAAI,EAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACxC,IAAA,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAA;IAI7C,OAAO,CAAC,GAAG,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAM,GAAA,EAAA,SAAS,CAAE,CAAA,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAU,OAAA,EAAA,QAAQ,CAAE,CAAA,CAAC,CAAC;AAE7C,IAAA,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AAMb,QAAA,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AAC3C,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,SAAS,IAAI,eAAe,EAAE;AAGhC,YAAA,eAAe,CAAC,KAAK,GAAG,SAAS,CAAC;AACnC,SAAA;AAAM,aAAA;YACL,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,YAAA,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;AAC5C,gBAAA,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACzC,aAAA;AAAM,iBAAA;AACL,gBAAA,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AACnD,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC3B,aAAA;AACF,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE;AAC1C,YAAA,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACjC,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAA;AAC1C,IAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtB,IAAA,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,MAAM,CAAC,KAAK,EAAA;AACnB,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;AAChC,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAA;AACH,CAAC;AAED,IAAI,QAAQ,CAAC;AAEb,SAAS,cAAc,GAAA;AAErB,IAAA,QACE,QAAQ;SACP,QAAQ,GAAG,cAAc,CAAC;YACzB,aAAa;YACb,UAAU;YACV,OAAO;YACP,cAAc;YACd,SAAS;YACT,MAAM;YACN,MAAM;SACP,CAAC,CAAC,EACH;AACJ,CAAC;MAEY,SAAS,GAAG,CAAC,GAAG,IAAI,KAAI;IACnC,OAAO,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChGO,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAA,eAAA,CAAiB,CAAC,CAAC;AACpD,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE1D,MAAM,aAAa,GAAG;IAC3B,CAAC,iBAAiB,GAAG,iBAAiB;IACtC,CAAC,oBAAoB,GAAG,oBAAoB;CAC7C;;SCEe,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,EAAA;IAExC,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnD,IAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAI/B,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,QAAA,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACjC,KAAA;AAAM,SAAA;AACL,QAAA,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnC,KAAA;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC;AAE9B,IAAA,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAItB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,IAAA,IAAI,CAAC,CAAY,SAAA,EAAA,YAAY,IAAI,SAAS,CAAA,GAAA,CAAK,CAAC,CAAC;IAGjD,IAAI,CAAC,SAAS,CAAC,CAAC;AAChB,IAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAElC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ,EAAE,OAAY,EAAA;IACjD,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAG,EAAA,aAAa,CAAC,CAAC,CAAC,CAAO,IAAA,EAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AAExE,IAAA,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,QAAA,IAAI,CACF,CAAA;AACY,gBAAA,EAAA,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,UAAU,CAAA;;AAEnE,MAAA,CAAA,CACF,CAAC;AACH,KAAA;AAED,IAAA,OAAO,EAAE,CAAC;IACV,IAAI,CAAC,CAAS,OAAA,CAAA,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,IAAS,EAAE,OAAY,EAAA;IAItC,QAAQ,IAAI,CAAC,IAAI;AACf,QAAA,KAAA,CAAA;AACE,YAAA,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM;AACR,QAAA,KAAA,CAAA;AACE,YAAA,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM;AAER,QAAA,KAAA,CAAA;AACE,YAAA,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1B,MAAM;AAER,QAAA,KAAA,CAAA;AACE,YAAA,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM;AAER,QAAA,KAAA,CAAA;AACE,YAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvB,MAAM;AAIT,KAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAS,EAAE,OAAY,EAAA;AACpD,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzB,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAS,EAAE,OAAY,EAAA;AAEtC,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AAEzB,IAAA,IAAI,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,IAAI,EAAE,OAAO,EAAA;AAC/B,IAAA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEtC,IAAI,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;AAEzC,IAAA,WAAW,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAE9D,IAAI,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,KAAU,EAAE,OAAY,EAAA;AAC3C,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAEtB,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAA,CAAE,CAAC,CAAC;AACjB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxB,SAAA;AAGD,QAAA,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,CAAC;AACZ,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAI,EAAA;AAI3B,IAAA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAGpB,OAAO,CAAC,EAAE,EAAE;AACV,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;YAAE,MAAM;AAC5B,KAAA;IAGD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,IAAS,EAAE,OAAY,EAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAS,EAAE,OAAY,EAAA;AAC/C,IAAA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;AACtC,IAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAA;IAErC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;AAErD,IAAA,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE;AAGtB,QAAA,MAAM,IAAI,GAAG,CAAW,QAAA,EAAA,GAAG,CAAC,OAAO;AAChC,aAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAG,EAAA,aAAa,CAAC,CAAC,CAAC,CAAQ,KAAA,EAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,IAAI,CAAC,IAAI,CAAC,CAAW,QAAA,EAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA,CAAE,CAAC;QAE5D,IAAI,CAAC,IAAI,CAAC,CAAC;AACZ,KAAA;AAED,IAAA,OAAO,EAAE,CAAC;IACV,IAAI,CAAC,CAAS,OAAA,CAAA,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAQ,EACR,EAAE,iBAAiB,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,EAAE,IAAI,GAAG,UAAU,EAAE,EAAA;AAE3E,IAAA,MAAM,OAAO,GAAG;AACd,QAAA,IAAI,EAAE,EAAE;QACR,IAAI;QACJ,iBAAiB;QACjB,iBAAiB;AACjB,QAAA,MAAM,CAAC,GAAG,EAAA;AACR,YAAA,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;SACjC;AACD,QAAA,IAAI,CAAC,IAAI,EAAA;AACP,YAAA,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;SACtB;QACD,OAAO,GAAA;AAGL,YAAA,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;SACtB;KACF,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC;AACjB;;AC1MA,IAAW,OAGV,CAAA;AAHD,CAAA,UAAW,OAAO,EAAA;AAChB,IAAA,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,OAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAHU,OAAO,KAAP,OAAO,GAGjB,EAAA,CAAA,CAAA,CAAA;AAEK,SAAU,SAAS,CAAC,OAAe,EAAA;AACvC,IAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAO,EAAA;AAClC,IAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO;AACL,QAAA,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAO,EAAE,SAAS,EAAA;AACvC,IAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAQ,EAAE,CAAC;AAEtB,IAAA,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;AACjC,QAAA,IAAI,IAAI,CAAC;AACT,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AAEzB,QAAA,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;AAEvB,YAAA,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACvB,YAAA,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAGhB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBAGvB,QAAQ,CAAC,OAAO,EAAA,CAAA,CAAc,CAAC;oBAE/B,SAAS;AACV,iBAAA;AACF,aAAA;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9B,gBAAA,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACzC,aAAA;AACF,SAAA;QAED,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,OAAY,EAAE,SAAS,EAAA;AAKpC,IAAA,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzB,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAGnC,QAAA,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YAC9C,IAAI,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC7C,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AACF,KAAA;AAGD,IAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,OAAO,EAAE,SAAS,EAAA;AAItC,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAgB,CAAC;AAEjD,IAAA,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE,CAAC;IAIhB,IAAI,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;QACrD,QAAQ,CAAC,OAAO,EAAA,CAAA,CAAc,CAAC;AAChC,KAAA;AAAM,SAAA;QACL,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,OAAO,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC;AAC1C,KAAA;AAED,IAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE5B,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,GAAW,EAAA;AAGvD,IAAA,QACE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,EACnE;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,OAAY,EAAE,IAAa,EAAA;IAG3C,MAAM,KAAK,GAAQ,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACvE,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAIrB,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAGpC,IAAA,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAEtB,IAAA,IAAI,IAAI,KAAgB,CAAA;QAAE,OAAO;IAEjC,IAAI,OAAO,IAAuB,CAAC;IAEnC,OAAO;AACL,QAAA,IAAI,EAAmB,CAAA;QACvB,GAAG;QACH,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAY,EAAA;IAOtC,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CACvC,cAAc,EACd,aAAa,CAAC,MAAM,CACrB,CAAC;AAKF,IAAA,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAEtB,IAAA,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3D,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AACjE,IAAA,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;AAGtC,IAAA,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO;AACL,QAAA,IAAI,EAAyB,CAAA;AAC7B,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAA6B,CAAA;YACjC,OAAO;AACR,SAAA;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAO,EAAA;AACxB,IAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAMhC,IAAA,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,IAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAErC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAKnD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,KAAK,EAAE;YACpC,QAAQ,GAAG,KAAK,CAAC;AAClB,SAAA;AACF,KAAA;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEjD,OAAO;AACL,QAAA,IAAI,EAAgB,CAAA;QACpB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAY,EAAE,MAAc,EAAA;AACjD,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAG3B,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAEhD,IAAA,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE3B,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,QAAQ,EAAA;IAC1B,OAAO;AACL,QAAA,IAAI,EAAgB,CAAA;QACpB,QAAQ;AACR,QAAA,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,YAAoB,EAAA;AACtD,IAAA,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACzC;;SC9NgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAA;IAG1C,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAGtD,IAAA,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE5B,IAAA,iBAAiB,CAAC,IAAa,CAAC,CAAC;AAEjC,IAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,IAAS,EAAE,OAAO,EAAA;AACtC,IAAA,MAAM,IAAI,GAAc,IAAI,CAAC,IAAI,CAAC;AAKlC,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9C,MAAM,OAAO,GAAQ,EAAE,CAAC;AACxB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,QAAA,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,SAAA;AACF,KAAA;AAED,IAAA,QAAQ,IAAI;AACV,QAAA,KAAA,CAAA;AAEE,YAAA,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAClC,MAAM;QAER,KAAoB,CAAA,CAAA;AACpB,QAAA,KAAA,CAAA;AAEE,YAAA,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM;AAIT,KAAA;AAID,IAAA,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAGvB,OAAO,CAAC,EAAE,EAAE;AACV,QAAA,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACd,KAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,OAAY,EAAA;IAEjD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAE/B,QAAA,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9B,KAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAA;AAC3C,IAAA,MAAM,OAAO,GAAG;QACd,IAAI;AACJ,QAAA,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5C,OAAO,EAAE,IAAI,GAAG,EAAE;AAClB,QAAA,MAAM,CAAC,IAAI,EAAA;AAIT,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;SACtC;KACF,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAS,EAAE,OAAY,EAAA;AAChD,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAI1B,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAM1B,IAAI,KAAK,CAAC,IAAI,KAAA,CAAsB,IAAI,KAAK,CAAC,WAAW,EAAE;AACzD,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAChC,KAAA;AAAM,SAAA;AACL,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,KAAA;AACH;;ACnGM,SAAU,mBAAmB,CAAC,IAAI,EAAA;AACtC,IAAA,IAAI,IAAI,CAAC,IAAI,KAAA,CAA4B,EAAE;QACzC,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD,KAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAI,EAAA;IAC7B,IAAI,CAAC,OAAO,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AAEtC,IAAA,OAAO,IAAI,CAAA;AACb;;ACVA,IAAkB,SAOjB,CAAA;AAPD,CAAA,UAAkB,SAAS,EAAA;AACzB,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,SAAA,CAAA,SAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,SAAA,CAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;AACrB,CAAC,EAPiB,SAAS,KAAT,SAAS,GAO1B,EAAA,CAAA,CAAA,CAAA;AAED,IAAkB,YAEjB,CAAA;AAFD,CAAA,UAAkB,YAAY,EAAA;AAC5B,IAAA,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAFiB,YAAY,KAAZ,YAAY,GAE7B,EAAA,CAAA,CAAA,CAAA;AAgBK,SAAU,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,KAAM,EAAE,QAAS,EAAA;AAC7D,IAAA,IAAI,OAAO,EAAE;AACX,QAAA,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACtC,KAAA;IAED,OAAO;AAIL,QAAA,IAAI,EAAmB,CAAA;QACvB,GAAG;QACH,KAAK;QACL,QAAQ;KACT,CAAC;AACJ;;ACzCgB,SAAA,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAA;AAC5C,IAAA,IAAI,IAAI,CAAC,IAAI,KAAA,CAAsB,EAAE;AACnC,QAAA,OAAO,MAAK;AAKV,YAAA,MAAM,QAAQ,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,GAAG,CAAC;YAEjC,MAAM,UAAU,GAAG,IAAI,CAAC;YACxB,IAAI,aAAa,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC/B,aAAa,GAAG,KAAK,CAAC;AACvB,iBAAA;AACF,aAAA;AAGD,YAAA,IAAI,CAAC,WAAW,GAAG,eAAe,CAChC,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,CACd,CAAC;AACJ,SAAC,CAAC;AACH,KAAA;AACH;;AC5BM,SAAU,MAAM,CAAC,IAAI,EAAA;IACzB,OAAO,IAAI,CAAC,IAAI,KAAA,CAA4B,IAAI,IAAI,CAAC,IAAI,KAAA,CAAmB,CAAC;AAC/E;;ACDgB,SAAA,aAAa,CAAC,IAAI,EAAE,OAAO,EAAA;AACzC,IAAA,IAAI,IAAI,CAAC,IAAI,KAAA,CAAsB,EAAE;AAInC,QAAA,OAAO,MAAK;AAUV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,gBAAgB,CAAC;AAErB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE1B,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAEjB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,wBAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzB,wBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;4BAEhB,IAAI,CAAC,gBAAgB,EAAE;AACrB,gCAAA,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG;AAC/B,oCAAA,IAAI,EAA+B,CAAA;oCACnC,GAAG,EAAE,KAAK,CAAC,GAAG;oCACd,QAAQ,EAAE,CAAC,KAAK,CAAC;iCAClB,CAAC;AACH,6BAAA;4BAED,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAK,GAAA,CAAA,EAAE,IAAI,CAAC,CAAC;AAE5C,4BAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtB,4BAAA,CAAC,EAAE,CAAC;AACL,yBAAA;AAAM,6BAAA;4BACL,gBAAgB,GAAG,SAAS,CAAC;4BAC7B,MAAM;AACP,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACH,SAAC,CAAC;AACH,KAAA;AACH;;AC7CgB,SAAA,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAA;AAE3C,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEhC,SAAS,CACP,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,QAAA,cAAc,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,CAAC;AACvE,KAAA,CAAC,CACH,CAAC;AAGF,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvB;;ACXA,SAAS,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAA;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAIhD,IAAA,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;AAErD,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uBAAuB,CAAC,iBAAiB,CAAC;;;;"}
\ No newline at end of file
diff --git a/example/apiInject/App.js b/packages/vue/example/apiInject/App.js
similarity index 95%
rename from example/apiInject/App.js
rename to packages/vue/example/apiInject/App.js
index 47d3068e..3ee71bf6 100644
--- a/example/apiInject/App.js
+++ b/packages/vue/example/apiInject/App.js
@@ -3,7 +3,7 @@ import {
h,
provide,
inject,
-} from "../../lib/mini-vue.esm.js";
+} from "../../dist/mini-vue.esm-bundler.js";
const ProviderOne = {
setup() {
diff --git a/example/componentEmit.js/index.html b/packages/vue/example/apiInject/index.html
similarity index 85%
rename from example/componentEmit.js/index.html
rename to packages/vue/example/apiInject/index.html
index 0900434f..ce542010 100644
--- a/example/componentEmit.js/index.html
+++ b/packages/vue/example/apiInject/index.html
@@ -8,7 +8,7 @@
+
+