@shijiu/jsview-vue 2.1.200 → 2.1.340-test.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 (120) hide show
  1. package/bin/browser/BrowserApic.vue.mjs +124 -0
  2. package/bin/browser/BrowserApic2.vue.mjs +118 -0
  3. package/bin/browser/BrowserApicLib.mjs +424 -0
  4. package/bin/browser/BrowserAudio.vue.mjs +263 -0
  5. package/bin/browser/BrowserJsvLatex.vue.mjs +110 -0
  6. package/bin/browser/BrowserJsvPlayer.vue.mjs +573 -0
  7. package/bin/browser/BrowserPreload.vue.mjs +154 -0
  8. package/bin/browser/BrowserQrcode.vue.mjs +178 -0
  9. package/bin/browser/BrowserSpray.vue.mjs +66 -0
  10. package/bin/browser/BrowserTextureAnim.vue.mjs +324 -0
  11. package/bin/export-sfc.mjs +12 -0
  12. package/bin/jsview-common.mjs +39 -0
  13. package/bin/jsview-vue.mjs +21106 -0
  14. package/index.js +3 -4
  15. package/package.json +1 -2
  16. package/tools/config/rollup.config.mjs +52 -0
  17. package/tools/config/tsconfig.json +18 -0
  18. package/tools/config/vite.config.ts +60 -0
  19. package/tools/jsview-vue-build.mjs +125 -0
  20. package/utils/JsViewEngineWidget/{JsvFocusBlock.vue → JsvFocus/JsvFocusBlock.vue} +11 -11
  21. package/utils/JsViewEngineWidget/{JsvFocusHub.ts → JsvFocus/JsvFocusHub.ts} +9 -3
  22. package/utils/JsViewEngineWidget/{JsvFocusManager.js → JsvFocus/JsvFocusManager.js} +6 -5
  23. package/utils/JsViewEngineWidget/MetroWidget/AnimationManager.ts +33 -10
  24. package/utils/JsViewEngineWidget/MetroWidget/ListWidget.vue +89 -57
  25. package/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue +118 -62
  26. package/utils/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.js +504 -60
  27. package/utils/JsViewEngineWidget/MetroWidget/RenderItem.ts +11 -1
  28. package/utils/JsViewEngineWidget/MetroWidget/SlotComponent.vue +13 -0
  29. package/utils/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.ts +1 -1
  30. package/utils/JsViewEngineWidget/TemplateParser/ListMetroTemplate.ts +1 -1
  31. package/utils/JsViewEngineWidget/TemplateParser/MetroTemplate.ts +34 -1
  32. package/utils/JsViewEngineWidget/TemplateParser/TemplateItemAdder.ts +52 -11
  33. package/utils/JsViewEngineWidget/index.js +3 -3
  34. package/utils/JsViewPlugin/JsvAudio/AudioProxy.js +9 -0
  35. package/utils/JsViewPlugin/JsvAudio/BrowserAudio/BrowserAudio.vue +11 -3
  36. package/utils/JsViewPlugin/JsvAudio/JsvAudio.vue +1 -0
  37. package/utils/JsViewPlugin/JsvAudio/JsvAudioBridgeProxy.js +8 -0
  38. package/utils/JsViewPlugin/JsvAudio/ScreenLockManager.js +16 -0
  39. package/utils/JsViewPlugin/JsvAudio/version.js +3 -3
  40. package/utils/JsViewPlugin/JsvAudio/version.mjs +3 -3
  41. package/utils/JsViewPlugin/JsvLatex/index.js +1 -1
  42. package/utils/JsViewPlugin/JsvPlayer/JsvPlayer.vue +1 -1
  43. package/utils/JsViewPlugin/JsvPlayer/index-0.9.js +3 -3
  44. package/utils/JsViewPlugin/JsvPlayer/index.js +2 -2
  45. package/utils/JsViewVueTools/DebugTool.js +2 -2
  46. package/utils/JsViewVueTools/DefaultKeyMap.js +1 -1
  47. package/utils/JsViewVueTools/JsvDynamicCssStyle.js +1 -1
  48. package/utils/JsViewVueTools/JsvDynamicKeyFrames.js +2 -2
  49. package/utils/JsViewVueTools/JsvImpactTracer.js +7 -7
  50. package/utils/JsViewVueTools/JsvPreDownloader.ts +1 -1
  51. package/utils/JsViewVueTools/JsvRefTaker.js +2 -1
  52. package/utils/JsViewVueTools/JsvRuntimeBridge.js +29 -29
  53. package/utils/JsViewVueTools/JsvStyleClass.js +3 -3
  54. package/utils/JsViewVueTools/JsvStyleSheetsDeclarer.js +1 -1
  55. package/utils/JsViewVueTools/JsvTextTools.js +4 -4
  56. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CanvasTexture.ts +29 -1
  57. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CommandList.ts +6 -5
  58. package/utils/JsViewVueTools/JsvTextureStore/JsvTextureStore.ts +60 -2
  59. package/utils/JsViewVueTools/NinePatchHelper.js +1 -1
  60. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +1 -1
  61. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +1 -1
  62. package/utils/JsViewVueWidget/JsvApic/{BrowserApic → JsvApic}/BrowserApic.vue +20 -23
  63. package/utils/JsViewVueWidget/JsvApic/{JsvApic.vue → JsvApic/JsvApic.vue} +3 -14
  64. package/utils/JsViewVueWidget/JsvApic/{index.js → JsvApic/index.js} +2 -4
  65. package/utils/JsViewVueWidget/JsvApic/JsvApic2/BrowserApic2.vue +116 -0
  66. package/utils/JsViewVueWidget/JsvApic/JsvApic2/JsvApic2.vue +137 -0
  67. package/utils/JsViewVueWidget/JsvApic/JsvApic2/index.js +17 -0
  68. package/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/BrowserApicLib.js +4 -0
  69. package/utils/JsViewVueWidget/JsvApic/{BrowserApic → JsvBrowserApicLib}/NormalLoopTool.js +16 -18
  70. package/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/PartLoopTool.js +90 -0
  71. package/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/SingleLoopTool.js +17 -0
  72. package/utils/JsViewVueWidget/JsvApic/JsvBrowserApicLib/Viewer.js +111 -0
  73. package/utils/JsViewVueWidget/JsvApic/JsvCommonLoopToolBase.js +48 -0
  74. package/utils/JsViewVueWidget/JsvConnectLine/ArcLineManager.js +71 -0
  75. package/utils/JsViewVueWidget/JsvConnectLine/JsvConnectLine.vue +354 -0
  76. package/utils/JsViewVueWidget/JsvConnectLine/index.js +2 -0
  77. package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.ts +37 -18
  78. package/utils/JsViewVueWidget/JsvFreeMoveActor/ForgeTypeDefine.ts +7 -3
  79. package/utils/JsViewVueWidget/JsvFreeMoveActor/FreeMoveActor.vue +28 -2
  80. package/utils/JsViewVueWidget/JsvFreeMoveActor/JsvEnvBlocker.vue +12 -5
  81. package/utils/JsViewVueWidget/JsvFreeMoveActor/NexusNode.ts +21 -0
  82. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.ts +47 -59
  83. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.ts +129 -12
  84. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.ts +45 -0
  85. package/utils/JsViewVueWidget/JsvFreeMoveActor/index.js +10 -2
  86. package/utils/JsViewVueWidget/JsvGrid.vue +1 -1
  87. package/utils/JsViewVueWidget/JsvHole.js +1 -1
  88. package/utils/JsViewVueWidget/JsvInput/JsvInput.vue +1 -1
  89. package/utils/JsViewVueWidget/JsvLine/JsvLine.vue +2 -2
  90. package/utils/JsViewVueWidget/JsvLine/LineManager.js +6 -4
  91. package/utils/JsViewVueWidget/JsvMarquee.vue +7 -4
  92. package/utils/JsViewVueWidget/JsvPieChart.vue +1 -1
  93. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +1 -1
  94. package/utils/JsViewVueWidget/JsvPreload/index.js +1 -1
  95. package/utils/JsViewVueWidget/JsvProgressBar.vue +172 -0
  96. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +0 -1
  97. package/utils/JsViewVueWidget/JsvQrcode/index.js +1 -1
  98. package/utils/JsViewVueWidget/JsvRadarChart.vue +1 -1
  99. package/utils/JsViewVueWidget/JsvScaleTextBox.vue +0 -2
  100. package/utils/JsViewVueWidget/JsvSector.vue +1 -1
  101. package/utils/JsViewVueWidget/JsvSoundPool.js +1 -1
  102. package/utils/JsViewVueWidget/JsvSpray/index.js +1 -1
  103. package/utils/JsViewVueWidget/JsvSpriteAnim/FrameBuidler.ts +235 -0
  104. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +433 -401
  105. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteLoader.vue +120 -0
  106. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +2 -2
  107. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +5 -5
  108. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +425 -422
  109. package/utils/JsViewVueWidget/JsvVisibleSensor/index.js +1 -1
  110. package/utils/JsViewVueWidget/index.js +7 -3
  111. package/utils/index.js +4 -0
  112. package/utils/JsViewVueWidget/JsvApic/BrowserApic/LoopToolBase.js +0 -25
  113. package/utils/JsViewVueWidget/JsvApic/BrowserApic/PartLoopTool.js +0 -119
  114. package/utils/JsViewVueWidget/JsvApic/BrowserApic/Viewer.js +0 -106
  115. /package/utils/JsViewPlugin/JsvLatex/{JsvLatexBrowser.vue → BrowserJsvLatex.vue} +0 -0
  116. /package/utils/JsViewPlugin/JsvPlayer/{JsvPlayerBrowser-0.9.vue → BrowserJsvPlayer-0.9.vue} +0 -0
  117. /package/utils/JsViewPlugin/JsvPlayer/{JsvPlayerBrowser.vue → BrowserJsvPlayer.vue} +0 -0
  118. /package/utils/JsViewVueWidget/JsvApic/{BrowserApic → JsvBrowserApicLib}/ApicDataBase.js +0 -0
  119. /package/utils/JsViewVueWidget/JsvApic/{BrowserApic → JsvBrowserApicLib}/GifData.js +0 -0
  120. /package/utils/JsViewVueWidget/JsvApic/{BrowserApic → JsvBrowserApicLib}/WebpData.js +0 -0
@@ -69,7 +69,8 @@
69
69
  METRO_WIDGET_CONST.ITEM_SLIDE.DISABLE 不滚动
70
70
  METRO_WIDGET_CONST.ITEM_SLIDE.ACT_ITEM_FOCUS 按照SlideSetting滚动
71
71
  METRO_WIDGET_CONST.ITEM_SLIDE.ACT_FOCUS_RECT_EVENT 按照子组件发送的focusRect事件滚动
72
- zIndex {int | object}: item的zIndex, 为object时可以分别设置{focus: 0, normal: 0}, 为number时则同时设置获焦和不获焦的zIndex
72
+ zIndex {int | object}: item的zIndex, 为object时可以分别设置{focus: 0, normal: 0}, 为number时则同时设置获焦和不获焦的zIndex,
73
+ uid {string}: item的uid, 可以通过uid来设置焦点
73
74
  }
74
75
  *
75
76
  * onFocus {function} 控件获取焦点的回调
@@ -83,7 +84,8 @@
83
84
  visibleStart: 可视区域的起点
84
85
  visibleRange: 可视区域大小(不含padding)
85
86
  totalSize: 所有item的总长
86
- *
87
+ * onFocusRectChange {() => void} 焦点区域变化的回调
88
+ * onAllItemResizeDone {() => void} 所有item resize完成的回调
87
89
  * loadAll {boolean} 加载不显示的view,触控场景使用
88
90
  * flingPageWidth {}
89
91
  * flingPageEdge {}
@@ -100,6 +102,10 @@
100
102
  @description 滚动到指定item
101
103
  @params {int} index 目标item的index, 注意与item的id区别, id是可获焦item的序号
102
104
  @params {boolean} doAnim 是否做动画
105
+ slideToDiv
106
+ @description 滚动到指定div, div必需是MetroWidget的子
107
+ @params {object} div 目标div
108
+ @params {boolean} doAnim 是否做动画
103
109
  setEnterFocusId
104
110
  @description 设置落焦时的焦点
105
111
  @params {int} id 落焦时的焦点id
@@ -124,8 +130,17 @@
124
130
  {
125
131
  lockChildSlideEvent: {boolean} 设置焦点时忽略子发过来的滚动事件
126
132
  }
133
+ setFocusByUid
134
+ @description 通过uid设置焦点
135
+ @params {int} id 焦点id
136
+ @params {boolean} needSlide 是否需要滚动
137
+ @params {boolean} doAnim 滚动时是否做动画
138
+ @params {object} extraSetting 额外的参数设置
139
+ {
140
+ lockChildSlideEvent: {boolean} 设置焦点时忽略子发过来的滚动事件
141
+ }
127
142
  refreshData
128
- @description 刷新数据, 只有存在provideData时才会生效
143
+ @description 刷新数据, 只有存在provideData时才会生效. refresh时对比的array里的object, 所以可以建一个新的array, 只要保证数据成员还是之前的那个object就行
129
144
  @params {boolean} forceUpdate 是否强制刷新
130
145
  getVisibleItems
131
146
  @description 获取可视item的列表信息
@@ -153,6 +168,14 @@
153
168
  @params {int} index: item的index
154
169
  @params {int} blurZIndex: blur状态下的zIndex
155
170
  @params {int} focusZIndex: focus状态下的zIndex, 缺省时采用blurZIndex相同的值
171
+ getTemplatePosition
172
+ @description 获取item的template位置
173
+ @params {int} index: item的index
174
+ @return {object} {left: number, top: number, width: number, height: number,}
175
+ lockSlide
176
+ @description 锁定滚动
177
+ unlockSlide
178
+ @description 取消锁定
156
179
 
157
180
  slots:
158
181
  renderItem: 该slot用于描画每个单元格
@@ -213,8 +236,9 @@
213
236
  -->
214
237
 
215
238
  <script setup>
216
- import { ref, shallowRef, computed } from "vue";
239
+ import { ref, shallowRef, computed, reactive } from "vue";
217
240
  import { setup } from "./MetroWidgetSetup";
241
+ import SlotComponent from "./SlotComponent.vue";
218
242
  import {
219
243
  VERTICAL,
220
244
  HORIZONTAL,
@@ -351,6 +375,16 @@ const props = defineProps({
351
375
  type: Boolean,
352
376
  default: false,
353
377
  },
378
+ onFocusRectChange: {
379
+ type: Function,
380
+ },
381
+ onAllItemResizeDone: {
382
+ type: Function,
383
+ },
384
+ // enableTouch: {
385
+ // type: Boolean,
386
+ // default: false,
387
+ // },
354
388
  });
355
389
 
356
390
  const renderBreakKey = props.enableItemRenderBreak ? RENDER_ITEM_BREAK_KEY : "";
@@ -363,6 +397,12 @@ const slideDivTop = ref(0);
363
397
  const focusNode = shallowRef(null);
364
398
  const pageUpdateToken = ref(0);
365
399
 
400
+ const touchDiv = shallowRef(null);
401
+ const touchDivSize = reactive({
402
+ width: 0,
403
+ height: 0,
404
+ });
405
+
366
406
  const normalizedPlaceHolder = computed(() => {
367
407
  return {
368
408
  gap: props.placeHolderSetting.gap ?? 0,
@@ -379,9 +419,12 @@ const {
379
419
  focusBlockOnFocus,
380
420
  focusBlockOnBlur,
381
421
  focusBlockOnKeyDown,
382
- focusBlockOnCustomerEvent,
422
+ focusBlockOnCustomEvent,
383
423
  _onFocusableItemEdge,
384
424
  exportObject,
425
+ onTouchDown,
426
+ onTouchRelease,
427
+ currentFocusIndex,
385
428
  } = setup(
386
429
  props,
387
430
  itemRender,
@@ -392,9 +435,10 @@ const {
392
435
  slideDivTop,
393
436
  focusNode,
394
437
  pageUpdateToken,
438
+ touchDiv,
439
+ touchDivSize,
395
440
  "common"
396
441
  );
397
-
398
442
  defineExpose(exportObject);
399
443
  </script>
400
444
 
@@ -423,67 +467,79 @@ defineExpose(exportObject);
423
467
  top: slideDivTop,
424
468
  }"
425
469
  >
426
- <div>
427
- <slot name="background"></slot>
428
- </div>
429
- <div ref="locateDiv">
430
- <jsv-focus-block
431
- ref="focusNode"
432
- :name="name"
433
- :onAction="{
434
- onFocus: focusBlockOnFocus,
435
- onBlur: focusBlockOnBlur,
436
- onKeyDown: focusBlockOnKeyDown,
437
- onCustomerEvent: focusBlockOnCustomerEvent,
438
- }"
439
- >
440
- <div
441
- v-for="(item, index) in renderData"
442
- :key="pageUpdateToken + '_' + item.index"
443
- :ref="item.divRef"
444
- :style="{
445
- left: item.templateInfo.left,
446
- top: item.templateInfo.top,
447
- width: item.templateInfo.width,
448
- height: item.templateInfo.height,
449
- zIndex: item.renderStyle.zIndex,
470
+ <div
471
+ ref="touchDiv"
472
+ :style="{
473
+ width: touchDivSize.width,
474
+ height: touchDivSize.height,
475
+ }"
476
+ @jsv-touchend="onTouchRelease"
477
+ >
478
+ <div>
479
+ <slot name="background"></slot>
480
+ </div>
481
+ <div ref="locateDiv">
482
+ <jsv-focus-block
483
+ ref="focusNode"
484
+ :name="name"
485
+ :onAction="{
486
+ onFocus: focusBlockOnFocus,
487
+ onBlur: focusBlockOnBlur,
488
+ onKeyDown: focusBlockOnKeyDown,
489
+ onCustomEvent: focusBlockOnCustomEvent,
450
490
  }"
451
491
  >
452
492
  <div
453
- v-if="
454
- !enableItemRenderBreak || item.mounted.value || itemRender
455
- "
456
- :key="renderBreakKey"
457
- :ref="item.slotRef"
458
- :id="`${name}_${index}`"
459
- >
460
- <slot
461
- name="renderItem"
462
- :data="item.customerData"
463
- :onEdge="_onFocusableItemEdge"
464
- :onAction="item.registerObj"
465
- :query="item.query"
466
- :onItemEdge="_onFocusableItemEdge"
467
- ></slot>
468
- </div>
469
- <div
470
- v-if="
471
- enableItemRenderBreak &&
472
- placeHolderSetting &&
473
- !item.mounted.value
474
- "
493
+ v-for="(item, index) in renderData"
494
+ :key="pageUpdateToken + '_' + item.index"
495
+ :ref="item.divRef"
475
496
  :style="{
476
- width: item.renderStyle.width - normalizedPlaceHolder.gap,
477
- height: item.renderStyle.height - normalizedPlaceHolder.gap,
478
- backgroundColor:
479
- exportObject.getCurrentFocusIndex() == item.index
480
- ? normalizedPlaceHolder.focusBackgroundColor
481
- : normalizedPlaceHolder.backgroundColor,
482
- borderRadius: normalizedPlaceHolder.borderRadius,
497
+ left: item.templateInfo.left,
498
+ top: item.templateInfo.top,
499
+ width: item.templateInfo.width,
500
+ height: item.templateInfo.height,
501
+ zIndex: item.renderStyle.zIndex,
483
502
  }"
484
- ></div>
485
- </div>
486
- </jsv-focus-block>
503
+ @click="item.onTap.value"
504
+ >
505
+ <div
506
+ v-if="
507
+ !enableItemRenderBreak || item.mounted.value || itemRender
508
+ "
509
+ :key="renderBreakKey"
510
+ :ref="item.slotRef"
511
+ :id="`${name}_${index}`"
512
+ >
513
+ <slot-component key="__QcodeJsviewFreezeComponent">
514
+ <slot
515
+ name="renderItem"
516
+ :data="item.customerData"
517
+ :onEdge="_onFocusableItemEdge"
518
+ :onAction="item.registerObj"
519
+ :query="item.query"
520
+ :onItemEdge="_onFocusableItemEdge"
521
+ ></slot>
522
+ </slot-component>
523
+ </div>
524
+ <div
525
+ v-if="
526
+ enableItemRenderBreak &&
527
+ placeHolderSetting &&
528
+ !item.mounted.value
529
+ "
530
+ :style="{
531
+ width: item.renderStyle.width - normalizedPlaceHolder.gap,
532
+ height: item.renderStyle.height - normalizedPlaceHolder.gap,
533
+ backgroundColor:
534
+ currentFocusIndex == item.index
535
+ ? normalizedPlaceHolder.focusBackgroundColor
536
+ : normalizedPlaceHolder.backgroundColor,
537
+ borderRadius: normalizedPlaceHolder.borderRadius,
538
+ }"
539
+ ></div>
540
+ </div>
541
+ </jsv-focus-block>
542
+ </div>
487
543
  </div>
488
544
  <div>
489
545
  <slot name="foreground"></slot>