annil 1.0.1 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +105 -6
- package/dist/api/DefineComponent/ReturnType/test/normalComponentDoc.test.js +6 -6
- package/dist/api/DefineComponent/ReturnType/test/normalComponentDoc.test.js.map +1 -1
- package/dist/api/DefineComponent/ReturnType/test/normalPageDoc.test.js.map +1 -1
- package/dist/api/DefineComponent/collectOptionsForComponent.d.ts +4 -0
- package/dist/api/DefineComponent/collectOptionsForComponent.js +152 -0
- package/dist/api/DefineComponent/collectOptionsForComponent.js.map +1 -0
- package/dist/api/DefineComponent/index.d.ts +4 -28
- package/dist/api/DefineComponent/index.js +2 -37
- package/dist/api/DefineComponent/index.js.map +1 -1
- package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +5 -4
- package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.d.ts +5 -5
- package/dist/api/RootComponent/CustomEvents/test/error.test.js +8 -8
- package/dist/api/RootComponent/CustomEvents/test/error.test.js.map +1 -1
- package/dist/api/RootComponent/CustomEvents/test/normal.test.d.ts +17 -17
- package/dist/api/RootComponent/CustomEvents/test/normal.test.js +6 -6
- package/dist/api/RootComponent/CustomEvents/test/normal.test.js.map +1 -1
- package/dist/api/RootComponent/Data/DataConstraint.d.ts +1 -0
- package/dist/api/RootComponent/Data/DataConstraint.js +2 -0
- package/dist/api/RootComponent/Data/DataConstraint.js.map +1 -0
- package/dist/api/RootComponent/Instance/test/CustomEventsDoc.test.js +5 -5
- package/dist/api/RootComponent/Instance/test/CustomEventsDoc.test.js.map +1 -1
- package/dist/api/RootComponent/Instance/test/customEvents/normal.test.js +5 -5
- package/dist/api/RootComponent/Instance/test/customEvents/normal.test.js.map +1 -1
- package/dist/api/RootComponent/Instance/test/properties/mormal.test.js.map +1 -1
- package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +2 -2
- package/dist/api/RootComponent/Lifetimes/test/error.test.js +1 -0
- package/dist/api/RootComponent/Lifetimes/test/error.test.js.map +1 -1
- package/dist/api/RootComponent/Lifetimes/test/normal.test.js +3 -0
- package/dist/api/RootComponent/Lifetimes/test/normal.test.js.map +1 -1
- package/dist/api/RootComponent/PageLifetimes/test/normal.test.js.map +1 -1
- package/dist/api/RootComponent/Properties/GetOptionalDoc.d.ts +2 -2
- package/dist/api/RootComponent/Properties/GetRequiredDoc.d.ts +2 -2
- package/dist/api/RootComponent/Properties/PropertiesConstraint.d.ts +6 -6
- package/dist/api/RootComponent/Properties/PropertiesValueValidator.d.ts +2 -2
- package/dist/api/RootComponent/Properties/test/error.test.js.map +1 -1
- package/dist/api/RootComponent/Properties/test/normalOptional.test.js +15 -0
- package/dist/api/RootComponent/Properties/test/normalOptional.test.js.map +1 -1
- package/dist/api/RootComponent/Properties/test/normalRequired.test.d.ts +21 -21
- package/dist/api/RootComponent/index.d.ts +19 -2
- package/dist/api/RootComponent/index.js +1 -1
- package/dist/api/RootComponent/index.js.map +1 -1
- package/dist/api/SubComponent/SubComputed/GetSubComputedDoc.d.ts +1 -1
- package/dist/api/SubComponent/SubComputed/test/normal.test.js +4 -4
- package/dist/api/SubComponent/SubComputed/test/normal.test.js.map +1 -1
- package/dist/api/SubComponent/index.d.ts +2 -2
- package/dist/api/SubComponent/index.js.map +1 -1
- package/dist/api/navigateTo.d.ts +1 -1
- package/dist/{utils → behaviors/BComputedAndWatch}/computedUpdater.d.ts +1 -1
- package/dist/{utils → behaviors/BComputedAndWatch}/computedUpdater.js +2 -2
- package/dist/behaviors/BComputedAndWatch/computedUpdater.js.map +1 -0
- package/dist/{utils → behaviors/BComputedAndWatch}/getPathsValue.d.ts +1 -1
- package/dist/behaviors/BComputedAndWatch/getPathsValue.js.map +1 -0
- package/dist/behaviors/BComputedAndWatch/index.js +8 -1
- package/dist/behaviors/BComputedAndWatch/index.js.map +1 -1
- package/dist/behaviors/BComputedAndWatch/initComputed.js +1 -1
- package/dist/behaviors/BComputedAndWatch/initComputed.js.map +1 -1
- package/dist/behaviors/BStore.js.map +1 -1
- package/dist/behaviors/BbeforeCreated.js +1 -2
- package/dist/behaviors/BbeforeCreated.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/{SpecificType.d.ts → DetailedType.d.ts} +1 -1
- package/dist/types/DetailedType.js +2 -0
- package/dist/types/DetailedType.js.map +1 -0
- package/dist/types/GenerateDoc.d.ts +9 -0
- package/dist/types/GenerateDoc.js +2 -0
- package/dist/types/GenerateDoc.js.map +1 -0
- package/dist/types/InferDetailedType.d.ts +2 -0
- package/dist/types/InferDetailedType.js +2 -0
- package/dist/types/InferDetailedType.js.map +1 -0
- package/dist/types/{InferSpecificType.test.js → InferDetailedType.test.js} +1 -1
- package/dist/types/InferDetailedType.test.js.map +1 -0
- package/dist/types/OfficialTypeAlias.d.ts +6 -6
- package/package.json +3 -3
- package/src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts +12 -12
- package/src/api/DefineComponent/ReturnType/test/normalPageDoc.test.ts +4 -4
- package/src/api/DefineComponent/collectOptionsForComponent.ts +290 -0
- package/src/api/DefineComponent/index.ts +12 -85
- package/src/api/RootComponent/Computed/test/normal.test.ts +2 -2
- package/src/api/RootComponent/CustomEvents/CustomEventConstraint.ts +6 -4
- package/src/api/RootComponent/CustomEvents/CustomEventsOption.ts +2 -2
- package/src/api/RootComponent/CustomEvents/GetCustomEventDoc.ts +7 -7
- package/src/api/RootComponent/CustomEvents/test/error.test.ts +8 -8
- package/src/api/RootComponent/CustomEvents/test/normal.test.ts +9 -9
- package/src/api/RootComponent/Data/DataConstraint.ts +1 -0
- package/src/api/RootComponent/Events/EventsConstraint.ts +1 -1
- package/src/api/RootComponent/Instance/test/CustomEventsDoc.test.ts +8 -8
- package/src/api/RootComponent/Instance/test/customEvents/normal.test.ts +8 -8
- package/src/api/RootComponent/Instance/test/properties/mormal.test.ts +3 -3
- package/src/api/RootComponent/IsPage/IsPageOption.ts +6 -1
- package/src/api/RootComponent/Lifetimes/LifetimesConstraint.ts +2 -2
- package/src/api/RootComponent/Lifetimes/test/error.test.ts +1 -1
- package/src/api/RootComponent/Lifetimes/test/normal.test.ts +3 -3
- package/src/api/RootComponent/PageLifetimes/test/normal.test.ts +3 -3
- package/src/api/RootComponent/Properties/GetOptionalDoc.ts +5 -5
- package/src/api/RootComponent/Properties/GetRequiredDoc.ts +5 -5
- package/src/api/RootComponent/Properties/PropertiesConstraint.ts +6 -6
- package/src/api/RootComponent/Properties/PropertiesOption.ts +1 -1
- package/src/api/RootComponent/Properties/PropertiesValueValidator.ts +2 -2
- package/src/api/RootComponent/Properties/test/error.test.ts +2 -2
- package/src/api/RootComponent/Properties/test/normalOptional.test.ts +25 -5
- package/src/api/RootComponent/Properties/test/normalRequired.test.ts +11 -11
- package/src/api/RootComponent/Watch/test/WatchComputed.test.ts +2 -2
- package/src/api/RootComponent/Watch/test/WatchProperties.test.ts +4 -4
- package/src/api/RootComponent/index.ts +19 -3
- package/src/api/SubComponent/SubComputed/test/normal.test.ts +15 -9
- package/src/api/SubComponent/index.ts +4 -4
- package/src/{utils → behaviors/BComputedAndWatch}/computedUpdater.ts +5 -4
- package/src/{utils → behaviors/BComputedAndWatch}/getPathsValue.ts +1 -1
- package/src/behaviors/BComputedAndWatch/index.ts +13 -4
- package/src/behaviors/BComputedAndWatch/initComputed.ts +1 -1
- package/src/behaviors/BStore.ts +2 -2
- package/src/behaviors/BbeforeCreated.ts +3 -3
- package/src/index.ts +11 -2
- package/src/types/DetailedType.ts +15 -0
- package/src/types/GenerateDoc.ts +19 -0
- package/src/types/InferDetailedType.test.ts +18 -0
- package/src/types/{InferSpecificType.ts → InferDetailedType.ts} +4 -4
- package/src/types/OfficialTypeAlias.ts +2 -2
- package/src/types/RestorePropertiesDoc.ts +3 -3
- package/tsconfig.json +7 -16
- package/dist/types/InferSpecificType.d.ts +0 -2
- package/dist/types/InferSpecificType.js +0 -2
- package/dist/types/InferSpecificType.js.map +0 -1
- package/dist/types/InferSpecificType.test.js.map +0 -1
- package/dist/types/SpecificType.js +0 -2
- package/dist/types/SpecificType.js.map +0 -1
- package/dist/utils/InternalFieldProtection.d.ts +0 -2
- package/dist/utils/InternalFieldProtection.js +0 -11
- package/dist/utils/InternalFieldProtection.js.map +0 -1
- package/dist/utils/collector.d.ts +0 -5
- package/dist/utils/collector.js +0 -21
- package/dist/utils/collector.js.map +0 -1
- package/dist/utils/computedUpdater.js.map +0 -1
- package/dist/utils/createdHijack.d.ts +0 -0
- package/dist/utils/createdHijack.js +0 -2
- package/dist/utils/createdHijack.js.map +0 -1
- package/dist/utils/customEventsHandle.d.ts +0 -2
- package/dist/utils/customEventsHandle.js +0 -20
- package/dist/utils/customEventsHandle.js.map +0 -1
- package/dist/utils/eventsHandle.d.ts +0 -2
- package/dist/utils/eventsHandle.js +0 -5
- package/dist/utils/eventsHandle.js.map +0 -1
- package/dist/utils/funcConfigHandle.d.ts +0 -2
- package/dist/utils/funcConfigHandle.js +0 -18
- package/dist/utils/funcConfigHandle.js.map +0 -1
- package/dist/utils/getPathsValue.js.map +0 -1
- package/dist/utils/initWatchOldValue.d.ts +0 -2
- package/dist/utils/initWatchOldValue.js +0 -10
- package/dist/utils/initWatchOldValue.js.map +0 -1
- package/dist/utils/onLoadHijack.d.ts +0 -3
- package/dist/utils/onLoadHijack.js +0 -16
- package/dist/utils/onLoadHijack.js.map +0 -1
- package/dist/utils/onLoadReceivedDataHandle.d.ts +0 -3
- package/dist/utils/onLoadReceivedDataHandle.js +0 -14
- package/dist/utils/onLoadReceivedDataHandle.js.map +0 -1
- package/dist/utils/rootComponentFieldHandle.d.ts +0 -3
- package/dist/utils/rootComponentFieldHandle.js +0 -13
- package/dist/utils/rootComponentFieldHandle.js.map +0 -1
- package/dist/utils/subComponentsHandle.d.ts +0 -3
- package/dist/utils/subComponentsHandle.js +0 -12
- package/dist/utils/subComponentsHandle.js.map +0 -1
- package/src/types/InferSpecificType.test.ts +0 -18
- package/src/types/SpecificType.ts +0 -19
- package/src/utils/InternalFieldProtection.ts +0 -18
- package/src/utils/collector.ts +0 -41
- package/src/utils/createdHijack.ts +0 -21
- package/src/utils/customEventsHandle.ts +0 -31
- package/src/utils/eventsHandle.ts +0 -10
- package/src/utils/funcConfigHandle.ts +0 -30
- package/src/utils/initWatchOldValue.ts +0 -12
- package/src/utils/onLoadHijack.ts +0 -30
- package/src/utils/onLoadReceivedDataHandle.ts +0 -31
- package/src/utils/rootComponentFieldHandle.ts +0 -27
- package/src/utils/subComponentsHandle.ts +0 -25
- /package/dist/{utils → behaviors/BComputedAndWatch}/getPathsValue.js +0 -0
- /package/dist/types/{InferSpecificType.test.d.ts → InferDetailedType.test.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
|
|
6
|
+
|
|
7
|
+
## [1.0.5](https://github.com/missannil/annil/compare/v1.0.4...v1.0.5) (2023-12-02)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Miscellaneous Chores
|
|
11
|
+
|
|
12
|
+
* 更改SpecificType为DetailedType ([b56a920](https://github.com/missannil/annil/commit/b56a920780f7dee1cb49ee166c624b609cfd8431))
|
|
13
|
+
|
|
14
|
+
## [1.0.4](https://github.com/missannil/annil/compare/v1.0.3...v1.0.4) (2023-11-30)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* release.yml ([c8b68b6](https://github.com/missannil/annil/commit/c8b68b66a50f5834756ab9f0d926bc7f1be2f90e))
|
|
20
|
+
* yml ([e51c002](https://github.com/missannil/annil/commit/e51c00290d24d9372766e66e9c807e0c3d65429f))
|
|
21
|
+
|
|
3
22
|
## [1.0.1](https://github.com/missannil/annil/compare/v1.0.0...v1.0.1) (2023-11-27)
|
|
4
23
|
|
|
5
24
|
|
package/README.md
CHANGED
|
@@ -1,10 +1,109 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center">Annil</h1>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://www.npmjs.com/package/annil" >
|
|
5
|
+
<img src="https://img.shields.io/npm/v/annil?style=flat"/>
|
|
6
|
+
</a>
|
|
7
|
+
<a href="https://github.com/missannil/annil/blob/main/.github/workflows/test.yml" >
|
|
8
|
+
<img src="https://github.com/missannil/annil/actions/workflows/test.yml/badge.svg?branch=miss"/>
|
|
9
|
+
</a>
|
|
10
|
+
<a href="https://github.com/missannil/annil/blob/main/.github/workflows/release-please.yml" >
|
|
11
|
+
<img src="https://github.com/missannil/annil/actions/workflows/release-please.yml/badge.svg?branch=main"/>
|
|
12
|
+
</a>
|
|
13
|
+
<a href="https://github.com/missannil/annil/blob/main/LICENSE" >
|
|
14
|
+
<img src="https://img.shields.io/github/license/missannil/annil"/>
|
|
15
|
+
</a>
|
|
16
|
+
<a href="https://codecov.io/gh/missannil/annil" >
|
|
17
|
+
<img src="https://codecov.io/gh/missannil/annil/graph/badge.svg?token=4CFCHGST79"/>
|
|
18
|
+
</a>
|
|
19
|
+
<a href="https://www.npmjs.com/package/annil" >
|
|
20
|
+
<img src="https://img.shields.io/npm/dependency-version/annil/dev/typescript"/>
|
|
21
|
+
</a>
|
|
22
|
+
</p>
|
|
4
23
|
|
|
5
|
-
|
|
24
|
+
### 简介
|
|
6
25
|
|
|
7
|
-
|
|
26
|
+
annil(安奈儿)是微信小程序原生开发插件,提供了新的组件构建API,旨在提高原生开发效率及代码质量。
|
|
8
27
|
|
|
9
|
-
|
|
10
|
-
|
|
28
|
+
### 特点
|
|
29
|
+
|
|
30
|
+
- **API功能更全面**
|
|
31
|
+
|
|
32
|
+
新的组件API(相较原生Component/Page)加入了`computed`、`watch`、`store(全局响应式数据基于mobx)`等功能,使开发更便捷。
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
```
|
|
36
|
+
- **复杂组件解决方案**
|
|
37
|
+
|
|
38
|
+
新的组件API把组件逻辑部分解耦为根组件逻辑和子组件逻辑,与wxml元素一一对应。彻底解决原生API书写复杂组件时代码逻辑耦合的问题。
|
|
39
|
+
|
|
40
|
+
- **革命性的组件类型模型**
|
|
41
|
+
|
|
42
|
+
每个组件(页面)都是唯一的类型(文档描述->类型描述),在使用子组件构建新组件(页面)时,根组件和子组件类型相互关联(提供字段提示、类型约束),无论组件(页面)嵌套多少层,无论哪层数据类型发生改变,所有相关组件类型都会得到感知。当您修改、重构代码时,只要无类型报错就不会有运行时报错的心智负担。
|
|
43
|
+
|
|
44
|
+
- **更合理的书写规范**
|
|
45
|
+
|
|
46
|
+
原生开发时,很容易写出不易维护的代码,比如任意`setData`一个未声明变量或通过`this.triggerEvent('name',unknown)`触发组件自定义事件。插件通过类型约束和提前声明变量等方式给出了可选方案。
|
|
47
|
+
|
|
48
|
+
- **渐进式更新**
|
|
49
|
+
|
|
50
|
+
此插件提供的API都是原生API的语法糖,不具有强制性和全局性,来去自如。
|
|
51
|
+
|
|
52
|
+
- **完美融合第三方库**
|
|
53
|
+
|
|
54
|
+
通过插件提供的泛型[GenerateDoc](./src/types/GenerateDoc.ts)即可根据组件文档生成组件类型,插件也内置了一些原生和第三方组件库类型,欢迎PR您写的第三方组件类型,我为人人,人人为我。
|
|
55
|
+
|
|
56
|
+
### 安装
|
|
57
|
+
|
|
58
|
+
1. 依赖安装
|
|
59
|
+
|
|
60
|
+
- 必装
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm i annil
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
- 可选
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# 推荐使用 ts开发
|
|
70
|
+
npm typescript --save-dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# 使用全局响应式数据
|
|
75
|
+
npm i mobx
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
2. 构建npm
|
|
79
|
+
|
|
80
|
+
开发者工具左上部工具栏——工具——构建npm
|
|
81
|
+
> 若使用mobx,在构建npm前需要手动更改`node_modules/mobx/dist/index.js`文件
|
|
82
|
+
> 避免使用时出现 `ReferenceError: process is not defined` 错误。
|
|
83
|
+
```js
|
|
84
|
+
// 更改前
|
|
85
|
+
"use strict";
|
|
86
|
+
|
|
87
|
+
if (process.env.NODE_ENV === "production") {
|
|
88
|
+
module.exports = require("./mobx.cjs.production.min.js");
|
|
89
|
+
} else {
|
|
90
|
+
module.exports = require("./mobx.cjs.development.js");
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
```js
|
|
94
|
+
// 更改后
|
|
95
|
+
"use strict";
|
|
96
|
+
module.exports = require("./mobx.cjs.production.min.js");
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
> 另外,构建时会出现`node_modules/miniprogram-api-typings/index.d.ts.js: Npm package entry file not found`错误,这是因为annil插件把官方类型库`miniprogram-api-typings`加入到生产依赖中,而npm构建时找不到生产目录所致,无视即可。还需删除`miniprogram_npm`下的`hry-types`目录(annil依赖的另一个类型库)。确保annil和mobx目录构建成功即可。
|
|
100
|
+
|
|
101
|
+
### 使用文档
|
|
102
|
+
|
|
103
|
+
### 更新日志
|
|
104
|
+
|
|
105
|
+
[CHANGELOG](./CHANGELOG.md)
|
|
106
|
+
|
|
107
|
+
### 协议
|
|
108
|
+
|
|
109
|
+
[MIT](./LICENSE)
|
|
@@ -19,27 +19,27 @@ const customEvents = {
|
|
|
19
19
|
unionStr: String,
|
|
20
20
|
list: [String, Number, null],
|
|
21
21
|
bubbles: {
|
|
22
|
-
|
|
22
|
+
detail: String,
|
|
23
23
|
options: { bubbles: true },
|
|
24
24
|
},
|
|
25
25
|
capturePhase: {
|
|
26
|
-
|
|
26
|
+
detail: null,
|
|
27
27
|
options: { capturePhase: true },
|
|
28
28
|
},
|
|
29
29
|
bubbles_capturePhase: {
|
|
30
|
-
|
|
30
|
+
detail: [String, Number],
|
|
31
31
|
options: { bubbles: true, capturePhase: true },
|
|
32
32
|
},
|
|
33
33
|
bubbles_composed: {
|
|
34
|
-
|
|
34
|
+
detail: String,
|
|
35
35
|
options: { bubbles: true, composed: true },
|
|
36
36
|
},
|
|
37
37
|
capturePhase_composed: {
|
|
38
|
-
|
|
38
|
+
detail: [String, Number, null],
|
|
39
39
|
options: { capturePhase: true, composed: true },
|
|
40
40
|
},
|
|
41
41
|
bubbles_capturePhase_composed: {
|
|
42
|
-
|
|
42
|
+
detail: Boolean,
|
|
43
43
|
options: { bubbles: true, capturePhase: true, composed: true },
|
|
44
44
|
},
|
|
45
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalComponentDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"normalComponentDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalPageDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/ReturnType/test/normalPageDoc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"normalPageDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/ReturnType/test/normalPageDoc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAChD,OAAO,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE;QACV,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAAiC;QACtC,WAAW,EAAE;YACX,IAAI,EAAE,MAAiC;YACvC,KAAK,EAAE,EAAe;SACvB;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE,MAAwC;YAC9C,KAAK,EAAE,IAAI;SACZ;KACF;IACD,YAAY,EAAE,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,oBAAoB;IAC1B,aAAa,EAAE,gBAAgB;CAChC,CAAC,CAAC;AAaH,QAAgF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RootComponentTrueOptions } from "../RootComponent";
|
|
2
|
+
import type { SubComponentTrueOptions } from "../SubComponent";
|
|
3
|
+
import type { FinalOptionsForComponent } from ".";
|
|
4
|
+
export declare function collectOptionsForComponent(rootComponentOption: RootComponentTrueOptions | undefined, subComponentsList: SubComponentTrueOptions[] | undefined): FinalOptionsForComponent;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { BBeforeCreate } from "../../behaviors/BbeforeCreated";
|
|
2
|
+
import { BComputedAndWatch } from "../../behaviors/BComputedAndWatch";
|
|
3
|
+
import { initComputed } from "../../behaviors/BComputedAndWatch/initComputed";
|
|
4
|
+
import { BStore } from "../../behaviors/BStore";
|
|
5
|
+
import { deepClone } from "../../utils/deepClone";
|
|
6
|
+
import { INNERMARKER } from "../../utils/InnerMarker";
|
|
7
|
+
import { isEmptyObject } from "../../utils/isEmptyObject";
|
|
8
|
+
function onLoadReceivedDataHandle(option) {
|
|
9
|
+
const innerData = option[INNERMARKER.url];
|
|
10
|
+
if (innerData === undefined)
|
|
11
|
+
return;
|
|
12
|
+
const optionData = JSON.parse(decodeURIComponent(innerData));
|
|
13
|
+
for (const key in optionData) {
|
|
14
|
+
option[key] = optionData[key];
|
|
15
|
+
}
|
|
16
|
+
this.setData(option);
|
|
17
|
+
delete option[INNERMARKER.url];
|
|
18
|
+
Reflect.deleteProperty(this.data, INNERMARKER.url);
|
|
19
|
+
}
|
|
20
|
+
function onLoadHijack(options, before, after = []) {
|
|
21
|
+
options.methods || (options.methods = {});
|
|
22
|
+
const cloneOpt = deepClone(options);
|
|
23
|
+
const originalOnLoad = options.methods.onLoad;
|
|
24
|
+
options.methods.onLoad = function (props) {
|
|
25
|
+
before.forEach((func) => {
|
|
26
|
+
func.call(this, props, cloneOpt);
|
|
27
|
+
});
|
|
28
|
+
originalOnLoad === null || originalOnLoad === void 0 ? void 0 : originalOnLoad.call(this, props);
|
|
29
|
+
after.forEach((func) => {
|
|
30
|
+
func.call(this, props, cloneOpt);
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const INNERFIELDS = ["disposer"];
|
|
35
|
+
function InternalFieldProtection(methodsConfig) {
|
|
36
|
+
const methodsConfigKeys = Object.keys(methodsConfig);
|
|
37
|
+
for (const key of INNERFIELDS) {
|
|
38
|
+
if (methodsConfigKeys.includes(key)) {
|
|
39
|
+
throw Error(`${key}已被内部字段占用`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function _funcConfigHandle(methodsConfig, configList) {
|
|
44
|
+
for (const key in configList) {
|
|
45
|
+
methodsConfig[key] = function (...args) {
|
|
46
|
+
configList[key].forEach(ele => ele.call(this, ...args));
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function funcConfigHandle(finalOptionsForComponent, isPage, funcOptions) {
|
|
51
|
+
if (isPage) {
|
|
52
|
+
funcOptions.pageLifetimes && _funcConfigHandle(finalOptionsForComponent.methods || (finalOptionsForComponent.methods = {}), funcOptions.pageLifetimes);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
funcOptions.pageLifetimes
|
|
56
|
+
&& _funcConfigHandle(finalOptionsForComponent.pageLifetimes || (finalOptionsForComponent.pageLifetimes = {}), funcOptions.pageLifetimes);
|
|
57
|
+
}
|
|
58
|
+
funcOptions.lifetimes && _funcConfigHandle(finalOptionsForComponent.lifetimes || (finalOptionsForComponent.lifetimes = {}), funcOptions.lifetimes);
|
|
59
|
+
funcOptions.watch && _funcConfigHandle(finalOptionsForComponent.watch || (finalOptionsForComponent.watch = {}), funcOptions.watch);
|
|
60
|
+
}
|
|
61
|
+
function funcFieldsCollect(options, funcOptions) {
|
|
62
|
+
var _a;
|
|
63
|
+
for (const key in funcOptions) {
|
|
64
|
+
if (options[key]) {
|
|
65
|
+
for (const _key in options[key]) {
|
|
66
|
+
((_a = funcOptions[key])[_key] || (_a[_key] = [])).push(options[key][_key]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
Reflect.deleteProperty(options, key);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function otherFieldsHandle(finalOptions, rootComponentOptions) {
|
|
73
|
+
for (const key in rootComponentOptions) {
|
|
74
|
+
const config = rootComponentOptions[key];
|
|
75
|
+
if (Array.isArray(config)) {
|
|
76
|
+
(finalOptions[key] || (finalOptions[key] = [])).push(...config);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
Object.assign(finalOptions[key] || (finalOptions[key] = {}), config);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function eventsHandle(componentOptions, eventsConfig) {
|
|
84
|
+
componentOptions.methods || (componentOptions.methods = {});
|
|
85
|
+
Object.assign(componentOptions.methods, eventsConfig);
|
|
86
|
+
}
|
|
87
|
+
function subComponentsHandle(componentOptions, subComponents, funcOptions) {
|
|
88
|
+
subComponents.forEach((subOption) => {
|
|
89
|
+
subOption.events && eventsHandle(componentOptions, subOption.events);
|
|
90
|
+
funcFieldsCollect(subOption, funcOptions);
|
|
91
|
+
otherFieldsHandle(componentOptions, subOption);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function IsFullCustomEvents(customEventOptions) {
|
|
95
|
+
return Object.prototype.toString.call(customEventOptions) === "[object Object]";
|
|
96
|
+
}
|
|
97
|
+
function customEventsHandle(componentOptions, customEventsConfig) {
|
|
98
|
+
componentOptions.methods || (componentOptions.methods = {});
|
|
99
|
+
for (const key in customEventsConfig) {
|
|
100
|
+
const customEventOptions = customEventsConfig[key];
|
|
101
|
+
if (IsFullCustomEvents(customEventOptions)) {
|
|
102
|
+
componentOptions.methods[key] = function (detail) {
|
|
103
|
+
this.triggerEvent(key, detail, customEventOptions.options);
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
componentOptions.methods[key] = function (detail) {
|
|
108
|
+
this.triggerEvent(key, detail);
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function collectRootComponentOption(finalOptions, funcOptions, rootComponentOptions) {
|
|
114
|
+
rootComponentOptions.customEvents && customEventsHandle(finalOptions, rootComponentOptions.customEvents);
|
|
115
|
+
delete rootComponentOptions.customEvents;
|
|
116
|
+
rootComponentOptions.events && eventsHandle(finalOptions, rootComponentOptions.events);
|
|
117
|
+
delete rootComponentOptions.events;
|
|
118
|
+
funcFieldsCollect(rootComponentOptions, funcOptions);
|
|
119
|
+
otherFieldsHandle(finalOptions, rootComponentOptions);
|
|
120
|
+
}
|
|
121
|
+
export function collectOptionsForComponent(rootComponentOption, subComponentsList) {
|
|
122
|
+
const finalOptionsForComponent = {
|
|
123
|
+
options: {
|
|
124
|
+
multipleSlots: true,
|
|
125
|
+
pureDataPattern: /^_/,
|
|
126
|
+
virtualHost: true,
|
|
127
|
+
},
|
|
128
|
+
behaviors: [BStore, BComputedAndWatch],
|
|
129
|
+
};
|
|
130
|
+
const funcOptions = {
|
|
131
|
+
pageLifetimes: {},
|
|
132
|
+
lifetimes: {},
|
|
133
|
+
watch: {},
|
|
134
|
+
};
|
|
135
|
+
if (rootComponentOption && !isEmptyObject(rootComponentOption)) {
|
|
136
|
+
collectRootComponentOption(finalOptionsForComponent, funcOptions, rootComponentOption);
|
|
137
|
+
}
|
|
138
|
+
if (subComponentsList && !isEmptyObject(subComponentsList)) {
|
|
139
|
+
subComponentsHandle(finalOptionsForComponent, subComponentsList, funcOptions);
|
|
140
|
+
}
|
|
141
|
+
if (!isEmptyObject(funcOptions)) {
|
|
142
|
+
funcConfigHandle(finalOptionsForComponent, rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage, funcOptions);
|
|
143
|
+
}
|
|
144
|
+
finalOptionsForComponent.methods && InternalFieldProtection(finalOptionsForComponent.methods);
|
|
145
|
+
finalOptionsForComponent.behaviors.push(BBeforeCreate);
|
|
146
|
+
onLoadHijack(finalOptionsForComponent, [onLoadReceivedDataHandle, initComputed], []);
|
|
147
|
+
if (finalOptionsForComponent.isPage) {
|
|
148
|
+
Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
|
|
149
|
+
}
|
|
150
|
+
return finalOptionsForComponent;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=collectOptionsForComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,19 +9,16 @@ import type { CreateComponentDoc } from "./ReturnType/CreateComponentDoc";
|
|
|
9
9
|
import type { CreatePageDoc } from "./ReturnType/CreatePageDoc";
|
|
10
10
|
import type { RootComponentOption } from "./RootComponent/RootComponentOption";
|
|
11
11
|
import type { SubComponentsOption } from "./SubComponents/SubComponentsOption";
|
|
12
|
+
type Path = `/${string}`;
|
|
12
13
|
type RootOptions<TRootComponentDoc extends RootComponentDoc, TSubComponentTuple extends SubComponentDoc[], TName extends string, TPath extends Path> = NameOrPathOption<TName, TPath, TRootComponentDoc> & RootComponentOption<TRootComponentDoc> & SubComponentsOption<TSubComponentTuple>;
|
|
13
14
|
interface DefineComponentConstructor {
|
|
14
15
|
<TRootComponentDoc extends RootComponentDoc = {}, TSubComponentTuple extends SubComponentDoc[] = [], TName extends string = "", TPath extends Path = "/">(options: RootOptions<TRootComponentDoc, TSubComponentTuple, TName, TPath>): IfExtends<"", TName, CreatePageDoc<TRootComponentDoc, TPath, TSubComponentTuple>, CreateComponentDoc<TRootComponentDoc, TName, TSubComponentTuple>>;
|
|
15
16
|
}
|
|
16
|
-
export type
|
|
17
|
-
|
|
18
|
-
lifetimes?: Record<string, Func[]>;
|
|
19
|
-
watch?: Record<string, Func[]>;
|
|
20
|
-
};
|
|
21
|
-
export type ComponentOptions = {
|
|
17
|
+
export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch", Record<string, Func[]>>;
|
|
18
|
+
export type FinalOptionsForComponent = {
|
|
22
19
|
isPage?: boolean;
|
|
23
20
|
options?: WMComponent.Options;
|
|
24
|
-
properties?:
|
|
21
|
+
properties?: Record<string, any>;
|
|
25
22
|
data?: object;
|
|
26
23
|
store?: object;
|
|
27
24
|
computed?: Record<string, Func>;
|
|
@@ -36,26 +33,5 @@ export type ComponentOptions = {
|
|
|
36
33
|
load: Func;
|
|
37
34
|
} & WMPageLifetimes>;
|
|
38
35
|
};
|
|
39
|
-
export type Path = `/${string}`;
|
|
40
|
-
export type DefineComponentOptions = {
|
|
41
|
-
path?: Path;
|
|
42
|
-
name?: string;
|
|
43
|
-
rootComponent?: RootComponentDoc;
|
|
44
|
-
subComponents?: SubComponentDoc[];
|
|
45
|
-
};
|
|
46
36
|
export declare const DefineComponent: DefineComponentConstructor;
|
|
47
|
-
export type PageOptions = {
|
|
48
|
-
path: Path;
|
|
49
|
-
rootComponent: RootComponentDoc & {
|
|
50
|
-
isPage: true;
|
|
51
|
-
};
|
|
52
|
-
subComponents: SubComponentDoc[];
|
|
53
|
-
};
|
|
54
|
-
export type CompOptions = {
|
|
55
|
-
name: string;
|
|
56
|
-
rootComponent: RootComponentDoc & {
|
|
57
|
-
isPage: undefined;
|
|
58
|
-
};
|
|
59
|
-
subComponents: SubComponentDoc[];
|
|
60
|
-
};
|
|
61
37
|
export {};
|
|
@@ -1,40 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BComputedAndWatch } from "../../behaviors/BComputedAndWatch";
|
|
3
|
-
import { initComputed } from "../../behaviors/BComputedAndWatch/initComputed";
|
|
4
|
-
import { BStore } from "../../behaviors/BStore";
|
|
5
|
-
import { funcConfigHandle } from "../../utils/funcConfigHandle";
|
|
6
|
-
import { isEmptyObject } from "../../utils/isEmptyObject";
|
|
7
|
-
import { onLoadReceivedDataHandle } from "../../utils/onLoadReceivedDataHandle";
|
|
8
|
-
import { rootComponentFieldHandle } from "../../utils/rootComponentFieldHandle";
|
|
9
|
-
import { subComponentsHandle } from "../../utils/subComponentsHandle";
|
|
10
|
-
import { InternalFieldProtection } from "../../utils/InternalFieldProtection";
|
|
11
|
-
import { onLoadHijack } from "../../utils/onLoadHijack";
|
|
1
|
+
import { collectOptionsForComponent } from "./collectOptionsForComponent";
|
|
12
2
|
export const DefineComponent = function (options) {
|
|
13
|
-
|
|
14
|
-
const finalOptions = {
|
|
15
|
-
options: {
|
|
16
|
-
multipleSlots: true,
|
|
17
|
-
pureDataPattern: /^_/,
|
|
18
|
-
virtualHost: true,
|
|
19
|
-
},
|
|
20
|
-
behaviors: [BStore, BComputedAndWatch],
|
|
21
|
-
};
|
|
22
|
-
const allFuncConfig = {};
|
|
23
|
-
if (options.rootComponent && !isEmptyObject(options.rootComponent)) {
|
|
24
|
-
rootComponentFieldHandle(options.rootComponent, finalOptions, allFuncConfig);
|
|
25
|
-
}
|
|
26
|
-
if (options.subComponents && !isEmptyObject(options.subComponents)) {
|
|
27
|
-
subComponentsHandle(finalOptions, options.subComponents, allFuncConfig);
|
|
28
|
-
}
|
|
29
|
-
if (!isEmptyObject(allFuncConfig)) {
|
|
30
|
-
funcConfigHandle(finalOptions, (_a = options.rootComponent) === null || _a === void 0 ? void 0 : _a.isPage, allFuncConfig);
|
|
31
|
-
}
|
|
32
|
-
finalOptions.methods && InternalFieldProtection(finalOptions.methods);
|
|
33
|
-
finalOptions.behaviors.push(BBeforeCreate);
|
|
34
|
-
onLoadHijack(finalOptions, [onLoadReceivedDataHandle, initComputed], []);
|
|
35
|
-
if (finalOptions.isPage) {
|
|
36
|
-
Reflect.deleteProperty(finalOptions.options, "virtualHost");
|
|
37
|
-
}
|
|
38
|
-
Component(finalOptions);
|
|
3
|
+
Component(collectOptionsForComponent(options.rootComponent, options.subComponents));
|
|
39
4
|
};
|
|
40
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAyD1E,MAAM,CAAC,MAAM,eAAe,GAA+B,UAAS,OAAO;IACzE,SAAS,CACP,0BAA0B,CAAC,OAAO,CAAC,aAAqD,EAAE,OAAO,CAAC,aAAa,CAAC,CACjH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
type SimpleCustomeEvents =
|
|
1
|
+
import type { DetailedType } from "../../../types/DetailedType";
|
|
2
|
+
type SimpleCustomeEvents = DetailedType | null;
|
|
3
3
|
export type SimpleCustomeEventsList = SimpleCustomeEvents[];
|
|
4
4
|
export type ShortCustomeEvents = SimpleCustomeEvents | SimpleCustomeEventsList;
|
|
5
5
|
type BubblesConfig = {
|
|
@@ -28,8 +28,9 @@ export type CaptureComposedOption = CaptureConfig & ComposedCongifg & NonBubbles
|
|
|
28
28
|
export type BubblesCaptureComposedOption = BubblesConfig & ComposedCongifg & CaptureConfig;
|
|
29
29
|
export type OptionsFieldsConfigOfCustomEvents = BubblesOption | CaptureOption | BubblesCaptureOption | BubblesComposedOption | CaptureComposedOption | BubblesCaptureComposedOption;
|
|
30
30
|
export type FullCustomEvents = {
|
|
31
|
-
|
|
31
|
+
detail: ShortCustomeEvents;
|
|
32
32
|
options: OptionsFieldsConfigOfCustomEvents;
|
|
33
33
|
};
|
|
34
|
-
export type
|
|
34
|
+
export type CustomEvents = FullCustomEvents | ShortCustomeEvents;
|
|
35
|
+
export type CustomEventConstraint = Record<string, CustomEvents>;
|
|
35
36
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { DetailedType } from "../../../types/DetailedType";
|
|
2
|
+
import type { InferDetailedType } from "../../../types/InferDetailedType";
|
|
3
3
|
import type { CustomEventConstraint, FullCustomEvents, ShortCustomeEvents, SimpleCustomeEventsList } from "./CustomEventConstraint";
|
|
4
4
|
import type { AddTagForCustomEventsDoc } from "./CustomEventsTag";
|
|
5
|
-
export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends
|
|
6
|
-
export type GetFullCustomEventsDoc<T extends FullCustomEvents> = GetShortCustomEventsDoc<T["
|
|
5
|
+
export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends DetailedType ? InferDetailedType<T> : T extends null ? null : T extends SimpleCustomeEventsList ? GetShortCustomEventsDoc<T[number]> : never;
|
|
6
|
+
export type GetFullCustomEventsDoc<T extends FullCustomEvents> = GetShortCustomEventsDoc<T["detail"]> | AddTagForCustomEventsDoc<T["options"]>;
|
|
7
7
|
export type GetCustomEventDoc<T extends CustomEventConstraint> = {
|
|
8
|
-
[k in keyof T]: T[k] extends ShortCustomeEvents ? GetShortCustomEventsDoc<T[k]> : GetShortCustomEventsDoc<T[k]["
|
|
8
|
+
[k in keyof T]: T[k] extends ShortCustomeEvents ? GetShortCustomEventsDoc<T[k]> : GetShortCustomEventsDoc<T[k]["detail"]> | AddTagForCustomEventsDoc<T[k]["options"]>;
|
|
9
9
|
};
|
|
@@ -2,22 +2,22 @@ import { RootComponent } from "../..";
|
|
|
2
2
|
RootComponent()({
|
|
3
3
|
customEvents: {
|
|
4
4
|
error1: {
|
|
5
|
-
|
|
5
|
+
detail: Boolean,
|
|
6
6
|
},
|
|
7
7
|
error2: {
|
|
8
|
-
|
|
8
|
+
detail: Boolean,
|
|
9
9
|
options: {},
|
|
10
10
|
},
|
|
11
11
|
error3: {
|
|
12
|
-
|
|
12
|
+
detail: Boolean,
|
|
13
13
|
options: { bubbles: false },
|
|
14
14
|
},
|
|
15
15
|
error4: {
|
|
16
|
-
|
|
16
|
+
detail: Boolean,
|
|
17
17
|
options: { capturePhase: false },
|
|
18
18
|
},
|
|
19
19
|
error5: {
|
|
20
|
-
|
|
20
|
+
detail: Boolean,
|
|
21
21
|
options: { composed: true },
|
|
22
22
|
},
|
|
23
23
|
},
|
|
@@ -35,7 +35,7 @@ RootComponent()({
|
|
|
35
35
|
RootComponent()({
|
|
36
36
|
customEvents: {
|
|
37
37
|
error1: {
|
|
38
|
-
|
|
38
|
+
detail: String,
|
|
39
39
|
options: {
|
|
40
40
|
bubbles: true,
|
|
41
41
|
compose: true,
|
|
@@ -46,7 +46,7 @@ RootComponent()({
|
|
|
46
46
|
RootComponent()({
|
|
47
47
|
customEvents: {
|
|
48
48
|
error2: {
|
|
49
|
-
|
|
49
|
+
detail: String,
|
|
50
50
|
options: {
|
|
51
51
|
bubbles: true,
|
|
52
52
|
capturePhases: true,
|
|
@@ -62,7 +62,7 @@ RootComponent()({
|
|
|
62
62
|
},
|
|
63
63
|
customEvents: {
|
|
64
64
|
bbb: {
|
|
65
|
-
|
|
65
|
+
detail: null,
|
|
66
66
|
options: {
|
|
67
67
|
bubbleds: false,
|
|
68
68
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/CustomEvents/test/error.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QAEZ,MAAM,EAAE;YACN,
|
|
1
|
+
{"version":3,"file":"error.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/CustomEvents/test/error.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QAEZ,MAAM,EAAE;YACN,MAAM,EAAE,OAAO;SAChB;QAED,MAAM,EAAE;YACN,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE;SACZ;QAED,MAAM,EAAE;YACN,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC5B;QAED,MAAM,EAAE;YACN,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;SACjC;QAED,MAAM,EAAE;YACN,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5B;KACF;CACF,CAAC,CAAC;AAKH,aAAa,EAAE,CAAC;IACd,MAAM,EAAE;QACN,GAAG;YACD,CAAC,CAAC;QACJ,CAAC;KACF;IACD,YAAY,EAAE;QAEZ,GAAG,EAAE,MAAM;KACZ;CACF,CAAC,CAAC;AAKH,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBAEb,OAAO,EAAE,IAAI;aACd;SACF;KACF;CACF,CAAC,CAAC;AAKH,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBAEb,aAAa,EAAE,IAAI;aACpB;SACF;KACF;CACF,CAAC,CAAC;AAKH,aAAa,EAAE,CAAC;IACd,MAAM,EAAE;QACN,GAAG;YACD,CAAC,CAAC;QACJ,CAAC;KACF;IACD,YAAY,EAAE;QACZ,GAAG,EAAE;YACH,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBAEP,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,GAAG,EAAE,MAAM;KACZ;CACF,CAAC,CAAC"}
|