@shijiu/jsview 1.9.719

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 (148) hide show
  1. package/dom/bin/jsview-browser-debug-dom.min.js +1 -0
  2. package/dom/bin/jsview-dom.min.js +1 -0
  3. package/dom/bin/jsview-engine-js-browser.min.js +1 -0
  4. package/dom/bin/jsview-forge-define.min.js +1 -0
  5. package/dom/browser-root-style.css +21 -0
  6. package/dom/jsv-browser-debug-dom.js +8 -0
  7. package/dom/jsv-dom.js +6 -0
  8. package/dom/jsv-engine-js-browser.js +6 -0
  9. package/dom/jsv-forge-define.js +6 -0
  10. package/dom/jsview-dom/README.md +5 -0
  11. package/dom/jsview-dom/package-lock.json-perfect +3898 -0
  12. package/dom/jsview-dom/package.json +23 -0
  13. package/dom/jsview-dom/rollup/browser-debug-dom.rollup.config.js +15 -0
  14. package/dom/jsview-dom/rollup/dom.rollup.config.js +14 -0
  15. package/dom/jsview-dom/rollup/engine-js-browser.rollup.config.js +14 -0
  16. package/dom/jsview-dom/rollup/forge-define.rollup.config.js +14 -0
  17. package/dom/jsview-dom/scripts/release_dist.sh +36 -0
  18. package/dom/jsview-dom/src/dom-browser-hook/HookDocument.js +118 -0
  19. package/dom/jsview-dom/src/dom-browser-hook/OriginDocument.js +19 -0
  20. package/dom/jsview-dom/src/dom-browser-hook/StyleFormatCheck.js +559 -0
  21. package/dom/jsview-dom/src/dom-browser-hook/index.js +6 -0
  22. package/dom/jsview-dom/src/dom-wrapper/ForgeExtension.js +226 -0
  23. package/dom/jsview-dom/src/dom-wrapper/JsViewForgeApp.js +85 -0
  24. package/dom/jsview-dom/src/dom-wrapper/JsViewProxy.js +51 -0
  25. package/dom/jsview-dom/src/dom-wrapper/event/AnimationEvent.js +7 -0
  26. package/dom/jsview-dom/src/dom-wrapper/event/Event.js +12 -0
  27. package/dom/jsview-dom/src/dom-wrapper/event/FocusEvent.js +9 -0
  28. package/dom/jsview-dom/src/dom-wrapper/event/KeyboardEvent.js +43 -0
  29. package/dom/jsview-dom/src/dom-wrapper/event/LoadEvent.js +8 -0
  30. package/dom/jsview-dom/src/dom-wrapper/index.js +16 -0
  31. package/dom/jsview-dom/src/dom-wrapper/node/AnchorElement.js +24 -0
  32. package/dom/jsview-dom/src/dom-wrapper/node/AudioElement.js +60 -0
  33. package/dom/jsview-dom/src/dom-wrapper/node/Comment.js +10 -0
  34. package/dom/jsview-dom/src/dom-wrapper/node/DivElement.js +498 -0
  35. package/dom/jsview-dom/src/dom-wrapper/node/Document.js +274 -0
  36. package/dom/jsview-dom/src/dom-wrapper/node/Element.js +852 -0
  37. package/dom/jsview-dom/src/dom-wrapper/node/FDivElement.js +48 -0
  38. package/dom/jsview-dom/src/dom-wrapper/node/HeadElement.js +47 -0
  39. package/dom/jsview-dom/src/dom-wrapper/node/ImageElement.js +203 -0
  40. package/dom/jsview-dom/src/dom-wrapper/node/JsvAudioTrackElement.js +22 -0
  41. package/dom/jsview-dom/src/dom-wrapper/node/JsvElement.js +40 -0
  42. package/dom/jsview-dom/src/dom-wrapper/node/LinkElement.js +48 -0
  43. package/dom/jsview-dom/src/dom-wrapper/node/MediaElement.js +230 -0
  44. package/dom/jsview-dom/src/dom-wrapper/node/Node.js +178 -0
  45. package/dom/jsview-dom/src/dom-wrapper/node/SVGElement.js +9 -0
  46. package/dom/jsview-dom/src/dom-wrapper/node/ScriptElement.js +45 -0
  47. package/dom/jsview-dom/src/dom-wrapper/node/StyleElement.js +33 -0
  48. package/dom/jsview-dom/src/dom-wrapper/node/StyleElementCache.js +41 -0
  49. package/dom/jsview-dom/src/dom-wrapper/node/Text.js +22 -0
  50. package/dom/jsview-dom/src/dom-wrapper/node/UnknownElement.js +4 -0
  51. package/dom/jsview-dom/src/dom-wrapper/node/VideoElement.js +237 -0
  52. package/dom/jsview-dom/src/dom-wrapper/style/BorderImage.js +25 -0
  53. package/dom/jsview-dom/src/dom-wrapper/style/Inset.js +26 -0
  54. package/dom/jsview-dom/src/dom-wrapper/style/JsvStyleVariable.js +65 -0
  55. package/dom/jsview-dom/src/dom-wrapper/style/KeyframeRule.js +11 -0
  56. package/dom/jsview-dom/src/dom-wrapper/style/StyleDeclaration.js +609 -0
  57. package/dom/jsview-dom/src/dom-wrapper/style/StyleSheet.js +51 -0
  58. package/dom/jsview-dom/src/dom-wrapper/style/StyleValue.js +385 -0
  59. package/dom/jsview-dom/src/dom-wrapper/style/TextStylePackMap.js +43 -0
  60. package/dom/jsview-dom/src/dom-wrapper/style/URL.js +144 -0
  61. package/dom/jsview-dom/src/dom-wrapper/utils/EventHandler.js +42 -0
  62. package/dom/jsview-dom/src/dom-wrapper/utils/FDivRoot.js +86 -0
  63. package/dom/jsview-dom/src/dom-wrapper/utils/JsvLazySyncCache.js +64 -0
  64. package/dom/jsview-dom/src/dom-wrapper/utils/Log.js +42 -0
  65. package/dom/jsview-dom/src/dom-wrapper/utils/MutationObserver.js +32 -0
  66. package/dom/jsview-dom/src/dom-wrapper/utils/focusableNode.js +715 -0
  67. package/dom/jsview-dom/src/engine-js/ForgeDefine.js +8 -0
  68. package/dom/jsview-dom/src/engine-js/ForgeExtensionDefine.js +14 -0
  69. package/dom/jsview-dom/src/engine-js/browser/PlatformUtils.js +100 -0
  70. package/dom/jsview-dom/src/engine-js/browser/animation_base.js +313 -0
  71. package/dom/jsview-dom/src/engine-js/browser/animation_keyframe.js +64 -0
  72. package/dom/jsview-dom/src/engine-js/browser/animation_progress.js +287 -0
  73. package/dom/jsview-dom/src/engine-js/browser/animation_proxy.js +906 -0
  74. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/demux.js +143 -0
  75. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/gifDecoder.js +12 -0
  76. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/libwebp-0.6.0.min.js +160 -0
  77. package/dom/jsview-dom/src/engine-js/browser/console_log.js +25 -0
  78. package/dom/jsview-dom/src/engine-js/browser/dynamic_key_frames.js +95 -0
  79. package/dom/jsview-dom/src/engine-js/browser/easing.js +114 -0
  80. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/element_transform.js +122 -0
  81. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/gjk.js +450 -0
  82. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/mat.js +102 -0
  83. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/range_model.js +296 -0
  84. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/test_collide.js +10 -0
  85. package/dom/jsview-dom/src/engine-js/browser/index.js +38 -0
  86. package/dom/jsview-dom/src/engine-js/browser/latex_parse.js +336 -0
  87. package/dom/jsview-dom/src/engine-js/browser/layout_params.js +113 -0
  88. package/dom/jsview-dom/src/engine-js/browser/layout_view.js +3545 -0
  89. package/dom/jsview-dom/src/engine-js/browser/layout_view_debug.js +15 -0
  90. package/dom/jsview-dom/src/engine-js/browser/media.js +379 -0
  91. package/dom/jsview-dom/src/engine-js/browser/page_base.js +941 -0
  92. package/dom/jsview-dom/src/engine-js/browser/particle_view.js +526 -0
  93. package/dom/jsview-dom/src/engine-js/browser/platform_timer.js +61 -0
  94. package/dom/jsview-dom/src/engine-js/browser/react_utils.js +5 -0
  95. package/dom/jsview-dom/src/engine-js/browser/rect_utils.js +91 -0
  96. package/dom/jsview-dom/src/engine-js/browser/render_bridge.js +128 -0
  97. package/dom/jsview-dom/src/engine-js/browser/render_texture_proxy.js +155 -0
  98. package/dom/jsview-dom/src/engine-js/browser/renderer_deprecated.js +75 -0
  99. package/dom/jsview-dom/src/engine-js/browser/sound_pool.js +139 -0
  100. package/dom/jsview-dom/src/engine-js/browser/steps_animation.js +192 -0
  101. package/dom/jsview-dom/src/engine-js/browser/text_style_cache.js +454 -0
  102. package/dom/jsview-dom/src/engine-js/browser/text_utils.js +299 -0
  103. package/dom/jsview-dom/src/engine-js/browser/text_view.js +428 -0
  104. package/dom/jsview-dom/src/engine-js/browser/texture_manager.js +1060 -0
  105. package/dom/jsview-dom/src/engine-js/browser/url.js +69 -0
  106. package/dom/jsview-dom/src/engine-js/browser/velocity.js +40 -0
  107. package/dom/jsview-dom/src/engine-js/browser/view_sensor/autofroze_sensor.js +77 -0
  108. package/dom/jsview-dom/src/engine-js/browser/view_sensor/drag_impact_sensor.js +67 -0
  109. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor.js +98 -0
  110. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor_callback.js +21 -0
  111. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor_manager.js +24 -0
  112. package/dom/jsview-dom/src/engine-js/browser/view_sensor/index.js +9 -0
  113. package/dom/jsview-dom/src/engine-js/browser/view_sensor/view_sensor.js +268 -0
  114. package/dom/jsview-dom/src/engine-js/browser/view_sensor/view_sensor_manager.js +84 -0
  115. package/dom/jsview-dom/src/engine-js/browser/view_sensor/visible_sensor.js +213 -0
  116. package/dom/jsview-dom/src/engine-js/browser/view_store.js +41 -0
  117. package/dom/jsview-dom/src/engine-js/index.js +2 -0
  118. package/dom/jsview-dom/src/engine-js/native/README.md +1 -0
  119. package/dom/target_core_revision.mjs +15 -0
  120. package/index.js +0 -0
  121. package/loader/header_script_loader.js +134 -0
  122. package/loader/jsview-main.js +42 -0
  123. package/loader/jsview.config.default.js +37 -0
  124. package/loader/jsview.default.config.js +37 -0
  125. package/loader/loader.js +183 -0
  126. package/loader/loader_webkit.js +40 -0
  127. package/package.json +31 -0
  128. package/patches/node_modules/@vitejs/plugin-react/dist/index.cjs +520 -0
  129. package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +17609 -0
  130. package/patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js +335 -0
  131. package/patches/node_modules/@vue/compiler-sfc/dist/jsview-style-format.js +446 -0
  132. package/patches/node_modules/@vue/compiler-sfc/dist/jsview-style-types.js +91 -0
  133. package/patches/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +8038 -0
  134. package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +1700 -0
  135. package/patches/node_modules/postcss-js/objectifier.js +90 -0
  136. package/patches/node_modules/vite/dist/node/chunks/dep-0fc8e132.js +63175 -0
  137. package/patches/node_modules/vite/dist/node/jsview-react.vite.config.js +7 -0
  138. package/patches/node_modules/vite/dist/node/jsview-vue.vite.config.js +7 -0
  139. package/patches/node_modules/vite/dist/node/jsview.vite.config.js +56 -0
  140. package/patches/node_modules/vue-router/dist/vue-router.mjs +3595 -0
  141. package/tools/common.js +58 -0
  142. package/tools/jsview-jsmap-serve.js +105 -0
  143. package/tools/jsview-post-build.js +184 -0
  144. package/tools/jsview-post-install-react.js +13 -0
  145. package/tools/jsview-post-install-vue.js +16 -0
  146. package/tools/jsview-post-install.js +116 -0
  147. package/tools/jsview-run-android.js +67 -0
  148. package/tsconfig.json +34 -0
@@ -0,0 +1,299 @@
1
+ import Forge from "../ForgeDefine";
2
+
3
+ // 当TextView需要父View时,搭建一个中转类,将针对TextView的设置转发到TextView中
4
+ class TextParentViewProxy extends Forge.LayoutView {
5
+ constructor() {
6
+ super();
7
+ this._ChildTextView = null;
8
+ }
9
+
10
+ PutChildTextView(child_view) {
11
+ this._ChildTextView = child_view; // 记录TextView
12
+ this.AddView(child_view);
13
+ }
14
+
15
+ // 代理EnableAutoHeight
16
+ EnableAutoHeight() {
17
+ this._ChildTextView.EnableAutoHeight();
18
+ }
19
+ }
20
+
21
+ class TextUtils {
22
+ StringWithFont(
23
+ _str,
24
+ _size,
25
+ _font,
26
+ _alignment,
27
+ _vertical_align,
28
+ _text_color,
29
+ _italic,
30
+ _bold,
31
+ _shadow,
32
+ _stroke_width,
33
+ _vertical_area_align
34
+ ) {
35
+ if (!_size) _size = TextUtils._sDefaultFontSize;
36
+ if (!_font) _font = TextUtils._sDefaultFont;
37
+
38
+ let italic = "";
39
+ if (_italic === true) {
40
+ italic = "italic";
41
+ }
42
+ let bold = "";
43
+ if (_bold === true) {
44
+ bold = "bold";
45
+ }
46
+ if (!_alignment) _alignment = "left";
47
+ if (!_vertical_align) _vertical_align = "middle";
48
+ if (!_text_color) _text_color = TextUtils._sDefaultFontColor;
49
+ if (!_shadow) _shadow = null;
50
+ if (!_vertical_area_align) _vertical_area_align = "top";
51
+ // LogM("_str=" + _str + " _size=" + _size + " _font=" + _font + " text_color=" + _text_color);
52
+ if (!_stroke_width) _stroke_width = -1;
53
+ return {
54
+ str: `${_str}`, // export member
55
+ font: _font, // export member
56
+ size: _size, // export member
57
+ italic,
58
+ bold,
59
+ stroke_width: _stroke_width,
60
+ alignment: _alignment,
61
+ vertical_align: _vertical_align,
62
+ textColour: _text_color,
63
+ backgroundColour: TextUtils._sDefaultBackgroundColor,
64
+ enableBlend: true,
65
+ shadow: _shadow,
66
+ vertical_area_align: _vertical_area_align,
67
+ };
68
+ }
69
+
70
+ TextAttr(_text_overflow, _word_wrap) {
71
+ if (!_text_overflow) _text_overflow = "none";
72
+ if (!_word_wrap) _word_wrap = "none";
73
+
74
+ return { text_overflow: _text_overflow, word_wrap: _word_wrap };
75
+ }
76
+
77
+ GetTextWidth(...args) {
78
+ if (args.length <= 1) {
79
+ // 单参数obj场景
80
+ let t_StringWithFont = args[0];
81
+ if (typeof window.PlatformUtils != "undefined") {
82
+ return window.PlatformUtils.GetTextWidth(t_StringWithFont);
83
+ } else {
84
+ return t_StringWithFont.str.length * t_StringWithFont.size + 1; // TODO: 矫正成和平台相关的同步函数
85
+ }
86
+ } else {
87
+ // 多参数场景
88
+ let text = args[0];
89
+ if (typeof window.PlatformUtils != "undefined") {
90
+ let font_params = {
91
+ "str": text,
92
+ "font": args[1] ? args[1] : "黑体",
93
+ "size": args[2],
94
+ "bold": args[3],
95
+ "italic": args[4]
96
+ }
97
+ return window.PlatformUtils.GetTextWidth(font_params);
98
+ } else {
99
+ return text.length * text.size + 1; // TODO: 矫正成和平台相关的同步函数
100
+ }
101
+ }
102
+ }
103
+
104
+ GetTextRect(str, max_rect, font_params, text_attr, line_height) {
105
+ if (typeof window.PlatformUtils !== "undefined") {
106
+ return window.PlatformUtils.GetTextRect(
107
+ str,
108
+ max_rect,
109
+ font_params,
110
+ text_attr,
111
+ line_height
112
+ );
113
+ }
114
+ return { width: max_rect.width, height: max_rect.height };
115
+ }
116
+
117
+ GetTextInfo(str, max_rect, font_params, text_attr, line_height) {
118
+ if (typeof window.PlatformUtils !== "undefined") {
119
+ return window.PlatformUtils.GetTextInfo(
120
+ str,
121
+ max_rect,
122
+ font_params,
123
+ text_attr,
124
+ line_height
125
+ );
126
+ }
127
+ return {
128
+ start: 0,
129
+ end: str.length,
130
+ width: max_rect.width,
131
+ height: max_rect.height,
132
+ };
133
+ }
134
+
135
+ GetCursorOffset(
136
+ str,
137
+ max_rect,
138
+ font_params,
139
+ text_attr,
140
+ line_height,
141
+ pos_x,
142
+ pos_y
143
+ ) {
144
+ if (typeof window.PlatformUtils !== "undefined") {
145
+ return window.PlatformUtils.GetCursorOffset(
146
+ str,
147
+ max_rect,
148
+ font_params,
149
+ text_attr,
150
+ line_height,
151
+ pos_x,
152
+ pos_y
153
+ );
154
+ }
155
+ return 0;
156
+ }
157
+
158
+ GetCursorPosition(
159
+ str,
160
+ max_rect,
161
+ font_params,
162
+ text_attr,
163
+ line_height,
164
+ cursor_offset
165
+ ) {
166
+ if (typeof window.PlatformUtils !== "undefined") {
167
+ return window.PlatformUtils.GetCursorPosition(
168
+ str,
169
+ max_rect,
170
+ font_params,
171
+ text_attr,
172
+ line_height,
173
+ cursor_offset
174
+ );
175
+ }
176
+ return { x: 0, y: 0 };
177
+ }
178
+
179
+ /**
180
+ * 通过TextStylePack设定创建TextView
181
+ *
182
+ * @public
183
+ * @func BuildTextView
184
+ * @memberof Forge.TextUtils
185
+ * @param {Forge.TextureManager} manager 纹理管理器
186
+ * @param {String} str 文件内容
187
+ * @param {Forge.TextStylePack} tsp 文字配置信息
188
+ * @param {Function} load_callback 文字加载完成后的回调
189
+ * @param {Object} area 文字描画区域,有宽高即可{width:xxxx, height:xxxx}, 当height为0表示按照文字长度处理高
190
+ * @param {int} font_size 字号
191
+ * @param {int} line_height 文字行高
192
+ * @param {boolean} is_instant 是否立即加载(0/1)
193
+ * @param {boolean} latex_mode 多格式混排模式
194
+ * @param {boolean} has_emoji 是否含有emoji
195
+ * @param {Object} empty_rect {x: 0, y: 0, w: 0, h: 0} 文字留白区域
196
+ * @return {Forge.LayoutView} 文字View
197
+ */
198
+ BuildTextView(
199
+ manager,
200
+ str,
201
+ tsp,
202
+ load_callback,
203
+ area,
204
+ font_size,
205
+ line_height,
206
+ is_instant,
207
+ latex_mode,
208
+ has_emoji,
209
+ empty_rect,
210
+ ) {
211
+ // 规范化数值内容,以免崩溃
212
+ area.width = isNaN(area.width) ? 0 : area.width;
213
+ area.height = isNaN(area.height) ? 0 : area.height;
214
+ font_size = isNaN(font_size) ? 10 /* 默认字号10 */ : font_size;
215
+ line_height = isNaN(line_height) ? 0 : line_height;
216
+
217
+ let text_view = new Forge.LayoutView();
218
+
219
+ // 创建Texture
220
+ const text_texture = manager.GetTextTextureFromStylePack(
221
+ str,
222
+ tsp,
223
+ !!load_callback,
224
+ area,
225
+ font_size,
226
+ line_height,
227
+ is_instant,
228
+ latex_mode,
229
+ has_emoji,
230
+ empty_rect,
231
+ );
232
+
233
+ // Texture加载完成的回调处理
234
+ if (load_callback) {
235
+ // PC端特别处理,抓取TextView element的内容来完成回调
236
+ setTimeout(()=>{
237
+ load_callback({
238
+ width: text_view.Element.clientWidth,
239
+ height: text_view.Element.clientHeight
240
+ });
241
+ });
242
+ // text_texture.RegisterLoadImageCallback(null, load_callback, null);
243
+ }
244
+
245
+ // 创建失败
246
+ if (text_texture === null) {
247
+ console.error("Error: Build text texture failed!");
248
+ return null;
249
+ }
250
+
251
+ // 采用普通的TextureSetting,保证View在离开RootView后自动释放Texture
252
+ text_view.ResetTexture(
253
+ new Forge.TextureSetting(text_texture, null, null, true)
254
+ );
255
+
256
+ // 为了增加调试性,加入以内容为命名的ID
257
+ if (str.length < 10) {
258
+ text_view.SetId("Text-" + str);
259
+ } else {
260
+ // 文字太长时,使用长度来代表view id
261
+ text_view.SetId("Text-Long-" + str.length);
262
+ }
263
+
264
+ // 配置宽高
265
+ text_view.ResetLayoutParams({
266
+ x: 0,
267
+ y: 0,
268
+ width: area.width,
269
+ height: area.height,
270
+ });
271
+
272
+ // 处理区域对齐属性
273
+ const ds_describe = tsp.DS.Describe;
274
+ if (
275
+ ds_describe.vertical_area_align === "middle" ||
276
+ ds_describe.vertical_area_align === "bottom"
277
+ ) {
278
+ const parent_view = new TextParentViewProxy();
279
+ parent_view.PutChildTextView(text_view);
280
+ text_view.Element.style.display = "table-cell";
281
+ text_view.Element.style.position = "static";
282
+ parent_view.Element.style.display = "table";
283
+ parent_view.Element.style.position = "static";
284
+
285
+ // 输出textView进行替代
286
+ text_view = parent_view;
287
+ }
288
+
289
+ return text_view;
290
+ }
291
+ }
292
+
293
+ // static const
294
+ TextUtils._sDefaultFont = "黑体";
295
+ TextUtils._sDefaultFontSize = 30;
296
+ TextUtils._sDefaultFontColor = "#FFFFFF";
297
+ TextUtils._sDefaultBackgroundColor = "rgba(0, 0, 0, 0)";
298
+ Forge.TextUtils = TextUtils;
299
+ Forge.sTextUtils = new Forge.TextUtils();