vite-uni-dev-tool 0.0.48 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/README.md +20 -0
  2. package/dist/const.cjs +1 -0
  3. package/dist/const.d.ts +78 -161
  4. package/dist/const.d.ts.map +1 -1
  5. package/dist/const.js +1 -47
  6. package/dist/core-shared.d.ts +44 -0
  7. package/dist/core-shared.d.ts.map +1 -0
  8. package/dist/core-shared.js +1 -0
  9. package/dist/core.d.ts +2 -40
  10. package/dist/core.d.ts.map +1 -1
  11. package/dist/core.js +4 -159
  12. package/dist/i18n/index.cjs +1 -0
  13. package/dist/i18n/index.d.ts +9 -0
  14. package/dist/i18n/index.d.ts.map +1 -0
  15. package/dist/i18n/index.js +1 -0
  16. package/dist/i18n/instance.cjs +1 -0
  17. package/dist/i18n/instance.d.ts +15 -0
  18. package/dist/i18n/instance.d.ts.map +1 -0
  19. package/dist/i18n/instance.js +1 -0
  20. package/dist/i18n/locales/en.cjs +1 -0
  21. package/dist/i18n/locales/en.d.ts +470 -0
  22. package/dist/i18n/locales/en.d.ts.map +1 -0
  23. package/dist/i18n/locales/en.js +1 -0
  24. package/dist/i18n/locales/zh-Hans.cjs +1 -0
  25. package/dist/i18n/locales/zh-Hans.d.ts +476 -0
  26. package/dist/i18n/locales/zh-Hans.d.ts.map +1 -0
  27. package/dist/i18n/locales/zh-Hans.js +1 -0
  28. package/dist/index.cjs +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/modules/devConsole/index.cjs +4 -0
  32. package/dist/{devConsole → modules/devConsole}/index.d.ts +1 -1
  33. package/dist/modules/devConsole/index.d.ts.map +1 -0
  34. package/dist/modules/devConsole/index.js +4 -0
  35. package/dist/modules/devEvent/index.cjs +5 -0
  36. package/dist/modules/devEvent/index.d.ts +115 -0
  37. package/dist/modules/devEvent/index.d.ts.map +1 -0
  38. package/dist/modules/devEvent/index.js +5 -0
  39. package/dist/modules/devIntercept/index.cjs +13 -0
  40. package/dist/modules/devIntercept/index.d.ts +71 -0
  41. package/dist/modules/devIntercept/index.d.ts.map +1 -0
  42. package/dist/modules/devIntercept/index.js +13 -0
  43. package/dist/modules/devStore/index.cjs +1 -0
  44. package/dist/modules/devStore/index.d.ts +159 -0
  45. package/dist/modules/devStore/index.d.ts.map +1 -0
  46. package/dist/modules/devStore/index.js +1 -0
  47. package/dist/modules/devToolInfo/index.cjs +1 -0
  48. package/dist/modules/devToolInfo/index.d.ts +27 -0
  49. package/dist/modules/devToolInfo/index.d.ts.map +1 -0
  50. package/dist/modules/devToolInfo/index.js +1 -0
  51. package/dist/plugins/uniDevTool/transform/transformApp.cjs +44 -0
  52. package/dist/plugins/uniDevTool/transform/transformApp.d.ts.map +1 -1
  53. package/dist/plugins/uniDevTool/transform/transformApp.js +17 -17
  54. package/dist/plugins/uniDevTool/transform/transformMain.cjs +3 -0
  55. package/dist/plugins/uniDevTool/transform/transformMain.d.ts.map +1 -1
  56. package/dist/plugins/uniDevTool/transform/transformMain.js +3 -3
  57. package/dist/plugins/uniDevTool/transform/transformVue.cjs +41 -0
  58. package/dist/plugins/uniDevTool/transform/transformVue.d.ts +1 -2
  59. package/dist/plugins/uniDevTool/transform/transformVue.d.ts.map +1 -1
  60. package/dist/plugins/uniDevTool/transform/transformVue.js +32 -19
  61. package/dist/plugins/uniDevTool/uniDevTool.cjs +5 -0
  62. package/dist/plugins/uniDevTool/uniDevTool.d.ts +3 -11
  63. package/dist/plugins/uniDevTool/uniDevTool.d.ts.map +1 -1
  64. package/dist/plugins/uniDevTool/uniDevTool.js +3 -3
  65. package/dist/plugins/uniGlobalComponents/uniGlobalComponents.cjs +19 -0
  66. package/dist/plugins/uniGlobalComponents/uniGlobalComponents.d.ts.map +1 -1
  67. package/dist/plugins/uniGlobalComponents/uniGlobalComponents.js +11 -19
  68. package/dist/plugins/uniParseStock/index.d.ts +10 -0
  69. package/dist/plugins/uniParseStock/index.d.ts.map +1 -0
  70. package/dist/plugins/utils/index.cjs +2 -0
  71. package/dist/plugins/utils/index.d.ts +1 -3
  72. package/dist/plugins/utils/index.d.ts.map +1 -1
  73. package/dist/plugins/utils/index.js +2 -2
  74. package/dist/shims-uni.d.ts +140 -0
  75. package/dist/type.d.ts +174 -16
  76. package/dist/type.d.ts.map +1 -1
  77. package/dist/utils/array.cjs +1 -0
  78. package/dist/utils/array.d.ts.map +1 -1
  79. package/dist/utils/array.js +1 -12
  80. package/dist/utils/date.cjs +1 -0
  81. package/dist/utils/date.d.ts.map +1 -1
  82. package/dist/utils/date.js +1 -59
  83. package/dist/utils/file.cjs +1 -0
  84. package/dist/utils/file.d.ts.map +1 -1
  85. package/dist/utils/file.js +1 -85
  86. package/dist/utils/function.cjs +1 -0
  87. package/dist/utils/function.d.ts +13 -0
  88. package/dist/utils/function.d.ts.map +1 -1
  89. package/dist/utils/function.js +1 -68
  90. package/dist/utils/index.cjs +1 -0
  91. package/dist/utils/index.d.ts.map +1 -1
  92. package/dist/utils/index.js +1 -63
  93. package/dist/utils/ip.cjs +1 -0
  94. package/dist/utils/ip.d.ts +1 -1
  95. package/dist/utils/ip.d.ts.map +1 -1
  96. package/dist/utils/ip.js +1 -45
  97. package/dist/utils/language.cjs +1 -0
  98. package/dist/utils/language.d.ts +2 -1
  99. package/dist/utils/language.d.ts.map +1 -1
  100. package/dist/utils/language.js +1 -63
  101. package/dist/utils/object.cjs +1 -0
  102. package/dist/utils/object.d.ts +4 -5
  103. package/dist/utils/object.d.ts.map +1 -1
  104. package/dist/utils/object.js +1 -136
  105. package/dist/utils/openLink.cjs +1 -0
  106. package/dist/utils/openLink.d.ts.map +1 -1
  107. package/dist/utils/openLink.js +1 -28
  108. package/dist/utils/page.cjs +1 -0
  109. package/dist/utils/page.d.ts.map +1 -1
  110. package/dist/utils/page.js +1 -7
  111. package/dist/utils/platform.cjs +1 -0
  112. package/dist/utils/platform.d.ts.map +1 -1
  113. package/dist/utils/platform.js +1 -17
  114. package/dist/utils/string.cjs +1 -0
  115. package/dist/utils/string.d.ts.map +1 -1
  116. package/dist/utils/string.js +1 -114
  117. package/dist/utils/utils.cjs +1 -0
  118. package/dist/utils/utils.d.ts +1 -1
  119. package/dist/utils/utils.d.ts.map +1 -1
  120. package/dist/utils/utils.js +1 -126
  121. package/dist/v3/AppTransition/index.vue +170 -0
  122. package/dist/v3/AutoSizer/index.vue +4 -5
  123. package/dist/v3/AutoSizer/index1.vue +4 -6
  124. package/dist/v3/AutoSizer/utils.ts +1 -1
  125. package/dist/v3/CaptureScreen/index.vue +19 -8
  126. package/dist/v3/CircularButton/index.vue +64 -13
  127. package/dist/v3/ConsoleList/ConsoleItem.vue +56 -5
  128. package/dist/v3/ConsoleList/RunJSInput.vue +10 -6
  129. package/dist/v3/ConsoleList/index.vue +51 -35
  130. package/dist/v3/CustomSwiper/CustomSwiperItem.vue +49 -0
  131. package/dist/v3/CustomSwiper/index.vue +104 -0
  132. package/dist/v3/DevTool/fps-collector.render.ts +148 -0
  133. package/dist/v3/DevTool/index.vue +209 -102
  134. package/dist/v3/DevToolButton/index.vue +40 -59
  135. package/dist/v3/DevToolTitle/index.vue +4 -1
  136. package/dist/v3/DevToolWindow/DevToolOverlay.vue +182 -0
  137. package/dist/v3/DevToolWindow/const.ts +47 -69
  138. package/dist/v3/DevToolWindow/hooks/dataUtils.ts +48 -0
  139. package/dist/v3/DevToolWindow/hooks/useDevToolData.ts +338 -0
  140. package/dist/v3/DevToolWindow/hooks/useDevToolHandlers.ts +549 -0
  141. package/dist/v3/DevToolWindow/hooks/useDevToolOverlay.ts +184 -0
  142. package/dist/v3/DevToolWindow/index.css +89 -0
  143. package/dist/v3/DevToolWindow/index.vue +800 -1450
  144. package/dist/v3/DraggableContainer/index.vue +456 -0
  145. package/dist/v3/ElEvent/ElEventItem.vue +4 -3
  146. package/dist/v3/ElEvent/index.vue +26 -9
  147. package/dist/v3/Empty/index.vue +1 -0
  148. package/dist/v3/FilterInput/index.vue +8 -22
  149. package/dist/v3/FilterSelect/index.vue +37 -24
  150. package/dist/v3/Instance/components/InstanceTreeNode.vue +265 -0
  151. package/dist/v3/Instance/flatten.ts +226 -0
  152. package/dist/v3/Instance/index.vue +94 -0
  153. package/dist/v3/Instance/registry.ts +49 -0
  154. package/dist/v3/Instance/transformTree.ts +375 -0
  155. package/dist/v3/Instance/transformTreeCtx.ts +268 -0
  156. package/dist/v3/{InstanceTree → Instance}/typing.d.ts +15 -2
  157. package/dist/v3/InstanceDetail/index.vue +433 -44
  158. package/dist/v3/JsonDetail/index.vue +12 -8
  159. package/dist/v3/JsonPretty/components/Brackets/index.vue +1 -0
  160. package/dist/v3/JsonPretty/components/Carets/index.vue +2 -1
  161. package/dist/v3/JsonPretty/components/CheckController/index.vue +26 -15
  162. package/dist/v3/JsonPretty/components/TreeNode/index.vue +42 -20
  163. package/dist/v3/JsonPretty/index.vue +60 -37
  164. package/dist/v3/JsonPretty/utils/index.ts +41 -44
  165. package/dist/v3/MovableContainer/index.vue +89 -0
  166. package/dist/v3/NFCList/NFCItem.vue +14 -14
  167. package/dist/v3/NFCList/NFCTool.vue +99 -81
  168. package/dist/v3/NFCList/index.vue +14 -10
  169. package/dist/v3/NetworkList/InterceptConfig.vue +154 -364
  170. package/dist/v3/NetworkList/InterceptItem.vue +14 -6
  171. package/dist/v3/NetworkList/NetworkDetail.vue +34 -29
  172. package/dist/v3/NetworkList/NetworkIntercept.vue +11 -8
  173. package/dist/v3/NetworkList/NetworkItem.vue +27 -11
  174. package/dist/v3/NetworkList/NetworkSend.vue +132 -290
  175. package/dist/v3/NetworkList/hooks/useNetworkForm.ts +86 -0
  176. package/dist/v3/NetworkList/index.vue +32 -24
  177. package/dist/v3/NetworkList/utils.ts +101 -0
  178. package/dist/v3/Performance/index.vue +495 -0
  179. package/dist/v3/Performance/modules/PerformanceMetrics.vue +153 -0
  180. package/dist/v3/Performance/modules/PerformanceWidget.vue +249 -0
  181. package/dist/v3/Performance/modules/usePerformanceChart.ts +460 -0
  182. package/dist/v3/Performance/modules/usePerformanceData.ts +258 -0
  183. package/dist/v3/Pick/index.vue +322 -0
  184. package/dist/v3/PiniaList/index.vue +38 -17
  185. package/dist/v3/RouteList/index.vue +32 -15
  186. package/dist/v3/RunJS/index.vue +30 -10
  187. package/dist/v3/ScanCodeList/ScanCodeItem.vue +2 -9
  188. package/dist/v3/ScanCodeList/index.vue +12 -9
  189. package/dist/v3/SettingButton/index.vue +45 -0
  190. package/dist/v3/SettingList/index.css +120 -0
  191. package/dist/v3/SettingList/index.vue +96 -537
  192. package/dist/v3/SettingList/modules/SettingDevTool.vue +208 -0
  193. package/dist/v3/SettingList/modules/SettingInfo.vue +119 -0
  194. package/dist/v3/SettingList/modules/SettingLanguage.vue +74 -0
  195. package/dist/v3/SettingList/modules/SettingLog.vue +230 -0
  196. package/dist/v3/SettingList/modules/SettingNetwork.vue +120 -0
  197. package/dist/v3/SettingList/modules/SettingTheme.vue +312 -0
  198. package/dist/v3/SourceCode/Line.vue +15 -2
  199. package/dist/v3/SourceCode/index.vue +25 -24
  200. package/dist/v3/SourceCode/parseCode.ts +114 -56
  201. package/dist/v3/StorageList/index.vue +33 -33
  202. package/dist/v3/Tabs/index.vue +31 -28
  203. package/dist/v3/Tag/index.vue +39 -20
  204. package/dist/v3/TransferList/TransferDetail.vue +268 -0
  205. package/dist/v3/TransferList/TransferItem.vue +125 -0
  206. package/dist/v3/TransferList/index.vue +181 -0
  207. package/dist/v3/UniEvent/UniEventItem.vue +1 -0
  208. package/dist/v3/UniEvent/index.vue +28 -29
  209. package/dist/v3/{VirtualListPro → VirtualList}/AutoSize.vue +1 -1
  210. package/dist/v3/VirtualList/index.vue +382 -82
  211. package/dist/v3/VuexList/index.vue +38 -17
  212. package/dist/v3/WebSocket/WebSocketDetail.vue +142 -80
  213. package/dist/v3/WebSocket/WebSocketItem.vue +10 -4
  214. package/dist/v3/WebSocket/index.vue +44 -30
  215. package/dist/v3/hooks/useNFC/index.ts +6 -6
  216. package/dist/v3/hooks/useNFC/typing.d.ts +2 -2
  217. package/dist/v3/hooks/useNFC/useNFCAndroid.ts +215 -626
  218. package/dist/v3/hooks/useNFC/useNFCMpWeiXin.ts +54 -85
  219. package/dist/v3/hooks/useNFC/utils.ts +3 -3
  220. package/dist/v3/hooks/useRequest/index.ts +2 -2
  221. package/dist/v3/hooks/useScanCode/index.ts +10 -8
  222. package/dist/v3/styles/theme.css +290 -0
  223. package/dist/v3/styles/theme.ts +12 -0
  224. package/package.json +25 -5
  225. package/dist/devConsole/index.d.ts.map +0 -1
  226. package/dist/devConsole/index.js +0 -273
  227. package/dist/devEvent/index.d.ts +0 -328
  228. package/dist/devEvent/index.d.ts.map +0 -1
  229. package/dist/devEvent/index.js +0 -697
  230. package/dist/devEventBus/index.d.ts +0 -42
  231. package/dist/devEventBus/index.d.ts.map +0 -1
  232. package/dist/devEventBus/index.js +0 -70
  233. package/dist/devIntercept/index.d.ts +0 -281
  234. package/dist/devIntercept/index.d.ts.map +0 -1
  235. package/dist/devIntercept/index.js +0 -949
  236. package/dist/devRunJS/index.d.ts +0 -67
  237. package/dist/devRunJS/index.d.ts.map +0 -1
  238. package/dist/devStore/index.d.ts +0 -199
  239. package/dist/devStore/index.d.ts.map +0 -1
  240. package/dist/devStore/index.js +0 -562
  241. package/dist/devToolInfo/index.d.ts +0 -17
  242. package/dist/devToolInfo/index.d.ts.map +0 -1
  243. package/dist/devToolInfo/index.js +0 -15
  244. package/dist/v3/AutoSizer/utils.d.ts +0 -5
  245. package/dist/v3/AutoSizer/utils.d.ts.map +0 -1
  246. package/dist/v3/ConsoleList/staticTips.d.ts +0 -13
  247. package/dist/v3/ConsoleList/staticTips.d.ts.map +0 -1
  248. package/dist/v3/DevToolWindow/const.d.ts +0 -46
  249. package/dist/v3/DevToolWindow/const.d.ts.map +0 -1
  250. package/dist/v3/InstanceTree/components/InstanceTreeNode.vue +0 -81
  251. package/dist/v3/InstanceTree/flatten.d.ts +0 -10
  252. package/dist/v3/InstanceTree/flatten.d.ts.map +0 -1
  253. package/dist/v3/InstanceTree/flatten.ts +0 -75
  254. package/dist/v3/InstanceTree/index.vue +0 -51
  255. package/dist/v3/InstanceTree/transformTree.d.ts +0 -17
  256. package/dist/v3/InstanceTree/transformTree.d.ts.map +0 -1
  257. package/dist/v3/InstanceTree/transformTree.ts +0 -237
  258. package/dist/v3/JsonPretty/hooks/useClipboard.d.ts +0 -4
  259. package/dist/v3/JsonPretty/hooks/useClipboard.d.ts.map +0 -1
  260. package/dist/v3/JsonPretty/hooks/useError.d.ts +0 -8
  261. package/dist/v3/JsonPretty/hooks/useError.d.ts.map +0 -1
  262. package/dist/v3/JsonPretty/type.d.ts +0 -94
  263. package/dist/v3/JsonPretty/type.d.ts.map +0 -1
  264. package/dist/v3/JsonPretty/utils/index.d.ts +0 -10
  265. package/dist/v3/JsonPretty/utils/index.d.ts.map +0 -1
  266. package/dist/v3/NFCList/const.d.ts +0 -13
  267. package/dist/v3/NFCList/const.d.ts.map +0 -1
  268. package/dist/v3/NetworkList/const.d.ts +0 -5
  269. package/dist/v3/NetworkList/const.d.ts.map +0 -1
  270. package/dist/v3/SourceCode/parseCode.d.ts +0 -27
  271. package/dist/v3/SourceCode/parseCode.d.ts.map +0 -1
  272. package/dist/v3/UploadList/UploadDetail.vue +0 -255
  273. package/dist/v3/UploadList/UploadItem.vue +0 -122
  274. package/dist/v3/UploadList/index.vue +0 -125
  275. package/dist/v3/VirtualListPro/index.vue +0 -229
  276. package/dist/v3/hooks/useContainerStyle.d.ts +0 -15
  277. package/dist/v3/hooks/useContainerStyle.d.ts.map +0 -1
  278. package/dist/v3/hooks/useNFC/index.d.ts +0 -5
  279. package/dist/v3/hooks/useNFC/index.d.ts.map +0 -1
  280. package/dist/v3/hooks/useNFC/useNFCAndroid.d.ts +0 -2
  281. package/dist/v3/hooks/useNFC/useNFCAndroid.d.ts.map +0 -1
  282. package/dist/v3/hooks/useNFC/useNFCMpWeiXin.d.ts +0 -2
  283. package/dist/v3/hooks/useNFC/useNFCMpWeiXin.d.ts.map +0 -1
  284. package/dist/v3/hooks/useNFC/utils.d.ts +0 -95
  285. package/dist/v3/hooks/useNFC/utils.d.ts.map +0 -1
  286. package/dist/v3/hooks/useRequest/index.d.ts +0 -126
  287. package/dist/v3/hooks/useRequest/index.d.ts.map +0 -1
  288. package/dist/v3/hooks/useRequest/utils.d.ts +0 -35
  289. package/dist/v3/hooks/useRequest/utils.d.ts.map +0 -1
  290. package/dist/v3/hooks/useScanCode/index.d.ts +0 -36
  291. package/dist/v3/hooks/useScanCode/index.d.ts.map +0 -1
  292. /package/dist/v3/{VirtualListPro → VirtualList}/readme.md +0 -0
@@ -37,6 +37,11 @@ const symbolList = [
37
37
  '@',
38
38
  '#',
39
39
  '$',
40
+ '!',
41
+ '&',
42
+ '|',
43
+ '^',
44
+ '%',
40
45
  ];
41
46
 
42
47
  /** 关键字 */
@@ -89,51 +94,77 @@ const keywordList = [
89
94
  'protected',
90
95
  'public',
91
96
  'static',
92
- 'yield',
97
+ 'type',
98
+ 'enum',
99
+ 'declare',
100
+ 'readonly',
101
+ 'any',
102
+ 'number',
103
+ 'string',
104
+ 'boolean',
93
105
  'null',
94
106
  'undefined',
95
107
  'true',
96
108
  'false',
97
109
  'get',
110
+ 'set',
98
111
 
99
112
  // Vue 特定关键字
100
- // 'ref',
101
- // 'reactive',
102
- // 'computed',
103
- // 'watch',
104
- // 'watchEffect',
105
- // 'provide',
106
- // 'inject',
107
- // 'setup',
108
- // 'onMounted',
109
- // 'onUnmounted',
110
- // 'onUpdated',
111
- // 'onBeforeMount',
112
- // 'onBeforeUpdate',
113
- // 'onBeforeUnmount',
114
- // 'nextTick',
115
- // 'defineComponent',
116
- // 'defineProps',
117
- // 'defineEmits',
118
- // 'defineExpose',
119
- // 'withDefaults',
120
-
121
- // // UniApp 特定关键字
122
- // 'uni',
123
- // 'getCurrentInstance',
124
- // 'onLoad',
125
- // 'onShow',
126
- // 'onReady',
127
- // 'onHide',
128
- // 'onUnload',
129
- // 'onPullDownRefresh',
130
- // 'onReachBottom',
131
- // 'onShareAppMessage',
132
- // 'onShareTimeline',
133
- // 'onAddToFavorites',
134
- // 'onPageScroll',
135
- // 'onResize',
136
- // 'onTabItemTap',
113
+ 'ref',
114
+ 'reactive',
115
+ 'computed',
116
+ 'watch',
117
+ 'watchEffect',
118
+ 'provide',
119
+ 'inject',
120
+ 'setup',
121
+ 'onMounted',
122
+ 'onUnmounted',
123
+ 'onUpdated',
124
+ 'onBeforeMount',
125
+ 'onBeforeUpdate',
126
+ 'onBeforeUnmount',
127
+ 'nextTick',
128
+ 'defineComponent',
129
+ 'defineProps',
130
+ 'defineEmits',
131
+ 'defineExpose',
132
+ 'withDefaults',
133
+
134
+ // UniApp 特定关键字
135
+ 'uni',
136
+ 'getCurrentInstance',
137
+ 'onLoad',
138
+ 'onShow',
139
+ 'onReady',
140
+ 'onHide',
141
+ 'onUnload',
142
+ 'onPullDownRefresh',
143
+ 'onReachBottom',
144
+ 'onShareAppMessage',
145
+ 'onShareTimeline',
146
+ 'onAddToFavorites',
147
+ 'onPageScroll',
148
+ 'onResize',
149
+ 'onTabItemTap',
150
+ ];
151
+
152
+ /** 内置全局对象/类型 */
153
+ const builtInList = [
154
+ 'Object',
155
+ 'Array',
156
+ 'String',
157
+ 'Number',
158
+ 'Boolean',
159
+ 'Promise',
160
+ 'Math',
161
+ 'JSON',
162
+ 'Date',
163
+ 'RegExp',
164
+ 'Set',
165
+ 'Map',
166
+ 'Error',
167
+ 'Symbol',
137
168
  ];
138
169
 
139
170
  type Word = {
@@ -151,6 +182,8 @@ type Word = {
151
182
  * - operator: 操作符
152
183
  * - symbol: 符号
153
184
  * - keyword: 关键字
185
+ * - number: 数字
186
+ * - builtin: 内置对象
154
187
  * - other: 其他
155
188
  */
156
189
  type:
@@ -163,6 +196,8 @@ type Word = {
163
196
  | 'operator'
164
197
  | 'symbol'
165
198
  | 'keyword'
199
+ | 'number'
200
+ | 'builtin'
166
201
  | 'other';
167
202
  };
168
203
 
@@ -492,7 +527,7 @@ function getWordsInfo(words: string[]): Word[] {
492
527
  };
493
528
  }
494
529
 
495
- // 字符串
530
+ // 字符串 (处理引号后的第一个词)
496
531
  const isStr = quotationList.includes(words?.[index - 1]);
497
532
  if (isStr) {
498
533
  return {
@@ -502,11 +537,23 @@ function getWordsInfo(words: string[]): Word[] {
502
537
  };
503
538
  }
504
539
 
540
+ // 数字
541
+ const isNumber =
542
+ /^\d+(\.\d+)?(e\d+)?$/i.test(w) || /^0x[0-9a-f]+$/i.test(w);
543
+ if (isNumber) {
544
+ return {
545
+ word: w,
546
+ type: 'number',
547
+ class: `${preClass}-number`,
548
+ };
549
+ }
550
+
505
551
  // 函数
506
- const isFunction =
552
+ const isFunc =
507
553
  (words?.[index - 1] === ' ' && words?.[index - 2] === 'function') ||
508
- words?.[index + 1] === '(';
509
- if (isFunction) {
554
+ words?.[index + 1] === '(' ||
555
+ (words?.[index + 1] === ' ' && words?.[index + 2] === '(');
556
+ if (isFunc && !keywordList.includes(w)) {
510
557
  return {
511
558
  word: w,
512
559
  type: 'function',
@@ -514,8 +561,11 @@ function getWordsInfo(words: string[]): Word[] {
514
561
  };
515
562
  }
516
563
 
564
+ // 属性提取
517
565
  const preW = symbolList.includes(words?.[index - 1]);
518
- const isAttribute = words?.[index + 1] === '.' && !preW;
566
+ const isAttribute =
567
+ (words?.[index + 1] === '.' || (words?.[index - 1] === '.' && !preW)) &&
568
+ !isNumber;
519
569
  if (isAttribute) {
520
570
  return {
521
571
  word: w,
@@ -524,6 +574,26 @@ function getWordsInfo(words: string[]): Word[] {
524
574
  };
525
575
  }
526
576
 
577
+ // 关键字
578
+ const isKeyword = keywordList.includes(w);
579
+ if (isKeyword) {
580
+ return {
581
+ word: w,
582
+ type: 'keyword',
583
+ class: `${preClass}-keyword`,
584
+ };
585
+ }
586
+
587
+ // 内置对象
588
+ const isBuiltin = builtInList.includes(w);
589
+ if (isBuiltin) {
590
+ return {
591
+ word: w,
592
+ type: 'builtin',
593
+ class: `${preClass}-builtin`,
594
+ };
595
+ }
596
+
527
597
  // 操作符
528
598
  const isOperator = operatorList.includes(w);
529
599
  if (isOperator) {
@@ -544,18 +614,6 @@ function getWordsInfo(words: string[]): Word[] {
544
614
  };
545
615
  }
546
616
 
547
- // 关键字
548
- const isKeyword =
549
- keywordList.includes(w) &&
550
- (words?.[index + 1] === ' ' || words?.[index + 1] === ';');
551
- if (isKeyword) {
552
- return {
553
- word: w,
554
- type: 'keyword',
555
- class: `${preClass}-keyword`,
556
- };
557
- }
558
-
559
617
  // 其他
560
618
  return {
561
619
  word: w,
@@ -594,7 +652,7 @@ function splitBySymbols(lineTrim: string, symbols: string[]): string[] {
594
652
 
595
653
  // 转义特殊字符并构建正则表达式
596
654
  const escapedSymbols = symbols.map((s) =>
597
- s.replace(/[.*+?^${}()|[\]\\@\$]/g, '\\$&'),
655
+ s.replace(/[.*+?^${}()|[\]\\@$]/g, '\\$&'),
598
656
  );
599
657
  const regexPattern = `(${escapedSymbols.join('|')})`;
600
658
  const regex = new RegExp(regexPattern, 'g');
@@ -1,19 +1,18 @@
1
1
  <template>
2
+ <!-- eslint-disable vue/no-v-html, vue/no-v-text-v-html-on-component -->
2
3
  <view class="storage-content">
3
4
  <view class="storage-control">
5
+ <DevToolTitle>{{ t('storage.title') }}</DevToolTitle>
4
6
  <FilterInput
5
- :modelValue="modelValue"
6
7
  style="width: 100%"
7
- placeholder="查询key"
8
- @search="emit('search', $event)"
9
- @update:modelValue="emit('update:modelValue', $event)"
10
- />
8
+ v-model="modelValue"
9
+ placeholder="查询"
10
+ @search="emit('search', $event)" />
11
11
  <Tag
12
12
  v-for="item in storageFilerItem"
13
13
  mode="clear"
14
14
  :key="item.label"
15
- @click="onChoose(item.value)"
16
- >
15
+ @click="onChoose(item.value)">
17
16
  {{ item.label }}
18
17
  </Tag>
19
18
  </view>
@@ -21,14 +20,13 @@
21
20
  <view class="storage-item" v-for="item in storageList" :key="item.key">
22
21
  <view class="storage-key">
23
22
  <view class="storage-key-label">
24
- <view>key: </view>
23
+ <view>key:</view>
25
24
  <view v-html="item._oldKey" />
26
25
  </view>
27
26
  <CircularButton
28
27
  style="margin-left: auto"
29
28
  text="×"
30
- @click="onRemove(item.key)"
31
- />
29
+ @click="onRemove(item.key)" />
32
30
  </view>
33
31
 
34
32
  <JsonPretty
@@ -41,8 +39,7 @@
41
39
  :theme="theme"
42
40
  :nodeSelectable="() => false"
43
41
  :pathCollapsible="() => false"
44
- @update:data="onUpdateData($event, item)"
45
- />
42
+ @update:data="onUpdateData($event, item)" />
46
43
  </view>
47
44
  <Empty v-if="!storageList || storageList.length === 0" />
48
45
  </scroll-view>
@@ -55,18 +52,24 @@ import Empty from '../Empty/index.vue';
55
52
  import CircularButton from '../CircularButton/index.vue';
56
53
  import FilterInput from '../FilterInput/index.vue';
57
54
  import type { DevTool } from '../../type';
55
+ import DevToolTitle from '../DevToolTitle/index.vue';
56
+ import { useI18n } from '../../i18n';
57
+ import { computed } from 'vue';
58
+
59
+ const { t } = useI18n();
60
+
58
61
  const props = defineProps<{
59
62
  storageList: DevTool.StorageItem[];
60
- modelValue: string;
61
63
  theme?: string;
62
64
  }>();
63
65
 
66
+ const modelValue = defineModel<string>('modelValue', { required: true });
67
+
64
68
  const emit = defineEmits<{
65
69
  (e: 'choose', type: string): void;
66
70
  (e: 'remove', key: string): void;
67
- (e: 'update:storageList', data: Record<string, any>): void;
71
+ (e: 'update:storageList', data: DevTool.StorageItem[]): void;
68
72
  (e: 'change', value: any): void;
69
- (e: 'update:modelValue', value: string): void;
70
73
  (e: 'search', value: string): void;
71
74
  }>();
72
75
 
@@ -82,6 +85,8 @@ function onUpdateData(data: DevTool.StorageItem, item: DevTool.StorageItem) {
82
85
  value: data.value,
83
86
  };
84
87
 
88
+ emit('update:storageList', tempList);
89
+
85
90
  emit('change', {
86
91
  ...data,
87
92
  _oldKey: tempList[index]._oldKey,
@@ -89,33 +94,21 @@ function onUpdateData(data: DevTool.StorageItem, item: DevTool.StorageItem) {
89
94
  });
90
95
  }
91
96
 
92
- const storageFilerItem = [
97
+ const storageFilerItem = computed(() => [
93
98
  {
94
- label: '新增',
99
+ label: t('common.add'),
95
100
  value: 'add',
96
101
  },
97
102
  {
98
- label: '刷新',
103
+ label: t('common.refresh'),
99
104
  value: 'refresh',
100
105
  },
101
106
  {
102
- label: '清除',
107
+ label: t('common.clear'),
103
108
  value: 'clear',
104
109
  },
105
- ];
106
- function calcValue(value: string) {
107
- try {
108
- return {
109
- value: JSON.parse(value),
110
- type: 'object',
111
- };
112
- } catch (error) {
113
- return {
114
- value,
115
- type: 'string',
116
- };
117
- }
118
- }
110
+ ]);
111
+ // function calcValue(value: string) { ... }
119
112
  function onChoose(type: string) {
120
113
  emit('choose', type);
121
114
  }
@@ -128,27 +121,33 @@ function onRemove(key: string) {
128
121
  height: 100%;
129
122
  font-size: var(--dev-tool-base-font-size);
130
123
  }
124
+
131
125
  .storage-content .storage-list {
132
126
  height: calc(100% - 32px);
133
127
  overflow: auto;
134
128
  }
129
+
135
130
  .storage-content .storage-list .storage-item {
136
131
  padding: 16px;
137
132
  border-bottom: 1px solid var(--dev-tool-border-color);
138
133
  }
134
+
139
135
  .storage-content .storage-list .storage-item .storage-key {
140
136
  display: flex;
141
137
  align-items: center;
142
138
  justify-content: space-between;
143
139
  word-break: break-all;
144
140
  }
141
+
145
142
  .storage-key-label {
146
143
  display: flex;
147
144
  align-items: center;
148
145
  }
146
+
149
147
  .storage-content .storage-list .storage-item .storage-value {
150
148
  word-break: break-all;
151
149
  }
150
+
152
151
  .storage-content .storage-list .storage-item .storage-remove {
153
152
  flex-shrink: 0;
154
153
  display: flex;
@@ -161,6 +160,7 @@ function onRemove(key: string) {
161
160
  border: 1px solid #000;
162
161
  box-sizing: border-box;
163
162
  }
163
+
164
164
  .storage-control {
165
165
  display: flex;
166
166
  align-items: center;
@@ -5,22 +5,17 @@
5
5
  ref="tabsRef"
6
6
  scroll-x="true"
7
7
  enable-flex="true"
8
- scroll-with-animation
8
+ :scroll-with-animation="isAnimated"
9
9
  :show-scrollbar="false"
10
- :scrollLeft="scrollLeft"
10
+ :scroll-left="scrollLeft"
11
11
  :scroll-into-view="scrollIntoView"
12
- @scroll="onScroll"
13
- @touchmove.stop
14
- >
12
+ @scroll="onScroll">
15
13
  <view
16
- v-for="item in items"
14
+ v-for="(item, idx) in items"
17
15
  :key="item.key"
18
- :class="`tabs-item ${
19
- item.index === modelValue ? 'tabs-item-active' : ''
20
- } `"
21
- :id="`tabs-item-${item.index}`"
22
- @click="onChangeTabs(item)"
23
- >
16
+ :class="`tabs-item ${idx === modelValue ? 'tabs-item-active' : ''} `"
17
+ :id="`tabs-item-${idx}`"
18
+ @click="onChangeTabs(idx)">
24
19
  {{ item.label }}
25
20
  </view>
26
21
  </scroll-view>
@@ -32,37 +27,43 @@
32
27
  </template>
33
28
 
34
29
  <script setup lang="ts">
35
- import { computed, ref } from 'vue';
30
+ import { computed, ref, onMounted } from 'vue';
36
31
  import CircularButton from '../CircularButton/index.vue';
37
- // const activeKey = ref("Console");
38
- const props = defineProps<{
39
- modelValue: number;
32
+
33
+ defineProps<{
40
34
  items: { label: string; key: string; value: any; index: number }[];
41
35
  scrollLeft?: number;
42
36
  }>();
43
37
 
44
- const tabsRef = ref();
38
+ const modelValue = defineModel<number>('modelValue', { required: true });
39
+
40
+ const isMounted = ref(false);
45
41
 
46
42
  const emit = defineEmits<{
47
43
  (e: 'close'): void;
48
- (e: 'update:modelValue', value: number): void;
49
44
  (e: 'change', value: number): void;
50
45
  (e: 'scroll', value: any): void;
51
46
  }>();
52
47
 
53
48
  const scrollIntoView = computed(() => {
54
- return `tabs-item-${props.modelValue}`;
49
+ if (!isMounted.value) return '';
50
+ return `tabs-item-${modelValue.value}`;
55
51
  });
56
52
 
57
- function onChangeTabs(item: {
58
- label: string;
59
- key: string;
60
- value: any;
61
- index: number;
62
- }) {
63
- // activeKey.value = item.key;
64
- emit('update:modelValue', item.index);
65
- emit('change', item.index);
53
+ const isAnimated = ref(false);
54
+
55
+ onMounted(() => {
56
+ setTimeout(() => {
57
+ isMounted.value = true;
58
+ setTimeout(() => {
59
+ isAnimated.value = true;
60
+ }, 300);
61
+ }, 100);
62
+ });
63
+
64
+ function onChangeTabs(idx: number) {
65
+ modelValue.value = idx;
66
+ emit('change', idx);
66
67
  }
67
68
  function onClose() {
68
69
  emit('close');
@@ -89,6 +90,7 @@ function onScroll(e: any) {
89
90
  height: 0;
90
91
  color: transparent;
91
92
  }
93
+
92
94
  .tabs-list {
93
95
  display: flex;
94
96
  align-items: center;
@@ -110,6 +112,7 @@ function onScroll(e: any) {
110
112
  transition: all 0.3s;
111
113
  cursor: pointer;
112
114
  }
115
+
113
116
  .tabs-item-active {
114
117
  color: var(--dev-tool-main-color);
115
118
  border-color: var(--dev-tool-main-color);
@@ -2,8 +2,7 @@
2
2
  <view
3
3
  :class="['tag', `tag-${mode}`, active ? 'tag-active' : '']"
4
4
  :style="customStyle"
5
- @click="onClick"
6
- >
5
+ @click="onClick">
7
6
  <slot></slot>
8
7
  </view>
9
8
  </template>
@@ -31,64 +30,84 @@ function onClick(event: MouseEvent) {
31
30
  .tag {
32
31
  display: flex;
33
32
  align-items: center;
34
- padding: 0 4px;
33
+ padding: 0 6px;
35
34
  width: min-content;
36
- height: 24px;
35
+ height: 22px;
37
36
  color: var(--dev-tool-text-color);
38
37
  border-radius: 4px;
39
38
  white-space: nowrap;
40
39
  box-sizing: border-box;
41
40
  font-size: var(--dev-tool-tag-font-size);
42
41
  cursor: pointer;
43
- transition: all 0.3s;
42
+ user-select: none;
43
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
44
+ border: 1px solid transparent;
44
45
  }
46
+
47
+ .tag:hover {
48
+ opacity: 0.85;
49
+ filter: brightness(1.1);
50
+ }
51
+
52
+ .tag:active {
53
+ transform: scale(0.92);
54
+ }
55
+
45
56
  .tag-log {
46
- color: #000;
47
- background-color: var(--dev-tool-log-color);
48
- border: 1px solid var(--dev-tool-log-color);
57
+ background-color: var(--dev-tool-active-bg-color);
58
+ border-color: var(--dev-tool-border-color);
49
59
  }
60
+
50
61
  .tag-info {
51
- color: #000;
52
- background-color: var(--dev-tool-normal-bg-color);
53
- border: 1px solid var(--dev-tool-normal-bg-color);
62
+ background-color: var(--dev-tool-active-bg-color);
63
+ border-color: var(--dev-tool-border-color);
54
64
  }
65
+
55
66
  .tag-warn {
56
67
  color: #fff;
57
68
  background-color: var(--dev-tool-warn-color);
58
- border: 1px solid var(--dev-tool-warn-color);
69
+ border-color: var(--dev-tool-warn-color);
59
70
  }
71
+
60
72
  .tag-success {
61
73
  color: #fff;
62
74
  background-color: var(--dev-tool-success-color);
63
- border: 1px solid var(--dev-tool-success-color);
75
+ border-color: var(--dev-tool-success-color);
64
76
  }
77
+
65
78
  .tag-error {
66
79
  color: #fff;
67
80
  background-color: var(--dev-tool-error-color);
68
- border: 1px solid var(--dev-tool-error-color);
81
+ border-color: var(--dev-tool-error-color);
69
82
  }
83
+
70
84
  .tag-main {
71
85
  background-color: var(--dev-tool-main-color);
72
86
  color: #fff;
73
- border: 1px solid var(--dev-tool-main-color);
87
+ border-color: var(--dev-tool-main-color);
74
88
  }
75
89
 
76
90
  .tag-primary {
91
+ background-color: var(--dev-tool-main-color);
77
92
  color: #fff;
78
- background-color: #0958d9;
79
- border: 1px solid #0958d9;
93
+ border-color: var(--dev-tool-main-color);
80
94
  }
95
+
81
96
  .tag-clear {
82
- color: #0958d9;
83
- border: 1px solid #0958d9;
97
+ color: var(--dev-tool-main-color);
98
+ border-color: var(--dev-tool-main-color);
99
+ background-color: transparent;
84
100
  }
101
+
85
102
  .tag-all {
86
103
  color: var(--dev-tool-text-color);
87
- border: 1px solid #000;
104
+ border-color: var(--dev-tool-border-color);
105
+ background-color: var(--dev-tool-active-bg-color);
88
106
  }
89
107
 
90
108
  .tag-active {
91
109
  border-color: var(--dev-tool-main-color);
92
110
  color: var(--dev-tool-main-color);
111
+ background-color: var(--dev-tool-active-bg-color);
93
112
  }
94
113
  </style>