@shijiu/jsview-vue 2.2.128 → 2.2.373

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 (325) hide show
  1. package/bin/browser/BrowserApic.vue.mjs +4 -15
  2. package/bin/browser/BrowserApic2.vue.mjs +4 -15
  3. package/bin/browser/BrowserApicLib.mjs +32 -26
  4. package/bin/browser/BrowserAudio.vue.mjs +2 -10
  5. package/bin/browser/BrowserJsvFragShaderView.vue.mjs +79 -0
  6. package/bin/browser/BrowserJsvLatex.vue.mjs +39 -16
  7. package/bin/browser/BrowserPreload.vue.mjs +1 -5
  8. package/bin/browser/BrowserQrcode.vue.mjs +1 -5
  9. package/bin/browser/BrowserSpray.vue.mjs +2 -12
  10. package/bin/browser/BrowserTextureAnim.vue.mjs +2 -12
  11. package/bin/export-sfc.mjs +3 -3
  12. package/bin/jsview-vue-common.mjs +3 -3
  13. package/bin/jsview-vue.mjs +4636 -2325
  14. package/bin/types/JsViewEngineWidget/CheckType.d.ts +4 -0
  15. package/bin/types/JsViewEngineWidget/JsvFocus/JsvFocusBlock.vue.d.ts +37 -33
  16. package/bin/types/JsViewEngineWidget/JsvFocus/JsvFocusHub.d.ts +4 -0
  17. package/bin/types/JsViewEngineWidget/JsvFocus/JsvFocusManager.d.ts +21 -6
  18. package/bin/types/JsViewEngineWidget/MetroWidget/Const.d.ts +4 -0
  19. package/bin/types/JsViewEngineWidget/MetroWidget/Dispatcher.d.ts +14 -12
  20. package/bin/types/JsViewEngineWidget/MetroWidget/ListWidget.vue.d.ts +17 -6
  21. package/bin/types/JsViewEngineWidget/MetroWidget/MetroWidget.vue.d.ts +283 -6
  22. package/bin/types/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.d.ts +9 -3
  23. package/bin/types/JsViewEngineWidget/MetroWidget/PageUpdater.d.ts +4 -0
  24. package/bin/types/JsViewEngineWidget/MetroWidget/RenderItem.d.ts +7 -0
  25. package/bin/types/JsViewEngineWidget/MetroWidget/Slide.d.ts +4 -0
  26. package/bin/types/JsViewEngineWidget/MetroWidget/SlotComponent.vue.d.ts +4 -0
  27. package/bin/types/JsViewEngineWidget/MetroWidget/VisibleInfo.d.ts +4 -0
  28. package/bin/types/JsViewEngineWidget/MetroWidget/WidgetRectInfo.d.ts +4 -0
  29. package/bin/types/JsViewEngineWidget/RangeModel.d.ts +4 -0
  30. package/bin/types/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.d.ts +4 -0
  31. package/bin/types/JsViewEngineWidget/TemplateParser/Fence.d.ts +4 -0
  32. package/bin/types/JsViewEngineWidget/TemplateParser/ListMetroTemplate.d.ts +5 -0
  33. package/bin/types/JsViewEngineWidget/TemplateParser/MetroTemplate.d.ts +4 -0
  34. package/bin/types/JsViewEngineWidget/TemplateParser/TemplateItemAdder.d.ts +5 -1
  35. package/bin/types/JsViewEngineWidget/TemplateParser/index.d.ts +4 -0
  36. package/bin/types/JsViewEngineWidget/WidgetCommon.d.ts +4 -0
  37. package/bin/types/JsViewEngineWidget/index.d.ts +14 -1
  38. package/bin/types/JsViewPlugin/JsvAccount/JsvAccount.d.ts +4 -0
  39. package/bin/types/JsViewPlugin/JsvAudio/AudioProxy.d.ts +4 -0
  40. package/bin/types/JsViewPlugin/JsvAudio/BrowserAudio/BrowserAudio.vue.d.ts +4 -0
  41. package/bin/types/JsViewPlugin/JsvAudio/BrowserAudio/JsvSystemAudio.vue.d.ts +4 -0
  42. package/bin/types/JsViewPlugin/JsvAudio/CheckType.d.ts +4 -0
  43. package/bin/types/JsViewPlugin/JsvAudio/Events.d.ts +4 -0
  44. package/bin/types/JsViewPlugin/JsvAudio/JsvAudio.vue.d.ts +4 -0
  45. package/bin/types/JsViewPlugin/JsvAudio/JsvAudioBridgeProxy.d.ts +4 -0
  46. package/bin/types/JsViewPlugin/JsvAudio/JsvAudioProxy.vue.d.ts +4 -0
  47. package/bin/types/JsViewPlugin/JsvAudio/PluginLoader.d.ts +4 -0
  48. package/bin/types/JsViewPlugin/JsvAudio/ScreenLockManager.d.ts +4 -0
  49. package/bin/types/JsViewPlugin/JsvAudio/index.d.ts +4 -0
  50. package/bin/types/JsViewPlugin/JsvAudio/version.d.ts +5 -0
  51. package/bin/types/JsViewPlugin/JsvLatex/BrowserDomBuilder.d.ts +4 -0
  52. package/bin/types/JsViewPlugin/JsvLatex/BrowserJsvLatex.vue.d.ts +4 -0
  53. package/bin/types/JsViewPlugin/JsvLatex/Color.d.ts +4 -0
  54. package/bin/types/JsViewPlugin/JsvLatex/JsvLatex.vue.d.ts +24 -0
  55. package/bin/types/JsViewPlugin/JsvLatex/JsvLatexBridgeProxy.d.ts +4 -0
  56. package/bin/types/JsViewPlugin/JsvLatex/JsvLatexProxy.vue.d.ts +4 -0
  57. package/bin/types/JsViewPlugin/JsvLatex/PluginLoader.d.ts +4 -0
  58. package/bin/types/JsViewPlugin/JsvLatex/index.d.ts +5 -0
  59. package/bin/types/JsViewPlugin/JsvLatex/version.d.ts +4 -0
  60. package/bin/types/JsViewPlugin/index.d.ts +4 -0
  61. package/bin/types/JsViewVueTools/ConstSymbol.d.ts +6 -2
  62. package/bin/types/JsViewVueTools/DebugContentShellJBridge.d.ts +4 -0
  63. package/bin/types/JsViewVueTools/DebugTool.d.ts +4 -0
  64. package/bin/types/JsViewVueTools/DefaultKeyMap.d.ts +4 -0
  65. package/bin/types/JsViewVueTools/FeatureActive.d.ts +14 -0
  66. package/bin/types/JsViewVueTools/ForgeConstDefine.d.ts +4 -0
  67. package/bin/types/JsViewVueTools/ForgeHandles.d.ts +7 -3
  68. package/bin/types/JsViewVueTools/JsvDemoTester.d.ts +4 -0
  69. package/bin/types/JsViewVueTools/JsvDynamicCssStyle.d.ts +20 -1
  70. package/bin/types/JsViewVueTools/JsvDynamicKeyFrames.d.ts +21 -2
  71. package/bin/types/JsViewVueTools/JsvFederationTools.d.ts +20 -0
  72. package/bin/types/JsViewVueTools/JsvHashHistory.d.ts +4 -0
  73. package/bin/types/JsViewVueTools/JsvImpactTracer.d.ts +8 -4
  74. package/bin/types/JsViewVueTools/JsvPerformance.d.ts +9 -0
  75. package/bin/types/JsViewVueTools/JsvPreDownloader.d.ts +55 -0
  76. package/bin/types/JsViewVueTools/JsvRefTaker.d.ts +28 -3
  77. package/bin/types/JsViewVueTools/JsvRuntimeBridge.d.ts +50 -0
  78. package/bin/types/JsViewVueTools/JsvStyleClass.d.ts +4 -0
  79. package/bin/types/JsViewVueTools/JsvStyleSheetsDeclarer.d.ts +21 -1
  80. package/bin/types/JsViewVueTools/JsvTextTools.d.ts +85 -27
  81. package/bin/types/JsViewVueTools/JsvTextureDefines.d.ts +4 -0
  82. package/bin/types/JsViewVueTools/JsvTextureLoadTool.d.ts +67 -0
  83. package/bin/types/JsViewVueTools/JsvTextureStore/CanvasTexture/CanvasTexture.d.ts +4 -0
  84. package/bin/types/JsViewVueTools/JsvTextureStore/CanvasTexture/CommandList.d.ts +4 -0
  85. package/bin/types/JsViewVueTools/JsvTextureStore/CanvasTexture/Path.d.ts +4 -0
  86. package/bin/types/JsViewVueTools/JsvTextureStore/CapturedTexture/CapturedTexture.d.ts +4 -0
  87. package/bin/types/JsViewVueTools/JsvTextureStore/JsvTextureStore.d.ts +73 -3
  88. package/bin/types/JsViewVueTools/JsvTextureStore/Store.d.ts +4 -0
  89. package/bin/types/JsViewVueTools/JsvTextureStore/Texture.d.ts +4 -0
  90. package/bin/types/JsViewVueTools/NinePatchHelper.d.ts +5 -1
  91. package/bin/types/JsViewVueTools/TextureManagerTools.d.ts +11 -0
  92. package/bin/types/JsViewVueTools/TypeCheckAndSet.d.ts +4 -0
  93. package/bin/types/JsViewVueTools/index.d.ts +26 -11
  94. package/bin/types/JsViewVueWidget/JsvActorMove/ActorControlBase.d.ts +4 -0
  95. package/bin/types/JsViewVueWidget/JsvActorMove/JsvActorMove.vue.d.ts +38 -0
  96. package/bin/types/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.d.ts +4 -0
  97. package/bin/types/JsViewVueWidget/JsvActorMove/index.d.ts +4 -0
  98. package/bin/types/JsViewVueWidget/JsvApic/JsvApic/BrowserApic.vue.d.ts +5 -1
  99. package/bin/types/JsViewVueWidget/JsvApic/JsvApic/JsvApic.vue.d.ts +28 -1
  100. package/bin/types/JsViewVueWidget/JsvApic/JsvApic/index.d.ts +4 -0
  101. package/bin/types/JsViewVueWidget/JsvApic/JsvApic2/BrowserApic2.vue.d.ts +5 -1
  102. package/bin/types/JsViewVueWidget/JsvApic/JsvApic2/JsvApic2.vue.d.ts +29 -1
  103. package/bin/types/JsViewVueWidget/JsvApic/JsvApic2/index.d.ts +4 -0
  104. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/ApicDataBase.d.ts +4 -0
  105. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/BrowserApicLib.d.ts +4 -0
  106. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/GifData.d.ts +4 -0
  107. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/NormalLoopTool.d.ts +4 -0
  108. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/PartLoopTool.d.ts +4 -0
  109. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/SingleLoopTool.d.ts +4 -0
  110. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/Viewer.d.ts +6 -1
  111. package/bin/types/JsViewVueWidget/JsvApic/JsvBrowserApicLib/WebpData.d.ts +4 -0
  112. package/bin/types/JsViewVueWidget/JsvApic/JsvCommonLoopToolBase.d.ts +4 -0
  113. package/bin/types/JsViewVueWidget/JsvClipDiv/JsvClipDiv.vue.d.ts +74 -0
  114. package/bin/types/JsViewVueWidget/JsvClipDiv/index.d.ts +5 -0
  115. package/bin/types/JsViewVueWidget/JsvConnectLine/ArcLineManager.d.ts +4 -0
  116. package/bin/types/JsViewVueWidget/JsvConnectLine/JsvConnectLine.vue.d.ts +21 -0
  117. package/bin/types/JsViewVueWidget/JsvConnectLine/index.d.ts +4 -0
  118. package/bin/types/JsViewVueWidget/JsvDragBox/JsvDragBox.vue.d.ts +109 -0
  119. package/bin/types/JsViewVueWidget/JsvDriftScope/JsvDriftScope.vue.d.ts +108 -0
  120. package/bin/types/JsViewVueWidget/JsvDriftScope/index.d.ts +5 -0
  121. package/bin/types/JsViewVueWidget/JsvEnableRenderBreak.vue.d.ts +4 -0
  122. package/bin/types/JsViewVueWidget/JsvFilterView.vue.d.ts +19 -0
  123. package/bin/types/JsViewVueWidget/JsvFlexCell/JsvFlexDiv.vue.d.ts +34 -0
  124. package/bin/types/JsViewVueWidget/JsvFlexCell/JsvScreenFlex.vue.d.ts +106 -0
  125. package/bin/types/JsViewVueWidget/JsvFlexCell/index.d.ts +6 -2
  126. package/bin/types/JsViewVueWidget/JsvFragShaderView/BrowserJsvFragShaderView.vue.d.ts +19 -0
  127. package/bin/types/JsViewVueWidget/JsvFragShaderView/JsvFragShaderView.vue.d.ts +60 -0
  128. package/bin/types/JsViewVueWidget/JsvFragShaderView/index.d.ts +6 -0
  129. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/ActorControl.d.ts +47 -17
  130. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/CallbackManager.d.ts +4 -0
  131. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/ForgeTypeDefine.d.ts +4 -0
  132. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/FreeMoveActor.vue.d.ts +25 -0
  133. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/JsvEnvBlocker.vue.d.ts +22 -0
  134. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/NexusNode.d.ts +4 -0
  135. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/SetAction.d.ts +9 -5
  136. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/SetCondition.d.ts +8 -2
  137. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/SetState.d.ts +11 -7
  138. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/SyncLinkManager.d.ts +22 -0
  139. package/bin/types/JsViewVueWidget/JsvFreeMoveActor/index.d.ts +6 -0
  140. package/bin/types/JsViewVueWidget/JsvGrid.vue.d.ts +73 -0
  141. package/bin/types/JsViewVueWidget/JsvHole.d.ts +17 -0
  142. package/bin/types/JsViewVueWidget/JsvInput/Cursor.vue.d.ts +14 -34
  143. package/bin/types/JsViewVueWidget/JsvInput/EditViewOperator.d.ts +48 -0
  144. package/bin/types/JsViewVueWidget/JsvInput/EditVisibleArea.d.ts +27 -0
  145. package/bin/types/JsViewVueWidget/JsvInput/JsvInput.vue.d.ts +64 -209
  146. package/bin/types/JsViewVueWidget/JsvInput/SharedDefine.d.ts +17 -0
  147. package/bin/types/JsViewVueWidget/JsvInput/SystemTextTools.d.ts +14 -0
  148. package/bin/types/JsViewVueWidget/JsvInput/index.d.ts +4 -0
  149. package/bin/types/JsViewVueWidget/JsvLine/JsvLine.vue.d.ts +20 -0
  150. package/bin/types/JsViewVueWidget/JsvLine/LineManager.d.ts +4 -0
  151. package/bin/types/JsViewVueWidget/JsvLine/index.d.ts +4 -0
  152. package/bin/types/JsViewVueWidget/JsvMarquee.vue.d.ts +21 -0
  153. package/bin/types/JsViewVueWidget/JsvMaskClipDiv.vue.d.ts +20 -0
  154. package/bin/types/JsViewVueWidget/JsvMindMap/Constant.d.ts +4 -0
  155. package/bin/types/JsViewVueWidget/JsvMindMap/DataTree.d.ts +7 -1
  156. package/bin/types/JsViewVueWidget/JsvMindMap/Geometry.d.ts +4 -0
  157. package/bin/types/JsViewVueWidget/JsvMindMap/JsvMindMap.vue.d.ts +90 -0
  158. package/bin/types/JsViewVueWidget/JsvMindMap/index.d.ts +4 -0
  159. package/bin/types/JsViewVueWidget/JsvMindMap/rtree.d.ts +4 -0
  160. package/bin/types/JsViewVueWidget/JsvNativeSharedDiv.vue.d.ts +24 -0
  161. package/bin/types/JsViewVueWidget/JsvNinePatch.vue.d.ts +31 -0
  162. package/bin/types/JsViewVueWidget/JsvPieChart.vue.d.ts +17 -0
  163. package/bin/types/JsViewVueWidget/JsvPosterDiv.vue.d.ts +17 -0
  164. package/bin/types/JsViewVueWidget/JsvPosterImage.vue.d.ts +18 -0
  165. package/bin/types/JsViewVueWidget/JsvPreload/BrowserPreload.vue.d.ts +4 -0
  166. package/bin/types/JsViewVueWidget/JsvPreload/JsvPreload.vue.d.ts +42 -0
  167. package/bin/types/JsViewVueWidget/JsvPreload/index.d.ts +4 -0
  168. package/bin/types/JsViewVueWidget/JsvProgressBar.vue.d.ts +19 -0
  169. package/bin/types/JsViewVueWidget/JsvQrcode/BrowserQrcode.vue.d.ts +4 -0
  170. package/bin/types/JsViewVueWidget/JsvQrcode/JsvQrcode.vue.d.ts +25 -0
  171. package/bin/types/JsViewVueWidget/JsvQrcode/index.d.ts +4 -0
  172. package/bin/types/JsViewVueWidget/JsvRadarChart.vue.d.ts +24 -0
  173. package/bin/types/JsViewVueWidget/JsvRipple/Constant.d.ts +4 -0
  174. package/bin/types/JsViewVueWidget/JsvRipple/JsvRipple.vue.d.ts +45 -0
  175. package/bin/types/JsViewVueWidget/JsvRipple/index.d.ts +4 -0
  176. package/bin/types/JsViewVueWidget/JsvScaleTextBox.vue.d.ts +18 -0
  177. package/bin/types/JsViewVueWidget/JsvScrollBox/JsvScrollBox.vue.d.ts +65 -1
  178. package/bin/types/JsViewVueWidget/JsvScrollBox/JsvScrollFollow.vue.d.ts +157 -0
  179. package/bin/types/JsViewVueWidget/JsvScrollBox/ScrollInnerSymbol.d.ts +8 -0
  180. package/bin/types/JsViewVueWidget/JsvScrollBox/ScrollSymbol.d.ts +13 -4
  181. package/bin/types/JsViewVueWidget/JsvScrollBox/index.d.ts +6 -0
  182. package/bin/types/JsViewVueWidget/JsvSector.vue.d.ts +18 -0
  183. package/bin/types/JsViewVueWidget/JsvSoundPool.d.ts +42 -0
  184. package/bin/types/JsViewVueWidget/JsvSpray/BrowserSpray.vue.d.ts +4 -0
  185. package/bin/types/JsViewVueWidget/JsvSpray/JsvSpray.vue.d.ts +40 -0
  186. package/bin/types/JsViewVueWidget/JsvSpray/index.d.ts +4 -0
  187. package/bin/types/JsViewVueWidget/JsvSpriteAnim/FrameBuidler.d.ts +4 -0
  188. package/bin/types/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue.d.ts +52 -0
  189. package/bin/types/JsViewVueWidget/JsvSpriteAnim/JsvSpriteLoader.vue.d.ts +16 -0
  190. package/bin/types/JsViewVueWidget/JsvSpriteAnim/JsvSpriteTools.d.ts +4 -0
  191. package/bin/types/JsViewVueWidget/JsvSpriteAnim/SpriteController.d.ts +4 -0
  192. package/bin/types/JsViewVueWidget/JsvSpriteAnim/index.d.ts +4 -0
  193. package/bin/types/JsViewVueWidget/JsvSpriteAnim/sAnimationToken.d.ts +4 -0
  194. package/bin/types/JsViewVueWidget/JsvSwiper/JsvSwiper.vue.d.ts +39 -0
  195. package/bin/types/JsViewVueWidget/JsvSwiper/index.d.ts +4 -0
  196. package/bin/types/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue.d.ts +24 -0
  197. package/bin/types/JsViewVueWidget/JsvSwiper3D/index.d.ts +4 -0
  198. package/bin/types/JsViewVueWidget/JsvTextBox.vue.d.ts +26 -0
  199. package/bin/types/JsViewVueWidget/JsvTextureAnim/BrowserTextureAnim.vue.d.ts +4 -0
  200. package/bin/types/JsViewVueWidget/JsvTextureAnim/CommonType.d.ts +4 -0
  201. package/bin/types/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue.d.ts +7 -2
  202. package/bin/types/JsViewVueWidget/JsvTextureAnim/index.d.ts +4 -0
  203. package/bin/types/JsViewVueWidget/JsvTouchModeSwitcher.vue.d.ts +100 -0
  204. package/bin/types/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue.d.ts +25 -0
  205. package/bin/types/JsViewVueWidget/JsvVisibleSensor/index.d.ts +4 -0
  206. package/bin/types/JsViewVueWidget/index.d.ts +9 -0
  207. package/bin/types/index.d.ts +4 -0
  208. package/index.d.ts +8 -0
  209. package/package.json +1 -1
  210. package/tools/config/rollup.config.mjs +1 -0
  211. package/tools/config/toolkit.mjs +81 -0
  212. package/tools/config/tsconfig.json +1 -0
  213. package/tools/config/vite.config.ts +24 -14
  214. package/tools/jsview-vue-build.mjs +66 -21
  215. package/utils/JsViewEngineWidget/JsvFocus/JsvFocusBlock.vue +6 -2
  216. package/utils/JsViewEngineWidget/JsvFocus/{JsvFocusManager.js → JsvFocusManager.ts} +34 -15
  217. package/utils/JsViewEngineWidget/MetroWidget/Dispatcher.ts +20 -0
  218. package/utils/JsViewEngineWidget/MetroWidget/ListWidget.vue +30 -11
  219. package/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue +54 -15
  220. package/utils/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.js +509 -268
  221. package/utils/JsViewEngineWidget/MetroWidget/RenderItem.ts +11 -0
  222. package/utils/JsViewEngineWidget/MetroWidget/TaskManager.ts +8 -0
  223. package/utils/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.ts +20 -10
  224. package/utils/JsViewEngineWidget/TemplateParser/ListMetroTemplate.ts +33 -9
  225. package/utils/JsViewEngineWidget/TemplateParser/MetroTemplate.ts +2 -2
  226. package/utils/JsViewEngineWidget/TemplateParser/TemplateItemAdder.ts +7 -0
  227. package/utils/JsViewEngineWidget/{index.js → index.ts} +1 -1
  228. package/utils/JsViewPlugin/JsvAudio/AudioProxy.js +21 -2
  229. package/utils/JsViewPlugin/JsvAudio/version.js +1 -1
  230. package/utils/JsViewPlugin/JsvAudio/version.mjs +1 -1
  231. package/utils/JsViewPlugin/JsvLatex/BrowserDomBuilder.js +13 -3
  232. package/utils/JsViewPlugin/JsvLatex/BrowserJsvLatex.vue +27 -6
  233. package/utils/JsViewPlugin/JsvLatex/JsvLatex.vue +34 -28
  234. package/utils/JsViewPlugin/JsvLatex/index.js +22 -0
  235. package/utils/JsViewVueTools/ConstSymbol.ts +2 -2
  236. package/utils/JsViewVueTools/FeatureActive.ts +84 -0
  237. package/utils/JsViewVueTools/ForgeHandles.ts +7 -3
  238. package/utils/JsViewVueTools/JsvDynamicCssStyle.js +2 -0
  239. package/utils/JsViewVueTools/JsvDynamicKeyFrames.ts +2 -0
  240. package/utils/JsViewVueTools/JsvImpactTracer.js +2 -0
  241. package/utils/JsViewVueTools/JsvPreDownloader.ts +5 -4
  242. package/utils/JsViewVueTools/JsvRefTaker.js +1 -2
  243. package/utils/JsViewVueTools/JsvRuntimeBridge.js +67 -1
  244. package/utils/JsViewVueTools/JsvStyleClass.js +2 -0
  245. package/utils/JsViewVueTools/JsvStyleSheetsDeclarer.js +2 -0
  246. package/utils/JsViewVueTools/JsvTextTools.ts +223 -0
  247. package/utils/JsViewVueTools/JsvTextureLoadTool.ts +233 -0
  248. package/utils/JsViewVueTools/JsvTextureStore/CapturedTexture/CapturedTexture.ts +4 -1
  249. package/utils/JsViewVueTools/JsvTextureStore/JsvTextureStore.ts +8 -4
  250. package/utils/JsViewVueTools/JsvTextureStore/Texture.ts +1 -0
  251. package/utils/JsViewVueTools/TextureManagerTools.ts +17 -0
  252. package/utils/JsViewVueTools/index.js +22 -19
  253. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +2 -0
  254. package/utils/JsViewVueWidget/JsvApic/JsvApic/BrowserApic.vue +2 -2
  255. package/utils/JsViewVueWidget/JsvApic/JsvApic/JsvApic.vue +13 -5
  256. package/utils/JsViewVueWidget/JsvApic/JsvApic2/BrowserApic2.vue +2 -2
  257. package/utils/JsViewVueWidget/JsvApic/JsvApic2/JsvApic2.vue +15 -4
  258. package/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/Viewer.js +8 -3
  259. package/utils/JsViewVueWidget/JsvClipDiv/JsvClipDiv.vue +44 -0
  260. package/utils/JsViewVueWidget/JsvClipDiv/index.ts +1 -0
  261. package/utils/JsViewVueWidget/JsvConnectLine/JsvConnectLine.vue +7 -1
  262. package/utils/JsViewVueWidget/JsvDragBox/JsvDragBox.vue +219 -0
  263. package/utils/JsViewVueWidget/JsvDriftScope/JsvDriftScope.vue +84 -0
  264. package/utils/JsViewVueWidget/JsvDriftScope/index.ts +1 -0
  265. package/utils/JsViewVueWidget/JsvFilterView.vue +2 -0
  266. package/utils/JsViewVueWidget/JsvFlexCell/JsvFlexDiv.vue +5 -2
  267. package/utils/JsViewVueWidget/JsvFlexCell/JsvScreenFlex.vue +145 -0
  268. package/utils/JsViewVueWidget/JsvFlexCell/index.js +2 -5
  269. package/utils/JsViewVueWidget/JsvFragShaderView/BrowserJsvFragShaderView.vue +75 -0
  270. package/utils/JsViewVueWidget/JsvFragShaderView/JsvFragShaderView.vue +293 -0
  271. package/utils/JsViewVueWidget/JsvFragShaderView/index.js +18 -0
  272. package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.ts +142 -63
  273. package/utils/JsViewVueWidget/JsvFreeMoveActor/FreeMoveActor.vue +9 -0
  274. package/utils/JsViewVueWidget/JsvFreeMoveActor/JsvEnvBlocker.vue +2 -0
  275. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.ts +15 -6
  276. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.ts +19 -7
  277. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.ts +15 -11
  278. package/utils/JsViewVueWidget/JsvFreeMoveActor/SyncLinkManager.ts +120 -0
  279. package/utils/JsViewVueWidget/JsvFreeMoveActor/index.js +5 -1
  280. package/utils/JsViewVueWidget/JsvGrid.vue +2 -0
  281. package/utils/JsViewVueWidget/JsvHole.js +2 -0
  282. package/utils/JsViewVueWidget/JsvInput/Cursor.vue +49 -45
  283. package/utils/JsViewVueWidget/JsvInput/EditViewOperator.ts +320 -0
  284. package/utils/JsViewVueWidget/JsvInput/EditVisibleArea.ts +222 -0
  285. package/utils/JsViewVueWidget/JsvInput/JsvInput.vue +281 -681
  286. package/utils/JsViewVueWidget/JsvInput/SharedDefine.ts +17 -0
  287. package/utils/JsViewVueWidget/JsvInput/SystemTextTools.ts +47 -0
  288. package/utils/JsViewVueWidget/JsvLine/JsvLine.vue +2 -0
  289. package/utils/JsViewVueWidget/JsvMarquee.vue +2 -0
  290. package/utils/JsViewVueWidget/JsvMaskClipDiv.vue +2 -0
  291. package/utils/JsViewVueWidget/JsvMindMap/DataTree.ts +14 -1
  292. package/utils/JsViewVueWidget/JsvMindMap/JsvMindMap.vue +277 -117
  293. package/utils/JsViewVueWidget/JsvNativeSharedDiv.vue +91 -68
  294. package/utils/JsViewVueWidget/JsvNinePatch.vue +18 -1
  295. package/utils/JsViewVueWidget/JsvPieChart.vue +2 -0
  296. package/utils/JsViewVueWidget/JsvPosterDiv.vue +2 -0
  297. package/utils/JsViewVueWidget/JsvPosterImage.vue +2 -0
  298. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +2 -0
  299. package/utils/JsViewVueWidget/JsvProgressBar.vue +2 -0
  300. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +10 -11
  301. package/utils/JsViewVueWidget/JsvRadarChart.vue +2 -0
  302. package/utils/JsViewVueWidget/JsvRipple/Constant.js +2 -2
  303. package/utils/JsViewVueWidget/JsvRipple/JsvRipple.vue +3 -1
  304. package/utils/JsViewVueWidget/JsvScaleTextBox.vue +2 -0
  305. package/utils/JsViewVueWidget/JsvScrollBox/JsvScrollBox.vue +266 -48
  306. package/utils/JsViewVueWidget/JsvScrollBox/JsvScrollFollow.vue +477 -0
  307. package/utils/JsViewVueWidget/JsvScrollBox/ScrollInnerSymbol.ts +9 -0
  308. package/utils/JsViewVueWidget/JsvScrollBox/ScrollSymbol.ts +13 -4
  309. package/utils/JsViewVueWidget/JsvScrollBox/index.ts +3 -0
  310. package/utils/JsViewVueWidget/JsvSector.vue +2 -0
  311. package/utils/JsViewVueWidget/JsvSoundPool.js +2 -0
  312. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +30 -13
  313. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +2 -0
  314. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteLoader.vue +2 -0
  315. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +2 -0
  316. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +2 -0
  317. package/utils/JsViewVueWidget/JsvTextBox.vue +2 -4
  318. package/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue +44 -41
  319. package/utils/JsViewVueWidget/JsvTouchModeSwitcher.vue +101 -0
  320. package/utils/JsViewVueWidget/JsvVideo.vue +2 -2
  321. package/utils/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue +2 -0
  322. package/utils/JsViewVueWidget/index.js +5 -0
  323. package/utils/JsViewEngineWidget/MetroWidget/Dispatcher.js +0 -19
  324. package/utils/JsViewVueTools/JsvTextTools.js +0 -89
  325. package/utils/JsViewVueWidget/JsvScrollBox/index.js +0 -2
@@ -0,0 +1,145 @@
1
+ <!--
2
+ * @file
3
+ *
4
+ * 【模块 export 内容】
5
+ * JsvScreenFlex: 包装成一个支持flex属性的div, 背景图片等同于objectFit:cover的模式
6
+ * props说明:
7
+ * style: 不能设置top/left/height/width, 这些信息自动来自屏幕的宽高
8
+ * 主要用于设置flex的属性,目前支持属性如下:
9
+ * flexDirection: row|row-reverse|column|column-reverse 默认row, 决定主轴为行还是列,正向还是反向
10
+ * flexWrap: nowrap|wrap 默认nowrap, 主轴方向是否换行
11
+ * justifyContent: flex-start|flex-end|center 默认flex-start
12
+ * 主轴对齐方式(与direction相关决定start为左还是右)
13
+ * alignItems: flex-start|flex-end|center|stretch 默认center
14
+ * 副轴方向单行内的对齐方式,例如主轴为行时,项目在每行中竖直方向的对齐
15
+ * alignContent: flex-start|flex-end|center 默认flex-start
16
+ * 副轴方向多行内容总体的对齐方式,例如主轴为行时,项目在每行中竖直方向的对齐
17
+ * 特别注意: 这些属性会引起位置对齐问题, 所以会自动去掉: "overflow:hidden"
18
+ * askSize: boolean 设置会跟进flex的尺寸变化,设置后可通过getWidth/getHeight拿到尺寸,但会降低性能
19
+ * onSized: Function 比askSize更进一步,可以通过回调知道尺寸变化后的时机,回调参数(width, height)为flex后的尺寸
20
+ * background: {string} (选填)背景图案 可选值: 绝对路径url|url(相对路径url)|#FFFFFF|rbga(255,0,0,1.0)
21
+ *
22
+ * expose说明:
23
+ * getWidth(): 当askSize或者onSize生效时,获取元素的宽度
24
+ * getHeight(): 当askSize或者onSize生效时,获取元素的高度
25
+ *
26
+ -->
27
+ <script setup>
28
+ import { Forge } from "@shijiu/jsview/dom/jsv-forge-define";
29
+ import { shallowRef, watchEffect, onUnmounted } from "vue";
30
+ import JsvFlexDiv from "./JsvFlexDiv.vue";
31
+ import { ForgeTextureApis } from "../../JsViewVueTools/TextureManagerTools.ts";
32
+ import ForgeHandles from "../../JsViewVueTools/ForgeHandles";
33
+
34
+ const rProps = defineProps({
35
+ style: Object,
36
+ askSize: {
37
+ type: Boolean,
38
+ default: false,
39
+ },
40
+ onSized: {
41
+ type: Function,
42
+ default: null,
43
+ },
44
+ background: {
45
+ type: String,
46
+ default: null,
47
+ },
48
+ });
49
+
50
+ // 此div的宽度是固定的全屏尺寸,在jsview体系下,全屏的宽度就是designMapWidth
51
+ const cDivWidth = Forge.sRenderBridge.GetScreenInfo().designedWidth;
52
+
53
+ let rConfig = shallowRef({});
54
+
55
+ let vTextreStringCache = null; // 用于判断是否需要texture更换的flag
56
+ let vStretchViewRef = null;
57
+
58
+ // 创建AutoStretchView来自动识别JsView的视窗大小
59
+ const fncBuildForgeView = () => {
60
+ vStretchViewRef = new Forge.AutoStretchView();
61
+ return Forge.sViewStore.add(new Forge.ViewInfo(vStretchViewRef, null));
62
+ };
63
+ let vViewId = fncBuildForgeView();
64
+
65
+ // 规范化style和入参的内容
66
+ watchEffect(() => {
67
+ if (rProps.style) {
68
+ const { top, left, width, height, ...others } = rProps.style;
69
+ rConfig.value.style = {
70
+ width: cDivWidth, // 全屏的宽度就是designMapWidth, 并且高度作为自动不进行设置
71
+ ...others,
72
+ };
73
+ }
74
+ rConfig.value.askSize = rProps.askSize;
75
+ rConfig.value.onSized = rProps.onSized;
76
+
77
+ if (rProps.background != vTextreStringCache) {
78
+ // 构建背景Texture
79
+ vTextreStringCache = rProps.background;
80
+
81
+ let texture_setting = null;
82
+
83
+ if (vTextreStringCache != null) {
84
+ const texture_manager = ForgeHandles.TextureManager;
85
+ if (
86
+ vTextreStringCache.trim().startsWith("#") ||
87
+ vTextreStringCache.trim().startsWith("rgba")
88
+ ) {
89
+ texture_setting = new Forge.TextureSetting(
90
+ ForgeTextureApis.GetColorTexture(texture_manager, vTextreStringCache)
91
+ );
92
+ } else {
93
+ const base_url = vTextreStringCache;
94
+ let image_url = base_url;
95
+ if (base_url && base_url.indexOf("http") === 0) {
96
+ image_url = base_url;
97
+ } else if (window.JsView?.Dom.UrlRef) {
98
+ image_url = new window.JsView.Dom.UrlRef(base_url).href;
99
+ }
100
+ texture_setting = new Forge.ExternalTextureSetting(
101
+ ForgeTextureApis.GetImage(texture_manager, image_url)
102
+ );
103
+ }
104
+ }
105
+ vStretchViewRef.ResetTexture(texture_setting);
106
+ }
107
+ });
108
+
109
+ onUnmounted(() => {
110
+ if (vViewId != -1) {
111
+ // 清理viewStore, 防止泄漏问题
112
+ Forge.sViewStore.remove(vViewId);
113
+ vViewId = -1;
114
+ }
115
+ });
116
+
117
+ // 使用内置的flex节点来进行尺寸变化的回调和完成其子内容的flex处理
118
+ let rStretchedFlex = shallowRef(null);
119
+
120
+ defineExpose({
121
+ // TODO: PC模拟环境中目前没有浏览器的类似ResizeObserver接口
122
+ // 可以监听到left/ top变化,所以先关闭Left / Top的获取
123
+ // getLeft: () => {
124
+ // return SizeX.value;
125
+ // },
126
+ // getTop: () => {
127
+ // return SizeY.value;
128
+ // },
129
+
130
+ getWidth: () => {
131
+ return rStretchedFlex.value?.getWidth();
132
+ },
133
+ getHeight: () => {
134
+ return rStretchedFlex.value?.getHeight();
135
+ },
136
+ });
137
+ </script>
138
+
139
+ <template>
140
+ <div :data-jsv-vw-innerview="vViewId">
141
+ <jsv-flex-div ref="rStretchedFlex" v-bind="{ ...rConfig }">
142
+ <slot />
143
+ </jsv-flex-div>
144
+ </div>
145
+ </template>
@@ -1,6 +1,3 @@
1
1
 
2
- import JsvFlexDiv from "./JsvFlexDiv.vue";
3
-
4
- export {
5
- JsvFlexDiv
6
- }
2
+ export { default as JsvFlexDiv } from "./JsvFlexDiv.vue";
3
+ export { default as JsvScreenFlex } from "./JsvScreenFlex.vue";
@@ -0,0 +1,75 @@
1
+ <script setup>
2
+ import { onMounted, onUnmounted } from "vue";
3
+
4
+ const props = defineProps({
5
+ style: {
6
+ type: Object,
7
+ required: true,
8
+ },
9
+ duration: {
10
+ type: Number,
11
+ default: -1,
12
+ },
13
+ autoplay: {
14
+ type: Boolean,
15
+ default: false,
16
+ },
17
+ shaderStr: {
18
+ type: String,
19
+ required: true,
20
+ },
21
+ // [{ name: string, value: number }]
22
+ uniforms: {
23
+ type: Array,
24
+ },
25
+ // [{ name: string, type: number, resource: object/string }]
26
+ textures: {
27
+ type: Array,
28
+ },
29
+ onEnd: {
30
+ type: Function,
31
+ },
32
+ onStart: {
33
+ type: Function,
34
+ },
35
+ });
36
+
37
+ let vMounted = false;
38
+
39
+ onMounted(() => {
40
+ vMounted = true;
41
+ });
42
+
43
+ onUnmounted(() => {
44
+ vMounted = false;
45
+ });
46
+
47
+ defineExpose({
48
+ startAnim: () => {
49
+ props.onStart?.();
50
+ setTimeout(() => {
51
+ if (vMounted) {
52
+ props.onEnd?.();
53
+ }
54
+ }, 0);
55
+ },
56
+ stopAnim: () => {},
57
+ });
58
+ </script>
59
+ <template>
60
+ <div
61
+ :style="{
62
+ left: style.left,
63
+ top: style.top,
64
+ width: style.width,
65
+ height: style.height,
66
+ backgroundColor: '#00000077',
67
+ fontSize: 50,
68
+ color: '#ffffff',
69
+ textAlign: 'center',
70
+ lineHeight: style.height,
71
+ }"
72
+ >
73
+ 浏览器端未支持JsvFragShaderView
74
+ </div>
75
+ </template>
@@ -0,0 +1,293 @@
1
+ <script>
2
+ /**
3
+ * @file
4
+ *
5
+ * [模块 export 内容]
6
+ * JsvFragShaderView:自定义Fragment shader的组件
7
+ * props说明:
8
+ * @prop {Object} style (必填)left, top, width, height
9
+ * @prop {String} shaderStr (必填)shader的函数体
10
+ * @prop {int} duration 动画时长
11
+ * @prop {boolean} autoplay 自动播放
12
+ * @prop {Array} uniforms uniform参数, [{ name: string, value: number }]
13
+ * @prop {Array} textures texture参数, [{ name: string, resource: string }]
14
+ * @prop {() => void} onStart 动画开始回调
15
+ * @prop {(int,boolean) => void} onEnd
16
+ * 动画结束回调,
17
+ * 返回值1号 int: 回到参数为动画的序列号,和startAnim的返回值匹配
18
+ * 返回值2号 boolean: true: 动画正常结束,false:动画因为cancel而结束
19
+ * methods:
20
+ * @method startAnim
21
+ * @description 开始动画
22
+ * @param {int} duration: 动画时长, 默认为props.duration
23
+ * @param {()=>void} onTimeout: 如果到达duration的时长,动画因为资源问题还没开始动画的时会回调此函数
24
+ * @return {int} 所开动画的序列号,用于和onEnd收到的值匹配
25
+ * @method stopAnim
26
+ * @description 停止动画
27
+ * shader函数体说明:
28
+ * 参考网站: https://www.shadertoy.com
29
+ * 主函数:
30
+ * void mainImage( out vec4 fragColor, in vec2 fragCoord )
31
+ * @params {vec4} fragColor: 输出的片元颜色
32
+ * @params {vec2} fragCoord: 片元坐标, 左下角为原点, 往右为x正, 往上为y正
33
+ * 可用的uniform:
34
+ * iResolution: {vec3} view的大小, vec3(width, height, 0)
35
+ * iTime: {float} 动画时间
36
+ * iDuration: {float} 动画总时间
37
+ * 注意事项:
38
+ * * 盒子端使用OpenGL ES 2.0版本, 而网站 https://www.shadertoy.com 上使用WebGL, glsl支持的函数和操作符有区别.
39
+ * * 由于坐标系的差异, texture()采样函数需要替换为jsvTexture2D()
40
+ * * 盒子端的精度有限, 可能会出现精度导致的计算错误
41
+ */
42
+ </script>
43
+
44
+ <script setup>
45
+ import { onMounted, onUnmounted, shallowRef } from "vue";
46
+ import { Forge } from "@shijiu/jsview/dom/jsv-forge-define";
47
+ import ForgeHandles from "../../JsViewVueTools/ForgeHandles";
48
+ import {
49
+ FeatureNames,
50
+ JsvUseFeature,
51
+ } from "../../JsViewVueTools/FeatureActive.ts";
52
+ import { JsvTextureLoadTool } from "../../JsViewVueTools/JsvTextureLoadTool";
53
+
54
+ const rProps = defineProps({
55
+ style: {
56
+ type: Object,
57
+ required: true,
58
+ },
59
+ duration: {
60
+ type: Number,
61
+ default: -1,
62
+ },
63
+ autoplay: {
64
+ type: Boolean,
65
+ default: false,
66
+ },
67
+ shaderStr: {
68
+ type: String,
69
+ required: true,
70
+ },
71
+ // [{ name: string, value: number }]
72
+ uniforms: {
73
+ type: Array,
74
+ },
75
+ // [{ name: string, type: number, resource: string }]
76
+ textures: {
77
+ type: Array,
78
+ },
79
+ onEnd: {
80
+ type: Function,
81
+ },
82
+ onStart: {
83
+ type: Function,
84
+ },
85
+ });
86
+
87
+ // 激活引擎中的功能支持
88
+ JsvUseFeature("JsvFragShaderView", FeatureNames.CustomFragShader);
89
+
90
+ let rAnimRunning = shallowRef(false); // 动画是否在执行,画面只在动画进行时进行显示
91
+ let vPreloadHandler = null;
92
+ let vPreloadDone = false;
93
+ let vStartingPromise = null; // 用于后加载启动处理
94
+ let vStartToken = 0; // 计数,规避onEnd和start的不匹配
95
+ let vStartAnimTimeoutId = -1; // 动画启动的timeout句柄
96
+
97
+ //uniforms
98
+ let cUniformList = [];
99
+ if (rProps.uniforms) {
100
+ for (let item of rProps.uniforms) {
101
+ cUniformList.push({
102
+ name: item.name,
103
+ type: 1,
104
+ value: item.value,
105
+ });
106
+ }
107
+ }
108
+
109
+ //prepare texture
110
+ let cTextureList = [];
111
+ if (rProps.textures) {
112
+ const texture_manager = ForgeHandles.TextureManager;
113
+ let preload_textures = [];
114
+ for (let item of rProps.textures) {
115
+ if (typeof item.resource == "string") {
116
+ let image_url = item.resource;
117
+ if (item.resource && item.resource.trim().indexOf("url(") === 0) {
118
+ image_url = new window.JsView.Dom.UrlRef(image_url).href;
119
+ }
120
+ const texture = texture_manager.GetImage2(
121
+ image_url,
122
+ false,
123
+ null,
124
+ "RGB_8888",
125
+ null
126
+ );
127
+ cTextureList.push({
128
+ name: item.name,
129
+ id: texture.TexId,
130
+ });
131
+ preload_textures.push(new JsvTextureLoadTool.ItemSet(image_url));
132
+ }
133
+
134
+ // 对图片进行预加载,等所有图片预加载完成后才能开始动画,以确保动画的完整性
135
+
136
+ vPreloadHandler = JsvTextureLoadTool.preload(preload_textures, () => {
137
+ vPreloadDone = true;
138
+
139
+ // 加载完成后直接释放句柄即可
140
+ vPreloadHandler.recycleResource();
141
+ vPreloadHandler = null;
142
+
143
+ if (vStartingPromise != null) {
144
+ vStartingPromise.resolve();
145
+ }
146
+ });
147
+ if (vPreloadHandler == null) {
148
+ // 无需要preload的内容,直接视为preloadDone
149
+ vPreloadDone = true;
150
+ if (vStartingPromise != null) {
151
+ vStartingPromise.resolve();
152
+ }
153
+ }
154
+ }
155
+ }
156
+
157
+ const cFragShaderView = new Forge.FragShaderView();
158
+ cFragShaderView.SetShaderInfo(
159
+ rProps.shaderStr,
160
+ cUniformList,
161
+ cTextureList,
162
+ null
163
+ // (state, detail) => {
164
+ // console.log("set shader reuslt: ", state, detail);
165
+ // }
166
+ );
167
+ let vViewId = Forge.sViewStore.add(new Forge.ViewInfo(cFragShaderView, ""));
168
+
169
+ const { left: cLeft, top: cTop, width: cWidth, height: cHeight } = rProps.style;
170
+
171
+ function clearStartAnimTimeout() {
172
+ if (vStartAnimTimeoutId != -1) {
173
+ clearTimeout(vStartAnimTimeoutId);
174
+ vStartAnimTimeoutId = -1;
175
+ }
176
+ }
177
+
178
+ const startAnim = (alt_duration, on_timeout_func) => {
179
+ vStartingPromise = null; // 重置promise回执处理
180
+ rAnimRunning.value = false;
181
+ vStartToken++;
182
+
183
+ let track_token = vStartToken;
184
+
185
+ // 确认duration的具体值
186
+ let duration =
187
+ typeof alt_duration == "number" ? alt_duration : rProps.duration;
188
+
189
+ // 制作timeout回调
190
+ clearStartAnimTimeout();
191
+ if (typeof on_timeout_func == "function" && !vPreloadDone) {
192
+ // 启动动画时,加载未结束
193
+ vStartAnimTimeoutId = setTimeout(() => {
194
+ vStartAnimTimeoutId = -1;
195
+ if (!rAnimRunning.value) {
196
+ // 超时后动画仍未开始则执行timeout回调
197
+ on_timeout_func();
198
+ }
199
+ }, Math.max(500, duration)); // 最低延迟500毫秒,避免0ms的时序问题
200
+ }
201
+
202
+ // 等待图片加载完成后进行
203
+ new Promise((resolve, reject) => {
204
+ if (!vPreloadDone) {
205
+ vStartingPromise = {
206
+ resolve,
207
+ reject,
208
+ };
209
+ } else {
210
+ resolve();
211
+ }
212
+ })
213
+ .then(() => {
214
+ if (vStartToken != track_token) {
215
+ // 序列不匹配
216
+ return;
217
+ }
218
+
219
+ vStartingPromise = null; // 重置promise回执处理
220
+
221
+ if (duration > 0) {
222
+ let shaderAnimation = new Forge.ShaderAnimation(duration, null);
223
+ shaderAnimation.Enable(0x1); // ReleaseAfterEndCallback
224
+ shaderAnimation.SetAnimationListener(
225
+ new Forge.AnimationListener(
226
+ null /* animation的onStart目前不调用 */,
227
+ (status) => {
228
+ if (vStartToken == track_token) {
229
+ // 序列匹配时才调整全局状态
230
+ rAnimRunning.value = false; // 动画结束,停止展示
231
+ }
232
+ rProps.onEnd?.(track_token, status);
233
+ },
234
+ null
235
+ )
236
+ );
237
+ rProps.onStart?.();
238
+ cFragShaderView.StartAnimation(shaderAnimation);
239
+ }
240
+
241
+ clearStartAnimTimeout();
242
+ rAnimRunning.value = true; // 动画启动后,展示界面,无论是否动画是否有时长
243
+ })
244
+ .catch(() => {
245
+ vStartingPromise = null;
246
+ });
247
+
248
+ return vStartToken;
249
+ };
250
+
251
+ const stopAnim = () => {
252
+ if (rAnimRunning.value) {
253
+ cFragShaderView?.StopAnimation();
254
+ } else {
255
+ if (vStartingPromise != null) {
256
+ vStartingPromise.reject();
257
+ }
258
+ }
259
+ };
260
+
261
+ onMounted(() => {
262
+ if (rProps.autoplay) {
263
+ startAnim(rProps.duration);
264
+ }
265
+ });
266
+
267
+ onUnmounted(() => {
268
+ clearStartAnimTimeout();
269
+
270
+ if (vViewId != -1) {
271
+ Forge.sViewStore.remove(vViewId);
272
+ vViewId = -1;
273
+ }
274
+
275
+ if (vPreloadHandler != null) {
276
+ // 当preload句柄仍然未加载完并释放掉的场景
277
+ vPreloadHandler.recycleResource();
278
+ vPreloadHandler = null;
279
+ }
280
+ });
281
+
282
+ defineExpose({
283
+ startAnim,
284
+ stopAnim,
285
+ });
286
+ </script>
287
+ <template>
288
+ <div
289
+ v-show="rAnimRunning"
290
+ :style="{ left: cLeft, top: cTop, width: cWidth, height: cHeight }"
291
+ :data-jsv-vw-innerview="vViewId"
292
+ ></div>
293
+ </template>
@@ -0,0 +1,18 @@
1
+ /*
2
+ * @Author: ChenChanghua
3
+ * @Date: 2021-10-13 15:12:45
4
+ * @LastEditors: ChenChanghua
5
+ * @LastEditTime: 2021-11-22 14:24:36
6
+ * @Description: file content
7
+ */
8
+ //! 考虑到.vue文件除了export default的component外,还有可能export其他对象,因此使用import * as
9
+ import * as JsvFragShaderView from "./JsvFragShaderView.vue";
10
+
11
+ let _JsvFragShaderView;
12
+ if (window.JsView) {
13
+ _JsvFragShaderView = JsvFragShaderView.default;
14
+ } else {
15
+ const BrowserJsvFragShaderView = await import("./BrowserJsvFragShaderView.vue");
16
+ _JsvFragShaderView = BrowserJsvFragShaderView.default;
17
+ }
18
+ export default _JsvFragShaderView;