@shijiu/jsview-vue 2.1.200 → 2.1.339-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
@@ -0,0 +1,154 @@
1
+ import { reactive, watchEffect, onBeforeUnmount, openBlock, createElementBlock, createCommentVNode } from 'vue';
2
+
3
+ //!
4
+ //! utils/JsViewVueWidget/JsvPreload/BrowserPreload.vue;
5
+ //!
6
+ /*!
7
+
8
+
9
+
10
+
11
+ */
12
+ const _sfc_main = {
13
+ __name: "BrowserPreload",
14
+ props: {
15
+ preloadList: Array,
16
+ downloadList: Array,
17
+ onPreloadDone: Function,
18
+ // 预加载完成回调
19
+ onDownloadDone: Function,
20
+ // 预下载完成回调
21
+ onPreloading: Function
22
+ },
23
+ setup(__props) {
24
+ const props = __props;
25
+ const loadViewList = reactive({
26
+ preloadViewList: [],
27
+ downloadViewList: []
28
+ });
29
+ let preloadIsNullNum = 0;
30
+ let downloadIsNullNum = 0;
31
+ let preloadResultMap = {};
32
+ let downloadResultMap = {};
33
+ let downloadUrlList = [];
34
+ let unmountStatus = { unmount: false };
35
+ let preloadStateList = null;
36
+ let downloadStateList = null;
37
+ const getPreloadList = () => {
38
+ preloadStateList = new Array(props.preloadList.length).fill(false);
39
+ let preloadListData = props.preloadList;
40
+ for (let i = 0; i < preloadListData.length; i++) {
41
+ if (!preloadListData[i] || !preloadListData[i].url) {
42
+ preloadListData.splice(i, 1);
43
+ preloadIsNullNum++;
44
+ i--;
45
+ }
46
+ }
47
+ loadViewList.preloadViewList = preloadListData.map((item, index) => {
48
+ if (!item || !item.url) {
49
+ preloadStateList[index] = true;
50
+ return null;
51
+ }
52
+ const image = new Image();
53
+ const unmount_track = unmountStatus;
54
+ image.onload = () => {
55
+ if (unmount_track.unmount) {
56
+ return;
57
+ }
58
+ preloadResultMap[item.url] = {
59
+ width: image.width,
60
+ height: image.height
61
+ };
62
+ preloadStateList[index] = true;
63
+ let loadedNum = 0;
64
+ preloadStateList.map((item2) => {
65
+ loadedNum += item2 ? 1 : 0;
66
+ });
67
+ props.onPreloading?.(loadedNum / preloadStateList.length);
68
+ if (props.onPreloadDone && loadedNum + preloadIsNullNum == preloadStateList.length) {
69
+ props.onPreloadDone?.(preloadResultMap);
70
+ }
71
+ };
72
+ image.src = item.url;
73
+ });
74
+ };
75
+ const getDownloadList = () => {
76
+ downloadStateList = new Array(props.downloadList.length).fill(false);
77
+ downloadUrlList = new Array(downloadStateList.length);
78
+ let downloadListData = props.downloadList;
79
+ for (let i = 0; i < downloadListData.length; i++) {
80
+ if (!downloadListData[i] || !downloadListData[i].url) {
81
+ downloadListData.splice(i, 1);
82
+ downloadUrlList[i] = "invalid";
83
+ downloadIsNullNum++;
84
+ i--;
85
+ }
86
+ }
87
+ loadViewList.downloadViewList = downloadListData.map((item, index) => {
88
+ if (!item || !item.url) {
89
+ downloadStateList[index] = true;
90
+ downloadUrlList[index] = "invalid";
91
+ return null;
92
+ }
93
+ const image = new Image();
94
+ const unmount_track = unmountStatus;
95
+ image.onload = () => {
96
+ if (unmount_track.unmount) {
97
+ return;
98
+ }
99
+ downloadStateList[index] = true;
100
+ downloadUrlList[index] = item.url;
101
+ downloadResultMap[item.url] = {
102
+ width: image.width,
103
+ height: image.height
104
+ };
105
+ console.log(`pre download succeed ${item.url}`);
106
+ if (props.onDownloadDone) {
107
+ let downloadNum = 0;
108
+ downloadStateList.map((item2) => {
109
+ downloadNum += item2 ? 1 : 0;
110
+ });
111
+ if (downloadNum + downloadIsNullNum == downloadStateList.length) {
112
+ props.onDownloadDone?.(
113
+ downloadUrlList,
114
+ downloadResultMap
115
+ );
116
+ }
117
+ }
118
+ };
119
+ image.src = item.url;
120
+ });
121
+ };
122
+ if (props.preloadList) {
123
+ getPreloadList();
124
+ }
125
+ if (props.downloadList) {
126
+ getDownloadList();
127
+ }
128
+ watchEffect(() => {
129
+ if (props.preloadList) {
130
+ console.log("JsvPreload: update preloadList");
131
+ preloadIsNullNum = 0;
132
+ preloadResultMap = {};
133
+ getPreloadList();
134
+ }
135
+ });
136
+ watchEffect(() => {
137
+ if (props.downloadList) {
138
+ console.log("JsvPreload: update downloadList");
139
+ downloadIsNullNum = 0;
140
+ downloadResultMap = {};
141
+ downloadUrlList = [];
142
+ getDownloadList();
143
+ }
144
+ });
145
+ onBeforeUnmount(() => {
146
+ unmountStatus.unmount = true;
147
+ });
148
+ return (_ctx, _cache) => {
149
+ return !__props.preloadList ? (openBlock(), createElementBlock("div", { key: 0 })) : createCommentVNode("", true);
150
+ };
151
+ }
152
+ };
153
+
154
+ export { _sfc_main as default };
@@ -0,0 +1,178 @@
1
+ import { ref, onMounted, openBlock, createElementVNode, unref, normalizeStyle, createElementBlock } from 'vue';
2
+ import QRCode from 'qr.js';
3
+
4
+ //!
5
+ //! utils/JsViewVueWidget/JsvQrcode/BrowserQrcode.vue;
6
+ //!
7
+ /*!
8
+
9
+ */
10
+ const _sfc_main = {
11
+ __name: "BrowserQrcode",
12
+ props: {
13
+ value: String,
14
+ size: Number,
15
+ fgColor: {
16
+ type: String,
17
+ default: "#000000"
18
+ },
19
+ bgColor: {
20
+ type: String,
21
+ default: "#ffffff"
22
+ },
23
+ level: {
24
+ type: String,
25
+ // ,容错级别,分别是L(7%)、M(15%)、Q(25%)、H(30%),
26
+ default: "L"
27
+ },
28
+ imageSettings: Object
29
+ },
30
+ setup(__props) {
31
+ const props = __props;
32
+ const convertStr = (str) => {
33
+ let out = "";
34
+ for (let i = 0; i < str.length; i++) {
35
+ let charcode = str.charCodeAt(i);
36
+ if (charcode < 128) {
37
+ out += String.fromCharCode(charcode);
38
+ } else if (charcode < 2048) {
39
+ out += String.fromCharCode(192 | charcode >> 6);
40
+ out += String.fromCharCode(128 | charcode & 63);
41
+ } else if (charcode < 55296 || charcode >= 57344) {
42
+ out += String.fromCharCode(224 | charcode >> 12);
43
+ out += String.fromCharCode(128 | charcode >> 6 & 63);
44
+ out += String.fromCharCode(128 | charcode & 63);
45
+ } else {
46
+ i++;
47
+ charcode = 65536 + ((charcode & 1023) << 10 | str.charCodeAt(i) & 1023);
48
+ out += String.fromCharCode(240 | charcode >> 18);
49
+ out += String.fromCharCode(128 | charcode >> 12 & 63);
50
+ out += String.fromCharCode(128 | charcode >> 6 & 63);
51
+ out += String.fromCharCode(128 | charcode & 63);
52
+ }
53
+ }
54
+ return out;
55
+ };
56
+ const generatePath = (modules, margin = 0) => {
57
+ const ops = [];
58
+ modules.forEach((row, y) => {
59
+ let start = null;
60
+ row.forEach((cell, x) => {
61
+ if (!cell && start !== null) {
62
+ ops.push(
63
+ `M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`
64
+ );
65
+ start = null;
66
+ return;
67
+ }
68
+ if (x === row.length - 1) {
69
+ if (!cell) {
70
+ return;
71
+ }
72
+ if (start === null) {
73
+ ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);
74
+ } else {
75
+ ops.push(
76
+ `M${start + margin},${y + margin} h${x + 1 - start}v1H${start + margin}z`
77
+ );
78
+ }
79
+ return;
80
+ }
81
+ if (cell && start === null) {
82
+ start = x;
83
+ }
84
+ });
85
+ });
86
+ return ops.join("");
87
+ };
88
+ const getImageSettings = (props2) => {
89
+ const imageSettings = props2.imageSettings;
90
+ const size = props2.size;
91
+ if (!imageSettings) {
92
+ return null;
93
+ }
94
+ const w = imageSettings.width;
95
+ const h = imageSettings.height;
96
+ const x = !imageSettings.x ? size / 2 - w / 2 : imageSettings.x;
97
+ const y = !imageSettings.y ? size / 2 - h / 2 : imageSettings.y;
98
+ return { x, y, h, w };
99
+ };
100
+ const renderQrcode = () => {
101
+ const qrcode = QRCode(convertStr(props.value), {
102
+ errorCorrectLevel: QRCode.ErrorCorrectLevel[props.level]
103
+ });
104
+ const cells = qrcode.modules;
105
+ if (cells === null) {
106
+ return null;
107
+ }
108
+ const margin = 2;
109
+ const numCells = cells.length + margin * 2;
110
+ const propsData = {
111
+ value: props.value,
112
+ size: props.size,
113
+ level: props.level,
114
+ bgColor: props.bgColor,
115
+ fgColor: props.fgColor,
116
+ imageSettings: props.imageSettings
117
+ };
118
+ const calculatedImageSettings = getImageSettings(propsData);
119
+ if (props.imageSettings) {
120
+ imageStyle = {
121
+ backgroundImage: `url(${props.imageSettings.src})`,
122
+ height: calculatedImageSettings.h,
123
+ width: calculatedImageSettings.w,
124
+ left: calculatedImageSettings.x + margin,
125
+ top: calculatedImageSettings.y + margin
126
+ };
127
+ } else {
128
+ imageStyle = {};
129
+ }
130
+ const fgPath = generatePath(cells, margin);
131
+ return { numCells, fgPath };
132
+ };
133
+ const svgRoot = ref(null);
134
+ let imageStyle = null;
135
+ const qrcodeRes = renderQrcode();
136
+ onMounted(() => {
137
+ svgRoot.value.jsvGetProxyView().RegisterOnProxyReady(() => {
138
+ const root = svgRoot.value.jsvGetProxyView().HtmlGetElement();
139
+ const doc = window.originDocument;
140
+ const svg = doc.createElementNS("http://www.w3.org/2000/svg", "svg");
141
+ svg.setAttribute("type", "qrcode");
142
+ svg.setAttribute("shapeRendering", "crispEdges");
143
+ svg.setAttribute("height", props.size);
144
+ svg.setAttribute("width", props.size);
145
+ svg.setAttribute(
146
+ "viewBox",
147
+ "0 0 " + qrcodeRes.numCells + " " + qrcodeRes.numCells
148
+ );
149
+ const path1 = doc.createElementNS("http://www.w3.org/2000/svg", "path");
150
+ path1.setAttribute("fill", props.bgColor);
151
+ path1.setAttribute(
152
+ "d",
153
+ "M0,0 h" + qrcodeRes.numCells + "v" + qrcodeRes.numCells + "H0z"
154
+ );
155
+ const path2 = doc.createElementNS("http://www.w3.org/2000/svg", "path");
156
+ path2.setAttribute("fill", props.fgColor);
157
+ path2.setAttribute("d", qrcodeRes.fgPath);
158
+ svg.appendChild(path1);
159
+ svg.appendChild(path2);
160
+ root.appendChild(svg);
161
+ });
162
+ });
163
+ return (_ctx, _cache) => {
164
+ return openBlock(), createElementBlock("div", null, [
165
+ createElementVNode("div", {
166
+ ref_key: "svgRoot",
167
+ ref: svgRoot,
168
+ style: { width: 100, height: 100 }
169
+ }, null, 512),
170
+ createElementVNode("div", {
171
+ style: normalizeStyle(unref(imageStyle))
172
+ }, null, 4)
173
+ ]);
174
+ };
175
+ }
176
+ };
177
+
178
+ export { _sfc_main as default };
@@ -0,0 +1,66 @@
1
+ import { Forge } from '@shijiu/jsview/dom/jsv-forge-define';
2
+ import { openBlock, normalizeStyle, createElementBlock } from 'vue';
3
+ import { _ as _export_sfc } from '../export-sfc.mjs';
4
+
5
+ //!
6
+ //! utils/JsViewVueWidget/JsvSpray/BrowserSpray.vue;
7
+ //!
8
+ /*! <!--
9
+ * @Author: ChenChanghua
10
+ * @Date: 2021-10-13 11:02:42
11
+ * @LastEditors: ChenChanghua
12
+ * @LastEditTime: 2021-10-13 15:10:01
13
+ * @Description: file content
14
+ -->
15
+
16
+
17
+ */
18
+ const _sfc_main = {
19
+ props: {
20
+ pointRes: {
21
+ type: String,
22
+ required: true
23
+ },
24
+ sprayStyle: {
25
+ type: Object,
26
+ required: true
27
+ }
28
+ },
29
+ data() {
30
+ return {
31
+ viewId: -1
32
+ };
33
+ },
34
+ computed: {
35
+ viewWidth() {
36
+ return this.sprayStyle.deltaWidth === 0 ? 1 : this.sprayStyle.deltaWidth * 2;
37
+ },
38
+ viewHeight() {
39
+ return this.sprayStyle.deltaHeight === 0 ? 1 : this.sprayStyle.deltaHeight * 2;
40
+ }
41
+ },
42
+ mounted() {
43
+ const viewSize = {
44
+ width: this.viewWidth,
45
+ height: this.viewHeight
46
+ };
47
+ this.viewId = Forge.sParticleManager.addParticle(
48
+ this.sprayStyle,
49
+ this.pointRes,
50
+ viewSize,
51
+ this.$refs.element.jsvGetProxyView()
52
+ );
53
+ },
54
+ beforeUnmount() {
55
+ Forge.sParticleManager.recycleView(this.viewId);
56
+ }
57
+ };
58
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
59
+ return openBlock(), createElementBlock("div", {
60
+ ref: "element",
61
+ style: normalizeStyle({ width: $options.viewWidth, height: $options.viewHeight })
62
+ }, null, 4);
63
+ }
64
+ const BrowserSpray = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
65
+
66
+ export { BrowserSpray as default };