@shijiu/jsview-vue 2.1.25 → 2.1.200
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.
- package/package.json +1 -1
- package/utils/JsViewEngineWidget/JsvFocusBlock.vue +1 -1
- package/utils/JsViewEngineWidget/JsvFocusHub.ts +123 -0
- package/utils/JsViewEngineWidget/JsvFocusManager.js +4 -3
- package/utils/JsViewEngineWidget/MetroWidget/AnimationManager.ts +145 -51
- package/utils/JsViewEngineWidget/MetroWidget/ListWidget.vue +51 -64
- package/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue +62 -71
- package/utils/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.js +308 -613
- package/utils/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.ts +127 -247
- package/utils/JsViewEngineWidget/TemplateParser/ListMetroTemplate.ts +1 -0
- package/utils/JsViewEngineWidget/TemplateParser/MetroTemplate.ts +36 -2
- package/utils/JsViewEngineWidget/WidgetCommon.ts +25 -6
- package/utils/JsViewPlugin/JsvAudio/{JsvAudioBrowser.vue → BrowserAudio/BrowserAudio.vue} +1 -1
- package/utils/JsViewPlugin/JsvAudio/index.js +1 -1
- package/utils/JsViewPlugin/JsvLatex/BrowserDomBuilder.js +37 -0
- package/utils/JsViewPlugin/JsvLatex/Color.ts +43 -0
- package/utils/JsViewPlugin/JsvLatex/JsvLatex.vue +159 -0
- package/utils/JsViewPlugin/JsvLatex/JsvLatexBridgeProxy.js +16 -0
- package/utils/JsViewPlugin/JsvLatex/JsvLatexBrowser.vue +59 -0
- package/utils/JsViewPlugin/JsvLatex/PluginLoader.js +171 -0
- package/utils/JsViewPlugin/JsvLatex/index.js +28 -0
- package/utils/JsViewPlugin/JsvLatex/mathjax-tex-svg.txt +1 -0
- package/utils/JsViewPlugin/JsvLatex/version.js +24 -0
- package/utils/JsViewPlugin/JsvLatex/version.mjs +24 -0
- package/utils/JsViewPlugin/index.js +2 -1
- package/utils/JsViewVueTools/JsvDynamicCssStyle.js +2 -52
- package/utils/JsViewVueTools/JsvPerformance.ts +11 -0
- package/utils/JsViewVueTools/JsvPreDownloader.ts +55 -11
- package/utils/JsViewVueTools/JsvStyleSheetsDeclarer.js +40 -0
- package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CanvasTexture.ts +143 -0
- package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CommandList.ts +24 -0
- package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/Path.ts +198 -0
- package/utils/JsViewVueTools/JsvTextureStore/JsvTextureStore.ts +31 -0
- package/utils/JsViewVueTools/JsvTextureStore/Store.ts +32 -0
- package/utils/JsViewVueTools/JsvTextureStore/Texture.ts +38 -0
- package/utils/JsViewVueTools/index.js +3 -0
- package/utils/JsViewVueWidget/JsvEnableRenderBreak.vue +17 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/ActionRefObject.ts +6 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.ts +144 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorState.ts +6 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/{CallbackManager.js → CallbackManager.ts} +19 -10
- package/utils/JsViewVueWidget/JsvFreeMoveActor/ForgeTypeDefine.ts +45 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/FreeMoveActor.vue +1 -1
- package/utils/JsViewVueWidget/JsvFreeMoveActor/JsvEnvBlocker.vue +124 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/KeepFlags.ts +6 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.ts +553 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.ts +138 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.ts +53 -0
- package/utils/JsViewVueWidget/JsvFreeMoveActor/index.js +11 -1
- package/utils/JsViewVueWidget/JsvHole.js +1 -1
- package/utils/JsViewVueWidget/JsvLine/JsvLine.vue +101 -0
- package/utils/JsViewVueWidget/JsvLine/LineManager.js +62 -0
- package/utils/JsViewVueWidget/JsvLine/index.js +3 -0
- package/utils/JsViewVueWidget/JsvMarquee.vue +316 -139
- package/utils/JsViewVueWidget/JsvMindMap/CommonType.ts +1 -0
- package/utils/JsViewVueWidget/JsvMindMap/Constant.ts +20 -0
- package/utils/JsViewVueWidget/JsvMindMap/DataTree.ts +394 -0
- package/utils/JsViewVueWidget/JsvMindMap/Geometry.ts +277 -0
- package/utils/JsViewVueWidget/JsvMindMap/JsvMindMap.vue +653 -0
- package/utils/JsViewVueWidget/JsvMindMap/index.js +1 -0
- package/utils/JsViewVueWidget/JsvMindMap/rtree.js +628 -0
- package/utils/JsViewVueWidget/JsvNinePatch.vue +2 -2
- package/utils/JsViewVueWidget/JsvPieChart.vue +124 -0
- package/utils/JsViewVueWidget/JsvPosterImage.vue +32 -9
- package/utils/JsViewVueWidget/JsvPreload/BrowserPreload.vue +135 -133
- package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +273 -270
- package/utils/JsViewVueWidget/JsvSector.vue +107 -0
- package/utils/JsViewVueWidget/JsvTextBox.vue +14 -1
- package/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue +28 -2
- package/utils/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue +122 -93
- package/utils/JsViewVueWidget/index.js +15 -7
- package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.js +0 -112
- package/utils/JsViewVueWidget/JsvFreeMoveActor/CommonTools.js +0 -18
- package/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.js +0 -216
- package/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.js +0 -66
- package/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.js +0 -38
- package/utils/JsViewVueWidget/JsvFreeMoveActor/TypeDefine.js +0 -12
- package/utils/JsViewVueWidget/JsvTouchContainer.vue +0 -183
- package/utils/JsViewVueWidget/JsvTransparentDiv.vue +0 -87
- /package/utils/{JsViewVueWidget → JsViewPlugin/JsvAudio/BrowserAudio}/JsvSystemAudio.vue +0 -0
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
ROW_LOOP: 到达行首/尾后跳转到上/下一行, 只在竖直滚动时生效
|
|
28
28
|
COLUMN_FIND_NEAR: 一列中没有下一个元素时是否跳转到相邻列
|
|
29
29
|
ROW_FIND_NEAR: 一行中没有下一个元素时是否跳转到相邻行
|
|
30
|
-
|
|
30
|
+
* keepTraceRange { number } 可视区域前后多少屏的item在移出可视范围后不释放(默认移出可视区域的item会被释放)
|
|
31
31
|
* initFocusId {int} 初始焦点,默认为0
|
|
32
32
|
* slideSetting {SlideSetting} 页面滑动的设置, 目前SlideSetting有三个子类, 具体见 WidgetCommon 中的说明
|
|
33
33
|
WholePageSlide
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
* placeHolderSetting {Object} item描画可打断时, 显示的占位符
|
|
45
45
|
{
|
|
46
46
|
backgroundColor: 纯色占位符
|
|
47
|
+
focusBackgroundColor: 获焦时的颜色
|
|
47
48
|
borderRadius: 占位符圆角设置
|
|
48
49
|
gap: 占位符之间的gap
|
|
49
50
|
}
|
|
@@ -83,7 +84,6 @@
|
|
|
83
84
|
visibleRange: 可视区域大小(不含padding)
|
|
84
85
|
totalSize: 所有item的总长
|
|
85
86
|
*
|
|
86
|
-
* enableTouch {boolean} 支持触控
|
|
87
87
|
* loadAll {boolean} 加载不显示的view,触控场景使用
|
|
88
88
|
* flingPageWidth {}
|
|
89
89
|
* flingPageEdge {}
|
|
@@ -172,10 +172,14 @@
|
|
|
172
172
|
获取当前焦点信息,id 为在可获得焦点元素列表中的索引,index 为在所有元素列表中的索引
|
|
173
173
|
slideTo: {Function} (targetPosition : int, doAnim : Boolean) => void
|
|
174
174
|
滚动到指定位置,注意这个位置是 item 的布局坐标,另外当某些item需要接管滚动时,itemConfig中takeOverSlide要为true。
|
|
175
|
-
updateItemSize: {(index: number, newSize: {width: number, height: number}, anchor: number,
|
|
175
|
+
updateItemSize: {(index: number, newSize: {width: number, height: number}, animInfo: {anchor: number, duration: number, onEnd: Function}) => void} 更新item的尺寸, 目前仅在list模式下可用.
|
|
176
176
|
params:
|
|
177
177
|
index: 更新item的index,
|
|
178
|
-
|
|
178
|
+
newSize: 新的尺寸
|
|
179
|
+
animInfo: 动画设置
|
|
180
|
+
anchor: 缩放锚点
|
|
181
|
+
duration: 动画时长(毫秒)
|
|
182
|
+
onEnd: 动画结束回调
|
|
179
183
|
|
|
180
184
|
}
|
|
181
185
|
* onItemEdge: 若单元格内另有可接管按键的控件(如MetroWidget),该控件到达边缘需要通知MetroWidget时的回调
|
|
@@ -204,16 +208,19 @@
|
|
|
204
208
|
* A: 焦点处理: item内的元素需要在注册的onFocus和onBlue回调中管理焦点. 即在onFocus时把焦点设置到内部的可获焦节点;
|
|
205
209
|
onBlur时将焦点给回父MetroWidget, 注意此时是焦点树上的子节点往父节点切换, 此时为了把子节点blur掉,
|
|
206
210
|
requestFocus函数需要传递一个false参数
|
|
211
|
+
* 注意点:
|
|
212
|
+
* 1. MetroWidget中存在一些处理依赖vue的callback执行顺序, 因此涉及更改MetroWidget状态的处理不要在watchPostEffect中调用
|
|
207
213
|
-->
|
|
208
214
|
|
|
209
215
|
<script setup>
|
|
210
216
|
import { ref, shallowRef, computed } from "vue";
|
|
211
|
-
import { setup
|
|
217
|
+
import { setup } from "./MetroWidgetSetup";
|
|
212
218
|
import {
|
|
213
219
|
VERTICAL,
|
|
214
220
|
HORIZONTAL,
|
|
215
221
|
SlideSetting,
|
|
216
222
|
SeamlessSlide,
|
|
223
|
+
RENDER_ITEM_BREAK_KEY,
|
|
217
224
|
} from "../WidgetCommon";
|
|
218
225
|
|
|
219
226
|
const props = defineProps({
|
|
@@ -260,10 +267,6 @@ const props = defineProps({
|
|
|
260
267
|
type: Boolean,
|
|
261
268
|
default: false,
|
|
262
269
|
},
|
|
263
|
-
enableTouch: {
|
|
264
|
-
type: Boolean,
|
|
265
|
-
default: false,
|
|
266
|
-
},
|
|
267
270
|
flingPageWidth: {
|
|
268
271
|
type: Number,
|
|
269
272
|
default: -1,
|
|
@@ -272,9 +275,6 @@ const props = defineProps({
|
|
|
272
275
|
type: Number,
|
|
273
276
|
default: 1 / 4,
|
|
274
277
|
},
|
|
275
|
-
dispatcher: {
|
|
276
|
-
type: Object,
|
|
277
|
-
},
|
|
278
278
|
measures: {
|
|
279
279
|
type: Function,
|
|
280
280
|
required: true,
|
|
@@ -354,20 +354,26 @@ const props = defineProps({
|
|
|
354
354
|
});
|
|
355
355
|
|
|
356
356
|
const renderBreakKey = props.enableItemRenderBreak ? RENDER_ITEM_BREAK_KEY : "";
|
|
357
|
-
const touchContainerW = ref(0);
|
|
358
|
-
const touchContainerH = ref(0);
|
|
359
357
|
const itemRender = ref(!props.enableItemRenderBreak);
|
|
360
358
|
const locateDiv = shallowRef(null);
|
|
361
359
|
const renderData = shallowRef([]);
|
|
362
360
|
const slideDiv = shallowRef(null);
|
|
363
361
|
const slideDivLeft = ref(0);
|
|
364
362
|
const slideDivTop = ref(0);
|
|
365
|
-
const itemResizeSlideDiv = shallowRef(null);
|
|
366
|
-
const itemResizeSlideLeft = ref(0);
|
|
367
|
-
const itemResizeSlideTop = ref(0);
|
|
368
363
|
const focusNode = shallowRef(null);
|
|
369
364
|
const pageUpdateToken = ref(0);
|
|
370
365
|
|
|
366
|
+
const normalizedPlaceHolder = computed(() => {
|
|
367
|
+
return {
|
|
368
|
+
gap: props.placeHolderSetting.gap ?? 0,
|
|
369
|
+
borderRadius: props.placeHolderSetting.borderRadius ?? 0,
|
|
370
|
+
backgroundColor: props.placeHolderSetting.backgroundColor,
|
|
371
|
+
focusBackgroundColor:
|
|
372
|
+
props.placeHolderSetting.focusBackgroundColor ??
|
|
373
|
+
props.placeHolderSetting.backgroundColor,
|
|
374
|
+
};
|
|
375
|
+
});
|
|
376
|
+
|
|
371
377
|
const {
|
|
372
378
|
widgetRectInfo,
|
|
373
379
|
focusBlockOnFocus,
|
|
@@ -378,24 +384,18 @@ const {
|
|
|
378
384
|
exportObject,
|
|
379
385
|
} = setup(
|
|
380
386
|
props,
|
|
381
|
-
touchContainerW,
|
|
382
|
-
touchContainerH,
|
|
383
387
|
itemRender,
|
|
384
388
|
locateDiv,
|
|
385
389
|
renderData,
|
|
386
390
|
slideDiv,
|
|
387
391
|
slideDivLeft,
|
|
388
392
|
slideDivTop,
|
|
389
|
-
itemResizeSlideDiv,
|
|
390
|
-
itemResizeSlideLeft,
|
|
391
|
-
itemResizeSlideTop,
|
|
392
393
|
focusNode,
|
|
393
394
|
pageUpdateToken,
|
|
394
395
|
"common"
|
|
395
396
|
);
|
|
396
397
|
|
|
397
398
|
defineExpose(exportObject);
|
|
398
|
-
|
|
399
399
|
</script>
|
|
400
400
|
|
|
401
401
|
<template>
|
|
@@ -416,15 +416,12 @@ defineExpose(exportObject);
|
|
|
416
416
|
>
|
|
417
417
|
<div
|
|
418
418
|
id="slideDiv"
|
|
419
|
-
key="
|
|
419
|
+
key="slideDiv"
|
|
420
420
|
ref="slideDiv"
|
|
421
421
|
:style="{
|
|
422
422
|
left: slideDivLeft,
|
|
423
423
|
top: slideDivTop,
|
|
424
|
-
width: touchContainerW,
|
|
425
|
-
height: touchContainerH,
|
|
426
424
|
}"
|
|
427
|
-
|
|
428
425
|
>
|
|
429
426
|
<div>
|
|
430
427
|
<slot name="background"></slot>
|
|
@@ -441,56 +438,50 @@ defineExpose(exportObject);
|
|
|
441
438
|
}"
|
|
442
439
|
>
|
|
443
440
|
<div
|
|
444
|
-
|
|
445
|
-
key="
|
|
446
|
-
ref="
|
|
441
|
+
v-for="(item, index) in renderData"
|
|
442
|
+
:key="pageUpdateToken + '_' + item.index"
|
|
443
|
+
:ref="item.divRef"
|
|
447
444
|
:style="{
|
|
448
|
-
left:
|
|
449
|
-
top:
|
|
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,
|
|
450
450
|
}"
|
|
451
451
|
>
|
|
452
452
|
<div
|
|
453
|
-
v-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
:
|
|
457
|
-
|
|
458
|
-
}"
|
|
453
|
+
v-if="
|
|
454
|
+
!enableItemRenderBreak || item.mounted.value || itemRender
|
|
455
|
+
"
|
|
456
|
+
:key="renderBreakKey"
|
|
457
|
+
:ref="item.slotRef"
|
|
458
|
+
:id="`${name}_${index}`"
|
|
459
459
|
>
|
|
460
|
-
<
|
|
461
|
-
|
|
462
|
-
:
|
|
463
|
-
:
|
|
464
|
-
:
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
:key="renderBreakKey"
|
|
469
|
-
:data="item.customerData"
|
|
470
|
-
:onEdge="_onFocusableItemEdge"
|
|
471
|
-
:onAction="item.registerObj"
|
|
472
|
-
:query="item.query"
|
|
473
|
-
:onItemEdge="_onFocusableItemEdge"
|
|
474
|
-
></slot>
|
|
475
|
-
</div>
|
|
476
|
-
<div
|
|
477
|
-
v-if="
|
|
478
|
-
enableItemRenderBreak &&
|
|
479
|
-
placeHolderSetting &&
|
|
480
|
-
!item.mounted.value
|
|
481
|
-
"
|
|
482
|
-
:style="{
|
|
483
|
-
width:
|
|
484
|
-
item.renderStyle.width -
|
|
485
|
-
(placeHolderSetting.gap ? placeHolderSetting.gap : 0),
|
|
486
|
-
height:
|
|
487
|
-
item.renderStyle.height -
|
|
488
|
-
(placeHolderSetting.gap ? placeHolderSetting.gap : 0),
|
|
489
|
-
backgroundColor: placeHolderSetting.backgroundColor,
|
|
490
|
-
borderRadius: placeHolderSetting.borderRadius,
|
|
491
|
-
}"
|
|
492
|
-
></div>
|
|
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>
|
|
493
468
|
</div>
|
|
469
|
+
<div
|
|
470
|
+
v-if="
|
|
471
|
+
enableItemRenderBreak &&
|
|
472
|
+
placeHolderSetting &&
|
|
473
|
+
!item.mounted.value
|
|
474
|
+
"
|
|
475
|
+
: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,
|
|
483
|
+
}"
|
|
484
|
+
></div>
|
|
494
485
|
</div>
|
|
495
486
|
</jsv-focus-block>
|
|
496
487
|
</div>
|