@shijiu/jsview-vue 2.3.151-test.0 → 2.3.728-alpha.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 (432) hide show
  1. package/bin/browser/BrowserJsvLatex.vue.mjs +9 -90
  2. package/bin/jsview-vue.mjs +5964 -1833
  3. package/bin/types/utils/JsViewEngineWidget/JsvFocus/JsvFocusHub.d.ts +18 -2
  4. package/bin/types/utils/JsViewEngineWidget/MetroWidget/Const.d.ts +4 -1
  5. package/bin/types/utils/JsViewEngineWidget/MetroWidget/ListWidget.vue.d.ts +225 -0
  6. package/bin/types/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue.d.ts +225 -0
  7. package/bin/types/utils/JsViewEngineWidget/MetroWidget/MetroWidgetDebugger.d.ts +5 -0
  8. package/bin/types/utils/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.d.ts +25 -2
  9. package/bin/types/utils/JsViewEngineWidget/MetroWidget/PageUpdater.d.ts +7 -1
  10. package/bin/types/utils/JsViewEngineWidget/MetroWidget/RenderItem.d.ts +25 -5
  11. package/bin/types/utils/JsViewEngineWidget/MetroWidget/TaskManager.d.ts +2 -1
  12. package/bin/types/utils/JsViewEngineWidget/MetroWidget/Utils.d.ts +2 -0
  13. package/bin/types/utils/JsViewEngineWidget/MetroWidget/WidgetRectInfo.d.ts +1 -1
  14. package/bin/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavProvider.vue.d.ts +70 -0
  15. package/bin/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigationAlgorithm.d.ts +24 -0
  16. package/bin/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigationNode.d.ts +19 -0
  17. package/bin/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigator.d.ts +42 -0
  18. package/bin/types/utils/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.d.ts +3 -3
  19. package/bin/types/utils/JsViewEngineWidget/TemplateParser/ListMetroTemplate.d.ts +2 -1
  20. package/bin/types/utils/JsViewEngineWidget/TemplateParser/MetroTemplate.d.ts +12 -4
  21. package/bin/types/utils/JsViewEngineWidget/TemplateParser/TemplateItemAdder.d.ts +9 -7
  22. package/bin/types/utils/JsViewEngineWidget/WidgetCommon.d.ts +17 -7
  23. package/bin/types/utils/JsViewEngineWidget/index.d.ts +3 -1
  24. package/bin/types/utils/JsViewPlugin/JsvLatex/BrowserDomBuilder.d.ts +0 -1
  25. package/bin/types/utils/JsViewPlugin/JsvLatex/GetVersion.d.ts +14 -0
  26. package/bin/types/utils/JsViewPlugin/JsvLatex/JsvLatex.vue.d.ts +3 -0
  27. package/bin/types/utils/JsViewPlugin/JsvLatex/JsvLatexBridgeProxy.d.ts +1 -0
  28. package/bin/types/utils/JsViewPlugin/JsvLatex/JsvLatexProxy.vue.d.ts +4 -1
  29. package/bin/types/utils/JsViewPlugin/JsvLatex/version.d.mts +29 -2
  30. package/bin/types/utils/JsViewPlugin/JsvPlayer/JsvMedia.d.ts +107 -4
  31. package/bin/types/utils/JsViewPlugin/JsvPlayer/JsvMediaBrowserInterface.d.ts +62 -0
  32. package/bin/types/utils/JsViewPlugin/JsvPlayer/JsvPlayer.vue.d.ts +94 -18
  33. package/bin/types/utils/JsViewPlugin/JsvPlayer/JsvPlayerBrowser-wasm.vue.d.ts +611 -0
  34. package/bin/types/utils/JsViewPlugin/JsvPlayer/{BrowserJsvPlayer.vue.d.ts → JsvPlayerBrowser.vue.d.ts} +24 -23
  35. package/bin/types/utils/JsViewPlugin/JsvPlayer/index-0.9.d.ts +77 -20
  36. package/bin/types/utils/JsViewPlugin/JsvPlayer/index.d.ts +77 -20
  37. package/bin/types/utils/JsViewVueTools/BlobApi.d.ts +38 -0
  38. package/bin/types/utils/JsViewVueTools/FeatureActive.d.ts +1 -0
  39. package/bin/types/utils/JsViewVueTools/JsvInteractionMode.d.ts +6 -0
  40. package/bin/types/utils/JsViewVueTools/JsvRuntimeBridge.d.ts +10 -3
  41. package/bin/types/utils/JsViewVueTools/JsvTextTools.d.ts +1 -0
  42. package/bin/types/utils/JsViewVueTools/JsvTextureStore/BitPalette/BitPalette.d.ts +43 -0
  43. package/bin/types/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CommandList.d.ts +1 -0
  44. package/bin/types/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/DrawHelper.d.ts +54 -0
  45. package/bin/types/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/Path.d.ts +13 -0
  46. package/bin/types/utils/JsViewVueTools/JsvTextureStore/CapturedTexture/CapturedTexture.d.ts +2 -0
  47. package/bin/types/utils/JsViewVueTools/JsvTextureStore/JsvTextureStore.d.ts +76 -26
  48. package/bin/types/utils/JsViewVueTools/JsvTextureStore/TextureBuilder.d.ts +49 -0
  49. package/bin/types/utils/JsViewVueTools/JsvTextureStore/index.d.ts +2 -0
  50. package/bin/types/utils/JsViewVueTools/index.d.ts +3 -1
  51. package/bin/types/utils/JsViewVueWidget/JsvApic/JsvApic2/JsvApic2.vue.d.ts +12 -22
  52. package/bin/types/utils/JsViewVueWidget/JsvApic/JsvApic2/index.d.ts +12 -22
  53. package/bin/types/utils/JsViewVueWidget/JsvDomRenderer/JsViewHtmlToVNodesOptions.d.ts +101 -0
  54. package/bin/types/utils/JsViewVueWidget/JsvDomRenderer/JsvDomRenderer.d.ts +61 -0
  55. package/bin/types/utils/JsViewVueWidget/JsvDomRenderer/htmlToVNodes.d.ts +58 -0
  56. package/bin/types/utils/JsViewVueWidget/JsvDomRenderer/index.d.ts +1 -0
  57. package/bin/types/utils/JsViewVueWidget/JsvFragShaderView/JsvFragShaderView.vue.d.ts +1 -0
  58. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.d.ts +151 -18
  59. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/CallbackManager.d.ts +2 -1
  60. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/CmdTypes.d.ts +16 -0
  61. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/ForgeTypeDefine.d.ts +2 -1
  62. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/NexusNode.d.ts +3 -1
  63. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.d.ts +55 -12
  64. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.d.ts +178 -35
  65. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.d.ts +119 -17
  66. package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/index.d.ts +9 -3
  67. package/bin/types/utils/JsViewVueWidget/JsvInput/EditViewOperator.d.ts +4 -1
  68. package/bin/types/utils/JsViewVueWidget/JsvInput/JsvInput.vue.d.ts +22 -1
  69. package/bin/types/utils/JsViewVueWidget/JsvLine/JsvLine.vue.d.ts +1 -1
  70. package/bin/types/utils/JsViewVueWidget/JsvPieChart.vue.d.ts +2 -0
  71. package/bin/types/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue.d.ts +5 -2
  72. package/bin/types/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue.d.ts +1 -1
  73. package/bin/types/utils/JsViewVueWidget/JsvScrollBox/JsvScrollBox.vue.d.ts +39 -1
  74. package/bin/types/utils/JsViewVueWidget/JsvSector.vue.d.ts +1 -0
  75. package/bin/types/utils/JsViewVueWidget/JsvTextBox.vue.d.ts +15 -3
  76. package/bin/types/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue.d.ts +22 -96
  77. package/bin/types/utils/JsViewVueWidget/JsvTouchModeSwitcher.vue.d.ts +6 -0
  78. package/bin/types/utils/JsViewVueWidget/{JsvPosterDiv.vue.d.ts → TypesDiv/JsvPosterDiv.vue.d.ts} +9 -0
  79. package/bin/types/utils/JsViewVueWidget/{JsvPosterImage.vue.d.ts → TypesDiv/JsvPosterImage.vue.d.ts} +15 -3
  80. package/bin/types/utils/JsViewVueWidget/TypesDiv/JsvSmartDiv.vue.d.ts +72 -0
  81. package/bin/types/utils/JsViewVueWidget/TypesDiv/JsvSmartImage.vue.d.ts +90 -0
  82. package/bin/types/utils/JsViewVueWidget/index.d.ts +6 -3
  83. package/dist/types/utils/JsViewEngineWidget/CheckType.d.ts +7 -0
  84. package/dist/types/utils/JsViewEngineWidget/JsvFocus/JsvFocusBlock.vue.d.ts +106 -0
  85. package/dist/types/utils/JsViewEngineWidget/JsvFocus/JsvFocusHub.d.ts +128 -0
  86. package/dist/types/utils/JsViewEngineWidget/JsvFocus/JsvFocusManager.d.ts +25 -0
  87. package/dist/types/utils/JsViewEngineWidget/MetroWidget/Const.d.ts +23 -0
  88. package/dist/types/utils/JsViewEngineWidget/MetroWidget/DebugFrame.vue.d.ts +12 -0
  89. package/dist/types/utils/JsViewEngineWidget/MetroWidget/DebugTools.d.ts +9 -0
  90. package/dist/types/utils/JsViewEngineWidget/MetroWidget/Dispatcher.d.ts +16 -0
  91. package/dist/types/utils/JsViewEngineWidget/MetroWidget/ListWidget.vue.d.ts +412 -0
  92. package/dist/types/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue.d.ts +751 -0
  93. package/dist/types/utils/JsViewEngineWidget/MetroWidget/MetroWidgetDebugger.d.ts +9 -0
  94. package/dist/types/utils/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.d.ts +82 -0
  95. package/dist/types/utils/JsViewEngineWidget/MetroWidget/PageUpdater.d.ts +31 -0
  96. package/dist/types/utils/JsViewEngineWidget/MetroWidget/RenderItem.d.ts +80 -0
  97. package/dist/types/utils/JsViewEngineWidget/MetroWidget/Slide.d.ts +25 -0
  98. package/dist/types/utils/JsViewEngineWidget/MetroWidget/SlotComponent.vue.d.ts +52 -0
  99. package/dist/types/utils/JsViewEngineWidget/MetroWidget/TaskManager.d.ts +69 -0
  100. package/dist/types/utils/JsViewEngineWidget/MetroWidget/TokenGenerator.d.ts +4 -0
  101. package/dist/types/utils/JsViewEngineWidget/MetroWidget/Utils.d.ts +6 -0
  102. package/dist/types/utils/JsViewEngineWidget/MetroWidget/VisibleInfo.d.ts +20 -0
  103. package/dist/types/utils/JsViewEngineWidget/MetroWidget/WidgetRectInfo.d.ts +21 -0
  104. package/dist/types/utils/JsViewEngineWidget/RangeModel.d.ts +166 -0
  105. package/dist/types/utils/JsViewEngineWidget/RectUtils.d.ts +61 -0
  106. package/dist/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavProvider.vue.d.ts +74 -0
  107. package/dist/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigationAlgorithm.d.ts +28 -0
  108. package/dist/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigationNode.d.ts +23 -0
  109. package/dist/types/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigator.d.ts +46 -0
  110. package/dist/types/utils/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.d.ts +42 -0
  111. package/dist/types/utils/JsViewEngineWidget/TemplateParser/Fence.d.ts +62 -0
  112. package/dist/types/utils/JsViewEngineWidget/TemplateParser/ListMetroTemplate.d.ts +21 -0
  113. package/dist/types/utils/JsViewEngineWidget/TemplateParser/MetroTemplate.d.ts +103 -0
  114. package/dist/types/utils/JsViewEngineWidget/TemplateParser/TemplateItemAdder.d.ts +28 -0
  115. package/dist/types/utils/JsViewEngineWidget/TemplateParser/index.d.ts +8 -0
  116. package/dist/types/utils/JsViewEngineWidget/WidgetCommon.d.ts +160 -0
  117. package/dist/types/utils/JsViewEngineWidget/index.d.ts +21 -0
  118. package/dist/types/utils/JsViewPlugin/JsvAccount/JsvAccount.d.ts +46 -0
  119. package/dist/types/utils/JsViewPlugin/JsvAudio/AudioProxy.d.ts +6 -0
  120. package/dist/types/utils/JsViewPlugin/JsvAudio/BrowserAudio/BrowserAudio.vue.d.ts +22 -0
  121. package/dist/types/utils/JsViewPlugin/JsvAudio/BrowserAudio/JsvSystemAudio.vue.d.ts +212 -0
  122. package/dist/types/utils/JsViewPlugin/JsvAudio/CheckType.d.ts +6 -0
  123. package/dist/types/utils/JsViewPlugin/JsvAudio/Events.d.ts +17 -0
  124. package/dist/types/utils/JsViewPlugin/JsvAudio/JsvAudio.vue.d.ts +22 -0
  125. package/dist/types/utils/JsViewPlugin/JsvAudio/JsvAudioBridgeProxy.d.ts +12 -0
  126. package/dist/types/utils/JsViewPlugin/JsvAudio/JsvAudioProxy.vue.d.ts +6 -0
  127. package/dist/types/utils/JsViewPlugin/JsvAudio/PluginLoader.d.ts +5 -0
  128. package/dist/types/utils/JsViewPlugin/JsvAudio/ScreenLockManager.d.ts +9 -0
  129. package/dist/types/utils/JsViewPlugin/JsvAudio/index.d.ts +7 -0
  130. package/dist/types/utils/JsViewPlugin/JsvAudio/version.d.mts +14 -0
  131. package/{bin/types/utils/JsViewPlugin/JsvLatex → dist/types/utils/JsViewPlugin/JsvAudio}/version.d.ts +5 -0
  132. package/dist/types/utils/JsViewPlugin/JsvLatex/BrowserDomBuilder.d.ts +0 -0
  133. package/dist/types/utils/JsViewPlugin/JsvLatex/BrowserJsvLatex.vue.d.ts +17 -0
  134. package/dist/types/utils/JsViewPlugin/JsvLatex/Color.d.ts +5 -0
  135. package/dist/types/utils/JsViewPlugin/JsvLatex/GetVersion.d.ts +18 -0
  136. package/dist/types/utils/JsViewPlugin/JsvLatex/JsvLatex.vue.d.ts +46 -0
  137. package/dist/types/utils/JsViewPlugin/JsvLatex/JsvLatexBridgeProxy.d.ts +8 -0
  138. package/dist/types/utils/JsViewPlugin/JsvLatex/JsvLatexProxy.vue.d.ts +9 -0
  139. package/dist/types/utils/JsViewPlugin/JsvLatex/PluginLoader.d.ts +5 -0
  140. package/dist/types/utils/JsViewPlugin/JsvLatex/index.d.ts +8 -0
  141. package/dist/types/utils/JsViewPlugin/JsvLatex/version.d.mts +40 -0
  142. package/dist/types/utils/JsViewPlugin/JsvPlayer/AckEventDefine.d.ts +10 -0
  143. package/dist/types/utils/JsViewPlugin/JsvPlayer/GetVersion.d.ts +13 -0
  144. package/dist/types/utils/JsViewPlugin/JsvPlayer/JsvMedia.d.ts +523 -0
  145. package/dist/types/utils/JsViewPlugin/JsvPlayer/JsvMediaBrowserInterface.d.ts +119 -0
  146. package/dist/types/utils/JsViewPlugin/JsvPlayer/JsvPlayer.vue.d.ts +664 -0
  147. package/dist/types/utils/JsViewPlugin/JsvPlayer/JsvPlayerBrowser-0.9.vue.d.ts +45 -0
  148. package/dist/types/utils/JsViewPlugin/JsvPlayer/JsvPlayerBrowser-wasm.vue.d.ts +611 -0
  149. package/dist/types/utils/JsViewPlugin/JsvPlayer/JsvPlayerBrowser.vue.d.ts +597 -0
  150. package/dist/types/utils/JsViewPlugin/JsvPlayer/index-0.9.d.ts +415 -0
  151. package/dist/types/utils/JsViewPlugin/JsvPlayer/index.d.ts +415 -0
  152. package/dist/types/utils/JsViewPlugin/JsvPlayer/version.d.mts +14 -0
  153. package/dist/types/utils/JsViewPlugin/index.d.ts +7 -0
  154. package/dist/types/utils/JsViewVueTools/BlobApi.d.ts +42 -0
  155. package/dist/types/utils/JsViewVueTools/ConstSymbol.d.ts +6 -0
  156. package/dist/types/utils/JsViewVueTools/DebugContentShellJBridge.d.ts +10 -0
  157. package/dist/types/utils/JsViewVueTools/DebugTool.d.ts +12 -0
  158. package/dist/types/utils/JsViewVueTools/DefaultKeyMap.d.ts +14 -0
  159. package/dist/types/utils/JsViewVueTools/FeatureActive.d.ts +15 -0
  160. package/dist/types/utils/JsViewVueTools/ForgeConstDefine.d.ts +15 -0
  161. package/dist/types/utils/JsViewVueTools/ForgeHandles.d.ts +11 -0
  162. package/dist/types/utils/JsViewVueTools/JsvDynamicCssStyle.d.ts +33 -0
  163. package/dist/types/utils/JsViewVueTools/JsvDynamicKeyFrames.d.ts +40 -0
  164. package/dist/types/utils/JsViewVueTools/JsvFederationTools.d.ts +20 -0
  165. package/dist/types/utils/JsViewVueTools/JsvHashHistory.d.ts +20 -0
  166. package/dist/types/utils/JsViewVueTools/JsvImpactTracer.d.ts +44 -0
  167. package/dist/types/utils/JsViewVueTools/JsvInteractionMode.d.ts +10 -0
  168. package/dist/types/utils/JsViewVueTools/JsvPerformance.d.ts +9 -0
  169. package/dist/types/utils/JsViewVueTools/JsvPreDownloader.d.ts +55 -0
  170. package/dist/types/utils/JsViewVueTools/JsvRefTaker.d.ts +52 -0
  171. package/dist/types/utils/JsViewVueTools/JsvRuntimeBridge.d.ts +378 -0
  172. package/dist/types/utils/JsViewVueTools/JsvStyleClass.d.ts +35 -0
  173. package/dist/types/utils/JsViewVueTools/JsvStyleSheetsDeclarer.d.ts +35 -0
  174. package/dist/types/utils/JsViewVueTools/JsvTextTools.d.ts +66 -0
  175. package/dist/types/utils/JsViewVueTools/JsvTextureDefines.d.ts +10 -0
  176. package/dist/types/utils/JsViewVueTools/JsvTextureLoadTool.d.ts +67 -0
  177. package/dist/types/utils/JsViewVueTools/JsvTextureStore/BitPalette/BitPalette.d.ts +47 -0
  178. package/dist/types/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CanvasTexture.d.ts +99 -0
  179. package/dist/types/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CommandList.d.ts +20 -0
  180. package/dist/types/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/DrawHelper.d.ts +58 -0
  181. package/dist/types/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/Path.d.ts +113 -0
  182. package/dist/types/utils/JsViewVueTools/JsvTextureStore/CapturedTexture/CapturedTexture.d.ts +17 -0
  183. package/dist/types/utils/JsViewVueTools/JsvTextureStore/JsvTextureStore.d.ts +170 -0
  184. package/dist/types/utils/JsViewVueTools/JsvTextureStore/Store.d.ts +16 -0
  185. package/dist/types/utils/JsViewVueTools/JsvTextureStore/Texture.d.ts +31 -0
  186. package/dist/types/utils/JsViewVueTools/JsvTextureStore/TextureBuilder.d.ts +53 -0
  187. package/dist/types/utils/JsViewVueTools/JsvTextureStore/index.d.ts +6 -0
  188. package/dist/types/utils/JsViewVueTools/NinePatchHelper.d.ts +25 -0
  189. package/dist/types/utils/JsViewVueTools/TextureManagerTools.d.ts +11 -0
  190. package/dist/types/utils/JsViewVueTools/TypeCheckAndSet.d.ts +7 -0
  191. package/dist/types/utils/JsViewVueTools/index.d.ts +29 -0
  192. package/dist/types/utils/JsViewVueWidget/Jsv3dDiv.vue.d.ts +124 -0
  193. package/dist/types/utils/JsViewVueWidget/Jsv3dStage.vue.d.ts +148 -0
  194. package/dist/types/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.d.ts +35 -0
  195. package/dist/types/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue.d.ts +102 -0
  196. package/dist/types/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.d.ts +37 -0
  197. package/dist/types/utils/JsViewVueWidget/JsvActorMove/index.d.ts +8 -0
  198. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvApic/BrowserApic.vue.d.ts +15 -0
  199. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvApic/JsvApic.vue.d.ts +77 -0
  200. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvApic/index.d.ts +54 -0
  201. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvApic2/BrowserApic2.vue.d.ts +13 -0
  202. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvApic2/JsvApic2.vue.d.ts +44 -0
  203. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvApic2/index.d.ts +17 -0
  204. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/ApicDataBase.d.ts +13 -0
  205. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/BrowserApicLib.d.ts +3 -0
  206. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/GifData.d.ts +5 -0
  207. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/NormalLoopTool.d.ts +7 -0
  208. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/PartLoopTool.d.ts +12 -0
  209. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/SingleLoopTool.d.ts +5 -0
  210. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/Viewer.d.ts +20 -0
  211. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/WebpData.d.ts +5 -0
  212. package/dist/types/utils/JsViewVueWidget/JsvApic/JsvCommonLoopToolBase.d.ts +26 -0
  213. package/dist/types/utils/JsViewVueWidget/JsvClipDiv/JsvClipDiv.vue.d.ts +74 -0
  214. package/dist/types/utils/JsViewVueWidget/JsvClipDiv/index.d.ts +5 -0
  215. package/dist/types/utils/JsViewVueWidget/JsvConnectLine/ArcLineManager.d.ts +5 -0
  216. package/dist/types/utils/JsViewVueWidget/JsvConnectLine/JsvConnectLine.vue.d.ts +34 -0
  217. package/dist/types/utils/JsViewVueWidget/JsvConnectLine/index.d.ts +6 -0
  218. package/dist/types/utils/JsViewVueWidget/JsvDashPath.vue.d.ts +33 -0
  219. package/dist/types/utils/JsViewVueWidget/JsvDomRenderer/JsViewHtmlToVNodesOptions.d.ts +105 -0
  220. package/dist/types/utils/JsViewVueWidget/JsvDomRenderer/JsvDomRenderer.d.ts +65 -0
  221. package/dist/types/utils/JsViewVueWidget/JsvDomRenderer/htmlToVNodes.d.ts +62 -0
  222. package/dist/types/utils/JsViewVueWidget/JsvDomRenderer/index.d.ts +5 -0
  223. package/dist/types/utils/JsViewVueWidget/JsvDragBox/JsvDragBox.vue.d.ts +109 -0
  224. package/dist/types/utils/JsViewVueWidget/JsvDriftScope/JsvDriftScope.vue.d.ts +108 -0
  225. package/dist/types/utils/JsViewVueWidget/JsvDriftScope/index.d.ts +5 -0
  226. package/dist/types/utils/JsViewVueWidget/JsvEnableRenderBreak.vue.d.ts +61 -0
  227. package/dist/types/utils/JsViewVueWidget/JsvFilterView.vue.d.ts +91 -0
  228. package/dist/types/utils/JsViewVueWidget/JsvFlexCell/JsvFlexDiv.vue.d.ts +106 -0
  229. package/dist/types/utils/JsViewVueWidget/JsvFlexCell/JsvFullScrAdjust.vue.d.ts +100 -0
  230. package/dist/types/utils/JsViewVueWidget/JsvFlexCell/JsvScreenFlex.vue.d.ts +108 -0
  231. package/dist/types/utils/JsViewVueWidget/JsvFlexCell/index.d.ts +7 -0
  232. package/dist/types/utils/JsViewVueWidget/JsvFragShaderView/JsvFragShaderView.vue.d.ts +63 -0
  233. package/dist/types/utils/JsViewVueWidget/JsvFragShaderView/index.d.ts +5 -0
  234. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/ActionRefObject.d.ts +4 -0
  235. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.d.ts +228 -0
  236. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/ActorState.d.ts +6 -0
  237. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/CallbackManager.d.ts +16 -0
  238. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/CmdTypes.d.ts +16 -0
  239. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/ForgeTypeDefine.d.ts +20 -0
  240. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/JsvEnvBlocker.vue.d.ts +106 -0
  241. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/JsvFreeMoveActor.vue.d.ts +107 -0
  242. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/KeepFlags.d.ts +11 -0
  243. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/NexusNode.d.ts +12 -0
  244. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.d.ts +118 -0
  245. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.d.ts +244 -0
  246. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.d.ts +169 -0
  247. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/SyncLinkManager.d.ts +22 -0
  248. package/dist/types/utils/JsViewVueWidget/JsvFreeMoveActor/index.d.ts +24 -0
  249. package/dist/types/utils/JsViewVueWidget/JsvGrid.vue.d.ts +241 -0
  250. package/dist/types/utils/JsViewVueWidget/JsvHole.d.ts +19 -0
  251. package/dist/types/utils/JsViewVueWidget/JsvInput/Cursor.vue.d.ts +16 -0
  252. package/dist/types/utils/JsViewVueWidget/JsvInput/EditViewOperator.d.ts +52 -0
  253. package/dist/types/utils/JsViewVueWidget/JsvInput/EditVisibleArea.d.ts +30 -0
  254. package/dist/types/utils/JsViewVueWidget/JsvInput/JsvInput.vue.d.ts +98 -0
  255. package/dist/types/utils/JsViewVueWidget/JsvInput/SharedDefine.d.ts +17 -0
  256. package/dist/types/utils/JsViewVueWidget/JsvInput/SystemTextTools.d.ts +20 -0
  257. package/dist/types/utils/JsViewVueWidget/JsvInput/index.d.ts +8 -0
  258. package/dist/types/utils/JsViewVueWidget/JsvLine/JsvLine.vue.d.ts +32 -0
  259. package/dist/types/utils/JsViewVueWidget/JsvLine/LineManager.d.ts +5 -0
  260. package/dist/types/utils/JsViewVueWidget/JsvLine/index.d.ts +6 -0
  261. package/dist/types/utils/JsViewVueWidget/JsvMarquee.vue.d.ts +33 -0
  262. package/dist/types/utils/JsViewVueWidget/JsvMaskClipDiv.vue.d.ts +101 -0
  263. package/dist/types/utils/JsViewVueWidget/JsvMindMap/CommonType.d.ts +1 -0
  264. package/dist/types/utils/JsViewVueWidget/JsvMindMap/Constant.d.ts +13 -0
  265. package/dist/types/utils/JsViewVueWidget/JsvMindMap/DataTree.d.ts +75 -0
  266. package/dist/types/utils/JsViewVueWidget/JsvMindMap/Geometry.d.ts +72 -0
  267. package/dist/types/utils/JsViewVueWidget/JsvMindMap/JsvMindMap.vue.d.ts +235 -0
  268. package/dist/types/utils/JsViewVueWidget/JsvMindMap/index.d.ts +5 -0
  269. package/dist/types/utils/JsViewVueWidget/JsvMindMap/rtree.d.ts +44 -0
  270. package/dist/types/utils/JsViewVueWidget/JsvNativeSharedDiv.vue.d.ts +93 -0
  271. package/dist/types/utils/JsViewVueWidget/JsvNinePatch.vue.d.ts +55 -0
  272. package/dist/types/utils/JsViewVueWidget/JsvPieChart.vue.d.ts +30 -0
  273. package/dist/types/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue.d.ts +68 -0
  274. package/dist/types/utils/JsViewVueWidget/JsvPreload/index.d.ts +6 -0
  275. package/dist/types/utils/JsViewVueWidget/JsvProgressBar.vue.d.ts +31 -0
  276. package/dist/types/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue.d.ts +85 -0
  277. package/dist/types/utils/JsViewVueWidget/JsvRadarChart.vue.d.ts +37 -0
  278. package/dist/types/utils/JsViewVueWidget/JsvRipple/Constant.d.ts +8 -0
  279. package/dist/types/utils/JsViewVueWidget/JsvRipple/JsvRipple.vue.d.ts +129 -0
  280. package/dist/types/utils/JsViewVueWidget/JsvRipple/index.d.ts +7 -0
  281. package/dist/types/utils/JsViewVueWidget/JsvScaleTextBox.vue.d.ts +28 -0
  282. package/dist/types/utils/JsViewVueWidget/JsvScrollBox/JsvScrollBox.vue.d.ts +278 -0
  283. package/dist/types/utils/JsViewVueWidget/JsvScrollBox/JsvScrollFollow.vue.d.ts +157 -0
  284. package/dist/types/utils/JsViewVueWidget/JsvScrollBox/ScrollInnerSymbol.d.ts +8 -0
  285. package/dist/types/utils/JsViewVueWidget/JsvScrollBox/ScrollSymbol.d.ts +16 -0
  286. package/dist/types/utils/JsViewVueWidget/JsvScrollBox/index.d.ts +7 -0
  287. package/dist/types/utils/JsViewVueWidget/JsvSector.vue.d.ts +30 -0
  288. package/dist/types/utils/JsViewVueWidget/JsvSmoothSlideContainer.vue.d.ts +76 -0
  289. package/dist/types/utils/JsViewVueWidget/JsvSoundPool.d.ts +114 -0
  290. package/dist/types/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue.d.ts +58 -0
  291. package/dist/types/utils/JsViewVueWidget/JsvSpriteAnim/FrameBuidler.d.ts +18 -0
  292. package/dist/types/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue.d.ts +70 -0
  293. package/dist/types/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteLoader.vue.d.ts +85 -0
  294. package/dist/types/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteTools.d.ts +15 -0
  295. package/dist/types/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.d.ts +21 -0
  296. package/dist/types/utils/JsViewVueWidget/JsvSpriteAnim/index.d.ts +9 -0
  297. package/dist/types/utils/JsViewVueWidget/JsvSpriteAnim/sAnimationToken.d.ts +6 -0
  298. package/dist/types/utils/JsViewVueWidget/JsvSwiper/Indicator.vue.d.ts +16 -0
  299. package/dist/types/utils/JsViewVueWidget/JsvSwiper/JsvSmoothSwiper.vue.d.ts +141 -0
  300. package/dist/types/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue.d.ts +248 -0
  301. package/dist/types/utils/JsViewVueWidget/JsvSwiper/JsvSwiper2.vue.d.ts +181 -0
  302. package/dist/types/utils/JsViewVueWidget/JsvSwiper/index.d.ts +8 -0
  303. package/dist/types/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue.d.ts +16 -0
  304. package/dist/types/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue.d.ts +121 -0
  305. package/dist/types/utils/JsViewVueWidget/JsvSwiper3D/index.d.ts +6 -0
  306. package/dist/types/utils/JsViewVueWidget/JsvTextBox.vue.d.ts +121 -0
  307. package/dist/types/utils/JsViewVueWidget/JsvTextureAnim/CommonType.d.ts +6 -0
  308. package/dist/types/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue.d.ts +38 -0
  309. package/dist/types/utils/JsViewVueWidget/JsvTextureAnim/index.d.ts +8 -0
  310. package/dist/types/utils/JsViewVueWidget/JsvTouchModeSwitcher.vue.d.ts +109 -0
  311. package/dist/types/utils/JsViewVueWidget/JsvVideo.vue.d.ts +23 -0
  312. package/dist/types/utils/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue.d.ts +109 -0
  313. package/dist/types/utils/JsViewVueWidget/JsvVisibleSensor/index.d.ts +88 -0
  314. package/dist/types/utils/JsViewVueWidget/TypesDiv/JsvPosterDiv.vue.d.ts +94 -0
  315. package/dist/types/utils/JsViewVueWidget/TypesDiv/JsvPosterImage.vue.d.ts +115 -0
  316. package/dist/types/utils/JsViewVueWidget/TypesDiv/JsvSmartDiv.vue.d.ts +94 -0
  317. package/dist/types/utils/JsViewVueWidget/TypesDiv/JsvSmartImage.vue.d.ts +115 -0
  318. package/dist/types/utils/JsViewVueWidget/index.d.ts +53 -0
  319. package/dist/types/utils/index.d.ts +8 -0
  320. package/dist/utils/browser/BrowserAudio.vue.mjs +258 -0
  321. package/dist/utils/browser/BrowserJsvLatex.vue.mjs +64 -0
  322. package/dist/utils/export-sfc.mjs +12 -0
  323. package/dist/utils/index.mjs +29000 -0
  324. package/dist/utils/jsview-vue-common.mjs +39 -0
  325. package/package.json +1 -1
  326. package/utils/JsViewEngineWidget/JsvFocus/JsvFocusBlock.vue +32 -16
  327. package/utils/JsViewEngineWidget/JsvFocus/JsvFocusHub.ts +24 -2
  328. package/utils/JsViewEngineWidget/MetroWidget/Const.ts +5 -0
  329. package/utils/JsViewEngineWidget/MetroWidget/ListWidget.vue +193 -89
  330. package/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue +325 -155
  331. package/utils/JsViewEngineWidget/MetroWidget/MetroWidgetDebugger.ts +15 -0
  332. package/utils/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.js +1035 -370
  333. package/utils/JsViewEngineWidget/MetroWidget/PageUpdater.ts +41 -23
  334. package/utils/JsViewEngineWidget/MetroWidget/RenderItem.ts +138 -41
  335. package/utils/JsViewEngineWidget/MetroWidget/TaskManager.ts +1 -0
  336. package/utils/JsViewEngineWidget/MetroWidget/Utils.ts +6 -0
  337. package/utils/JsViewEngineWidget/MetroWidget/WidgetRectInfo.ts +2 -1
  338. package/utils/JsViewEngineWidget/RectUtils.js +1 -1
  339. package/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavProvider.vue +62 -0
  340. package/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigationAlgorithm.ts +260 -0
  341. package/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigationNode.ts +32 -0
  342. package/utils/JsViewEngineWidget/SpatialNavigator/SpatialNavigator.ts +236 -0
  343. package/utils/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.ts +329 -230
  344. package/utils/JsViewEngineWidget/TemplateParser/ListMetroTemplate.ts +101 -27
  345. package/utils/JsViewEngineWidget/TemplateParser/MetroTemplate.ts +54 -5
  346. package/utils/JsViewEngineWidget/TemplateParser/TemplateItemAdder.ts +109 -41
  347. package/utils/JsViewEngineWidget/WidgetCommon.ts +17 -7
  348. package/utils/JsViewEngineWidget/index.ts +7 -2
  349. package/utils/JsViewPlugin/JsvLatex/BrowserDomBuilder.js +46 -46
  350. package/utils/JsViewPlugin/JsvLatex/BrowserJsvLatex.vue +54 -41
  351. package/utils/JsViewPlugin/JsvLatex/Color.ts +104 -39
  352. package/utils/JsViewPlugin/JsvLatex/GetVersion.js +65 -0
  353. package/utils/JsViewPlugin/JsvLatex/JsvLatex.vue +71 -17
  354. package/utils/JsViewPlugin/JsvLatex/JsvLatexBridgeProxy.js +10 -0
  355. package/utils/JsViewPlugin/JsvLatex/JsvLatexProxy.vue +14 -2
  356. package/utils/JsViewPlugin/JsvLatex/PluginLoader.js +63 -31
  357. package/utils/JsViewPlugin/JsvLatex/version.mjs +26 -13
  358. package/utils/JsViewPlugin/JsvPlayer/GetVersion.js +2 -1
  359. package/utils/JsViewPlugin/JsvPlayer/JsvMedia.js +402 -23
  360. package/utils/JsViewPlugin/JsvPlayer/JsvMediaBrowserInterface.js +100 -0
  361. package/utils/JsViewPlugin/JsvPlayer/JsvPlayer.vue +363 -468
  362. package/utils/JsViewPlugin/JsvPlayer/{BrowserJsvPlayer.vue → JsvPlayerBrowser-wasm.vue} +60 -10
  363. package/utils/JsViewPlugin/JsvPlayer/JsvPlayerBrowser.vue +511 -0
  364. package/utils/JsViewPlugin/JsvPlayer/index-0.9.js +52 -10
  365. package/utils/JsViewPlugin/JsvPlayer/index.js +58 -9
  366. package/utils/JsViewPlugin/JsvPlayer/package.json +8 -0
  367. package/utils/JsViewVueTools/BlobApi.ts +55 -0
  368. package/utils/JsViewVueTools/FeatureActive.ts +3 -0
  369. package/utils/JsViewVueTools/ForgeHandles.ts +3 -0
  370. package/utils/JsViewVueTools/JsvInteractionMode.js +16 -0
  371. package/utils/JsViewVueTools/JsvPreDownloader.ts +2 -2
  372. package/utils/JsViewVueTools/JsvRuntimeBridge.js +40 -19
  373. package/utils/JsViewVueTools/JsvTextTools.ts +9 -1
  374. package/utils/JsViewVueTools/JsvTextureStore/BitPalette/BitPalette.ts +180 -0
  375. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CommandList.ts +1 -0
  376. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/DrawHelper.ts +304 -0
  377. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/Path.ts +38 -0
  378. package/utils/JsViewVueTools/JsvTextureStore/CapturedTexture/CapturedTexture.ts +16 -1
  379. package/utils/JsViewVueTools/JsvTextureStore/JsvTextureStore.ts +154 -69
  380. package/utils/JsViewVueTools/JsvTextureStore/Store.ts +1 -1
  381. package/utils/JsViewVueTools/JsvTextureStore/TextureBuilder.ts +92 -0
  382. package/utils/JsViewVueTools/JsvTextureStore/index.js +2 -0
  383. package/utils/JsViewVueTools/index.js +3 -1
  384. package/utils/JsViewVueWidget/JsvApic/JsvApic2/JsvApic2.vue +111 -86
  385. package/utils/JsViewVueWidget/JsvDomRenderer/JsViewHtmlToVNodesOptions.ts +212 -0
  386. package/utils/JsViewVueWidget/JsvDomRenderer/JsvDomRenderer.ts +146 -0
  387. package/utils/JsViewVueWidget/JsvDomRenderer/htmlToVNodes.ts +748 -0
  388. package/utils/JsViewVueWidget/JsvDomRenderer/index.ts +1 -0
  389. package/utils/JsViewVueWidget/JsvDragBox/JsvDragBox.vue +10 -1
  390. package/utils/JsViewVueWidget/JsvEnableRenderBreak.vue +6 -0
  391. package/utils/JsViewVueWidget/JsvFlexCell/JsvFlexDiv.vue +11 -5
  392. package/utils/JsViewVueWidget/JsvFlexCell/JsvScreenFlex.vue +3 -1
  393. package/utils/JsViewVueWidget/JsvFragShaderView/JsvFragShaderView.vue +23 -11
  394. package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.ts +269 -26
  395. package/utils/JsViewVueWidget/JsvFreeMoveActor/CallbackManager.ts +2 -1
  396. package/utils/JsViewVueWidget/JsvFreeMoveActor/CmdTypes.ts +24 -0
  397. package/utils/JsViewVueWidget/JsvFreeMoveActor/ForgeTypeDefine.ts +3 -0
  398. package/utils/JsViewVueWidget/JsvFreeMoveActor/{FreeMoveActor.vue → JsvFreeMoveActor.vue} +5 -1
  399. package/utils/JsViewVueWidget/JsvFreeMoveActor/NexusNode.ts +10 -2
  400. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.ts +223 -100
  401. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.ts +245 -64
  402. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.ts +95 -29
  403. package/utils/JsViewVueWidget/JsvFreeMoveActor/index.js +27 -5
  404. package/utils/JsViewVueWidget/JsvInput/EditViewOperator.ts +11 -2
  405. package/utils/JsViewVueWidget/JsvInput/JsvInput.vue +29 -2
  406. package/utils/JsViewVueWidget/JsvLine/JsvLine.vue +24 -7
  407. package/utils/JsViewVueWidget/JsvMarquee.vue +1 -1
  408. package/utils/JsViewVueWidget/JsvNativeSharedDiv.vue +12 -10
  409. package/utils/JsViewVueWidget/JsvNinePatch.vue +22 -12
  410. package/utils/JsViewVueWidget/JsvPieChart.vue +93 -70
  411. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +32 -29
  412. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +2 -1
  413. package/utils/JsViewVueWidget/JsvScrollBox/JsvScrollBox.vue +56 -25
  414. package/utils/JsViewVueWidget/JsvScrollBox/JsvScrollFollow.vue +11 -11
  415. package/utils/JsViewVueWidget/JsvSector.vue +66 -28
  416. package/utils/JsViewVueWidget/JsvTextBox.vue +30 -1
  417. package/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue +315 -305
  418. package/utils/JsViewVueWidget/JsvTouchModeSwitcher.vue +56 -14
  419. package/utils/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue +8 -6
  420. package/utils/JsViewVueWidget/TypesDiv/JsvPosterDiv.vue +54 -0
  421. package/utils/JsViewVueWidget/TypesDiv/JsvPosterImage.vue +88 -0
  422. package/utils/JsViewVueWidget/TypesDiv/JsvSmartDiv.vue +177 -0
  423. package/utils/JsViewVueWidget/TypesDiv/JsvSmartImage.vue +267 -0
  424. package/utils/JsViewVueWidget/index.js +7 -2
  425. package/bin/types/utils/JsViewVueTools/JsvTextureStore/DominantColor/GetDominantColor.d.ts +0 -7
  426. package/utils/JsViewPlugin/JsvLatex/version.js +0 -24
  427. package/utils/JsViewVueTools/JsvTextureStore/DominantColor/GetDominantColor.ts +0 -36
  428. package/utils/JsViewVueWidget/JsvPosterDiv.vue +0 -56
  429. package/utils/JsViewVueWidget/JsvPosterImage.vue +0 -105
  430. /package/bin/types/utils/JsViewPlugin/JsvPlayer/{BrowserJsvPlayer-0.9.vue.d.ts → JsvPlayerBrowser-0.9.vue.d.ts} +0 -0
  431. /package/bin/types/utils/JsViewVueWidget/JsvFreeMoveActor/{FreeMoveActor.vue.d.ts → JsvFreeMoveActor.vue.d.ts} +0 -0
  432. /package/utils/JsViewPlugin/JsvPlayer/{BrowserJsvPlayer-0.9.vue → JsvPlayerBrowser-0.9.vue} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Fence, GapInfo } from "./Fence";
2
- import { MetroTemplate, TemplateItem, MeasureInfo } from "./MetroTemplate"
2
+ import { MetroTemplate, TemplateItem, MeasureInfo } from "./MetroTemplate";
3
3
  import { RangesModel, SingleRangeModel } from "../RangeModel";
4
4
  import { VERTICAL, HORIZONTAL, FocusMoveType } from "../WidgetCommon";
5
5
 
@@ -7,29 +7,29 @@ const TAG = "CommonTemplateParser";
7
7
 
8
8
  /** neighbor related interface */
9
9
  interface Edge {
10
- position: number,
11
- range: RangesModel,
10
+ position: number;
11
+ range: RangesModel;
12
12
  }
13
13
 
14
14
  interface EdgeInfo {
15
- index: number,
15
+ index: number;
16
16
  edgeObj: {
17
- leftEdge: Edge | null,
18
- rightEdge: Edge | null,
19
- topEdge: Edge | null,
20
- bottomEdge: Edge | null,
21
- }
17
+ leftEdge: Edge | null;
18
+ rightEdge: Edge | null;
19
+ topEdge: Edge | null;
20
+ bottomEdge: Edge | null;
21
+ };
22
22
  }
23
23
 
24
24
  /** get visible list related interface */
25
25
  interface VisibleSearchConfigCommon {
26
- resultStartIdx: number,
27
- resultEndIdx: number,
28
- enableBackwardSearching: boolean,
29
- enableForwardSearching: boolean,
30
- checkingStartLinePos: number,
31
- checkingEndLinePos: number,
32
- };
26
+ resultStartIdx: number;
27
+ resultEndIdx: number;
28
+ enableBackwardSearching: boolean;
29
+ enableForwardSearching: boolean;
30
+ checkingStartLinePos: number;
31
+ checkingEndLinePos: number;
32
+ }
33
33
 
34
34
  interface VisibleSearchConfig {
35
35
  searchDirect: number;
@@ -45,8 +45,7 @@ interface VisibleSearchConfig {
45
45
  firstEndLineBlockIdx: number;
46
46
  searchToBorder: boolean;
47
47
  common: VisibleSearchConfigCommon;
48
- };
49
-
48
+ }
50
49
 
51
50
  function left(item: TemplateItem) {
52
51
  return item.left;
@@ -63,16 +62,28 @@ function bottom(item: TemplateItem) {
63
62
 
64
63
  class CommonMetroTemplate extends MetroTemplate {
65
64
  private _FenceStack: Array<Fence>;
66
- private _FenceEdge: { StartX: number, StartY: number };
65
+ private _FenceEdge: { StartX: number; StartY: number };
67
66
  private _NotOccupiedEdgeList: Array<EdgeInfo>;
68
67
 
69
- constructor(direction: Symbol, lineMax: number, pageSize: number,
70
- layoutType: string, supportHistoryPath: boolean) {
71
- super(direction, lineMax, pageSize, layoutType, supportHistoryPath);
68
+ constructor(
69
+ direction: Symbol,
70
+ lineMax: number,
71
+ pageSize: number,
72
+ layoutType: string,
73
+ supportHistoryPath: boolean,
74
+ errorLogger: Function
75
+ ) {
76
+ super(
77
+ direction,
78
+ lineMax,
79
+ pageSize,
80
+ layoutType,
81
+ supportHistoryPath,
82
+ errorLogger
83
+ );
72
84
  this._FenceStack = [new Fence(0, 0, this.lineMax, 0)];
73
85
  this._FenceEdge = { StartX: 0, StartY: 0 }; // 新的未占用边列表生成
74
86
  this._NotOccupiedEdgeList = []; // 未占用边列表
75
-
76
87
  }
77
88
 
78
89
  public calculateNeighborWhenAddStop(): void {
@@ -140,8 +151,11 @@ class CommonMetroTemplate extends MetroTemplate {
140
151
  return found;
141
152
  }
142
153
 
143
-
144
- private _GetValidNeighborIndex(srcItemId: number, lastItemId: number, neighborDirection: string) {
154
+ private _GetValidNeighborIndex(
155
+ srcItemId: number,
156
+ lastItemId: number,
157
+ neighborDirection: string
158
+ ) {
145
159
  const templateList = this.templateList;
146
160
  let validId = -1;
147
161
  const item = templateList[lastItemId];
@@ -203,10 +217,9 @@ class CommonMetroTemplate extends MetroTemplate {
203
217
  (item.neighborIndexList as any)[direction].length > 0 &&
204
218
  !this._CheckIdsHasFocusable((item.neighborIndexList as any)[direction])
205
219
  ) {
206
- const lastItemId =
207
- (item.neighborIndexList as any)[direction][
220
+ const lastItemId = (item.neighborIndexList as any)[direction][
208
221
  (item.neighborIndexList as any)[direction].length - 1
209
- ];
222
+ ];
210
223
  const idx = this._GetValidNeighborIndex(item.id, lastItemId, direction); // 查找其左右邻居
211
224
  if (idx !== -1) {
212
225
  (item.neighborIndexList as any)[direction] = []; // 清除无效项
@@ -216,7 +229,7 @@ class CommonMetroTemplate extends MetroTemplate {
216
229
  }
217
230
 
218
231
  public addItemInner(itemObj: MeasureInfo): TemplateItem {
219
- const templateItem: any = MetroTemplate.getTemplateItem(itemObj);
232
+ const templateItem: any = this.getTemplateItem(itemObj);
220
233
  // Layout template items
221
234
  const fenceStack = this._FenceStack;
222
235
  const itemWidth = templateItem.width;
@@ -263,6 +276,7 @@ class CommonMetroTemplate extends MetroTemplate {
263
276
  itemKeyPos = gapInfo.GapStart;
264
277
  itemSecondPos = topFence.AheadOffset;
265
278
  } else {
279
+ this.errorLogger(TAG, "parse template error");
266
280
  throw new Error(
267
281
  `${TAG} item size ${itemWidth}x${itemHeight} is greater than widget line max ${this.lineMax}`
268
282
  );
@@ -305,8 +319,9 @@ class CommonMetroTemplate extends MetroTemplate {
305
319
  positionKey = "top";
306
320
  sizeKey = "height";
307
321
  }
308
- const curPageStart =
309
- (this.templateList as any)[curPageHeadIndex][positionKey];
322
+ const curPageStart = (this.templateList as any)[curPageHeadIndex][
323
+ positionKey
324
+ ];
310
325
  if (
311
326
  templateItem[positionKey] + templateItem[sizeKey] >
312
327
  curPageStart + this.pageSize
@@ -328,10 +343,14 @@ class CommonMetroTemplate extends MetroTemplate {
328
343
  let pre: number, cur: number;
329
344
  if (this.direction === VERTICAL) {
330
345
  cur = templateItem.height + templateItem.top;
331
- pre = this.templateList[this.tailItemIndex].height + this.templateList[this.tailItemIndex].top;
346
+ pre =
347
+ this.templateList[this.tailItemIndex].height +
348
+ this.templateList[this.tailItemIndex].top;
332
349
  } else {
333
350
  cur = templateItem.width + templateItem.left;
334
- pre = this.templateList[this.tailItemIndex].width + this.templateList[this.tailItemIndex].left;
351
+ pre =
352
+ this.templateList[this.tailItemIndex].width +
353
+ this.templateList[this.tailItemIndex].left;
335
354
  }
336
355
  if (cur >= pre) {
337
356
  this.tailItemIndex = templateItem.index;
@@ -407,8 +426,12 @@ class CommonMetroTemplate extends MetroTemplate {
407
426
  }
408
427
 
409
428
  /** get next item functions */
410
- public getNextItem(baseId: number, vOffset: number,
411
- hOffset: number, moveType: number): TemplateItem | null {
429
+ public getNextItem(
430
+ baseId: number,
431
+ vOffset: number,
432
+ hOffset: number,
433
+ moveType: number
434
+ ): TemplateItem | null {
412
435
  if (vOffset === 0 && hOffset === 0)
413
436
  console.log("GetNextItem(): offset is 0");
414
437
  // Forge.ThrowError("GetNextItem(): offset is 0");
@@ -436,11 +459,7 @@ class CommonMetroTemplate extends MetroTemplate {
436
459
 
437
460
  if (nextTemplateItem === null) {
438
461
  // 在次方向的焦点移动才会loop
439
- if (
440
- isVertical &&
441
- moveType & FocusMoveType.ROW_LOOP &&
442
- hOffset != 0
443
- ) {
462
+ if (isVertical && moveType & FocusMoveType.ROW_LOOP && hOffset != 0) {
444
463
  nextTemplateItem = this._GetNextLoopItem(
445
464
  itemIndex,
446
465
  hOffset,
@@ -459,19 +478,19 @@ class CommonMetroTemplate extends MetroTemplate {
459
478
  }
460
479
  }
461
480
 
462
- if (
463
- vOffset != 0 &&
464
- moveType & FocusMoveType.ROW_FIND_NEAR
465
- ) {
466
- let rowNear = this._GetDirectionNearItem(itemIndex, vOffset > 0 ? "bottom" : "top");
481
+ if (vOffset != 0 && moveType & FocusMoveType.ROW_FIND_NEAR) {
482
+ let rowNear = this._GetDirectionNearItem(
483
+ itemIndex,
484
+ vOffset > 0 ? "bottom" : "top"
485
+ );
467
486
  if (rowNear) {
468
487
  nextTemplateItem = rowNear;
469
488
  }
470
- } else if (
471
- hOffset != 0 &&
472
- moveType & FocusMoveType.COLUMN_FIND_NEAR
473
- ) {
474
- let colNear = this._GetDirectionNearItem(itemIndex, hOffset > 0 ? "right" : "left");
489
+ } else if (hOffset != 0 && moveType & FocusMoveType.COLUMN_FIND_NEAR) {
490
+ let colNear = this._GetDirectionNearItem(
491
+ itemIndex,
492
+ hOffset > 0 ? "right" : "left"
493
+ );
475
494
  if (colNear) {
476
495
  nextTemplateItem = colNear;
477
496
  }
@@ -480,25 +499,36 @@ class CommonMetroTemplate extends MetroTemplate {
480
499
  return nextTemplateItem;
481
500
  }
482
501
 
483
- private _GetDirectionNearItem(index: number, direction: string, mustFocusable: boolean = true) {
502
+ private _GetDirectionNearItem(
503
+ index: number,
504
+ direction: string,
505
+ mustFocusable: boolean = true
506
+ ) {
484
507
  const SEARCH_RANGE = 100;
485
508
  let searchMin = Math.max(0, index - SEARCH_RANGE);
486
- let searchMax = Math.min(this.templateList.length - 1, index + SEARCH_RANGE);
509
+ let searchMax = Math.min(
510
+ this.templateList.length - 1,
511
+ index + SEARCH_RANGE
512
+ );
487
513
  let targetItem = this.templateList[index];
488
514
  let tl = left(targetItem);
489
515
  let tr = right(targetItem);
490
516
  let tt = top(targetItem);
491
517
  let tb = bottom(targetItem);
492
518
  let info: {
493
- item: TemplateItem | null,
494
- minMainDistance: number,
495
- minSubDistance: number,
519
+ item: TemplateItem | null;
520
+ minMainDistance: number;
521
+ minSubDistance: number;
496
522
  } = {
497
523
  item: null,
498
524
  minMainDistance: -1,
499
525
  minSubDistance: -1,
500
526
  };
501
- const compare = (item: TemplateItem, getMainDistance: (i: TemplateItem) => number, getSubDistance: (i: TemplateItem) => number) => {
527
+ const compare = (
528
+ item: TemplateItem,
529
+ getMainDistance: (i: TemplateItem) => number,
530
+ getSubDistance: (i: TemplateItem) => number
531
+ ) => {
502
532
  if (mustFocusable && !item.focusable) return;
503
533
  const mainDistance = getMainDistance(item);
504
534
  if (mainDistance <= 0) return;
@@ -507,11 +537,14 @@ class CommonMetroTemplate extends MetroTemplate {
507
537
  info.minMainDistance = mainDistance;
508
538
  info.minSubDistance = subDistance;
509
539
  info.item = item;
510
- } else if (mainDistance === info.minMainDistance && subDistance < info.minSubDistance) {
540
+ } else if (
541
+ mainDistance === info.minMainDistance &&
542
+ subDistance < info.minSubDistance
543
+ ) {
511
544
  info.minSubDistance = subDistance;
512
545
  info.item = item;
513
546
  }
514
- }
547
+ };
515
548
 
516
549
  for (let i = searchMin; i <= searchMax; i++) {
517
550
  const item = this.templateList[i];
@@ -519,37 +552,83 @@ class CommonMetroTemplate extends MetroTemplate {
519
552
  let ir = right(item);
520
553
  let it = top(item);
521
554
  let ib = bottom(item);
522
- switch(direction) {
555
+ switch (direction) {
523
556
  case "left":
524
- compare(item,
525
- (item) => {return tl - il},
557
+ compare(
558
+ item,
559
+ (item) => {
560
+ return tl - il;
561
+ },
526
562
  (item) => {
527
- return Math.min(Math.abs(tt - it), Math.abs(tb - ib), Math.abs(tt - ib), Math.abs(tb - it));
528
- });
563
+ return Math.min(
564
+ Math.abs(tt - it),
565
+ Math.abs(tb - ib),
566
+ Math.abs(tt - ib),
567
+ Math.abs(tb - it)
568
+ );
569
+ }
570
+ );
529
571
  break;
530
572
  case "right":
531
- compare(item,
532
- (item) => {return ir - tr},
533
- (item) => {return Math.min(Math.abs(tt - it), Math.abs(tb - ib), Math.abs(tt - ib), Math.abs(tb - it));});
573
+ compare(
574
+ item,
575
+ (item) => {
576
+ return ir - tr;
577
+ },
578
+ (item) => {
579
+ return Math.min(
580
+ Math.abs(tt - it),
581
+ Math.abs(tb - ib),
582
+ Math.abs(tt - ib),
583
+ Math.abs(tb - it)
584
+ );
585
+ }
586
+ );
534
587
  break;
535
588
  case "top":
536
- compare(item,
537
- (item) => {return tt - it},
538
- (item) => {return Math.min(Math.abs(tl - il), Math.abs(tr - ir), Math.abs(tl - ir), Math.abs(tr - il));});
589
+ compare(
590
+ item,
591
+ (item) => {
592
+ return tt - it;
593
+ },
594
+ (item) => {
595
+ return Math.min(
596
+ Math.abs(tl - il),
597
+ Math.abs(tr - ir),
598
+ Math.abs(tl - ir),
599
+ Math.abs(tr - il)
600
+ );
601
+ }
602
+ );
539
603
  break;
540
604
  case "bottom":
541
- compare(item,
542
- (item) => {return ib - tb},
543
- (item) => {return Math.min(Math.abs(tl - il), Math.abs(tr - ir), Math.abs(tl - ir), Math.abs(tr - il));});
605
+ compare(
606
+ item,
607
+ (item) => {
608
+ return ib - tb;
609
+ },
610
+ (item) => {
611
+ return Math.min(
612
+ Math.abs(tl - il),
613
+ Math.abs(tr - ir),
614
+ Math.abs(tl - ir),
615
+ Math.abs(tr - il)
616
+ );
617
+ }
618
+ );
544
619
  break;
545
620
  }
546
621
  }
547
622
  return info.item;
548
623
  }
549
624
 
550
-
551
- private getNextItemInner(index: number, offset: number,
552
- vertical: boolean, useHistory: boolean, checkAnchor: number = -1): any {
625
+ private getNextItemInner(
626
+ index: number,
627
+ offset: number,
628
+ vertical: boolean,
629
+ useHistory: boolean,
630
+ checkAnchor: number = -1
631
+ ): any {
553
632
  const templateList: any = this.templateList;
554
633
  const baseItem = templateList[index];
555
634
  if (checkAnchor < 0) {
@@ -563,14 +642,14 @@ class CommonMetroTemplate extends MetroTemplate {
563
642
  checkAnchor =
564
643
  baseItem.left +
565
644
  baseItem.findNextAnchor.bottom *
566
- (baseItem.width + baseItem.marginRight);
645
+ (baseItem.width + baseItem.marginRight);
567
646
  }
568
647
  } else {
569
648
  if (baseItem.findNextAnchor.top) {
570
649
  checkAnchor =
571
650
  baseItem.left +
572
651
  baseItem.findNextAnchor.top *
573
- (baseItem.width + baseItem.marginRight);
652
+ (baseItem.width + baseItem.marginRight);
574
653
  }
575
654
  }
576
655
  } else {
@@ -579,14 +658,14 @@ class CommonMetroTemplate extends MetroTemplate {
579
658
  checkAnchor =
580
659
  baseItem.top +
581
660
  baseItem.findNextAnchor.right *
582
- (baseItem.height + baseItem.marginBottom);
661
+ (baseItem.height + baseItem.marginBottom);
583
662
  }
584
663
  } else {
585
664
  if (baseItem.findNextAnchor.left) {
586
665
  checkAnchor =
587
666
  baseItem.top +
588
667
  baseItem.findNextAnchor.left *
589
- (baseItem.height + baseItem.marginBottom);
668
+ (baseItem.height + baseItem.marginBottom);
590
669
  }
591
670
  }
592
671
  }
@@ -597,9 +676,15 @@ class CommonMetroTemplate extends MetroTemplate {
597
676
  } else {
598
677
  // checkAncher可能在baseItem的范围之外, 将其调整至自身范围内
599
678
  if (vertical) {
600
- checkAnchor = Math.max(Math.min(checkAnchor, baseItem.left + baseItem.width - 1), baseItem.left)
679
+ checkAnchor = Math.max(
680
+ Math.min(checkAnchor, baseItem.left + baseItem.width - 1),
681
+ baseItem.left
682
+ );
601
683
  } else {
602
- checkAnchor = Math.max(Math.min(checkAnchor, baseItem.top + baseItem.height - 1), baseItem.top)
684
+ checkAnchor = Math.max(
685
+ Math.min(checkAnchor, baseItem.top + baseItem.height - 1),
686
+ baseItem.top
687
+ );
603
688
  }
604
689
  }
605
690
 
@@ -656,8 +741,7 @@ class CommonMetroTemplate extends MetroTemplate {
656
741
  nextIndex = neighborList[i];
657
742
  const checkingItem = templateList[nextIndex];
658
743
  if (
659
- checkAnchor <=
660
- checkingItem[posKey] + checkingItem[sizeKey] - 1 &&
744
+ checkAnchor <= checkingItem[posKey] + checkingItem[sizeKey] - 1 &&
661
745
  checkAnchor >= checkingItem[posKey]
662
746
  ) {
663
747
  if (
@@ -667,8 +751,7 @@ class CommonMetroTemplate extends MetroTemplate {
667
751
  ) {
668
752
  // horizontal lastItemIndex bottom 不记历史路径
669
753
  templateList[index].pathHistory[direction] = nextIndex; // 更新历史路径
670
- templateList[nextIndex].pathHistory[pathHistoryDirection] =
671
- index; // 更新历史路径
754
+ templateList[nextIndex].pathHistory[pathHistoryDirection] = index; // 更新历史路径
672
755
  }
673
756
  found = true;
674
757
  break;
@@ -715,7 +798,13 @@ class CommonMetroTemplate extends MetroTemplate {
715
798
  if (found) {
716
799
  if (!templateList[nextIndex].focusable) {
717
800
  // 如果是占位符,则查找占位符的下一个
718
- return this.getNextItemInner(nextIndex, offset, vertical, false, checkAnchor);
801
+ return this.getNextItemInner(
802
+ nextIndex,
803
+ offset,
804
+ vertical,
805
+ false,
806
+ checkAnchor
807
+ );
719
808
  }
720
809
  return templateList[nextIndex];
721
810
  }
@@ -736,7 +825,10 @@ class CommonMetroTemplate extends MetroTemplate {
736
825
  );
737
826
  }
738
827
 
739
- private _GetNearestItem(targetItemIndex: number, itemIndexList: Array<number>) {
828
+ private _GetNearestItem(
829
+ targetItemIndex: number,
830
+ itemIndexList: Array<number>
831
+ ) {
740
832
  let nearestIndex = -1,
741
833
  minDistance = Number.POSITIVE_INFINITY;
742
834
  let targetItem = this.templateList[targetItemIndex];
@@ -750,23 +842,34 @@ class CommonMetroTemplate extends MetroTemplate {
750
842
  return nearestIndex;
751
843
  }
752
844
 
753
- private _FindNearestByDirection(itemIndexList: Array<number>, direction: string) {
845
+ private _FindNearestByDirection(
846
+ itemIndexList: Array<number>,
847
+ direction: string
848
+ ) {
754
849
  return itemIndexList.reduce((acc, cur) => {
755
850
  const curItem = this.templateList[cur];
756
851
  const accItem = this.templateList[acc];
757
- if(direction == "left") {
852
+ if (direction == "left") {
758
853
  return curItem.left < accItem.left ? cur : acc;
759
854
  } else if (direction == "right") {
760
- return curItem.left + curItem.width > accItem.left + accItem.width ? cur : acc;
855
+ return curItem.left + curItem.width > accItem.left + accItem.width
856
+ ? cur
857
+ : acc;
761
858
  } else if (direction == "top") {
762
859
  return curItem.top < accItem.top ? cur : acc;
763
860
  } else {
764
- return curItem.top + curItem.height > accItem.top + accItem.height ? cur : acc;
861
+ return curItem.top + curItem.height > accItem.top + accItem.height
862
+ ? cur
863
+ : acc;
765
864
  }
766
865
  }, itemIndexList[0]);
767
866
  }
768
867
 
769
- private _GetNextLoopItem(index: number, offset: number, isVertical: boolean): TemplateItem | null {
868
+ private _GetNextLoopItem(
869
+ index: number,
870
+ offset: number,
871
+ isVertical: boolean
872
+ ): TemplateItem | null {
770
873
  const templateList = this.templateList;
771
874
  const baseItem = templateList[index];
772
875
  let searchDirection = isVertical ? "right" : "bottom";
@@ -782,7 +885,10 @@ class CommonMetroTemplate extends MetroTemplate {
782
885
  //目前的算法针对规整的列表, 瀑布流这种不对齐, 以及列表中存在非focusable项, 行为不可控
783
886
 
784
887
  let curIndex = index;
785
- let nextLevelNeighborList = this._GetTotalNeighbor(curIndex, startDirection);
888
+ let nextLevelNeighborList = this._GetTotalNeighbor(
889
+ curIndex,
890
+ startDirection
891
+ );
786
892
  while (!nextLevelNeighborList || nextLevelNeighborList.length == 0) {
787
893
  //查询同级的邻居
788
894
  const sameLevelList = this._GetTotalNeighbor(curIndex, searchDirection);
@@ -821,105 +927,63 @@ class CommonMetroTemplate extends MetroTemplate {
821
927
  return focusableTarget >= 0 ? templateList[focusableTarget] : null;
822
928
  }
823
929
 
824
- public updateItemSize(index: number, newSize: { width: number, height: number }): void {
825
- console.error(TAG, "updateItemSize is not supported.");
930
+ public updateItemSize(
931
+ index: number,
932
+ newSize: { width: number; height: number }
933
+ ): void {
934
+ this.errorLogger(TAG, "updateItemSize is not supported.");
826
935
  }
827
936
 
828
937
  static intersects(s0: number, e0: number, s1: number, e1: number): boolean {
829
938
  return s0 <= e1 && s1 <= e0;
830
939
  }
831
940
 
832
- static iterCount = 0;
833
-
834
941
  /** get visible item list functions */
835
942
  public getVisibleItemList(
836
943
  visibleStart: number,
837
944
  visibleEnd: number,
838
- baseId: number): [number, number] {
839
- if (visibleStart > visibleEnd || this.templateList.length == 0) {
840
- // No visible item
945
+ _baseId: number
946
+ ): [number, number] {
947
+ // _baseId 与抽象接口保持一致;可视判定改为主轴线性扫描,不再依赖邻居图连通性
948
+ if (visibleStart > visibleEnd || this.templateList.length === 0) {
841
949
  return [-1, -1];
842
950
  }
843
951
 
844
952
  visibleStart = Math.round(visibleStart);
845
953
  visibleEnd = Math.round(visibleEnd);
846
- let searchBaseItemIdx = this.id2Index(baseId);
847
- if (searchBaseItemIdx < 0) searchBaseItemIdx = 0;
848
954
  const vertical = this.direction === VERTICAL;
849
955
  const sizeKey = vertical ? "height" : "width";
850
- const posKey = vertical ? "top" : "left"
851
-
852
- const visible = (s: number, e: number) => {
853
- return CommonMetroTemplate.intersects(visibleStart, visibleEnd, s, e);
854
- }
855
-
856
- let baseItem = this.templateList[searchBaseItemIdx];
857
-
858
- //寻找首个在范围内的item
859
- let startIndex = 0, endIndex = this.templateList.length - 1;
860
-
861
- while (baseItem && !visible(baseItem[posKey], baseItem[posKey] + baseItem[sizeKey])) {
862
- if (baseItem[posKey] < visibleStart) {
863
- startIndex = baseItem.index;
864
- } else {
865
- endIndex = baseItem.index;
866
- }
867
- if (Math.abs(startIndex - endIndex) <= 1) {
868
- const startItem = this.templateList[startIndex];
869
- const endItem = this.templateList[endIndex];
870
- if (visible(startItem[posKey], startItem[posKey] + startItem[sizeKey])) {
871
- baseItem = startItem;
872
- break;
873
- } else if (visible(endItem[posKey], endItem[posKey] + endItem[sizeKey])) {
874
- baseItem = endItem;
875
- break;
876
- } else {
877
- const tailItem = this.templateList[this.getTailItemIndex()];
878
- let tailInfo: any = null;
879
- if (tailItem) {
880
- tailInfo = {
881
- left: tailItem.left,
882
- top: tailItem.top,
883
- width: tailItem.width,
884
- height: tailItem.height,
885
- }
886
- }
887
- console.log("MetroWidget: can not find visible item", visibleStart, visibleEnd, tailInfo);
888
- return [-1, -1];
956
+ const posKey = vertical ? "top" : "left";
957
+
958
+ let minIdx = -1;
959
+ let maxIdx = -1;
960
+ const list = this.templateList;
961
+ for (let i = 0; i < list.length; i++) {
962
+ const item = list[i];
963
+ const s = item[posKey];
964
+ const e = s + item[sizeKey];
965
+ if (CommonMetroTemplate.intersects(visibleStart, visibleEnd, s, e)) {
966
+ const idx = item.index;
967
+ if (minIdx < 0 || idx < minIdx) {
968
+ minIdx = idx;
889
969
  }
890
- } else {
891
- baseItem = this.templateList[Math.round((startIndex + endIndex) / 2)];
892
- }
893
- }
894
-
895
- CommonMetroTemplate.iterCount = 0;
896
-
897
- let visibleItem: Set<number> = new Set();
898
- visibleItem.add(baseItem.index);
899
- const nKeys = ["left", "top", "bottom", "right"];
900
- const addVisibleNeighbor = (targetItem: TemplateItem) => {
901
- for (let key of nKeys) {
902
- let n = this._GetTotalNeighbor(targetItem.index, key);
903
- if (n && n.length > 0) {
904
- for (let i of n) {
905
- let item = this.templateList[i];
906
- if (visible(item[posKey], item[posKey] + item[sizeKey]) && !visibleItem.has(i)) {
907
- visibleItem.add(i);
908
- addVisibleNeighbor(item);
909
- }
910
- }
970
+ if (maxIdx < 0 || idx > maxIdx) {
971
+ maxIdx = idx;
911
972
  }
912
973
  }
913
974
  }
914
- addVisibleNeighbor(baseItem);
915
- return [
916
- Math.min(...visibleItem),
917
- Math.max(...visibleItem),
918
- ]
975
+
976
+ return minIdx >= 0 ? [minIdx, maxIdx] : [-1, -1];
919
977
  }
920
978
 
921
979
  /** neighbor calculate functions */
922
- private _TryCalculateNeighborItem(index: number, xPos: number, yPos: number, width: number, height: number) {
980
+ private _TryCalculateNeighborItem(
981
+ index: number,
982
+ xPos: number,
983
+ yPos: number,
984
+ width: number,
985
+ height: number
986
+ ) {
923
987
  const curNotOccupiedEdge: EdgeInfo = {
924
988
  index,
925
989
  edgeObj: {
@@ -1011,7 +1075,8 @@ class CommonMetroTemplate extends MetroTemplate {
1011
1075
  // 临时邻居不触发fence edge
1012
1076
  // 超过fenceedge范围,不作为对比相
1013
1077
  if (
1014
- !tmpNeighbor && crossEdgeObj.bottomEdge != null &&
1078
+ !tmpNeighbor &&
1079
+ crossEdgeObj.bottomEdge != null &&
1015
1080
  crossEdgeObj.bottomEdge.position > this._FenceEdge.StartY
1016
1081
  ) {
1017
1082
  continue;
@@ -1026,7 +1091,8 @@ class CommonMetroTemplate extends MetroTemplate {
1026
1091
  // 临时邻居不触发fence edge
1027
1092
  // 超过fenceedge范围,不作为对比相
1028
1093
  if (
1029
- !tmpNeighbor && crossEdgeObj.rightEdge &&
1094
+ !tmpNeighbor &&
1095
+ crossEdgeObj.rightEdge &&
1030
1096
  crossEdgeObj.rightEdge.position > this._FenceEdge.StartX
1031
1097
  ) {
1032
1098
  continue;
@@ -1051,18 +1117,17 @@ class CommonMetroTemplate extends MetroTemplate {
1051
1117
  //更新每个方向找到的邻居
1052
1118
  if (neighbor[key] !== -1) {
1053
1119
  const targetItem = this._NotOccupiedEdgeList[neighbor[key]];
1054
- this._TryUpdateItemNeighbor(
1055
- tmpNeighbor,
1056
- key,
1057
- crossItem,
1058
- targetItem
1059
- );
1120
+ this._TryUpdateItemNeighbor(tmpNeighbor, key, crossItem, targetItem);
1060
1121
  }
1061
1122
  }
1062
1123
  }
1063
1124
  }
1064
1125
 
1065
- private _IfBlockedByOtherNeighbor(direction: string, crossItem: EdgeInfo, targetItem: EdgeInfo) {
1126
+ private _IfBlockedByOtherNeighbor(
1127
+ direction: string,
1128
+ crossItem: EdgeInfo,
1129
+ targetItem: EdgeInfo
1130
+ ) {
1066
1131
  //检查是否被其他neighbor遮挡
1067
1132
  let positionKey = "top";
1068
1133
  let sizeKey = "height";
@@ -1091,8 +1156,7 @@ class CommonMetroTemplate extends MetroTemplate {
1091
1156
 
1092
1157
  let valid = true;
1093
1158
  if (crossTemplateItem && targetTemplateItem) {
1094
- const crossNeighborList =
1095
- crossTemplateItem.neighborIndexList[direction];
1159
+ const crossNeighborList = crossTemplateItem.neighborIndexList[direction];
1096
1160
  const targetStart = targetTemplateItem[positionKey];
1097
1161
  const targetEnd = targetStart + targetTemplateItem[sizeKey] - 1;
1098
1162
  for (let i = crossNeighborList.length - 1; i >= 0; i--) {
@@ -1105,12 +1169,10 @@ class CommonMetroTemplate extends MetroTemplate {
1105
1169
  if (itemStart <= targetEnd && itemEnd >= targetStart) {
1106
1170
  //有重叠, 检查两个item那个离 cross item 更近
1107
1171
  if (
1108
- Math.abs(
1109
- item[subPositionKey] - crossTemplateItem[subPositionKey]
1110
- ) <
1172
+ Math.abs(item[subPositionKey] - crossTemplateItem[subPositionKey]) <
1111
1173
  Math.abs(
1112
1174
  targetTemplateItem[subPositionKey] -
1113
- crossTemplateItem[subPositionKey]
1175
+ crossTemplateItem[subPositionKey]
1114
1176
  )
1115
1177
  ) {
1116
1178
  //已有的neighbor更近
@@ -1126,7 +1188,11 @@ class CommonMetroTemplate extends MetroTemplate {
1126
1188
  return valid;
1127
1189
  }
1128
1190
 
1129
- private _CheckNeighborItemMatching(direction: string, crossItem: EdgeInfo, targetItem: EdgeInfo) {
1191
+ private _CheckNeighborItemMatching(
1192
+ direction: string,
1193
+ crossItem: EdgeInfo,
1194
+ targetItem: EdgeInfo
1195
+ ) {
1130
1196
  const crossEdgeObj: any = crossItem.edgeObj;
1131
1197
  const targetEdgeObj: any = targetItem.edgeObj;
1132
1198
  let targetEdgeName = "rightEdge";
@@ -1164,14 +1230,11 @@ class CommonMetroTemplate extends MetroTemplate {
1164
1230
  // targetEdgeObj[targetEdgeName].range.Clone().Ranges
1165
1231
  // );
1166
1232
 
1167
- const targetEdgeRangeClone =
1168
- targetEdgeObj[targetEdgeName].range.Clone();
1233
+ const targetEdgeRangeClone = targetEdgeObj[targetEdgeName].range.Clone();
1169
1234
  targetEdgeObj[targetEdgeName].range.ExcludeRanges(
1170
1235
  crossEdgeObj[crossEdgeName].range
1171
1236
  );
1172
- crossEdgeObj[crossEdgeName].range.ExcludeRanges(
1173
- targetEdgeRangeClone
1174
- );
1237
+ crossEdgeObj[crossEdgeName].range.ExcludeRanges(targetEdgeRangeClone);
1175
1238
 
1176
1239
  // console.log(
1177
1240
  // "cchtest after exclude",
@@ -1209,15 +1272,10 @@ class CommonMetroTemplate extends MetroTemplate {
1209
1272
  continue;
1210
1273
  }
1211
1274
  // 左边最近项
1212
- if (
1213
- crossEdgeObj.leftEdge !== null &&
1214
- targetEdgeObj.rightEdge !== null
1215
- ) {
1275
+ if (crossEdgeObj.leftEdge !== null && targetEdgeObj.rightEdge !== null) {
1216
1276
  if (
1217
1277
  crossEdgeObj.leftEdge.position >= targetEdgeObj.rightEdge.position &&
1218
- crossEdgeObj.leftEdge.range.IsInterAct(
1219
- targetEdgeObj.rightEdge.range
1220
- )
1278
+ crossEdgeObj.leftEdge.range.IsInterAct(targetEdgeObj.rightEdge.range)
1221
1279
  ) {
1222
1280
  // 在其左侧,且有交叉,才为neighbor
1223
1281
  // 计算最短距离
@@ -1238,15 +1296,10 @@ class CommonMetroTemplate extends MetroTemplate {
1238
1296
  }
1239
1297
  }
1240
1298
  // 右边最近项
1241
- if (
1242
- crossEdgeObj.rightEdge !== null &&
1243
- targetEdgeObj.leftEdge !== null
1244
- ) {
1299
+ if (crossEdgeObj.rightEdge !== null && targetEdgeObj.leftEdge !== null) {
1245
1300
  if (
1246
1301
  crossEdgeObj.rightEdge.position <= targetEdgeObj.leftEdge.position &&
1247
- crossEdgeObj.rightEdge.range.IsInterAct(
1248
- targetEdgeObj.leftEdge.range
1249
- )
1302
+ crossEdgeObj.rightEdge.range.IsInterAct(targetEdgeObj.leftEdge.range)
1250
1303
  ) {
1251
1304
  // 在其左侧,且有交叉,才为neighbor
1252
1305
  // 计算最短距离
@@ -1268,15 +1321,10 @@ class CommonMetroTemplate extends MetroTemplate {
1268
1321
  }
1269
1322
 
1270
1323
  // 上边最近项
1271
- if (
1272
- crossEdgeObj.topEdge !== null &&
1273
- targetEdgeObj.bottomEdge !== null
1274
- ) {
1324
+ if (crossEdgeObj.topEdge !== null && targetEdgeObj.bottomEdge !== null) {
1275
1325
  if (
1276
1326
  crossEdgeObj.topEdge.position >= targetEdgeObj.bottomEdge.position &&
1277
- crossEdgeObj.topEdge.range.IsInterAct(
1278
- targetEdgeObj.bottomEdge.range
1279
- )
1327
+ crossEdgeObj.topEdge.range.IsInterAct(targetEdgeObj.bottomEdge.range)
1280
1328
  ) {
1281
1329
  // 在其左侧,且有交叉,才为neighbor
1282
1330
  // 计算最短距离
@@ -1297,15 +1345,10 @@ class CommonMetroTemplate extends MetroTemplate {
1297
1345
  }
1298
1346
  }
1299
1347
  // 下边的最近项
1300
- if (
1301
- crossEdgeObj.bottomEdge !== null &&
1302
- targetEdgeObj.topEdge !== null
1303
- ) {
1348
+ if (crossEdgeObj.bottomEdge !== null && targetEdgeObj.topEdge !== null) {
1304
1349
  if (
1305
1350
  crossEdgeObj.bottomEdge.position <= targetEdgeObj.topEdge.position &&
1306
- crossEdgeObj.bottomEdge.range.IsInterAct(
1307
- targetEdgeObj.topEdge.range
1308
- )
1351
+ crossEdgeObj.bottomEdge.range.IsInterAct(targetEdgeObj.topEdge.range)
1309
1352
  ) {
1310
1353
  // 在其左侧,且有交叉,才为neighbor
1311
1354
  // 计算最短距离
@@ -1335,7 +1378,12 @@ class CommonMetroTemplate extends MetroTemplate {
1335
1378
  };
1336
1379
  }
1337
1380
 
1338
- private _TryUpdateItemNeighbor(tmpNeighbor: boolean, direction: string, crossItem: EdgeInfo, targetItem: EdgeInfo) {
1381
+ private _TryUpdateItemNeighbor(
1382
+ tmpNeighbor: boolean,
1383
+ direction: string,
1384
+ crossItem: EdgeInfo,
1385
+ targetItem: EdgeInfo
1386
+ ) {
1339
1387
  const keyMap: any = {
1340
1388
  target: {
1341
1389
  left: "right",
@@ -1353,7 +1401,10 @@ class CommonMetroTemplate extends MetroTemplate {
1353
1401
  let crossNeighborKey = keyMap.cross[direction];
1354
1402
  let targetNeighborKey = keyMap.target[direction];
1355
1403
  if (!crossNeighborKey || !targetNeighborKey) {
1356
- console.error("_TryUpdateItemNeighbor: undefined direction", direction);
1404
+ this.errorLogger(
1405
+ "_TryUpdateItemNeighbor: undefined direction",
1406
+ direction
1407
+ );
1357
1408
  }
1358
1409
 
1359
1410
  const targetIndex = targetItem.index;
@@ -1366,24 +1417,72 @@ class CommonMetroTemplate extends MetroTemplate {
1366
1417
  templateList[targetIndex].neighborIndexList[targetNeighborKey].push(
1367
1418
  crossItemIndex
1368
1419
  );
1369
- templateList[crossItemIndex].neighborIndexList[
1370
- crossNeighborKey
1371
- ].push(targetIndex);
1372
- templateList[targetIndex].tmpNeighborIndexList[targetNeighborKey] =
1420
+ templateList[crossItemIndex].neighborIndexList[crossNeighborKey].push(
1421
+ targetIndex
1422
+ );
1423
+ templateList[targetIndex].tmpNeighborIndexList[targetNeighborKey] = [];
1424
+ templateList[crossItemIndex].tmpNeighborIndexList[crossNeighborKey] =
1373
1425
  [];
1374
- templateList[crossItemIndex].tmpNeighborIndexList[
1375
- crossNeighborKey
1376
- ] = [];
1377
1426
  } else {
1378
- templateList[targetIndex].tmpNeighborIndexList[
1379
- targetNeighborKey
1380
- ].push(crossItemIndex);
1427
+ templateList[targetIndex].tmpNeighborIndexList[targetNeighborKey].push(
1428
+ crossItemIndex
1429
+ );
1381
1430
  templateList[crossItemIndex].tmpNeighborIndexList[
1382
1431
  crossNeighborKey
1383
1432
  ].push(targetIndex);
1384
1433
  }
1385
1434
  }
1386
1435
  }
1436
+
1437
+ public removeItemTo(index: number): void {
1438
+ if (index < 0 || index >= this.templateList.length) {
1439
+ return;
1440
+ }
1441
+ this.templateList.splice(index);
1442
+ //TODO 删除时需要计算fence和neighbor,这里通过一个新的对象重新计算来实现
1443
+ const tmpMetroTemplate = new CommonMetroTemplate(
1444
+ this.direction,
1445
+ this.lineMax,
1446
+ this.pageSize,
1447
+ this.layoutType,
1448
+ this.supportHistoryPath,
1449
+ this.errorLogger
1450
+ );
1451
+ for (let i of this.templateList) {
1452
+ tmpMetroTemplate.addItemInner(i);
1453
+ }
1454
+ tmpMetroTemplate.calculateNeighborWhenAddStop();
1455
+
1456
+ this._FenceStack = tmpMetroTemplate._FenceStack;
1457
+ this._FenceEdge = tmpMetroTemplate._FenceEdge;
1458
+ this._NotOccupiedEdgeList = tmpMetroTemplate._NotOccupiedEdgeList;
1459
+ //更新邻居信息
1460
+ for (let i of this.templateList) {
1461
+ i.neighborIndexList =
1462
+ tmpMetroTemplate.templateList[i.index].neighborIndexList;
1463
+ i.tmpNeighborIndexList =
1464
+ tmpMetroTemplate.templateList[i.index].tmpNeighborIndexList;
1465
+ i.pathHistory.left =
1466
+ i.pathHistory.left >= index ? -1 : i.pathHistory.left;
1467
+ i.pathHistory.right =
1468
+ i.pathHistory.right >= index ? -1 : i.pathHistory.right;
1469
+ i.pathHistory.top = i.pathHistory.top >= index ? -1 : i.pathHistory.top;
1470
+ i.pathHistory.bottom =
1471
+ i.pathHistory.bottom >= index ? -1 : i.pathHistory.bottom;
1472
+ }
1473
+ //更新idsMap
1474
+ for (let i = this.idsMap.length - 1; i >= 0; --i) {
1475
+ if (this.idsMap[i] >= index) {
1476
+ this.idsMap.splice(i, 1);
1477
+ }
1478
+ }
1479
+ this.tailItemIndex = this.templateList.length - 1;
1480
+ for (let uid in this.uidMap) {
1481
+ if ((this.uidMap as any)[uid].index >= index) {
1482
+ delete (this.uidMap as any)[uid];
1483
+ }
1484
+ }
1485
+ }
1387
1486
  }
1388
1487
 
1389
- export { CommonMetroTemplate };
1488
+ export { CommonMetroTemplate };