@shijiu/jsview-vue 0.9.254 → 0.9.267
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/dom/bin/package.json +11 -11
- package/dom/browser-root-style.css +21 -21
- package/loader/jsview-main.js +41 -41
- package/loader/jsview.config.default.js +37 -37
- package/loader/jsview.default.config.js +37 -37
- package/package.json +1 -5
- package/samples/AdvanceMetroWidget/App.vue +122 -122
- package/samples/AdvanceMetroWidget/Frame.vue +100 -100
- package/samples/AdvanceMetroWidget/Item.vue +57 -57
- package/samples/AdvanceMetroWidget/data.js +136 -136
- package/samples/AnimPicture/App.vue +223 -223
- package/samples/Basic/App.vue +128 -128
- package/samples/Basic/components/TitleBar.vue +28 -28
- package/samples/Basic/components/anim/AnimGroup.vue +67 -67
- package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
- package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
- package/samples/Basic/components/anim/AnimTransition.vue +116 -116
- package/samples/Basic/components/div/DivBackground.vue +14 -14
- package/samples/Basic/components/div/DivClip.vue +80 -80
- package/samples/Basic/components/div/DivCssScoped.vue +26 -26
- package/samples/Basic/components/div/DivCssVar.vue +49 -49
- package/samples/Basic/components/div/DivGroup1.vue +32 -32
- package/samples/Basic/components/div/DivGroup2.vue +40 -40
- package/samples/Basic/components/div/DivLayout.vue +11 -11
- package/samples/Basic/components/div/DivRadius.vue +46 -46
- package/samples/Basic/components/text/TextAlign.vue +47 -47
- package/samples/Basic/components/text/TextFontStyle.vue +57 -57
- package/samples/Basic/components/text/TextGroup.vue +31 -31
- package/samples/Basic/components/text/TextOverflow.vue +77 -77
- package/samples/BasicFocusControl/App.vue +124 -124
- package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
- package/samples/BasicFocusControl/components/MainArea.vue +97 -97
- package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
- package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
- package/samples/BasicFocusControl/components/SideBar.vue +72 -72
- package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
- package/samples/ClassNameDemo/App.vue +119 -119
- package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
- package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
- package/samples/ClassNameDemo/components/TitleView.vue +24 -24
- package/samples/ClassNameDemo/data.js +24 -24
- package/samples/ColorSpace/App.vue +134 -134
- package/samples/DemoHomepage/App.vue +31 -31
- package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
- package/samples/DemoHomepage/components/Dialog.vue +93 -93
- package/samples/DemoHomepage/components/Item.vue +76 -76
- package/samples/DemoHomepage/components/TabFrame.vue +86 -86
- package/samples/DemoHomepage/router.js +132 -132
- package/samples/DemoHomepage/views/Homepage.vue +186 -186
- package/samples/FlipCard/App.vue +80 -80
- package/samples/FlipCard/FlipCard.vue +123 -123
- package/samples/FlipCard/data.js +12 -12
- package/samples/FlowMultiWidget/App.vue +90 -90
- package/samples/FlowMultiWidget/components/Block.vue +106 -106
- package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
- package/samples/FlowMultiWidget/components/Item.vue +102 -102
- package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
- package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
- package/samples/FlowMultiWidget/data.js +446 -446
- package/samples/HashHistory/App.vue +124 -124
- package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
- package/samples/HashHistory/components/Item.vue +73 -73
- package/samples/HashHistory/router.js +29 -29
- package/samples/HashHistory/views/BasePage.vue +18 -18
- package/samples/HashHistory/views/MainPage.vue +67 -67
- package/samples/HashHistory/views/SubPage.vue +78 -78
- package/samples/HashHistory/views/SubPageFirst.vue +9 -9
- package/samples/HashHistory/views/SubPageSecond.vue +9 -9
- package/samples/LongImage/App.vue +96 -96
- package/samples/LongImage/Button.vue +153 -153
- package/samples/LongImage/LongImageScroll.vue +126 -126
- package/samples/LongImage/Scroll.vue +15 -15
- package/samples/LongText/App.vue +111 -111
- package/samples/LongText/Button.vue +153 -153
- package/samples/LongText/LongTextScroll.vue +224 -224
- package/samples/LongText/Scroll.vue +15 -15
- package/samples/Preload/App.vue +145 -145
- package/samples/Preload/data.js +22 -22
- package/samples/Preload/preloadItem.vue +21 -21
- package/samples/QrcodeDemo/App.vue +72 -72
- package/samples/SimpleWidgetDemo/App.vue +203 -203
- package/samples/SimpleWidgetDemo/Item.vue +82 -82
- package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
- package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
- package/samples/SimpleWidgetDemo/data.js +110 -110
- package/samples/SprayView/App.vue +269 -269
- package/samples/SpriteImage/App.vue +174 -174
- package/samples/SpriteImage/images/egg_break.json +116 -116
- package/samples/TextBox/App.vue +178 -178
- package/samples/TextBox/RenderCenter.vue +108 -108
- package/samples/TextBox/RenderLeft.vue +108 -108
- package/samples/TextBox/RenderOneLine.vue +119 -119
- package/samples/TextBox/RenderRight.vue +106 -106
- package/samples/TextShadowDemo/App.vue +97 -97
- package/samples/TextureSize/App.vue +141 -141
- package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
- package/samples/ThrowMoveDemo/App.vue +113 -113
- package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
- package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
- package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
- package/samples/TransitPage/App.vue +40 -40
- package/samples/VideoDemo/App.vue +137 -137
- package/samples/VideoDemo/components/Button.vue +68 -68
- package/samples/VideoDemo/components/Controllor.vue +195 -195
- package/samples/VideoDemo/components/VideoFrame.vue +152 -152
- package/scripts/common.js +57 -115
- package/scripts/jsview-install-local-packages.js +73 -73
- package/scripts/jsview-post-build.js +127 -127
- package/scripts/jsview-post-install.js +78 -78
- package/scripts/jsview-run-android.js +64 -64
- package/utils/JsViewEngineWidget/bin/index.js +1 -1
- package/utils/JsViewEngineWidget/bin/package.json +11 -11
- package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
- package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
- package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
- package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
- package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
- package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
- package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
- package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
- package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
- package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
- package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
- package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
- package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
- package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
- package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
- package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
- package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
- package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
- package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
- package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
- package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
- package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
- package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
- package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
- package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
- package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
- package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
- package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
- package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +0 -219
- package/patches/node_modules/@vue/cli-plugin-typescript/index.js +0 -100
- package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +0 -395
- package/patches/node_modules/@vue/cli-service/lib/config/app.js +0 -272
- package/patches/node_modules/@vue/cli-service/lib/config/assets.js +0 -70
- package/patches/node_modules/@vue/cli-service/lib/config/base.js +0 -212
- package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +0 -2566
- package/patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js +0 -274
- package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +0 -1596
- package/patches/node_modules/postcss-js/objectifier.js +0 -90
- package/patches/node_modules/vue-loader/dist/resolveScript.js +0 -70
- package/scripts/deploy-fast-pack.js +0 -17
- package/scripts/deploy-fast-publish.js +0 -44
- package/scripts/deploy-git-commit-empty.js +0 -21
- package/scripts/deploy-prepare.js +0 -56
- package/scripts/make-js.sh +0 -181
- package/vetur.config.js +0 -5
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: ChenChanghua
|
|
3
|
-
* @Date: 2021-10-13 15:12:45
|
|
4
|
-
* @LastEditors: ChenChanghua
|
|
5
|
-
* @LastEditTime: 2021-11-22 14:24:36
|
|
6
|
-
* @Description: file content
|
|
7
|
-
*/
|
|
8
|
-
//考虑到.vue文件除了export default的component外,还有可能export其他对象,因此使用import * as
|
|
9
|
-
import * as JsvPreload from "./JsvPreload.vue";
|
|
10
|
-
let _JsvPreload = JsvPreload;
|
|
11
|
-
if (
|
|
12
|
-
window.JsvWidgetWrapperGroup &&
|
|
13
|
-
window.JsvWidgetWrapperGroup.BrowserPreload
|
|
14
|
-
) {
|
|
15
|
-
_JsvPreload = window.JsvWidgetWrapperGroup.BrowserPreload;
|
|
16
|
-
}
|
|
17
|
-
let component = _JsvPreload.default;
|
|
18
|
-
let buildPreloadInfo = JsvPreload.buildPreloadInfo;
|
|
19
|
-
let buildDownloadInfo = JsvPreload.buildDownloadInfo;
|
|
20
|
-
export default component;
|
|
21
|
-
export { buildPreloadInfo, buildDownloadInfo };
|
|
1
|
+
/*
|
|
2
|
+
* @Author: ChenChanghua
|
|
3
|
+
* @Date: 2021-10-13 15:12:45
|
|
4
|
+
* @LastEditors: ChenChanghua
|
|
5
|
+
* @LastEditTime: 2021-11-22 14:24:36
|
|
6
|
+
* @Description: file content
|
|
7
|
+
*/
|
|
8
|
+
//考虑到.vue文件除了export default的component外,还有可能export其他对象,因此使用import * as
|
|
9
|
+
import * as JsvPreload from "./JsvPreload.vue";
|
|
10
|
+
let _JsvPreload = JsvPreload;
|
|
11
|
+
if (
|
|
12
|
+
window.JsvWidgetWrapperGroup &&
|
|
13
|
+
window.JsvWidgetWrapperGroup.BrowserPreload
|
|
14
|
+
) {
|
|
15
|
+
_JsvPreload = window.JsvWidgetWrapperGroup.BrowserPreload;
|
|
16
|
+
}
|
|
17
|
+
let component = _JsvPreload.default;
|
|
18
|
+
let buildPreloadInfo = JsvPreload.buildPreloadInfo;
|
|
19
|
+
let buildDownloadInfo = JsvPreload.buildDownloadInfo;
|
|
20
|
+
export default component;
|
|
21
|
+
export { buildPreloadInfo, buildDownloadInfo };
|
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* 【模块 export 内容】
|
|
3
|
-
* QRCode:Vue高阶组件,描绘二维码,
|
|
4
|
-
* props说明:
|
|
5
|
-
* value {string} (必须) 二维码代表的字符串
|
|
6
|
-
* size {int} (必须) 二维码展示尺寸,二维码为正方形,所以改值代表宽和高,默认值:128
|
|
7
|
-
* fgColor {string} 二维码前景色,默认值"#000000",黑色
|
|
8
|
-
* bgColor {string} 二维码背景色,默认值"#ffffff",白色
|
|
9
|
-
* level {string} 二维码的容错能力,可选值{'L':低, 'M':中, 'H':高, 'Q':最精细},默认值'L'
|
|
10
|
-
* imageSettings {Object} 设置中心logo图片,默认值为null,设置格式为:
|
|
11
|
-
* {
|
|
12
|
-
* src {string} logo的url地址
|
|
13
|
-
* height {int} logo的宽度
|
|
14
|
-
* height {int} logo的高度
|
|
15
|
-
* }
|
|
16
|
-
*/
|
|
17
|
-
-->
|
|
18
|
-
<script>
|
|
19
|
-
import { Forge, ForgeExtension } from "../../../dom/jsv-forge-define";
|
|
20
|
-
|
|
21
|
-
export default {
|
|
22
|
-
props: {
|
|
23
|
-
value: String,
|
|
24
|
-
size: Number,
|
|
25
|
-
fgColor: String,
|
|
26
|
-
bgColor: String,
|
|
27
|
-
level: String, // ,容错级别,分别是L(7%)、M(15%)、Q(25%)、H(30%),
|
|
28
|
-
imageSettings: Object,
|
|
29
|
-
},
|
|
30
|
-
methods: {
|
|
31
|
-
getImageSettings() {
|
|
32
|
-
const imageSettings = this.imageSettings;
|
|
33
|
-
if (!imageSettings) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
const w = imageSettings.width;
|
|
37
|
-
const h = imageSettings.height;
|
|
38
|
-
const x = !imageSettings.x ? this.size / 2 - w / 2 : imageSettings.x;
|
|
39
|
-
const y = !imageSettings.y ? this.size / 2 - h / 2 : imageSettings.y;
|
|
40
|
-
|
|
41
|
-
return { x, y, h, w };
|
|
42
|
-
},
|
|
43
|
-
renderJsvQRCode() {
|
|
44
|
-
// Remove old QRCode
|
|
45
|
-
if (this.qrCodeView !== null) {
|
|
46
|
-
this.jsvBaseView.RemoveView(this.qrCodeView);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
let view = null;
|
|
50
|
-
let lp_params = null;
|
|
51
|
-
const texture_manager = ForgeExtension.TextureManager;
|
|
52
|
-
const qrcode_texture = texture_manager.GetQRCodeTexture(
|
|
53
|
-
this.value,
|
|
54
|
-
this.size,
|
|
55
|
-
this.size,
|
|
56
|
-
Forge.QRCodeLevel[this.level],
|
|
57
|
-
this.bgColor,
|
|
58
|
-
this.fgColor
|
|
59
|
-
);
|
|
60
|
-
// 构建二维码底部数据
|
|
61
|
-
view = new Forge.LayoutView(new Forge.TextureSetting(qrcode_texture));
|
|
62
|
-
const calculatedImageSettings = this.getImageSettings();
|
|
63
|
-
// 构建二维码中心图片
|
|
64
|
-
if (this.imageSettings && calculatedImageSettings) {
|
|
65
|
-
let url = this.imageSettings.src;
|
|
66
|
-
if (typeof url === "string") {
|
|
67
|
-
url = new window.JsView.React.UrlRef(this.imageSettings.src).href;
|
|
68
|
-
}
|
|
69
|
-
const img_texture = texture_manager.GetImage(url);
|
|
70
|
-
const img_view = new Forge.LayoutView(
|
|
71
|
-
new Forge.TextureSetting(img_texture)
|
|
72
|
-
);
|
|
73
|
-
view.AddView(
|
|
74
|
-
img_view,
|
|
75
|
-
new Forge.LayoutParams({
|
|
76
|
-
x: calculatedImageSettings.x,
|
|
77
|
-
y: calculatedImageSettings.y,
|
|
78
|
-
width: calculatedImageSettings.w,
|
|
79
|
-
height: calculatedImageSettings.h,
|
|
80
|
-
})
|
|
81
|
-
);
|
|
82
|
-
console.log("view = " + view);
|
|
83
|
-
}
|
|
84
|
-
// 二维码都位置与大小
|
|
85
|
-
lp_params = new Forge.LayoutParams({
|
|
86
|
-
x: 0,
|
|
87
|
-
y: 0,
|
|
88
|
-
width: this.size,
|
|
89
|
-
height: this.size,
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
// Add new QRCode
|
|
93
|
-
this.qrCodeView = view;
|
|
94
|
-
this.jsvBaseView.AddView(this.qrCodeView, lp_params);
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
created() {
|
|
98
|
-
// 构建二维码父View
|
|
99
|
-
const propsData = {
|
|
100
|
-
value: this.value,
|
|
101
|
-
size: this.size,
|
|
102
|
-
level: this.level,
|
|
103
|
-
bgColor: this.bgColor,
|
|
104
|
-
fgColor: this.fgColor,
|
|
105
|
-
imageSettings: this.imageSettings,
|
|
106
|
-
};
|
|
107
|
-
if (this.jsvBaseView === null) {
|
|
108
|
-
this.jsvBaseView = new Forge.LayoutView();
|
|
109
|
-
this.innerViewId = ForgeExtension.RootActivity.ViewStore.add(
|
|
110
|
-
new Forge.ViewInfo(this.jsvBaseView, { x: 0, y: 0 })
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
// 构建QRCdoe view
|
|
114
|
-
if (this.oldProps !== propsData) {
|
|
115
|
-
this.renderJsvQRCode();
|
|
116
|
-
}
|
|
117
|
-
// return this.innerViewId;
|
|
118
|
-
},
|
|
119
|
-
data() {
|
|
120
|
-
return {
|
|
121
|
-
oldProps: null,
|
|
122
|
-
innerViewId: -1,
|
|
123
|
-
jsvBaseView: null,
|
|
124
|
-
qrCodeView: null,
|
|
125
|
-
};
|
|
126
|
-
},
|
|
127
|
-
mounted() {
|
|
128
|
-
if (this.innerViewId !== -1) {
|
|
129
|
-
ForgeExtension.RootActivity.ViewStore.remove(this.innerViewId);
|
|
130
|
-
this.innerViewId = -1;
|
|
131
|
-
this.jsvBaseView = null;
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
</script>
|
|
136
|
-
|
|
137
|
-
<template>
|
|
138
|
-
<div :jsv_innerview="innerViewId"></div>
|
|
139
|
-
</template>
|
|
140
|
-
|
|
1
|
+
<!--
|
|
2
|
+
* 【模块 export 内容】
|
|
3
|
+
* QRCode:Vue高阶组件,描绘二维码,
|
|
4
|
+
* props说明:
|
|
5
|
+
* value {string} (必须) 二维码代表的字符串
|
|
6
|
+
* size {int} (必须) 二维码展示尺寸,二维码为正方形,所以改值代表宽和高,默认值:128
|
|
7
|
+
* fgColor {string} 二维码前景色,默认值"#000000",黑色
|
|
8
|
+
* bgColor {string} 二维码背景色,默认值"#ffffff",白色
|
|
9
|
+
* level {string} 二维码的容错能力,可选值{'L':低, 'M':中, 'H':高, 'Q':最精细},默认值'L'
|
|
10
|
+
* imageSettings {Object} 设置中心logo图片,默认值为null,设置格式为:
|
|
11
|
+
* {
|
|
12
|
+
* src {string} logo的url地址
|
|
13
|
+
* height {int} logo的宽度
|
|
14
|
+
* height {int} logo的高度
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
-->
|
|
18
|
+
<script>
|
|
19
|
+
import { Forge, ForgeExtension } from "../../../dom/jsv-forge-define";
|
|
20
|
+
|
|
21
|
+
export default {
|
|
22
|
+
props: {
|
|
23
|
+
value: String,
|
|
24
|
+
size: Number,
|
|
25
|
+
fgColor: String,
|
|
26
|
+
bgColor: String,
|
|
27
|
+
level: String, // ,容错级别,分别是L(7%)、M(15%)、Q(25%)、H(30%),
|
|
28
|
+
imageSettings: Object,
|
|
29
|
+
},
|
|
30
|
+
methods: {
|
|
31
|
+
getImageSettings() {
|
|
32
|
+
const imageSettings = this.imageSettings;
|
|
33
|
+
if (!imageSettings) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const w = imageSettings.width;
|
|
37
|
+
const h = imageSettings.height;
|
|
38
|
+
const x = !imageSettings.x ? this.size / 2 - w / 2 : imageSettings.x;
|
|
39
|
+
const y = !imageSettings.y ? this.size / 2 - h / 2 : imageSettings.y;
|
|
40
|
+
|
|
41
|
+
return { x, y, h, w };
|
|
42
|
+
},
|
|
43
|
+
renderJsvQRCode() {
|
|
44
|
+
// Remove old QRCode
|
|
45
|
+
if (this.qrCodeView !== null) {
|
|
46
|
+
this.jsvBaseView.RemoveView(this.qrCodeView);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
let view = null;
|
|
50
|
+
let lp_params = null;
|
|
51
|
+
const texture_manager = ForgeExtension.TextureManager;
|
|
52
|
+
const qrcode_texture = texture_manager.GetQRCodeTexture(
|
|
53
|
+
this.value,
|
|
54
|
+
this.size,
|
|
55
|
+
this.size,
|
|
56
|
+
Forge.QRCodeLevel[this.level],
|
|
57
|
+
this.bgColor,
|
|
58
|
+
this.fgColor
|
|
59
|
+
);
|
|
60
|
+
// 构建二维码底部数据
|
|
61
|
+
view = new Forge.LayoutView(new Forge.TextureSetting(qrcode_texture));
|
|
62
|
+
const calculatedImageSettings = this.getImageSettings();
|
|
63
|
+
// 构建二维码中心图片
|
|
64
|
+
if (this.imageSettings && calculatedImageSettings) {
|
|
65
|
+
let url = this.imageSettings.src;
|
|
66
|
+
if (typeof url === "string") {
|
|
67
|
+
url = new window.JsView.React.UrlRef(this.imageSettings.src).href;
|
|
68
|
+
}
|
|
69
|
+
const img_texture = texture_manager.GetImage(url);
|
|
70
|
+
const img_view = new Forge.LayoutView(
|
|
71
|
+
new Forge.TextureSetting(img_texture)
|
|
72
|
+
);
|
|
73
|
+
view.AddView(
|
|
74
|
+
img_view,
|
|
75
|
+
new Forge.LayoutParams({
|
|
76
|
+
x: calculatedImageSettings.x,
|
|
77
|
+
y: calculatedImageSettings.y,
|
|
78
|
+
width: calculatedImageSettings.w,
|
|
79
|
+
height: calculatedImageSettings.h,
|
|
80
|
+
})
|
|
81
|
+
);
|
|
82
|
+
console.log("view = " + view);
|
|
83
|
+
}
|
|
84
|
+
// 二维码都位置与大小
|
|
85
|
+
lp_params = new Forge.LayoutParams({
|
|
86
|
+
x: 0,
|
|
87
|
+
y: 0,
|
|
88
|
+
width: this.size,
|
|
89
|
+
height: this.size,
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// Add new QRCode
|
|
93
|
+
this.qrCodeView = view;
|
|
94
|
+
this.jsvBaseView.AddView(this.qrCodeView, lp_params);
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
created() {
|
|
98
|
+
// 构建二维码父View
|
|
99
|
+
const propsData = {
|
|
100
|
+
value: this.value,
|
|
101
|
+
size: this.size,
|
|
102
|
+
level: this.level,
|
|
103
|
+
bgColor: this.bgColor,
|
|
104
|
+
fgColor: this.fgColor,
|
|
105
|
+
imageSettings: this.imageSettings,
|
|
106
|
+
};
|
|
107
|
+
if (this.jsvBaseView === null) {
|
|
108
|
+
this.jsvBaseView = new Forge.LayoutView();
|
|
109
|
+
this.innerViewId = ForgeExtension.RootActivity.ViewStore.add(
|
|
110
|
+
new Forge.ViewInfo(this.jsvBaseView, { x: 0, y: 0 })
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
// 构建QRCdoe view
|
|
114
|
+
if (this.oldProps !== propsData) {
|
|
115
|
+
this.renderJsvQRCode();
|
|
116
|
+
}
|
|
117
|
+
// return this.innerViewId;
|
|
118
|
+
},
|
|
119
|
+
data() {
|
|
120
|
+
return {
|
|
121
|
+
oldProps: null,
|
|
122
|
+
innerViewId: -1,
|
|
123
|
+
jsvBaseView: null,
|
|
124
|
+
qrCodeView: null,
|
|
125
|
+
};
|
|
126
|
+
},
|
|
127
|
+
mounted() {
|
|
128
|
+
if (this.innerViewId !== -1) {
|
|
129
|
+
ForgeExtension.RootActivity.ViewStore.remove(this.innerViewId);
|
|
130
|
+
this.innerViewId = -1;
|
|
131
|
+
this.jsvBaseView = null;
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
</script>
|
|
136
|
+
|
|
137
|
+
<template>
|
|
138
|
+
<div :jsv_innerview="innerViewId"></div>
|
|
139
|
+
</template>
|
|
140
|
+
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: ChenChanghua
|
|
3
|
-
* @Date: 2021-10-13 15:12:45
|
|
4
|
-
* @LastEditors: ChenChanghua
|
|
5
|
-
* @LastEditTime: 2021-10-13 17:41:34
|
|
6
|
-
* @Description: file content
|
|
7
|
-
*/
|
|
8
|
-
//考虑到.vue文件除了export default的component外,还有可能export其他对象,因此使用import * as
|
|
9
|
-
import * as JsvQrcode from "./JsvQrcode.vue";
|
|
10
|
-
let _JsvQrcode = JsvQrcode;
|
|
11
|
-
if (
|
|
12
|
-
window.JsvWidgetWrapperGroup &&
|
|
13
|
-
window.JsvWidgetWrapperGroup.BrowserQrcode
|
|
14
|
-
) {
|
|
15
|
-
_JsvQrcode = window.JsvWidgetWrapperGroup.BrowserQrcode;
|
|
16
|
-
}
|
|
17
|
-
let component = _JsvQrcode.default;
|
|
18
|
-
export default component;
|
|
1
|
+
/*
|
|
2
|
+
* @Author: ChenChanghua
|
|
3
|
+
* @Date: 2021-10-13 15:12:45
|
|
4
|
+
* @LastEditors: ChenChanghua
|
|
5
|
+
* @LastEditTime: 2021-10-13 17:41:34
|
|
6
|
+
* @Description: file content
|
|
7
|
+
*/
|
|
8
|
+
//考虑到.vue文件除了export default的component外,还有可能export其他对象,因此使用import * as
|
|
9
|
+
import * as JsvQrcode from "./JsvQrcode.vue";
|
|
10
|
+
let _JsvQrcode = JsvQrcode;
|
|
11
|
+
if (
|
|
12
|
+
window.JsvWidgetWrapperGroup &&
|
|
13
|
+
window.JsvWidgetWrapperGroup.BrowserQrcode
|
|
14
|
+
) {
|
|
15
|
+
_JsvQrcode = window.JsvWidgetWrapperGroup.BrowserQrcode;
|
|
16
|
+
}
|
|
17
|
+
let component = _JsvQrcode.default;
|
|
18
|
+
export default component;
|
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Author: ChenChanghua
|
|
3
|
-
* @Date: 2021-10-12 18:20:43
|
|
4
|
-
* @LastEditors: ChenChanghua
|
|
5
|
-
* @LastEditTime: 2021-11-18 16:42:20
|
|
6
|
-
* @Description: file content
|
|
7
|
-
-->
|
|
8
|
-
|
|
9
|
-
<!--
|
|
10
|
-
* 【模块 export 内容】
|
|
11
|
-
* JsvSpray:Vue高阶组件,粒子效果控件
|
|
12
|
-
* prop说明:
|
|
13
|
-
* pointRes {string} (必需)粒子图案 可选值: 绝对路径url|url(相对路径url)|#FFFFFF|rbga(255,0,0,1.0)
|
|
14
|
-
* sprayStyle {object} (必需)粒子效果配置
|
|
15
|
-
*
|
|
16
|
-
* prop中的sprayStyle说明:
|
|
17
|
-
* type {int} (必需)喷射类型 0: 一次喷射 1: 持续喷射
|
|
18
|
-
* particleNum {int} (必需)粒子个数
|
|
19
|
-
* deltaAngle {int} (必需)粒子喷射角度范围。如设30则粒子喷射范围为div上边法向正负30度
|
|
20
|
-
* deltaWidth {int} (必需)粒子喷射位置宽度范围
|
|
21
|
-
* deltaHeight {int} (必需)粒子喷射位置高度范围
|
|
22
|
-
* pointSizeMin {int} (必需)粒子尺寸下限(像素)
|
|
23
|
-
* pointSizeMax {int} (必需)粒子尺寸上限(像素)
|
|
24
|
-
* speedMin {float} (必需)粒子速度下限
|
|
25
|
-
* speedMax {float} (必需)粒子速度上限
|
|
26
|
-
* lifeMin {int} (必需)粒子生命周期下限(ms)
|
|
27
|
-
* lifeMax {int} (必需)粒子生命周期上限(ms)
|
|
28
|
-
* accelerateX {float} (必需)水平方向加速度
|
|
29
|
-
* accelerateY {float} (必需)垂直方向加速度
|
|
30
|
-
* addNumSpeed {float} 持续喷射时,起始粒子添加速度(个/ms), 默认为0.001
|
|
31
|
-
* enableFade {boolean} 粒子淡出开关, 默认为false
|
|
32
|
-
* enableShrink {boolean} 粒子缩小开关, 默认为false
|
|
33
|
-
-->
|
|
34
|
-
<script>
|
|
35
|
-
import { Forge, ForgeExtension } from "../../../dom/jsv-forge-define";
|
|
36
|
-
|
|
37
|
-
let buildForgeView = (pointRes, sprayStyle) => {
|
|
38
|
-
if (!pointRes) {
|
|
39
|
-
return -1;
|
|
40
|
-
}
|
|
41
|
-
const texture_manager = ForgeExtension.TextureManager;
|
|
42
|
-
let texture_setting;
|
|
43
|
-
if (pointRes.trim().startsWith("#") || pointRes.trim().startsWith("rgba")) {
|
|
44
|
-
texture_setting = new Forge.TextureSetting(
|
|
45
|
-
texture_manager.GetColorTexture(pointRes)
|
|
46
|
-
);
|
|
47
|
-
} else {
|
|
48
|
-
const base_url = pointRes;
|
|
49
|
-
let image_url = base_url;
|
|
50
|
-
if (base_url && base_url.indexOf("http") === 0) {
|
|
51
|
-
image_url = base_url;
|
|
52
|
-
} else if (window.JsView.React.UrlRef) {
|
|
53
|
-
image_url = new window.JsView.React.UrlRef(pointRes).href;
|
|
54
|
-
}
|
|
55
|
-
texture_setting = new Forge.ExternalTextureSetting(
|
|
56
|
-
texture_manager.GetImage2(image_url, false, null, "RGB_8888", null)
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
const spray_view = new Forge.SprayView(texture_setting);
|
|
60
|
-
const add_num_per_frame = sprayStyle.addNumSpeed
|
|
61
|
-
? sprayStyle.addNumSpeed
|
|
62
|
-
: 0.001;
|
|
63
|
-
const accelerate_x =
|
|
64
|
-
typeof sprayStyle.accelerateX !== "undefined" ? sprayStyle.accelerateX : 0;
|
|
65
|
-
const accelerate_y =
|
|
66
|
-
typeof sprayStyle.accelerateY !== "undefined"
|
|
67
|
-
? sprayStyle.accelerateY
|
|
68
|
-
: -100;
|
|
69
|
-
spray_view.SetSprayInfo(
|
|
70
|
-
sprayStyle.type,
|
|
71
|
-
sprayStyle.particleNum,
|
|
72
|
-
add_num_per_frame,
|
|
73
|
-
(sprayStyle.deltaAngle / 180) * 3.1415,
|
|
74
|
-
sprayStyle.deltaWidth,
|
|
75
|
-
sprayStyle.deltaHeight,
|
|
76
|
-
sprayStyle.pointSizeMin,
|
|
77
|
-
sprayStyle.pointSizeMax,
|
|
78
|
-
sprayStyle.speedMin,
|
|
79
|
-
sprayStyle.speedMax,
|
|
80
|
-
sprayStyle.lifeMin,
|
|
81
|
-
sprayStyle.lifeMax,
|
|
82
|
-
accelerate_x,
|
|
83
|
-
accelerate_y,
|
|
84
|
-
sprayStyle.enableFade,
|
|
85
|
-
sprayStyle.enableShrink
|
|
86
|
-
);
|
|
87
|
-
const view_width =
|
|
88
|
-
sprayStyle.deltaWidth === 0 ? 1 : 2 * sprayStyle.deltaWidth;
|
|
89
|
-
const view_height =
|
|
90
|
-
sprayStyle.deltaHeight === 0 ? 1 : 2 * sprayStyle.deltaHeight;
|
|
91
|
-
return ForgeExtension.RootActivity.ViewStore.add(
|
|
92
|
-
new Forge.ViewInfo(spray_view, {
|
|
93
|
-
x: 0,
|
|
94
|
-
y: 0,
|
|
95
|
-
width: view_width,
|
|
96
|
-
height: view_height,
|
|
97
|
-
})
|
|
98
|
-
);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
export default {
|
|
102
|
-
props: {
|
|
103
|
-
pointRes: {
|
|
104
|
-
type: String,
|
|
105
|
-
required: true,
|
|
106
|
-
},
|
|
107
|
-
sprayStyle: {
|
|
108
|
-
type: Object,
|
|
109
|
-
required: true,
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
data() {
|
|
113
|
-
return {
|
|
114
|
-
viewId: -1,
|
|
115
|
-
};
|
|
116
|
-
},
|
|
117
|
-
methods: {
|
|
118
|
-
unloadView() {
|
|
119
|
-
if (this.viewId >= 0) {
|
|
120
|
-
ForgeExtension.RootActivity.ViewStore.remove(this.viewId);
|
|
121
|
-
this.viewId = -1;
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
created() {
|
|
126
|
-
this.viewId = buildForgeView(this.pointRes, this.sprayStyle);
|
|
127
|
-
},
|
|
128
|
-
updated() {
|
|
129
|
-
this.unloadView();
|
|
130
|
-
this.viewId = buildForgeView(this.pointRes, this.sprayStyle);
|
|
131
|
-
},
|
|
132
|
-
beforeUnmount() {
|
|
133
|
-
this.unloadView();
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
</script>
|
|
137
|
-
|
|
138
|
-
<template>
|
|
139
|
-
<div :jsv_innerview="viewId"></div>
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: ChenChanghua
|
|
3
|
+
* @Date: 2021-10-12 18:20:43
|
|
4
|
+
* @LastEditors: ChenChanghua
|
|
5
|
+
* @LastEditTime: 2021-11-18 16:42:20
|
|
6
|
+
* @Description: file content
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
<!--
|
|
10
|
+
* 【模块 export 内容】
|
|
11
|
+
* JsvSpray:Vue高阶组件,粒子效果控件
|
|
12
|
+
* prop说明:
|
|
13
|
+
* pointRes {string} (必需)粒子图案 可选值: 绝对路径url|url(相对路径url)|#FFFFFF|rbga(255,0,0,1.0)
|
|
14
|
+
* sprayStyle {object} (必需)粒子效果配置
|
|
15
|
+
*
|
|
16
|
+
* prop中的sprayStyle说明:
|
|
17
|
+
* type {int} (必需)喷射类型 0: 一次喷射 1: 持续喷射
|
|
18
|
+
* particleNum {int} (必需)粒子个数
|
|
19
|
+
* deltaAngle {int} (必需)粒子喷射角度范围。如设30则粒子喷射范围为div上边法向正负30度
|
|
20
|
+
* deltaWidth {int} (必需)粒子喷射位置宽度范围
|
|
21
|
+
* deltaHeight {int} (必需)粒子喷射位置高度范围
|
|
22
|
+
* pointSizeMin {int} (必需)粒子尺寸下限(像素)
|
|
23
|
+
* pointSizeMax {int} (必需)粒子尺寸上限(像素)
|
|
24
|
+
* speedMin {float} (必需)粒子速度下限
|
|
25
|
+
* speedMax {float} (必需)粒子速度上限
|
|
26
|
+
* lifeMin {int} (必需)粒子生命周期下限(ms)
|
|
27
|
+
* lifeMax {int} (必需)粒子生命周期上限(ms)
|
|
28
|
+
* accelerateX {float} (必需)水平方向加速度
|
|
29
|
+
* accelerateY {float} (必需)垂直方向加速度
|
|
30
|
+
* addNumSpeed {float} 持续喷射时,起始粒子添加速度(个/ms), 默认为0.001
|
|
31
|
+
* enableFade {boolean} 粒子淡出开关, 默认为false
|
|
32
|
+
* enableShrink {boolean} 粒子缩小开关, 默认为false
|
|
33
|
+
-->
|
|
34
|
+
<script>
|
|
35
|
+
import { Forge, ForgeExtension } from "../../../dom/jsv-forge-define";
|
|
36
|
+
|
|
37
|
+
let buildForgeView = (pointRes, sprayStyle) => {
|
|
38
|
+
if (!pointRes) {
|
|
39
|
+
return -1;
|
|
40
|
+
}
|
|
41
|
+
const texture_manager = ForgeExtension.TextureManager;
|
|
42
|
+
let texture_setting;
|
|
43
|
+
if (pointRes.trim().startsWith("#") || pointRes.trim().startsWith("rgba")) {
|
|
44
|
+
texture_setting = new Forge.TextureSetting(
|
|
45
|
+
texture_manager.GetColorTexture(pointRes)
|
|
46
|
+
);
|
|
47
|
+
} else {
|
|
48
|
+
const base_url = pointRes;
|
|
49
|
+
let image_url = base_url;
|
|
50
|
+
if (base_url && base_url.indexOf("http") === 0) {
|
|
51
|
+
image_url = base_url;
|
|
52
|
+
} else if (window.JsView.React.UrlRef) {
|
|
53
|
+
image_url = new window.JsView.React.UrlRef(pointRes).href;
|
|
54
|
+
}
|
|
55
|
+
texture_setting = new Forge.ExternalTextureSetting(
|
|
56
|
+
texture_manager.GetImage2(image_url, false, null, "RGB_8888", null)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
const spray_view = new Forge.SprayView(texture_setting);
|
|
60
|
+
const add_num_per_frame = sprayStyle.addNumSpeed
|
|
61
|
+
? sprayStyle.addNumSpeed
|
|
62
|
+
: 0.001;
|
|
63
|
+
const accelerate_x =
|
|
64
|
+
typeof sprayStyle.accelerateX !== "undefined" ? sprayStyle.accelerateX : 0;
|
|
65
|
+
const accelerate_y =
|
|
66
|
+
typeof sprayStyle.accelerateY !== "undefined"
|
|
67
|
+
? sprayStyle.accelerateY
|
|
68
|
+
: -100;
|
|
69
|
+
spray_view.SetSprayInfo(
|
|
70
|
+
sprayStyle.type,
|
|
71
|
+
sprayStyle.particleNum,
|
|
72
|
+
add_num_per_frame,
|
|
73
|
+
(sprayStyle.deltaAngle / 180) * 3.1415,
|
|
74
|
+
sprayStyle.deltaWidth,
|
|
75
|
+
sprayStyle.deltaHeight,
|
|
76
|
+
sprayStyle.pointSizeMin,
|
|
77
|
+
sprayStyle.pointSizeMax,
|
|
78
|
+
sprayStyle.speedMin,
|
|
79
|
+
sprayStyle.speedMax,
|
|
80
|
+
sprayStyle.lifeMin,
|
|
81
|
+
sprayStyle.lifeMax,
|
|
82
|
+
accelerate_x,
|
|
83
|
+
accelerate_y,
|
|
84
|
+
sprayStyle.enableFade,
|
|
85
|
+
sprayStyle.enableShrink
|
|
86
|
+
);
|
|
87
|
+
const view_width =
|
|
88
|
+
sprayStyle.deltaWidth === 0 ? 1 : 2 * sprayStyle.deltaWidth;
|
|
89
|
+
const view_height =
|
|
90
|
+
sprayStyle.deltaHeight === 0 ? 1 : 2 * sprayStyle.deltaHeight;
|
|
91
|
+
return ForgeExtension.RootActivity.ViewStore.add(
|
|
92
|
+
new Forge.ViewInfo(spray_view, {
|
|
93
|
+
x: 0,
|
|
94
|
+
y: 0,
|
|
95
|
+
width: view_width,
|
|
96
|
+
height: view_height,
|
|
97
|
+
})
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export default {
|
|
102
|
+
props: {
|
|
103
|
+
pointRes: {
|
|
104
|
+
type: String,
|
|
105
|
+
required: true,
|
|
106
|
+
},
|
|
107
|
+
sprayStyle: {
|
|
108
|
+
type: Object,
|
|
109
|
+
required: true,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
data() {
|
|
113
|
+
return {
|
|
114
|
+
viewId: -1,
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
methods: {
|
|
118
|
+
unloadView() {
|
|
119
|
+
if (this.viewId >= 0) {
|
|
120
|
+
ForgeExtension.RootActivity.ViewStore.remove(this.viewId);
|
|
121
|
+
this.viewId = -1;
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
created() {
|
|
126
|
+
this.viewId = buildForgeView(this.pointRes, this.sprayStyle);
|
|
127
|
+
},
|
|
128
|
+
updated() {
|
|
129
|
+
this.unloadView();
|
|
130
|
+
this.viewId = buildForgeView(this.pointRes, this.sprayStyle);
|
|
131
|
+
},
|
|
132
|
+
beforeUnmount() {
|
|
133
|
+
this.unloadView();
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
</script>
|
|
137
|
+
|
|
138
|
+
<template>
|
|
139
|
+
<div :jsv_innerview="viewId"></div>
|
|
140
140
|
</template>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: ChenChanghua
|
|
3
|
-
* @Date: 2021-10-13 15:14:29
|
|
4
|
-
* @LastEditors: ChenChanghua
|
|
5
|
-
* @LastEditTime: 2021-10-18 14:09:04
|
|
6
|
-
* @Description: file content
|
|
7
|
-
*/
|
|
8
|
-
//考虑到.vue文件除了export default的component外,还有可能export其他对象,因此使用import * as
|
|
9
|
-
import * as JsvSpray from "./JsvSpray.vue";
|
|
10
|
-
let _JsvSpray = JsvSpray;
|
|
11
|
-
if (window.JsvWidgetWrapperGroup && window.JsvWidgetWrapperGroup.BrowserSpray) {
|
|
12
|
-
_JsvSpray = window.JsvWidgetWrapperGroup.BrowserSpray;
|
|
13
|
-
}
|
|
14
|
-
let component = _JsvSpray.default;
|
|
1
|
+
/*
|
|
2
|
+
* @Author: ChenChanghua
|
|
3
|
+
* @Date: 2021-10-13 15:14:29
|
|
4
|
+
* @LastEditors: ChenChanghua
|
|
5
|
+
* @LastEditTime: 2021-10-18 14:09:04
|
|
6
|
+
* @Description: file content
|
|
7
|
+
*/
|
|
8
|
+
//考虑到.vue文件除了export default的component外,还有可能export其他对象,因此使用import * as
|
|
9
|
+
import * as JsvSpray from "./JsvSpray.vue";
|
|
10
|
+
let _JsvSpray = JsvSpray;
|
|
11
|
+
if (window.JsvWidgetWrapperGroup && window.JsvWidgetWrapperGroup.BrowserSpray) {
|
|
12
|
+
_JsvSpray = window.JsvWidgetWrapperGroup.BrowserSpray;
|
|
13
|
+
}
|
|
14
|
+
let component = _JsvSpray.default;
|
|
15
15
|
export default component;
|