annil 1.7.4 → 1.7.5-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +11 -7
  3. package/dist/api/DefineComponent/NameOrPage/NameOrPathOption.d.ts +9 -0
  4. package/dist/api/DefineComponent/ReturnType/ComponentDoc.d.ts +9 -0
  5. package/dist/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.d.ts +8 -0
  6. package/dist/api/DefineComponent/ReturnType/PageDoc.d.ts +9 -0
  7. package/dist/api/DefineComponent/RootComponent/RootComponentOption.d.ts +6 -0
  8. package/dist/api/DefineComponent/SubComponents/SubComponentsOption.d.ts +6 -0
  9. package/dist/api/DefineComponent/index.d.ts +5 -4
  10. package/dist/api/DefineComponent/index.js +8 -2
  11. package/dist/api/DefineComponent/index.js.map +1 -1
  12. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/computedUpdater.d.ts +1 -1
  13. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/computedUpdater.js +5 -0
  14. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js.map +1 -0
  15. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/data-tracer.d.ts +3 -1
  16. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/data-tracer.js +4 -1
  17. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.js.map +1 -0
  18. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/dependencesOptimize.js +5 -0
  19. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.js.map +1 -0
  20. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.d.ts +7 -0
  21. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.js +30 -0
  22. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.js.map +1 -0
  23. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/getPropertiesValue.js +3 -0
  24. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js.map +1 -0
  25. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/index.js +13 -3
  26. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.js.map +1 -0
  27. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/initComputedAndGetCache.d.ts +9 -0
  28. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/initComputedAndGetCache.js +21 -0
  29. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js.map +1 -0
  30. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.d.ts +7 -0
  31. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.js +69 -0
  32. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/isEqual.js.map +1 -0
  33. package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.d.ts +6 -0
  34. package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js +23 -0
  35. package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js.map +1 -0
  36. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.d.ts +6 -0
  37. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js +16 -0
  38. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js.map +1 -0
  39. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.d.ts +5 -0
  40. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.js +17 -0
  41. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.js.map +1 -0
  42. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.d.ts +7 -0
  43. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.js +20 -0
  44. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.js.map +1 -0
  45. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.d.ts +10 -0
  46. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.js +26 -0
  47. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.js.map +1 -0
  48. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/index.d.ts +20 -18
  49. package/dist/api/DefineComponent/normalizeOptions/index.js +77 -0
  50. package/dist/api/DefineComponent/normalizeOptions/index.js.map +1 -0
  51. package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/initStore/index.js +2 -0
  52. package/dist/api/DefineComponent/normalizeOptions/initStore/index.js.map +1 -0
  53. package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.d.ts +3 -0
  54. package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.js +43 -0
  55. package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.js.map +1 -0
  56. package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.d.ts +5 -0
  57. package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js +23 -0
  58. package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js.map +1 -0
  59. package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.d.ts +6 -0
  60. package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js +24 -0
  61. package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js.map +1 -0
  62. package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.d.ts +9 -0
  63. package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js +18 -0
  64. package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js.map +1 -0
  65. package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.d.ts +7 -0
  66. package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.js +17 -0
  67. package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.js.map +1 -0
  68. package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.d.ts +5 -0
  69. package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js +34 -0
  70. package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js.map +1 -0
  71. package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.d.ts +3 -0
  72. package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.js +11 -0
  73. package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.js.map +1 -0
  74. package/dist/api/InstanceInject/instanceConfig.d.ts +4 -0
  75. package/dist/api/InstanceInject/instanceConfig.js +5 -1
  76. package/dist/api/InstanceInject/instanceConfig.js.map +1 -1
  77. package/dist/api/RootComponent/Computed/ComputedConstraint.d.ts +4 -1
  78. package/dist/api/RootComponent/Computed/ComputedOption.d.ts +23 -0
  79. package/dist/api/RootComponent/Computed/GetComputedDoc.d.ts +5 -0
  80. package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +3 -0
  81. package/dist/api/RootComponent/CustomEvents/CustomEventsOption.d.ts +29 -0
  82. package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.d.ts +13 -0
  83. package/dist/api/RootComponent/Data/DataOption.d.ts +14 -0
  84. package/dist/api/RootComponent/Events/EventsConstraint.d.ts +4 -1
  85. package/dist/api/RootComponent/Events/EventsOption.d.ts +52 -0
  86. package/dist/api/RootComponent/Instance/CustomSetData.d.ts +6 -0
  87. package/dist/api/RootComponent/Instance/RootComponentInstance.d.ts +9 -0
  88. package/dist/api/RootComponent/IsPage/IsPageOption.d.ts +3 -0
  89. package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +5 -2
  90. package/dist/api/RootComponent/Lifetimes/LifetimesOption.d.ts +26 -0
  91. package/dist/api/RootComponent/Methods/MethodsOption.d.ts +3 -0
  92. package/dist/api/RootComponent/Observers/ObserversOption.d.ts +4 -0
  93. package/dist/api/RootComponent/PageLifetimes/PageLifetimesOption.d.ts +11 -0
  94. package/dist/api/RootComponent/Properties/GetOptionalDoc.d.ts +3 -0
  95. package/dist/api/RootComponent/Properties/GetPropertiesDoc.d.ts +3 -0
  96. package/dist/api/RootComponent/Properties/GetRequiredDoc.d.ts +4 -0
  97. package/dist/api/RootComponent/Properties/PropertiesConstraint.d.ts +18 -0
  98. package/dist/api/RootComponent/Properties/PropertiesOption.d.ts +10 -0
  99. package/dist/api/RootComponent/Properties/PropertiesValueValidator.d.ts +4 -0
  100. package/dist/api/RootComponent/RootComponentDoc.d.ts +19 -0
  101. package/dist/api/RootComponent/Store/StoreOption.d.ts +12 -0
  102. package/dist/api/RootComponent/Watch/WatchOption.d.ts +4 -0
  103. package/dist/api/RootComponent/index.d.ts +17 -19
  104. package/dist/api/RootComponent/index.js +1 -0
  105. package/dist/api/RootComponent/index.js.map +1 -1
  106. package/dist/api/SubComponent/SubComponentDoc.d.ts +9 -0
  107. package/dist/api/SubComponent/SubData/SubDataConstraint.d.ts +4 -0
  108. package/dist/api/SubComponent/SubData/SubDataOption.d.ts +4 -0
  109. package/dist/api/SubComponent/SubEvents/SubEventsConstraint.d.ts +3 -0
  110. package/dist/api/SubComponent/SubEvents/SubEventsOptions.d.ts +5 -0
  111. package/dist/api/SubComponent/SubInherit/SubInheritConstraint.d.ts +4 -0
  112. package/dist/api/SubComponent/SubInherit/SubInheritOption.d.ts +6 -1
  113. package/dist/api/SubComponent/SubMethods/SubMethodsConstraint.d.ts +1 -3
  114. package/dist/api/SubComponent/SubMethods/SubMethodsOption.d.ts +3 -0
  115. package/dist/api/SubComponent/SubStore/SubStoreConstraint.d.ts +4 -0
  116. package/dist/api/SubComponent/SubStore/SubStoreOption.d.ts +14 -0
  117. package/dist/api/SubComponent/index.d.ts +10 -8
  118. package/dist/api/SubComponent/index.js +5 -0
  119. package/dist/api/SubComponent/index.js.map +1 -1
  120. package/dist/api/navigateTo.d.ts +5 -0
  121. package/dist/api/navigateTo.js +10 -1
  122. package/dist/api/navigateTo.js.map +1 -1
  123. package/dist/behaviors/BStore.d.ts +4 -0
  124. package/dist/behaviors/BStore.js +9 -0
  125. package/dist/behaviors/BStore.js.map +1 -1
  126. package/dist/behaviors/BbeforeCreated.d.ts +3 -0
  127. package/dist/behaviors/BbeforeCreated.js +8 -1
  128. package/dist/behaviors/BbeforeCreated.js.map +1 -1
  129. package/dist/index.d.ts +2 -2
  130. package/dist/index.js.map +1 -1
  131. package/dist/thirdLib/vant/Button.d.ts +14 -2
  132. package/dist/thirdLib/vant/NoticeBar.d.ts +2 -2
  133. package/dist/thirdLib/vant/Popup.d.ts +42 -2
  134. package/dist/thirdLib/wm/Textarea.d.ts +11 -2
  135. package/dist/thirdLib/wm/baseEvents.d.ts +39 -2
  136. package/dist/thirdLib/wm/scrollView.d.ts +4 -2
  137. package/dist/thirdLib/wm/scrollView.js +6 -0
  138. package/dist/thirdLib/wm/scrollView.js.map +1 -1
  139. package/dist/thirdLib/wm/swiper.d.ts +75 -5
  140. package/dist/thirdLib/wm/view.d.ts +20 -2
  141. package/dist/types/AddNullForObject.d.ts +3 -0
  142. package/dist/types/AddPrefix.d.ts +7 -0
  143. package/dist/types/{GenerateDoc.d.ts → CreateComponentType.d.ts} +3 -3
  144. package/dist/types/CreateComponentType.js +2 -0
  145. package/dist/types/CreateComponentType.js.map +1 -0
  146. package/dist/types/DetailedType.d.ts +15 -5
  147. package/dist/types/DocAssign.d.ts +3 -0
  148. package/dist/types/DocAssign.js +4 -0
  149. package/dist/types/DocAssign.js.map +1 -1
  150. package/dist/types/GetComponentPrefix.d.ts +3 -0
  151. package/dist/types/GetComponentPrefix.js +10 -0
  152. package/dist/types/GetComponentPrefix.js.map +1 -1
  153. package/dist/types/InferDetailedType.d.ts +3 -0
  154. package/dist/types/OfficialTypeAlias.d.ts +15 -9
  155. package/dist/types/OfficialTypeAlias.js +30 -0
  156. package/dist/types/OfficialTypeAlias.js.map +1 -1
  157. package/dist/types/RemoveInnerData.d.ts +3 -0
  158. package/dist/types/Replace.d.ts +11 -0
  159. package/dist/types/ReplacePrefix.d.ts +5 -0
  160. package/dist/types/ReplacePrefix.js +9 -0
  161. package/dist/types/ReplacePrefix.js.map +1 -1
  162. package/dist/types/RequiredKeys.d.ts +4 -0
  163. package/dist/types/Validators.js +7 -0
  164. package/dist/types/Validators.js.map +1 -1
  165. package/dist/utils/InnerMarker.js +1 -1
  166. package/dist/utils/InnerMarker.js.map +1 -1
  167. package/dist/utils/assertNonNullable.d.ts +2 -0
  168. package/dist/utils/assertNonNullable.js +7 -0
  169. package/dist/utils/assertNonNullable.js.map +1 -0
  170. package/dist/utils/deepClone.d.ts +3 -0
  171. package/dist/utils/deepClone.js +3 -0
  172. package/dist/utils/deepClone.js.map +1 -1
  173. package/dist/utils/isEmptyObject.d.ts +3 -0
  174. package/dist/utils/isEmptyObject.js +3 -0
  175. package/dist/utils/isEmptyObject.js.map +1 -1
  176. package/package.json +6 -6
  177. package/src/api/DefineComponent/ReturnType/ComponentDoc.ts +1 -0
  178. package/src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts +2 -0
  179. package/src/api/DefineComponent/ReturnType/test/normalPageDoc.test.ts +3 -2
  180. package/src/api/DefineComponent/SubComponents/SubComponentsOption.ts +0 -5
  181. package/src/api/DefineComponent/SubComponents/test/normal.test.ts +2 -2
  182. package/src/api/DefineComponent/index.ts +21 -23
  183. package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/computedUpdater.ts +1 -1
  184. package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/data-tracer.ts +2 -3
  185. package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/getPathsValue.ts +2 -1
  186. package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/index.ts +7 -9
  187. package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/isEqual.ts +2 -2
  188. package/src/api/DefineComponent/normalizeOptions/customEventsHandle.ts +34 -0
  189. package/src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts +26 -0
  190. package/src/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.ts +22 -0
  191. package/src/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.ts +25 -0
  192. package/src/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.ts +33 -0
  193. package/src/api/DefineComponent/normalizeOptions/index.ts +142 -0
  194. package/src/api/DefineComponent/{assignOptions → normalizeOptions}/initStore/index.ts +1 -0
  195. package/src/api/DefineComponent/normalizeOptions/injectInfoHandler.ts +51 -0
  196. package/src/api/DefineComponent/normalizeOptions/internalFieldProtection.ts +26 -0
  197. package/src/api/DefineComponent/normalizeOptions/otherFieldsHandle.ts +27 -0
  198. package/src/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.ts +25 -0
  199. package/src/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.ts +22 -0
  200. package/src/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.ts +37 -0
  201. package/src/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.ts +18 -0
  202. package/src/api/InstanceInject/inject.ts +2 -0
  203. package/src/api/InstanceInject/instanceConfig.ts +2 -4
  204. package/src/api/InstanceInject/test/normal.test.ts +1 -0
  205. package/src/api/RootComponent/Computed/ComputedConstraint.ts +1 -1
  206. package/src/api/RootComponent/Computed/test/GetComputedDoc.test.ts +1 -0
  207. package/src/api/RootComponent/Computed/test/normal.test.ts +2 -0
  208. package/src/api/RootComponent/CustomEvents/test/GetCustomEventDoc.test.ts +2 -2
  209. package/src/api/RootComponent/CustomEvents/test/GetFullEventDoc.test.ts +2 -1
  210. package/src/api/RootComponent/CustomEvents/test/GetShortEventDoc.test.ts +2 -1
  211. package/src/api/RootComponent/CustomEvents/test/error.test.ts +2 -2
  212. package/src/api/RootComponent/CustomEvents/test/normal.test.ts +2 -0
  213. package/src/api/RootComponent/Data/test/GetDataDoc.test.ts +2 -2
  214. package/src/api/RootComponent/Data/test/normal.test.ts +3 -2
  215. package/src/api/RootComponent/Events/EventsConstraint.ts +1 -1
  216. package/src/api/RootComponent/Events/test/normal.test.ts +5 -2
  217. package/src/api/RootComponent/Instance/RootComponentInstance.ts +9 -0
  218. package/src/api/RootComponent/Instance/test/CustomEventsDoc.test.ts +1 -0
  219. package/src/api/RootComponent/Instance/test/customEvents/normal.test.ts +1 -0
  220. package/src/api/RootComponent/Instance/test/methods/mormal.test.ts +2 -2
  221. package/src/api/RootComponent/Instance/test/properties/mormal.test.ts +2 -0
  222. package/src/api/RootComponent/Instance/test/setData/error.test.ts +1 -1
  223. package/src/api/RootComponent/Instance/test/setData/normal.test.ts +1 -1
  224. package/src/api/RootComponent/IsPage/test/normal.test.ts +2 -0
  225. package/src/api/RootComponent/Lifetimes/LifetimesConstraint.ts +2 -2
  226. package/src/api/RootComponent/Lifetimes/test/error.test.ts +22 -8
  227. package/src/api/RootComponent/Lifetimes/test/normal.test.ts +8 -3
  228. package/src/api/RootComponent/Methods/test/error.test.ts +4 -4
  229. package/src/api/RootComponent/Methods/test/mormal.test.ts +2 -2
  230. package/src/api/RootComponent/Observers/test/normal.test.ts +8 -4
  231. package/src/api/RootComponent/PageLifetimes/test/error.test.ts +17 -7
  232. package/src/api/RootComponent/PageLifetimes/test/normal.test.ts +12 -5
  233. package/src/api/RootComponent/Properties/test/normalEmpty.test.ts +6 -6
  234. package/src/api/RootComponent/Properties/test/normalOptional.test.ts +4 -4
  235. package/src/api/RootComponent/Properties/test/normalRequired.test.ts +3 -3
  236. package/src/api/RootComponent/Store/test/normal.test.ts +4 -4
  237. package/src/api/RootComponent/Watch/test/WatchComputed.test.ts +6 -4
  238. package/src/api/RootComponent/Watch/test/WatchData.test.ts +16 -12
  239. package/src/api/RootComponent/Watch/test/WatchProperties.test.ts +58 -40
  240. package/src/api/RootComponent/Watch/test/WtachInject.test.ts +3 -2
  241. package/src/api/RootComponent/Watch/test/error.test.ts +4 -2
  242. package/src/api/RootComponent/index.ts +47 -48
  243. package/src/api/SubComponent/SubComputed/test/error.test.ts +6 -2
  244. package/src/api/SubComponent/SubComputed/test/normal.test.ts +8 -7
  245. package/src/api/SubComponent/SubData/test/normal.test.ts +2 -2
  246. package/src/api/SubComponent/SubEvents/test/error.test.ts +4 -2
  247. package/src/api/SubComponent/SubEvents/test/normal.test.ts +4 -2
  248. package/src/api/SubComponent/SubInherit/SubInheritOption.ts +1 -3
  249. package/src/api/SubComponent/SubInherit/test/error.test.ts +2 -2
  250. package/src/api/SubComponent/SubInstance/test/error.test.ts +1 -1
  251. package/src/api/SubComponent/SubInstance/test/normal.test.ts +10 -6
  252. package/src/api/SubComponent/SubMethods/SubMethodsConstraint.ts +1 -3
  253. package/src/api/SubComponent/SubMethods/test/error.test.ts +8 -2
  254. package/src/api/SubComponent/SubMethods/test/normarl.test.ts +6 -2
  255. package/src/api/SubComponent/SubReturnType/test/error.test.ts +2 -2
  256. package/src/api/SubComponent/SubReturnType/test/normal.test.ts +2 -2
  257. package/src/api/SubComponent/SubWatch/test/WatchComputed.test.ts +21 -14
  258. package/src/api/SubComponent/SubWatch/test/WatchProperties.test.ts +58 -58
  259. package/src/api/SubComponent/SubWatch/test/WatchRootData.test.ts +43 -31
  260. package/src/api/SubComponent/SubWatch/test/WatchSubData.test.ts +9 -6
  261. package/src/api/SubComponent/SubWatch/test/WtachInject.test.ts +3 -2
  262. package/src/api/SubComponent/SubWatch/test/error.test.ts +5 -4
  263. package/src/api/SubComponent/index.ts +92 -95
  264. package/src/api/navigateTo.ts +1 -1
  265. package/src/behaviors/BStore.ts +7 -3
  266. package/src/behaviors/BbeforeCreated.ts +8 -3
  267. package/src/index.ts +2 -2
  268. package/src/thirdLib/vant/Button.ts +2 -2
  269. package/src/thirdLib/vant/NoticeBar.ts +2 -2
  270. package/src/thirdLib/vant/Popup.ts +2 -2
  271. package/src/thirdLib/wm/Textarea.ts +2 -2
  272. package/src/thirdLib/wm/baseEvents.ts +3 -2
  273. package/src/thirdLib/wm/scrollView.ts +4 -2
  274. package/src/thirdLib/wm/swiper.ts +10 -5
  275. package/src/thirdLib/wm/view.ts +4 -2
  276. package/src/types/{GenerateDoc.ts → CreateComponentType.ts} +3 -6
  277. package/src/types/DetailedType.ts +1 -1
  278. package/src/types/InferDetailedType.test.ts +8 -13
  279. package/src/types/OfficialTypeAlias.ts +31 -31
  280. package/src/utils/assertNonNullable.ts +11 -0
  281. package/src/utils/isEmptyObject.ts +1 -1
  282. package/tsconfig.json +11 -16
  283. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.js.map +0 -1
  284. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.js.map +0 -1
  285. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/dependencesOptimize.js.map +0 -1
  286. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPathsValue.d.ts +0 -1
  287. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPathsValue.js +0 -19
  288. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPathsValue.js.map +0 -1
  289. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPropertiesValue.js.map +0 -1
  290. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/index.js.map +0 -1
  291. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/initComputedAndGetCache.js.map +0 -1
  292. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/isEqual.d.ts +0 -1
  293. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/isEqual.js +0 -48
  294. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/isEqual.js.map +0 -1
  295. package/dist/api/DefineComponent/assignOptions/index.js +0 -203
  296. package/dist/api/DefineComponent/assignOptions/index.js.map +0 -1
  297. package/dist/api/DefineComponent/assignOptions/initStore/index.js.map +0 -1
  298. package/dist/types/CreateComponentDoc.d.ts +0 -10
  299. package/dist/types/CreateComponentDoc.js +0 -2
  300. package/dist/types/CreateComponentDoc.js.map +0 -1
  301. package/dist/types/GenerateDoc.js +0 -2
  302. package/dist/types/GenerateDoc.js.map +0 -1
  303. package/src/api/DefineComponent/assignOptions/index.ts +0 -469
  304. package/src/types/CreateComponentDoc.ts +0 -17
  305. /package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/dependencesOptimize.d.ts +0 -0
  306. /package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/getPropertiesValue.d.ts +0 -0
  307. /package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/index.d.ts +0 -0
  308. /package/dist/api/DefineComponent/{assignOptions → normalizeOptions}/initStore/index.d.ts +0 -0
  309. /package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/dependencesOptimize.ts +0 -0
  310. /package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/getPropertiesValue.ts +0 -0
  311. /package/src/api/DefineComponent/{assignOptions → normalizeOptions}/computedWatchHandle/initComputedAndGetCache.ts +0 -0
@@ -1,469 +0,0 @@
1
- import type { Func } from "hry-types/src/Misc/_api";
2
- import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
3
- import type { Assign } from "../../../types/Assign";
4
- import type { WMComponent } from "../../../types/OfficialTypeAlias";
5
- import { deepClone } from "../../../utils/deepClone";
6
- import { INNERMARKER } from "../../../utils/InnerMarker";
7
- import { isEmptyObject } from "../../../utils/isEmptyObject";
8
- import { instanceConfig } from "../../InstanceInject/instanceConfig";
9
- import type { RootComponentTrueOptions } from "../../RootComponent";
10
- import type { ComputedConstraint } from "../../RootComponent/Computed/ComputedConstraint";
11
- import type {
12
- CustomEventConstraint,
13
- CustomEvents,
14
- FullCustomEvents,
15
- } from "../../RootComponent/CustomEvents/CustomEventConstraint";
16
- import type { DataConstraint } from "../../RootComponent/Data/DataConstraint";
17
- import type { EventsConstraint } from "../../RootComponent/Events/EventsConstraint";
18
- import type { ComponentInstance, PageInstance } from "../../RootComponent/Instance/RootComponentInstance";
19
- import type { LifetimesConstraint } from "../../RootComponent/Lifetimes/LifetimesConstraint";
20
- import type { MethodsConstraint } from "../../RootComponent/Methods/MethodsConstraint";
21
- import type { PageLifetimesOption } from "../../RootComponent/PageLifetimes/PageLifetimesOption";
22
- import type { PropertiesConstraint } from "../../RootComponent/Properties/PropertiesConstraint";
23
- import type { StoreConstraint } from "../../RootComponent/Store/StoreConstraint";
24
- import type { SubComponentTrueOptions } from "../../SubComponent";
25
- import type { DefineComponentOption } from "..";
26
-
27
- import { BStore } from "../../../behaviors/BStore";
28
- import { computedWatchHandle } from "./computedWatchHandle";
29
-
30
- import type { ComputedCache } from "./computedWatchHandle/initComputedAndGetCache";
31
- import { initStore } from "./initStore";
32
-
33
- type InstanceInnerFields = {
34
- data: OptionsInnerFields["data"];
35
- disposer: Record<string, Func>;
36
- cloneData: OptionsInnerFields["data"];
37
- } & OptionsInnerFields["methods"];
38
-
39
- export type Instance =
40
- & (ComponentInstance | PageInstance)
41
- & InstanceInnerFields;
42
-
43
- /**
44
- * 临时的函数配置项
45
- * 把根组件与子组件中配置类型为函数的相同字段配置收集在一起(数组)
46
- */
47
- export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch" | "observers", Record<string, Func[]>>;
48
-
49
- export type WatchOldValue = Record<string, unknown[]>;
50
-
51
- export type OptionsInnerFields = {
52
- data: {
53
- __computedCache__?: ComputedCache;
54
- __storeConfig__?: StoreConstraint;
55
- __watchOldValue__?: WatchOldValue;
56
- };
57
- methods: {
58
- disposer?: Record<string, Func>;
59
- // computedHandle加入
60
- __computedUpdater__?: Func;
61
- };
62
- };
63
-
64
- /**
65
- * 最终传入原生Component的配置项
66
- */
67
- export type FinalOptionsOfComponent = {
68
- data: DataConstraint & OptionsInnerFields["data"];
69
- observers: Record<string, Func>;
70
- behaviors: string[];
71
- methods: MethodsConstraint & OptionsInnerFields["methods"];
72
- externalClasses: string[];
73
- pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
74
- isPage?: boolean;
75
- options?: WMComponent.Options;
76
- properties?: PropertiesConstraint;
77
- store?: StoreConstraint;
78
- computed?: ComputedConstraint;
79
- watch?: Record<string, Func>;
80
- lifetimes?: LifetimesConstraint;
81
- };
82
-
83
- /**
84
- * 劫持attached,根据this.route做判断 isPage值是否正确
85
- */
86
- export function isPageCheck(isPage: boolean | undefined) {
87
- return function(this: Instance) {
88
- const route = (this as PageInstance).route as string | undefined;
89
- if (route && isPage !== true) {
90
- // 页面isPage值错误
91
- throw Error(
92
- `页面 /${route} 中, RootComponent构建页面时,isPage字段值应为 true`,
93
- );
94
- }
95
- if (!route && isPage !== false && isPage !== undefined) {
96
- // 组件写了isPage = true
97
- throw Error(
98
- `组件 ${this.is} 中 RootComponent构建组件时,可不写isPage字段或值为 false`,
99
- );
100
- }
101
- };
102
- }
103
-
104
- // function addCloneDataToInstance(this: Instance) {
105
- // this.cloneData = new Proxy(this.data, {
106
- // get: <T extends object>(target: T, key: keyof T) => {
107
- // return deepClone(target)[key];
108
- // },
109
- // });
110
- // }
111
- /**
112
- * 原生Component会对传入的对象字段匹配的properties字段setData赋值。不符合字段或Page时不会赋值。
113
- * 此函数为给实例setData赋值,默认传递值与properties相符(ts类型安全)。
114
- * @param option - 传入onLoad的参数 有以下两种可能
115
- * 1. 使用wx.navigateTo传值的。这种情况无内置字段 option[INNERMARKER.url] 等于 undefined
116
- * 2. 使用插件提供的navigateTo传值。这种情况 INNERMARKER.url被load周期劫持函数解码后赋值INNERMARKER.url字段为本身,即option[INNERMARKER.url] 等于 INNERMARKER.url
117
- */
118
- /* istanbul ignore next miniprogram-simulate(当前版本 1.6.1) 无法测试页面生命周期 */
119
- function onLoadReceivedDataHandle(
120
- this: PageInstance,
121
- option: Record<typeof INNERMARKER.url, string>,
122
- ) {
123
- const innerData: string | undefined = option[INNERMARKER.url];
124
-
125
- // 情况1为undefined,2为INNERMARKER.url有值但不是本身,说明是老框架。3所以innerData等于 INNERMARKER.url即有组件配置了load(新框架在pageLifetimes.load中提前解析了)
126
- if (innerData === undefined) return;
127
- if (innerData !== INNERMARKER.url) {
128
- // 需要情况2 需要解析
129
- const decodeOption = JSON.parse(decodeURIComponent(innerData));
130
- for (const key in decodeOption) {
131
- option[key] = decodeOption[key];
132
- }
133
- }
134
-
135
- delete option[INNERMARKER.url];
136
-
137
- this.setData(option);
138
- }
139
-
140
- /**
141
- * 针对通过 navigateTo传过来的数据对组件load周期传入数据解析
142
- * @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
143
- */
144
- /* istanbul ignore next miniprogram-simulate(当前版本 1.6.1) 无法测试load */
145
- function loadReceivedDataHandle(
146
- this: PageInstance,
147
- option: Record<typeof INNERMARKER.url, string>,
148
- ) {
149
- const innerData: string | undefined = option[INNERMARKER.url];
150
- // 未使用自定义的navigateTo
151
- if (innerData === undefined) return;
152
- // 使用navigateTo API
153
- const decodeOption = JSON.parse(decodeURIComponent(innerData));
154
-
155
- for (const key in decodeOption) {
156
- option[key] = decodeOption[key];
157
- }
158
- // 给onLoad劫持函数一个标记,判断在新框架下已经被解析过了
159
- option[INNERMARKER.url] = INNERMARKER.url;
160
- }
161
- /**
162
- * 劫持指定配置字段
163
- */
164
- function hijack<T extends FinalOptionsOfComponent[keyof FinalOptionsOfComponent]>(
165
- config: T,
166
- field: keyof T,
167
- before: Func[],
168
- // after: Func[] = [],
169
- ) {
170
- // @ts-ignore 隐式索引
171
- const originalFunc: Func | undefined = config[field];
172
-
173
- // @ts-ignore 隐式索引
174
- config[field] = function(...args: any[]) {
175
- before.forEach(func => func.call(this, ...args));
176
-
177
- originalFunc && originalFunc.apply(this, args);
178
-
179
- // after.forEach(func => func.call(this, ...args));
180
- };
181
-
182
- return;
183
- }
184
-
185
- /**
186
- * 报错的形式避免输入字段和内部字段冲突,保证config下不包含内部预定字段(列表)
187
- */
188
- function InternalFieldProtection(config: object, keys: string[]) {
189
- const methodsConfigKeys = Object.keys(config);
190
- for (const key of keys) {
191
- if (methodsConfigKeys.includes(key)) {
192
- throw Error(`${key}已被内部字段占用`);
193
- }
194
- }
195
- }
196
- /**
197
- * 把函数配置放入一个配置中依次运行
198
- */
199
- function _funcOptionsHandle(config: object, configList: Record<string, Func[]>) {
200
- for (const key in configList) {
201
- // @ts-ignore 隐式索引
202
- config[key] = function(...args: unknown[]) {
203
- configList[key].forEach(ele => ele.call(this, ...args));
204
- };
205
- }
206
- }
207
- /**
208
- * 把函数列表配置放入一个配置中循环一次运行
209
- */
210
- function assignFuncOptions(
211
- finalOptionsForComponent: FinalOptionsOfComponent,
212
- isPage: boolean | undefined,
213
- funcOptions: FuncOptions,
214
- ) {
215
- if (isPage) {
216
- // 页面时 生命周期方法(即 on 开头的方法),(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html)
217
- !(isEmptyObject(funcOptions.pageLifetimes))
218
- && _funcOptionsHandle(finalOptionsForComponent.methods, funcOptions.pageLifetimes);
219
- } else {
220
- // 组件时
221
- !(isEmptyObject(funcOptions.pageLifetimes))
222
- && _funcOptionsHandle(finalOptionsForComponent.pageLifetimes, funcOptions.pageLifetimes);
223
- }
224
- funcOptions.lifetimes && _funcOptionsHandle(finalOptionsForComponent.lifetimes ||= {}, funcOptions.lifetimes);
225
-
226
- funcOptions.watch && _funcOptionsHandle(finalOptionsForComponent.watch ||= {}, funcOptions.watch);
227
- }
228
- /**
229
- * 把配置为函数的字段方法收集到funcOptions中
230
- */
231
- function funcFieldsCollect(
232
- options: SubComponentTrueOptions | RootComponentTrueOptions,
233
- funcOptions: FuncOptions,
234
- ) {
235
- let key: keyof FuncOptions;
236
- for (key in funcOptions) {
237
- const optionsKeyConfig = options[key];
238
- if (optionsKeyConfig) {
239
- for (const _key in optionsKeyConfig) {
240
- // @ts-ignore
241
- (funcOptions[key][_key] ||= []).push(optionsKeyConfig[_key]);
242
- }
243
- }
244
- }
245
- }
246
-
247
- /**
248
- * 其他字段加入到componentOptions对应字段配置中
249
- */
250
- function otherFieldsHandle(
251
- finalOptions: FinalOptionsOfComponent,
252
- rootComponentOptions: RootComponentTrueOptions,
253
- ) {
254
- for (const key in rootComponentOptions) {
255
- // @ts-ignore 隐式索引
256
- const config = rootComponentOptions[key];
257
- if (Array.isArray(config) === true) {
258
- // "behaviors" || "externalClasses"是数组
259
- // @ts-ignore 只有 behaviors 和 externalClasses, 且都默认为[]
260
- finalOptions[key].push(...config);
261
- } else if (typeof config === "object") {
262
- // @ts-ignore 隐式索引
263
- Object.assign(finalOptions[key] ||= {}, config);
264
- } else {
265
- // 函数字段有 根组件有 `export` 子组件无此字段
266
- // @ts-ignore 隐式索引
267
- finalOptions[key] = config;
268
- }
269
- }
270
- }
271
- /**
272
- * 把events字段放入到componentOptions.methods中
273
- */
274
- function eventsHandle(methods: FinalOptionsOfComponent["methods"], eventsConfig: EventsConstraint) {
275
- Object.assign(methods, eventsConfig);
276
- }
277
- function assignSubComponentsOption(
278
- componentOptions: FinalOptionsOfComponent,
279
- subComponents: SubComponentTrueOptions[],
280
- funcOptions: FuncOptions,
281
- ) {
282
- subComponents.forEach((subOption) => {
283
- subOption.events && eventsHandle(componentOptions.methods, subOption.events);
284
-
285
- funcFieldsCollect(subOption, funcOptions);
286
-
287
- otherFieldsHandle(componentOptions, subOption);
288
- });
289
- }
290
-
291
- // 类型守卫
292
- function IsFullCustomEvents(
293
- customEventOptions: CustomEvents,
294
- ): customEventOptions is FullCustomEvents {
295
- return Object.prototype.toString.call(customEventOptions) === "[object Object]";
296
- }
297
-
298
- /**
299
- * 把customEvents字段配置变成函数放入到componentOptions.methods中
300
- */
301
- function customEventsHandle(
302
- methods: FinalOptionsOfComponent["methods"],
303
- customEventsConfig: CustomEventConstraint,
304
- ) {
305
- for (const key in customEventsConfig) {
306
- const customEventOptions = customEventsConfig[key];
307
-
308
- if (IsFullCustomEvents(customEventOptions)) {
309
- methods[key] = function(this: Instance, detail: unknown) {
310
- this.triggerEvent(key, detail, customEventOptions.options);
311
- };
312
- } else {
313
- methods[key] = function(this: Instance, detail: unknown) {
314
- this.triggerEvent(key, detail);
315
- };
316
- }
317
- }
318
- }
319
- /**
320
- * 收集 rootComponentOptions 配置到 finalOptions 和 funcOptions 中
321
- * @param finalOptions - 收集配置对象
322
- * @param funcOptions - 收集特殊配置对象字段
323
- * @param rootComponentOptions - 被收集的源配置对象
324
- */
325
- function assignRootComponentOption(
326
- finalOptions: FinalOptionsOfComponent,
327
- funcOptions: FuncOptions,
328
- rootComponentOptions: RootComponentTrueOptions,
329
- ) {
330
- rootComponentOptions.customEvents && customEventsHandle(finalOptions.methods, rootComponentOptions.customEvents);
331
-
332
- rootComponentOptions.events && eventsHandle(finalOptions.methods, rootComponentOptions.events);
333
-
334
- funcFieldsCollect(rootComponentOptions, funcOptions);
335
-
336
- otherFieldsHandle(finalOptions, rootComponentOptions);
337
- }
338
-
339
- /**
340
- * 合并 source 对象字段到 target字段
341
- * @remarks 规则:
342
- * 1. behaviors字段 源对象在前
343
- * 2. 对象字段 源覆盖目标
344
- * @param target - 目标对象
345
- * @param source - 源对象
346
- * @returns 按规则合并后的对象
347
- */
348
- function merge<Target extends object, Source extends object>(target: Target, source: Source): Assign<Target, Source> {
349
- for (const key in source) {
350
- const sourceVal = source[key];
351
- if (key in target) {
352
- // @ts-ignore
353
- const targetVal = target[key];
354
- switch (key) {
355
- case "behaviors":
356
- {
357
- // @ts-ignore
358
- target[key] = [...sourceVal, ...targetVal];
359
- }
360
- break;
361
-
362
- default:
363
- {
364
- // @ts-ignore 源覆盖目标
365
- target[key] = Object.assign(targetVal, sourceVal);
366
- }
367
- break;
368
- }
369
- } else {
370
- // @ts-ignore
371
- target[key] = sourceVal;
372
- }
373
- }
374
-
375
- return target as unknown as Assign<Target, Source>;
376
- }
377
- /**
378
- * 返回一个由rootComponentOption和subComponentsList配置整合的对象
379
- * @param rootComponentOption -
380
- * @param subComponentsList -
381
- * @returns FinalOptionsForComponent
382
- */
383
- export function assignOptions(
384
- defineComponentOption: DefineComponentOption,
385
- ): FinalOptionsOfComponent {
386
- const rootComponentOption = defineComponentOption.rootComponent;
387
- const subComponentsOption = defineComponentOption.subComponents;
388
- // 注入injectInfo和给默认配置(便于后续判断)
389
- const finalOptionsForComponent: FinalOptionsOfComponent = merge(
390
- { ...deepClone(instanceConfig.injectInfo) },
391
- {
392
- observers: {},
393
- data: {},
394
- methods: {},
395
- behaviors: [BStore],
396
- externalClasses: [],
397
- pageLifetimes: {},
398
- },
399
- );
400
-
401
- /**
402
- * 有些字段配置同时存在根组件和子组件当中(如pageLifetimes,lifetimes,watch字段), 且key相同值类型为函数。funcConfig对象用于收集这些配置为数组形式,最终再一起整合进finalOptionsForComponent配置中。即funcConfig是一个临时中介对象。
403
- */
404
- const funcOptions: FuncOptions = {
405
- pageLifetimes: {},
406
- lifetimes: {},
407
- watch: {},
408
- observers: {},
409
- };
410
-
411
- if (rootComponentOption && !isEmptyObject(rootComponentOption)) {
412
- // 把rootComponentOption配置并入finalOptionsForComponent,其中FuncOptions字段配置收集到funcOptions中
413
- assignRootComponentOption(finalOptionsForComponent, funcOptions, rootComponentOption);
414
- }
415
-
416
- if (subComponentsOption && !isEmptyObject(subComponentsOption)) {
417
- // 把subComponentsList配置并入finalOptionsForComponent,其中FuncOptions字段配置收集到funcOptions中
418
- assignSubComponentsOption(finalOptionsForComponent, subComponentsOption, funcOptions);
419
- }
420
- // 把收集好的funcOptions并入finalOptionsForComponent
421
- assignFuncOptions(finalOptionsForComponent, rootComponentOption?.isPage, funcOptions);
422
-
423
- // 配置与内部字段冲突验证
424
- InternalFieldProtection(finalOptionsForComponent.methods, ["disposer", "__computedUpdater__"]);
425
-
426
- InternalFieldProtection(finalOptionsForComponent.data, [
427
- "__computedCache__",
428
- "__storeConfig__",
429
- "__watchOldValue__",
430
- ]);
431
- // 对页面传入参数进行处理 老框架劫持页面methods.onLoad,新框架劫持页面pageLifetimes.load
432
-
433
- finalOptionsForComponent.isPage
434
- && hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
435
-
436
- hijack(
437
- finalOptionsForComponent.methods,
438
- "onLoad",
439
- [onLoadReceivedDataHandle],
440
- );
441
-
442
- // 验证isPage字段是否配置正确
443
- hijack(
444
- finalOptionsForComponent.lifetimes!,
445
- "attached",
446
- [isPageCheck(rootComponentOption?.isPage)],
447
- );
448
-
449
- // hijack(
450
- // finalOptionsForComponent.lifetimes!,
451
- // "created",
452
- // [addCloneDataToInstance],
453
- // );
454
-
455
- // 页面时删除预设的虚拟组件字段
456
- finalOptionsForComponent.isPage
457
- && finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
458
-
459
- // 初始化store数据到data并把store配置放入到data的__storeConfig__下
460
- initStore(finalOptionsForComponent);
461
-
462
- // 处理computed和watch配置
463
- computedWatchHandle(finalOptionsForComponent);
464
-
465
- // BBeforeCreate在最后面,让BeforeCreate生命周期运行在最终建立组件时。
466
- finalOptionsForComponent.behaviors!.push(BBeforeCreate);
467
-
468
- return finalOptionsForComponent;
469
- }
@@ -1,17 +0,0 @@
1
- import type { IfEquals } from "hry-types/src/Any/IfEquals";
2
- import type { ComputeIntersectionDeep } from "hry-types/src/Object/ComputeIntersectionDeep";
3
- import type { ComponentDoc } from "../api/DefineComponent/ReturnType/ComponentDoc";
4
- import type { BaseEvents } from "../thirdLib/wm/baseEvents";
5
- import type { AddPrefix } from "./AddPrefix";
6
-
7
- export type CreateComponentDoc<TName extends string, T extends ComponentDoc> = ComputeIntersectionDeep<
8
- & IfEquals<
9
- T["properties"],
10
- unknown,
11
- {},
12
- {
13
- properties: AddPrefix<T["properties"] & {}, TName>;
14
- }
15
- >
16
- & { customEvents: AddPrefix<T["customEvents"] & BaseEvents, TName> }
17
- >;