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
@@ -0,0 +1,6 @@
1
+ import type { CustomEventConstraint } from "../../RootComponent/CustomEvents/CustomEventConstraint";
2
+ import type { FinalOptionsOfComponent } from ".";
3
+ /**
4
+ * 把customEvents字段配置变成函数放入到componentOptions.methods中
5
+ */
6
+ export declare function customEventsHandle(methods: FinalOptionsOfComponent["methods"], customEventsConfig: CustomEventConstraint): void;
@@ -0,0 +1,23 @@
1
+ // 类型守卫
2
+ function IsFullCustomEvents(customEventOptions) {
3
+ return Object.prototype.toString.call(customEventOptions) === "[object Object]";
4
+ }
5
+ /**
6
+ * 把customEvents字段配置变成函数放入到componentOptions.methods中
7
+ */
8
+ export function customEventsHandle(methods, customEventsConfig) {
9
+ for (const key in customEventsConfig) {
10
+ const customEventOptions = customEventsConfig[key];
11
+ if (IsFullCustomEvents(customEventOptions)) {
12
+ methods[key] = function (detail) {
13
+ this.triggerEvent(key, detail, customEventOptions.options);
14
+ };
15
+ }
16
+ else {
17
+ methods[key] = function (detail) {
18
+ this.triggerEvent(key, detail);
19
+ };
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=customEventsHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customEventsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/customEventsHandle.ts"],"names":[],"mappings":"AAOA,OAAO;AACP,SAAS,kBAAkB,CACzB,kBAAgC;IAEhC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,iBAAiB,CAAC;AAClF,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA2C,EAC3C,kBAAyC;IAEzC,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEnD,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAyB,MAAe;gBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,UAAyB,MAAe;gBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Func } from "hry-types/src/Misc/Func";
2
+ import type { FinalOptionsOfComponent } from "..";
3
+ /**
4
+ * 劫持指定配置字段,在原有配置前执行指定函数
5
+ */
6
+ export declare function hijack<T extends FinalOptionsOfComponent[keyof FinalOptionsOfComponent]>(config: T, field: keyof T, before: Func[]): void;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 劫持指定配置字段,在原有配置前执行指定函数
3
+ */
4
+ export function hijack(config, field, before) {
5
+ // @ts-ignore 隐式索引
6
+ const originalFunc = config[field];
7
+ // @ts-ignore 隐式索引
8
+ config[field] = function (...args) {
9
+ before.forEach(func => func.call(this, ...args));
10
+ if (originalFunc)
11
+ originalFunc.apply(this, args);
12
+ // after.forEach(func => func.call(this, ...args));
13
+ };
14
+ return;
15
+ }
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,MAAM,CACpB,MAAS,EACT,KAAc,EACd,MAAc;IAGd,kBAAkB;IAClB,MAAM,YAAY,GAAqB,MAAM,CAAC,KAAK,CAAC,CAAC;IAErD,kBAAkB;IAClB,MAAM,CAAC,KAAK,CAAC,GAAG,UAAS,GAAG,IAAe;QACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEjD,IAAI,YAAY;YAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEjD,mDAAmD;IACrD,CAAC,CAAC;IAEF,OAAO;AACT,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Instance } from "../../../RootComponent/Instance/RootComponentInstance";
2
+ /**
3
+ * 劫持attached,根据this.route做判断 isPage值是否正确
4
+ */
5
+ export declare function isPageCheck(isPage: boolean | undefined): (this: Instance) => void;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 劫持attached,根据this.route做判断 isPage值是否正确
3
+ */
4
+ export function isPageCheck(isPage) {
5
+ return function () {
6
+ const route = this.route;
7
+ if (route && isPage !== true) {
8
+ // 页面isPage值错误
9
+ throw Error(`页面 /${route} 中, RootComponent构建页面时,isPage字段值应为 true`);
10
+ }
11
+ if (!route && isPage !== false && isPage !== undefined) {
12
+ // 组件写了isPage = true
13
+ throw Error(`组件 ${this.is} 中 RootComponent构建组件时,可不写isPage字段或值为 false`);
14
+ }
15
+ };
16
+ }
17
+ //# sourceMappingURL=isPageCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPageCheck.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAA2B;IACrD,OAAO;QACL,MAAM,KAAK,GAAI,IAAqB,CAAC,KAA2B,CAAC;QACjE,IAAI,KAAK,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAC7B,cAAc;YACd,MAAM,KAAK,CACT,OAAO,KAAK,yCAAyC,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvD,oBAAoB;YACpB,MAAM,KAAK,CACT,MAAM,IAAI,CAAC,EAAE,6CAA6C,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 针对通过 navigateTo传过来的数据对组件load周期传入数据解析
3
+ * @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
4
+ */
5
+ import { INNERMARKER } from "../../../../utils/InnerMarker";
6
+ import type { PageInstance } from "../../../RootComponent/Instance/RootComponentInstance";
7
+ export declare function loadReceivedDataHandle(this: PageInstance, option: Record<typeof INNERMARKER.url, string>): void;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 针对通过 navigateTo传过来的数据对组件load周期传入数据解析
3
+ * @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
4
+ */
5
+ import { INNERMARKER } from "../../../../utils/InnerMarker";
6
+ /* istanbul ignore next miniprogram-simulate(当前版本 1.6.1) 无法测试load */
7
+ export function loadReceivedDataHandle(option) {
8
+ const innerData = option[INNERMARKER.url];
9
+ // 未使用自定义的navigateTo
10
+ if (innerData === undefined)
11
+ return;
12
+ // 使用navigateTo API
13
+ const decodeOption = JSON.parse(decodeURIComponent(innerData));
14
+ for (const key in decodeOption) {
15
+ option[key] = decodeOption[key];
16
+ }
17
+ // 给onLoad劫持函数一个标记,判断在新框架下已经被解析过了
18
+ option[INNERMARKER.url] = INNERMARKER.url;
19
+ }
20
+ //# sourceMappingURL=loadReceivedDataHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadReceivedDataHandle.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D,oEAAoE;AACpE,MAAM,UAAU,sBAAsB,CAEpC,MAA8C;IAE9C,MAAM,SAAS,GAAuB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9D,oBAAoB;IACpB,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,mBAAmB;IACnB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,iCAAiC;IACjC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 原生Component会对传入的对象字段匹配的properties字段setData赋值。不符合字段或Page时不会赋值。
3
+ * 此函数为给实例setData赋值,默认传递值与properties相符(ts类型安全)。
4
+ * @param option - 传入onLoad的参数 有以下两种可能
5
+ * 1. 使用wx.navigateTo传值的。这种情况无内置字段 option[INNERMARKER.url] 等于 undefined
6
+ * 2. 使用插件提供的navigateTo传值。这种情况 INNERMARKER.url被load周期劫持函数解码后赋值INNERMARKER.url字段为本身,即option[INNERMARKER.url] 等于 INNERMARKER.url
7
+ */
8
+ import { INNERMARKER } from "../../../../utils/InnerMarker";
9
+ import type { PageInstance } from "../../../RootComponent/Instance/RootComponentInstance";
10
+ export declare function onLoadReceivedDataHandle(this: PageInstance, option: Record<typeof INNERMARKER.url, string>): void;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 原生Component会对传入的对象字段匹配的properties字段setData赋值。不符合字段或Page时不会赋值。
3
+ * 此函数为给实例setData赋值,默认传递值与properties相符(ts类型安全)。
4
+ * @param option - 传入onLoad的参数 有以下两种可能
5
+ * 1. 使用wx.navigateTo传值的。这种情况无内置字段 option[INNERMARKER.url] 等于 undefined
6
+ * 2. 使用插件提供的navigateTo传值。这种情况 INNERMARKER.url被load周期劫持函数解码后赋值INNERMARKER.url字段为本身,即option[INNERMARKER.url] 等于 INNERMARKER.url
7
+ */
8
+ import { INNERMARKER } from "../../../../utils/InnerMarker";
9
+ /* istanbul ignore next miniprogram-simulate(当前版本 1.6.1) 无法测试页面生命周期 */
10
+ export function onLoadReceivedDataHandle(option) {
11
+ const innerData = option[INNERMARKER.url];
12
+ // 情况1为undefined,2为INNERMARKER.url有值但不是本身,说明是老框架。3所以innerData等于 INNERMARKER.url即有组件配置了load(新框架在pageLifetimes.load中提前解析了)
13
+ if (innerData === undefined)
14
+ return;
15
+ if (innerData !== INNERMARKER.url) {
16
+ // 需要情况2 需要解析
17
+ const decodeOption = JSON.parse(decodeURIComponent(innerData));
18
+ for (const key in decodeOption) {
19
+ option[key] = decodeOption[key];
20
+ }
21
+ }
22
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
23
+ delete option[INNERMARKER.url];
24
+ this.setData(option);
25
+ }
26
+ //# sourceMappingURL=onLoadReceivedDataHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onLoadReceivedDataHandle.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D,sEAAsE;AACtE,MAAM,UAAU,wBAAwB,CAEtC,MAA8C;IAE9C,MAAM,SAAS,GAAuB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE9D,wHAAwH;IACxH,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,IAAI,SAAS,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,aAAa;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import type { Func } from "hry-types/src/Misc/_api";
2
- import type { WMComponent } from "../../../types/OfficialTypeAlias";
3
2
  import type { ComputedConstraint } from "../../RootComponent/Computed/ComputedConstraint";
4
3
  import type { DataConstraint } from "../../RootComponent/Data/DataConstraint";
5
- import type { ComponentInstance, PageInstance } from "../../RootComponent/Instance/RootComponentInstance";
6
4
  import type { LifetimesConstraint } from "../../RootComponent/Lifetimes/LifetimesConstraint";
7
5
  import type { MethodsConstraint } from "../../RootComponent/Methods/MethodsConstraint";
8
6
  import type { PageLifetimesOption } from "../../RootComponent/PageLifetimes/PageLifetimesOption";
@@ -10,13 +8,6 @@ import type { PropertiesConstraint } from "../../RootComponent/Properties/Proper
10
8
  import type { StoreConstraint } from "../../RootComponent/Store/StoreConstraint";
11
9
  import type { DefineComponentOption } from "..";
12
10
  import type { ComputedCache } from "./computedWatchHandle/initComputedAndGetCache";
13
- type InstanceInnerFields = {
14
- data: OptionsInnerFields["data"];
15
- disposer: Record<string, Func>;
16
- cloneData: OptionsInnerFields["data"];
17
- } & OptionsInnerFields["methods"];
18
- export type Instance = (ComponentInstance | PageInstance) & InstanceInnerFields;
19
- export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch" | "observers", Record<string, Func[]>>;
20
11
  export type WatchOldValue = Record<string, unknown[]>;
21
12
  export type OptionsInnerFields = {
22
13
  data: {
@@ -29,6 +20,14 @@ export type OptionsInnerFields = {
29
20
  __computedUpdater__?: Func;
30
21
  };
31
22
  };
23
+ /**
24
+ * 临时的函数配置项
25
+ * 把根组件与子组件中配置类型为函数的相同字段配置收集在一起(数组)
26
+ */
27
+ export type SameFuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch" | "observers", Record<string, Func[]>>;
28
+ /**
29
+ * 最终传入原生Component的配置项
30
+ */
32
31
  export type FinalOptionsOfComponent = {
33
32
  data: DataConstraint & OptionsInnerFields["data"];
34
33
  observers: Record<string, Func>;
@@ -36,14 +35,17 @@ export type FinalOptionsOfComponent = {
36
35
  methods: MethodsConstraint & OptionsInnerFields["methods"];
37
36
  externalClasses: string[];
38
37
  pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
39
- isPage?: boolean;
40
- options?: WMComponent.Options;
41
- properties?: PropertiesConstraint;
38
+ isPage: boolean;
39
+ options: WechatMiniprogram.Component.ComponentOptions;
40
+ properties: PropertiesConstraint;
42
41
  store?: StoreConstraint;
43
- computed?: ComputedConstraint;
44
- watch?: Record<string, Func>;
45
- lifetimes?: LifetimesConstraint;
42
+ computed: ComputedConstraint;
43
+ watch: Record<string, Func>;
44
+ lifetimes: LifetimesConstraint;
46
45
  };
47
- export declare function isPageCheck(isPage: boolean | undefined): (this: Instance) => void;
48
- export declare function assignOptions(defineComponentOption: DefineComponentOption): FinalOptionsOfComponent;
49
- export {};
46
+ /**
47
+ * DefineComponentOption转化为原生Component API支持的配置
48
+ * @param defineComponentOption
49
+ * @returns 返回符合原生Component API配置
50
+ */
51
+ export declare function normalizeOptions(defineComponentOption: DefineComponentOption): FinalOptionsOfComponent;
@@ -0,0 +1,77 @@
1
+ import { instanceConfig } from "../../..";
2
+ import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
3
+ import { BStore } from "../../../behaviors/BStore";
4
+ import { isEmptyObject } from "../../../utils/isEmptyObject";
5
+ import { computedWatchHandle } from "./computedWatchHandle";
6
+ import { hijack } from "./hijackHandle";
7
+ import { isPageCheck } from "./hijackHandle/isPageCheck";
8
+ import { loadReceivedDataHandle } from "./hijackHandle/loadReceivedDataHandle";
9
+ import { onLoadReceivedDataHandle } from "./hijackHandle/onLoadReceivedDataHandle";
10
+ import { initStore } from "./initStore";
11
+ import { injectInfoHandler } from "./injectInfoHandler";
12
+ import { InternalFieldProtection } from "./internalFieldProtection";
13
+ import { rootComponentOptionHandle } from "./rootComponentOptionHandle";
14
+ import { sameFuncOptionsHandle } from "./sameFuncOptionsHandle";
15
+ import { subComponentsOptionHandle } from "./subComponentsOptionHandle";
16
+ /**
17
+ * 把DefineComponentOption转化为原生Component API支持的配置
18
+ * @param defineComponentOption
19
+ * @returns 返回符合原生Component API配置
20
+ */
21
+ export function normalizeOptions(defineComponentOption) {
22
+ const rootComponentOption = defineComponentOption.rootComponent;
23
+ const subComponentsOption = defineComponentOption.subComponents;
24
+ const finalOptionsForComponent = injectInfoHandler({
25
+ observers: {},
26
+ data: {},
27
+ methods: {},
28
+ // 加入BStore,处理store字段的behavior
29
+ behaviors: [BStore],
30
+ externalClasses: [],
31
+ pageLifetimes: {},
32
+ isPage: false,
33
+ properties: {},
34
+ computed: {},
35
+ watch: {},
36
+ lifetimes: {},
37
+ options: {},
38
+ }, instanceConfig.injectInfo);
39
+ /**
40
+ * 为了更高的效率,在处理rootComponentOption和subComponentsOption数据时,把相同字段配置(pageLifetimes,lifetimes,watch,observers)收集到funcOptions中。
41
+ * 后续再一起处理这些字段,整合进finalOptionsForComponent配置中。即funcConfig是一个临时中介对象。
42
+ */
43
+ const sameFuncOptions = {
44
+ pageLifetimes: {},
45
+ lifetimes: {},
46
+ watch: {},
47
+ observers: {},
48
+ };
49
+ if (rootComponentOption && !isEmptyObject(rootComponentOption)) {
50
+ rootComponentOptionHandle(finalOptionsForComponent, sameFuncOptions, rootComponentOption);
51
+ }
52
+ if (subComponentsOption && !isEmptyObject(subComponentsOption)) {
53
+ subComponentsOptionHandle(finalOptionsForComponent, subComponentsOption, sameFuncOptions);
54
+ }
55
+ sameFuncOptionsHandle(finalOptionsForComponent, rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage, sameFuncOptions);
56
+ // 配置与内部字段冲突验证
57
+ InternalFieldProtection(finalOptionsForComponent);
58
+ // 对页面传入参数进行处理 老框架劫持页面methods.onLoad,新框架劫持页面pageLifetimes.load
59
+ if (finalOptionsForComponent.isPage) {
60
+ hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
61
+ }
62
+ hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle]);
63
+ // 验证isPage字段是否配置正确
64
+ hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage)]);
65
+ // 页面时删除预设的虚拟组件字段
66
+ if (finalOptionsForComponent.isPage && finalOptionsForComponent.options) {
67
+ Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
68
+ }
69
+ // 初始化store数据到data并把store配置放入到data的__storeConfig__下为后续使用
70
+ initStore(finalOptionsForComponent);
71
+ // 处理computed和watch配置
72
+ computedWatchHandle(finalOptionsForComponent);
73
+ // BBeforeCreate在最后面,让BeforeCreate生命周期运行在最终建立组件时。
74
+ finalOptionsForComponent.behaviors.push(BBeforeCreate);
75
+ return finalOptionsForComponent;
76
+ }
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  export function initStore(finalOptionsForComponent) {
2
2
  const storeConfig = finalOptionsForComponent.store;
3
3
  if (storeConfig) {
4
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
4
5
  const { toJS } = require("mobx");
5
6
  for (const key in storeConfig) {
6
7
  finalOptionsForComponent.data[key] = toJS(storeConfig[key]());
8
+ // 把响应式数据配置保留在methods的__storeConfig__字段下带入到组件实例中(不用函数返回方式也可以,但不符合methods字段类型),后续再从原型上删除。
7
9
  }
8
10
  finalOptionsForComponent.data.__storeConfig__ = storeConfig;
9
11
  delete finalOptionsForComponent.store;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/initStore/index.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,wBAAiD;IACzE,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,CAAC;IACnD,IAAI,WAAW,EAAE,CAAC;QAChB,iEAAiE;QACjE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAgB,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAE9D,wFAAwF;QAC1F,CAAC;QACD,wBAAwB,CAAC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;QAE5D,OAAO,wBAAwB,CAAC,KAAK,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IInjectInfo } from "../../..";
2
+ import type { FinalOptionsOfComponent } from ".";
3
+ export declare function injectInfoHandler(finalOptionsForComponent: FinalOptionsOfComponent, injectInfo: IInjectInfo | undefined): FinalOptionsOfComponent;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * 把injectInfo字段合并到finalOptionsForComponent
3
+ * @remarks 规则:
4
+ * 1. behaviors字段 push
5
+ * 2. 对象字段 没有的话直接赋值,有的话Object.assign
6
+ * @param finalOptionsForComponent
7
+ * @param injectInfo
8
+ * @returns finalOptionsForComponent
9
+ */
10
+ function mergeOptions(finalOptionsForComponent, injectInfo) {
11
+ for (const key in injectInfo) {
12
+ const injectVal = injectInfo[key];
13
+ if (key in finalOptionsForComponent) {
14
+ // @ts-ignore
15
+ const originalVal = finalOptionsForComponent[key];
16
+ switch (key) {
17
+ case "behaviors":
18
+ {
19
+ // @ts-ignore behaviors 是数组类型
20
+ finalOptionsForComponent[key].push(...injectVal);
21
+ }
22
+ break;
23
+ default:
24
+ {
25
+ // @ts-ignore 覆盖目标
26
+ finalOptionsForComponent[key] = Object.assign(originalVal, injectVal);
27
+ }
28
+ break;
29
+ }
30
+ }
31
+ else {
32
+ // @ts-ignore
33
+ finalOptionsForComponent[key] = injectVal;
34
+ }
35
+ }
36
+ return finalOptionsForComponent;
37
+ }
38
+ export function injectInfoHandler(finalOptionsForComponent, injectInfo) {
39
+ if (!injectInfo)
40
+ return finalOptionsForComponent;
41
+ return mergeOptions(finalOptionsForComponent, injectInfo);
42
+ }
43
+ //# sourceMappingURL=injectInfoHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectInfoHandler.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/injectInfoHandler.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,SAAS,YAAY,CACnB,wBAAiD,EACjD,UAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,wBAAwB,EAAE,CAAC;YACpC,aAAa;YACb,MAAM,WAAW,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAClD,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,WAAW;oBACd,CAAC;wBACC,6BAA6B;wBAC7B,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM;gBAER;oBACE,CAAC;wBACC,kBAAkB;wBAClB,wBAAwB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBACxE,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa;YACb,wBAAwB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC;AACD,MAAM,UAAU,iBAAiB,CAC/B,wBAAiD,EACjD,UAAmC;IAEnC,IAAI,CAAC,UAAU;QAAE,OAAO,wBAAwB,CAAC;IAEjD,OAAO,YAAY,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { FinalOptionsOfComponent } from ".";
2
+ /**
3
+ * 报错的形式避免输入字段和内部字段冲突,保证config下不包含内部预定字段(列表)
4
+ */
5
+ export declare function InternalFieldProtection(finalOptionsForComponent: FinalOptionsOfComponent): void;
@@ -0,0 +1,23 @@
1
+ // 内部字段
2
+ const internalFiled = {
3
+ methods: ["disposer", "__computedUpdater__"],
4
+ data: ["__computedCache__", "__storeConfig__", "__watchOldValue__"],
5
+ };
6
+ /**
7
+ * 报错的形式避免输入字段和内部字段冲突,保证config下不包含内部预定字段(列表)
8
+ */
9
+ export function InternalFieldProtection(finalOptionsForComponent) {
10
+ const methodsFieldKeys = Object.keys(finalOptionsForComponent.methods);
11
+ const dataFieldKeys = Object.keys(finalOptionsForComponent.data);
12
+ for (const key of methodsFieldKeys) {
13
+ if (internalFiled.methods.includes(key)) {
14
+ throw Error(`methods配置中的${key}字段已被内部字段占用`);
15
+ }
16
+ }
17
+ for (const key of dataFieldKeys) {
18
+ if (internalFiled.data.includes(key)) {
19
+ throw Error(`data配置中的${key}字段已被内部字段占用`);
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=internalFieldProtection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalFieldProtection.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/internalFieldProtection.ts"],"names":[],"mappings":"AAEA,OAAO;AACP,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC5C,IAAI,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;CACpE,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,wBAAiD;IACvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAEjE,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { RootComponentTrueOptions } from "../../RootComponent";
2
+ import type { FinalOptionsOfComponent } from ".";
3
+ /**
4
+ * 其他字段加入到componentOptions对应字段配置中
5
+ */
6
+ export declare function otherFieldsHandle(finalOptions: FinalOptionsOfComponent, rootComponentOptions: RootComponentTrueOptions): void;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 其他字段加入到componentOptions对应字段配置中
3
+ */
4
+ export function otherFieldsHandle(finalOptions, rootComponentOptions) {
5
+ for (const key in rootComponentOptions) {
6
+ // @ts-ignore 隐式索引
7
+ const config = rootComponentOptions[key];
8
+ if (Array.isArray(config) === true) {
9
+ // "behaviors" || "externalClasses"是数组
10
+ // @ts-ignore 只有 behaviors 和 externalClasses, 且都默认为[]
11
+ finalOptions[key].push(...config);
12
+ }
13
+ else if (typeof config === "object") {
14
+ // @ts-ignore 隐式索引
15
+ Object.assign(finalOptions[key] || (finalOptions[key] = {}), config);
16
+ }
17
+ else {
18
+ // 函数字段有 根组件有 `export` 子组件无此字段
19
+ // @ts-ignore 隐式索引
20
+ finalOptions[key] = config;
21
+ }
22
+ }
23
+ }
24
+ //# sourceMappingURL=otherFieldsHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otherFieldsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/otherFieldsHandle.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAqC,EACrC,oBAA8C;IAE9C,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,kBAAkB;QAClB,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACnC,uCAAuC;YACvC,qDAAqD;YACrD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,kBAAkB;YAClB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAhB,YAAY,CAAC,GAAG,IAAM,EAAE,GAAE,MAAM,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,kBAAkB;YAClB,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { RootComponentTrueOptions } from "../../RootComponent";
2
+ import type { FinalOptionsOfComponent, SameFuncOptions } from ".";
3
+ /**
4
+ * 收集 rootComponentOptions 配置到 finalOptions 和 funcOptions 中
5
+ * @param finalOptions - 收集配置对象
6
+ * @param funcOptions - 收集特殊配置对象字段
7
+ * @param rootComponentOptions - 被收集的源配置对象
8
+ */
9
+ export declare function rootComponentOptionHandle(finalOptions: FinalOptionsOfComponent, funcOptions: SameFuncOptions, rootComponentOptions: RootComponentTrueOptions): void;
@@ -0,0 +1,18 @@
1
+ import { customEventsHandle } from "./customEventsHandle";
2
+ import { otherFieldsHandle } from "./otherFieldsHandle";
3
+ import { sameFuncFieldsCollect } from "./sameFuncFieldsCollect";
4
+ /**
5
+ * 收集 rootComponentOptions 配置到 finalOptions 和 funcOptions 中
6
+ * @param finalOptions - 收集配置对象
7
+ * @param funcOptions - 收集特殊配置对象字段
8
+ * @param rootComponentOptions - 被收集的源配置对象
9
+ */
10
+ export function rootComponentOptionHandle(finalOptions, funcOptions, rootComponentOptions) {
11
+ if (rootComponentOptions.customEvents)
12
+ customEventsHandle(finalOptions.methods, rootComponentOptions.customEvents);
13
+ if (rootComponentOptions.events)
14
+ Object.assign(finalOptions.methods, rootComponentOptions.events);
15
+ sameFuncFieldsCollect(rootComponentOptions, funcOptions);
16
+ otherFieldsHandle(finalOptions, rootComponentOptions);
17
+ }
18
+ //# sourceMappingURL=rootComponentOptionHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rootComponentOptionHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAAqC,EACrC,WAA4B,EAC5B,oBAA8C;IAE9C,IAAI,oBAAoB,CAAC,YAAY;QAAE,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEnH,IAAI,oBAAoB,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAElG,qBAAqB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAEzD,iBAAiB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { RootComponentTrueOptions } from "../../RootComponent";
2
+ import type { SubComponentTrueOptions } from "../../SubComponent";
3
+ import type { SameFuncOptions } from ".";
4
+ /**
5
+ * 把配置为函数的字段方法收集到funcOptions中
6
+ */
7
+ export declare function sameFuncFieldsCollect(options: SubComponentTrueOptions | RootComponentTrueOptions, funcOptions: SameFuncOptions): void;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 把配置为函数的字段方法收集到funcOptions中
3
+ */
4
+ export function sameFuncFieldsCollect(options, funcOptions) {
5
+ var _a;
6
+ let key;
7
+ for (key in funcOptions) {
8
+ const optionsKeyConfig = options[key];
9
+ if (optionsKeyConfig) {
10
+ for (const _key in optionsKeyConfig) {
11
+ // @ts-ignore
12
+ ((_a = funcOptions[key])[_key] || (_a[_key] = [])).push(optionsKeyConfig[_key]);
13
+ }
14
+ }
15
+ }
16
+ }
17
+ //# sourceMappingURL=sameFuncFieldsCollect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sameFuncFieldsCollect.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA2D,EAC3D,WAA4B;;IAE5B,IAAI,GAA0B,CAAC;IAC/B,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;gBACpC,aAAa;gBACb,OAAC,WAAW,CAAC,GAAG,CAAC,EAAC,IAAI,SAAJ,IAAI,IAAM,EAAE,EAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { FinalOptionsOfComponent, SameFuncOptions } from ".";
2
+ /**
3
+ * 把函数列表配置放入一个配置中循环依次运行
4
+ */
5
+ export declare function sameFuncOptionsHandle(finalOptionsForComponent: FinalOptionsOfComponent, isPage: boolean | undefined, funcOptions: SameFuncOptions): void;
@@ -0,0 +1,34 @@
1
+ import { isEmptyObject } from "../../../utils/isEmptyObject";
2
+ /**
3
+ * 把函数配置放入一个配置中依次运行
4
+ */
5
+ function _sameFuncOptionsHandle(config, configList) {
6
+ for (const key in configList) {
7
+ // @ts-ignore 隐式索引
8
+ config[key] = function (...args) {
9
+ configList[key].forEach(ele => ele.call(this, ...args));
10
+ };
11
+ }
12
+ }
13
+ /**
14
+ * 把函数列表配置放入一个配置中循环依次运行
15
+ */
16
+ export function sameFuncOptionsHandle(finalOptionsForComponent, isPage, funcOptions) {
17
+ if (isPage) {
18
+ // 页面时 生命周期方法(即 on 开头的方法),(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html)
19
+ if (!isEmptyObject(funcOptions.pageLifetimes)) {
20
+ _sameFuncOptionsHandle(finalOptionsForComponent.methods, funcOptions.pageLifetimes);
21
+ }
22
+ }
23
+ else {
24
+ // 组件时
25
+ if (!isEmptyObject(funcOptions.pageLifetimes)) {
26
+ _sameFuncOptionsHandle(finalOptionsForComponent.pageLifetimes, funcOptions.pageLifetimes);
27
+ }
28
+ }
29
+ if (funcOptions.lifetimes)
30
+ _sameFuncOptionsHandle(finalOptionsForComponent.lifetimes || (finalOptionsForComponent.lifetimes = {}), funcOptions.lifetimes);
31
+ if (funcOptions.watch)
32
+ _sameFuncOptionsHandle(finalOptionsForComponent.watch || (finalOptionsForComponent.watch = {}), funcOptions.watch);
33
+ }
34
+ //# sourceMappingURL=sameFuncOptionsHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sameFuncOptionsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAAc,EAAE,UAAkC;IAChF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,kBAAkB;QAClB,MAAM,CAAC,GAAG,CAAC,GAAG,UAAS,GAAG,IAAe;YACvC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;AACH,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,wBAAiD,EACjD,MAA2B,EAC3B,WAA4B;IAE5B,IAAI,MAAM,EAAE,CAAC;QACX,sHAAsH;QACtH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,sBAAsB,CAAC,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM;QACN,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,sBAAsB,CAAC,wBAAwB,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,SAAS;QAAE,sBAAsB,CAAC,wBAAwB,CAAC,SAAS,KAAlC,wBAAwB,CAAC,SAAS,GAAK,EAAE,GAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAEpH,IAAI,WAAW,CAAC,KAAK;QAAE,sBAAsB,CAAC,wBAAwB,CAAC,KAAK,KAA9B,wBAAwB,CAAC,KAAK,GAAK,EAAE,GAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1G,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SubComponentTrueOptions } from "../../SubComponent";
2
+ import type { FinalOptionsOfComponent, SameFuncOptions } from ".";
3
+ export declare function subComponentsOptionHandle(componentOptions: FinalOptionsOfComponent, subComponents: SubComponentTrueOptions[], funcOptions: SameFuncOptions): void;
@@ -0,0 +1,11 @@
1
+ import { otherFieldsHandle } from "./otherFieldsHandle";
2
+ import { sameFuncFieldsCollect } from "./sameFuncFieldsCollect";
3
+ export function subComponentsOptionHandle(componentOptions, subComponents, funcOptions) {
4
+ subComponents.forEach((subOption) => {
5
+ if (subOption.events)
6
+ Object.assign(componentOptions.methods, subOption.events);
7
+ sameFuncFieldsCollect(subOption, funcOptions);
8
+ otherFieldsHandle(componentOptions, subOption);
9
+ });
10
+ }
11
+ //# sourceMappingURL=subComponentsOptionHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subComponentsOptionHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,UAAU,yBAAyB,CACvC,gBAAyC,EACzC,aAAwC,EACxC,WAA4B;IAE5B,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAClC,IAAI,SAAS,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhF,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAE9C,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"}