@shijiu/jsview 1.9.730 → 1.9.747

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 (116) hide show
  1. package/dom/jsv-browser-debug-dom.js +1 -1
  2. package/dom/jsv-dom.js +1 -1
  3. package/dom/jsv-engine-js-browser.js +1 -1
  4. package/dom/jsv-forge-define.js +1 -1
  5. package/package.json +14 -17
  6. package/patches/node_modules/vite/dist/node/chunks/dep-0fc8e132.js +8 -1
  7. package/patches/node_modules/vite/dist/node/jsview.vite.config.js +12 -6
  8. package/dom/jsview-dom/README.md +0 -5
  9. package/dom/jsview-dom/package-lock.json-perfect +0 -3898
  10. package/dom/jsview-dom/package.json +0 -23
  11. package/dom/jsview-dom/rollup/browser-debug-dom.rollup.config.js +0 -15
  12. package/dom/jsview-dom/rollup/dom.rollup.config.js +0 -14
  13. package/dom/jsview-dom/rollup/engine-js-browser.rollup.config.js +0 -14
  14. package/dom/jsview-dom/rollup/forge-define.rollup.config.js +0 -14
  15. package/dom/jsview-dom/scripts/release_dist.sh +0 -36
  16. package/dom/jsview-dom/src/dom-browser-hook/HookDocument.js +0 -118
  17. package/dom/jsview-dom/src/dom-browser-hook/OriginDocument.js +0 -19
  18. package/dom/jsview-dom/src/dom-browser-hook/StyleFormatCheck.js +0 -559
  19. package/dom/jsview-dom/src/dom-browser-hook/index.js +0 -6
  20. package/dom/jsview-dom/src/dom-wrapper/ForgeExtension.js +0 -226
  21. package/dom/jsview-dom/src/dom-wrapper/JsViewForgeApp.js +0 -85
  22. package/dom/jsview-dom/src/dom-wrapper/JsViewProxy.js +0 -51
  23. package/dom/jsview-dom/src/dom-wrapper/event/AnimationEvent.js +0 -7
  24. package/dom/jsview-dom/src/dom-wrapper/event/Event.js +0 -12
  25. package/dom/jsview-dom/src/dom-wrapper/event/FocusEvent.js +0 -9
  26. package/dom/jsview-dom/src/dom-wrapper/event/KeyboardEvent.js +0 -43
  27. package/dom/jsview-dom/src/dom-wrapper/event/LoadEvent.js +0 -8
  28. package/dom/jsview-dom/src/dom-wrapper/index.js +0 -16
  29. package/dom/jsview-dom/src/dom-wrapper/node/AnchorElement.js +0 -24
  30. package/dom/jsview-dom/src/dom-wrapper/node/AudioElement.js +0 -60
  31. package/dom/jsview-dom/src/dom-wrapper/node/Comment.js +0 -10
  32. package/dom/jsview-dom/src/dom-wrapper/node/DivElement.js +0 -498
  33. package/dom/jsview-dom/src/dom-wrapper/node/Document.js +0 -274
  34. package/dom/jsview-dom/src/dom-wrapper/node/Element.js +0 -852
  35. package/dom/jsview-dom/src/dom-wrapper/node/FDivElement.js +0 -48
  36. package/dom/jsview-dom/src/dom-wrapper/node/HeadElement.js +0 -47
  37. package/dom/jsview-dom/src/dom-wrapper/node/ImageElement.js +0 -203
  38. package/dom/jsview-dom/src/dom-wrapper/node/JsvAudioTrackElement.js +0 -22
  39. package/dom/jsview-dom/src/dom-wrapper/node/JsvElement.js +0 -40
  40. package/dom/jsview-dom/src/dom-wrapper/node/LinkElement.js +0 -48
  41. package/dom/jsview-dom/src/dom-wrapper/node/MediaElement.js +0 -230
  42. package/dom/jsview-dom/src/dom-wrapper/node/Node.js +0 -178
  43. package/dom/jsview-dom/src/dom-wrapper/node/SVGElement.js +0 -9
  44. package/dom/jsview-dom/src/dom-wrapper/node/ScriptElement.js +0 -45
  45. package/dom/jsview-dom/src/dom-wrapper/node/StyleElement.js +0 -33
  46. package/dom/jsview-dom/src/dom-wrapper/node/StyleElementCache.js +0 -41
  47. package/dom/jsview-dom/src/dom-wrapper/node/Text.js +0 -22
  48. package/dom/jsview-dom/src/dom-wrapper/node/UnknownElement.js +0 -4
  49. package/dom/jsview-dom/src/dom-wrapper/node/VideoElement.js +0 -237
  50. package/dom/jsview-dom/src/dom-wrapper/style/BorderImage.js +0 -25
  51. package/dom/jsview-dom/src/dom-wrapper/style/Inset.js +0 -26
  52. package/dom/jsview-dom/src/dom-wrapper/style/JsvStyleVariable.js +0 -65
  53. package/dom/jsview-dom/src/dom-wrapper/style/KeyframeRule.js +0 -11
  54. package/dom/jsview-dom/src/dom-wrapper/style/StyleDeclaration.js +0 -609
  55. package/dom/jsview-dom/src/dom-wrapper/style/StyleSheet.js +0 -51
  56. package/dom/jsview-dom/src/dom-wrapper/style/StyleValue.js +0 -385
  57. package/dom/jsview-dom/src/dom-wrapper/style/TextStylePackMap.js +0 -43
  58. package/dom/jsview-dom/src/dom-wrapper/style/URL.js +0 -144
  59. package/dom/jsview-dom/src/dom-wrapper/utils/EventHandler.js +0 -42
  60. package/dom/jsview-dom/src/dom-wrapper/utils/FDivRoot.js +0 -86
  61. package/dom/jsview-dom/src/dom-wrapper/utils/JsvLazySyncCache.js +0 -64
  62. package/dom/jsview-dom/src/dom-wrapper/utils/Log.js +0 -42
  63. package/dom/jsview-dom/src/dom-wrapper/utils/MutationObserver.js +0 -32
  64. package/dom/jsview-dom/src/dom-wrapper/utils/focusableNode.js +0 -715
  65. package/dom/jsview-dom/src/engine-js/ForgeDefine.js +0 -8
  66. package/dom/jsview-dom/src/engine-js/ForgeExtensionDefine.js +0 -14
  67. package/dom/jsview-dom/src/engine-js/browser/PlatformUtils.js +0 -100
  68. package/dom/jsview-dom/src/engine-js/browser/animation_base.js +0 -313
  69. package/dom/jsview-dom/src/engine-js/browser/animation_keyframe.js +0 -64
  70. package/dom/jsview-dom/src/engine-js/browser/animation_progress.js +0 -287
  71. package/dom/jsview-dom/src/engine-js/browser/animation_proxy.js +0 -906
  72. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/demux.js +0 -143
  73. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/gifDecoder.js +0 -12
  74. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/libwebp-0.6.0.min.js +0 -160
  75. package/dom/jsview-dom/src/engine-js/browser/console_log.js +0 -25
  76. package/dom/jsview-dom/src/engine-js/browser/dynamic_key_frames.js +0 -95
  77. package/dom/jsview-dom/src/engine-js/browser/easing.js +0 -114
  78. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/element_transform.js +0 -122
  79. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/gjk.js +0 -450
  80. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/mat.js +0 -102
  81. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/range_model.js +0 -296
  82. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/test_collide.js +0 -10
  83. package/dom/jsview-dom/src/engine-js/browser/index.js +0 -38
  84. package/dom/jsview-dom/src/engine-js/browser/latex_parse.js +0 -336
  85. package/dom/jsview-dom/src/engine-js/browser/layout_params.js +0 -113
  86. package/dom/jsview-dom/src/engine-js/browser/layout_view.js +0 -3545
  87. package/dom/jsview-dom/src/engine-js/browser/layout_view_debug.js +0 -15
  88. package/dom/jsview-dom/src/engine-js/browser/media.js +0 -379
  89. package/dom/jsview-dom/src/engine-js/browser/page_base.js +0 -941
  90. package/dom/jsview-dom/src/engine-js/browser/particle_view.js +0 -526
  91. package/dom/jsview-dom/src/engine-js/browser/platform_timer.js +0 -61
  92. package/dom/jsview-dom/src/engine-js/browser/react_utils.js +0 -5
  93. package/dom/jsview-dom/src/engine-js/browser/rect_utils.js +0 -91
  94. package/dom/jsview-dom/src/engine-js/browser/render_bridge.js +0 -128
  95. package/dom/jsview-dom/src/engine-js/browser/render_texture_proxy.js +0 -155
  96. package/dom/jsview-dom/src/engine-js/browser/renderer_deprecated.js +0 -75
  97. package/dom/jsview-dom/src/engine-js/browser/sound_pool.js +0 -139
  98. package/dom/jsview-dom/src/engine-js/browser/steps_animation.js +0 -192
  99. package/dom/jsview-dom/src/engine-js/browser/text_style_cache.js +0 -454
  100. package/dom/jsview-dom/src/engine-js/browser/text_utils.js +0 -299
  101. package/dom/jsview-dom/src/engine-js/browser/text_view.js +0 -428
  102. package/dom/jsview-dom/src/engine-js/browser/texture_manager.js +0 -1060
  103. package/dom/jsview-dom/src/engine-js/browser/url.js +0 -69
  104. package/dom/jsview-dom/src/engine-js/browser/velocity.js +0 -40
  105. package/dom/jsview-dom/src/engine-js/browser/view_sensor/autofroze_sensor.js +0 -77
  106. package/dom/jsview-dom/src/engine-js/browser/view_sensor/drag_impact_sensor.js +0 -67
  107. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor.js +0 -98
  108. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor_callback.js +0 -21
  109. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor_manager.js +0 -24
  110. package/dom/jsview-dom/src/engine-js/browser/view_sensor/index.js +0 -9
  111. package/dom/jsview-dom/src/engine-js/browser/view_sensor/view_sensor.js +0 -268
  112. package/dom/jsview-dom/src/engine-js/browser/view_sensor/view_sensor_manager.js +0 -84
  113. package/dom/jsview-dom/src/engine-js/browser/view_sensor/visible_sensor.js +0 -213
  114. package/dom/jsview-dom/src/engine-js/browser/view_store.js +0 -41
  115. package/dom/jsview-dom/src/engine-js/index.js +0 -2
  116. package/dom/jsview-dom/src/engine-js/native/README.md +0 -1
@@ -1,454 +0,0 @@
1
- /**
2
- * Created by ludl on 12/10/20.
3
- */
4
-
5
- /* eslint-disable no-unused-vars */
6
-
7
- import Forge from "../ForgeDefine";
8
-
9
- {
10
- let sTextStyleIdGen = 0;
11
-
12
- class TextStyleObjectBase {
13
- constructor(type, fix_named_id) {
14
- this._ID = fix_named_id ? fix_named_id : type + sTextStyleIdGen++;
15
- this.Describe = {};
16
- this._RefCount = 0;
17
- this._Recycled = false; // 预留属性, 未来由于ref == 0,而从列表中移除后,设置标识位
18
- }
19
-
20
- ManualSetId(fix_named_id) {
21
- this._ID = fix_named_id;
22
- }
23
-
24
- GetId() {
25
- return this._ID;
26
- }
27
-
28
- // StylePack的Ref管理,通过TextStyleTexture的自动释放触发
29
- // 理论上从屏幕拿掉后的TextStyleTexture都会自动释放,在UnloadTex中触发UnRef
30
- DoRef() {
31
- this._RefCount++;
32
- }
33
-
34
- UnRef() {
35
- if (this._RefCount > 0) {
36
- this._RefCount--;
37
- } else {
38
- console.warn("Already 0...");
39
- }
40
- }
41
- }
42
-
43
- class FixNameStyle extends TextStyleObjectBase {
44
- constructor(fix_named_id) {
45
- super(null, fix_named_id);
46
- }
47
- }
48
-
49
- // 代表不激活的style,例如SpecialStyle场景
50
- const sDisableStyle = new FixNameStyle("DISABLE");
51
-
52
- const sDefaultDisplayStyle = {
53
- alignment: "left",
54
- vertical_align: "top",
55
- vertical_area_align: "top",
56
- text_overflow: "clip",
57
- word_wrap: "normal",
58
- direction: 'ltr',
59
- };
60
- // 注意:NamesList的顺序需要和constructor的参数顺序相同
61
- const sDisplayStyleNames = [
62
- "alignment",
63
- "vertical_align",
64
- "vertical_area_align",
65
- "text_overflow",
66
- "word_wrap",
67
- "direction",
68
- ];
69
- class DisplayStyle extends TextStyleObjectBase {
70
- constructor(
71
- alignment,
72
- vertical_align,
73
- vertical_area_align,
74
- text_overflow,
75
- word_wrap,
76
- direction,
77
- ) {
78
- super("DS", null);
79
-
80
- // 具体化Describe信息
81
- this.Describe["alignment"] = alignment;
82
- this.Describe["vertical_align"] = vertical_align;
83
- this.Describe["vertical_area_align"] = vertical_area_align;
84
- this.Describe["text_overflow"] = text_overflow;
85
- this.Describe["word_wrap"] = word_wrap;
86
- this.Describe["direction"] = direction;
87
- }
88
-
89
- GetSyncData() {
90
- return {
91
- T: 0, // type
92
- ID: this._ID,
93
- A: this.Describe["alignment"],
94
- VA: this.Describe["vertical_align"],
95
- VAA: this.Describe["vertical_area_align"],
96
- TO: this.Describe["text_overflow"],
97
- WW: this.Describe["word_wrap"],
98
- DIR: this.Describe["direction"],
99
- };
100
- }
101
- }
102
-
103
- const sDefaultFontStyle = {
104
- font: "黑体",
105
- italic: false,
106
- bold: false,
107
- };
108
- // 注意:NamesList的顺序需要和constructor的参数顺序相同
109
- const sFontStyleNames = ["font", "italic", "bold"];
110
- class FontStyle extends TextStyleObjectBase {
111
- constructor(font, italic, bold) {
112
- super("FS", null);
113
-
114
- // 具体化Describe信息
115
- this.Describe["font"] = font;
116
- this.Describe["italic"] = italic;
117
- this.Describe["bold"] = bold;
118
- }
119
-
120
- GetSyncData() {
121
- return {
122
- T: 1, // type
123
- ID: this._ID,
124
- F: this.Describe["font"],
125
- I: this.Describe["italic"],
126
- B: this.Describe["bold"],
127
- };
128
- }
129
- }
130
-
131
- const sDefaultColorStyle = {
132
- text_color: "#000000", // 默认黑字
133
- bg_color: "#00FFFFFF", // 默认白色透明背景
134
- };
135
- // 注意:NamesList的顺序需要和constructor的参数顺序相同
136
- const sColorStyleNames = ["text_color", "bg_color"];
137
- class ColorStyle extends TextStyleObjectBase {
138
- constructor(text_color, bg_color) {
139
- super("CS", null);
140
-
141
- this.Describe["text_color"] = text_color;
142
- this.Describe["bg_color"] = bg_color;
143
- }
144
-
145
- GetSyncData() {
146
- return {
147
- T: 2, // type
148
- ID: this._ID,
149
- TC: this.Describe["text_color"],
150
- BC: this.Describe["bg_color"],
151
- };
152
- }
153
- }
154
-
155
- const sDefaultSpecialStyle = {
156
- shadow_offset_x: 0,
157
- shadow_offset_y: 0,
158
- shadow_blur: 0,
159
- shadow_color: null,
160
- stroke_width: 0,
161
- stroke_color: null,
162
- };
163
- // 注意:NamesList的顺序需要和constructor的参数顺序相同
164
- const sSpecialStyleNames = [
165
- "shadow_offset_x",
166
- "shadow_offset_y",
167
- "shadow_blur",
168
- "shadow_color",
169
- "stroke_width",
170
- "stroke_color",
171
- ];
172
- class SpecialStyle extends TextStyleObjectBase {
173
- constructor(
174
- shadow_offset_x,
175
- shadow_offset_y,
176
- shadow_blur,
177
- shadow_color,
178
- stroke_width,
179
- stroke_color
180
- ) {
181
- super("SS", null);
182
-
183
- this.Describe["shadow_offset_x"] = shadow_offset_x;
184
- this.Describe["shadow_offset_y"] = shadow_offset_y;
185
- this.Describe["shadow_blur"] = shadow_blur;
186
- this.Describe["shadow_color"] = shadow_color;
187
- this.Describe["stroke_width"] = stroke_width;
188
- this.Describe["stroke_color"] = stroke_color;
189
- }
190
-
191
- GetSyncData() {
192
- return {
193
- T: 3, // type
194
- ID: this._ID,
195
- OX: this.Describe["shadow_offset_x"],
196
- OY: this.Describe["shadow_offset_y"],
197
- B: this.Describe["shadow_blur"],
198
- C: this.Describe["shadow_color"],
199
- SW: this.Describe["stroke_width"],
200
- SC: this.Describe["stroke_color"],
201
- };
202
- }
203
- }
204
-
205
- class TextStylePack {
206
- constructor(style_define) {
207
- this.DS = Forge.sTextStyleCache.GetDisplayStyle(style_define);
208
- this.FS = Forge.sTextStyleCache.GetFontStyle(style_define);
209
- this.CS = Forge.sTextStyleCache.GetColorStyle(style_define);
210
- this.SS = Forge.sTextStyleCache.GetSpecialStyle(style_define);
211
- this._IdsCache = null;
212
- }
213
-
214
- DoRef() {
215
- this.DS.DoRef();
216
- this.FS.DoRef();
217
- this.CS.DoRef();
218
- this.SS.DoRef();
219
- }
220
-
221
- UnRef() {
222
- this.DS.UnRef();
223
- this.FS.UnRef();
224
- this.CS.UnRef();
225
- this.SS.UnRef();
226
- }
227
-
228
- GetIdsPack() {
229
- if (!this._IdsCache) {
230
- this._IdsCache = {
231
- DS: this.DS.GetId(),
232
- FS: this.FS.GetId(),
233
- CS: this.CS.GetId(),
234
- SS: this.SS.GetId(),
235
- };
236
- }
237
-
238
- return this._IdsCache;
239
- }
240
- }
241
-
242
- class TextStyleCache {
243
- constructor() {
244
- // Map, 分为Map(key为属性连接), Ids(key为TextStyleObjectBase的ID),编译快速检索
245
- this._DisplayStyleMap = new Map();
246
- this._DisplayStyleIds = new Map();
247
- this._FontStyleMap = new Map();
248
- this._FontStyleIds = new Map();
249
- this._ColorStyleMap = new Map();
250
- this._ColorStyleIds = new Map();
251
- this._SpecialStyleMap = new Map();
252
- this._SpecialStyleIds = new Map();
253
-
254
- // 供native同步时的新 TextStyleObjectBase 队列
255
- this._NewStyleList = [];
256
- }
257
-
258
- StyleToPack(style_define_origin) {
259
- // 创建TextStylePack
260
-
261
- // 成员变量属性名称转换和对应
262
- let style_define = {
263
- alignment:
264
- typeof style_define_origin["hAlign"] != "undefined"
265
- ? style_define_origin["hAlign"]
266
- : sDefaultDisplayStyle.alignment,
267
- vertical_align:
268
- typeof style_define_origin["vAlign"] != "undefined"
269
- ? style_define_origin["vAlign"]
270
- : sDefaultDisplayStyle.vertical_align,
271
- vertical_area_align:
272
- typeof style_define_origin["vAreaAlign"] != "undefined"
273
- ? style_define_origin["vAreaAlign"]
274
- : sDefaultDisplayStyle.vertical_area_align,
275
- text_overflow:
276
- typeof style_define_origin["textOverflow"] != "undefined"
277
- ? style_define_origin["textOverflow"]
278
- : sDefaultDisplayStyle.text_overflow,
279
- word_wrap:
280
- typeof style_define_origin["wordWrap"] != "undefined"
281
- ? style_define_origin["wordWrap"]
282
- : sDefaultDisplayStyle.word_wrap,
283
- font:
284
- typeof style_define_origin["font"] != "undefined"
285
- ? style_define_origin["font"]
286
- : sDefaultFontStyle.font,
287
- italic:
288
- typeof style_define_origin["italic"] != "undefined"
289
- ? style_define_origin["italic"]
290
- : sDefaultFontStyle.italic,
291
- bold:
292
- typeof style_define_origin["bold"] != "undefined"
293
- ? style_define_origin["bold"]
294
- : sDefaultFontStyle.bold,
295
- text_color:
296
- typeof style_define_origin["textColor"] != "undefined"
297
- ? style_define_origin["textColor"]
298
- : sDefaultColorStyle.text_color,
299
- bg_color:
300
- typeof style_define_origin["backgroundColor"] != "undefined"
301
- ? style_define_origin["backgroundColor"]
302
- : sDefaultColorStyle.bg_color,
303
- direction:
304
- typeof style_define_origin["direction"] != "undefined"
305
- ? style_define_origin["direction"]
306
- : "ltr",
307
- shadow_offset_x: 0,
308
- shadow_offset_y: 0,
309
- shadow_blur: 0,
310
- shadow_color: null,
311
- stroke_width: 0,
312
- stroke_color: null,
313
- };
314
-
315
- // Shadow处理
316
- if (style_define_origin.shadow) {
317
- const shadow_set = style_define_origin.shadow;
318
- style_define.shadow_offset_x = shadow_set.shadowOffsetX;
319
- style_define.shadow_offset_y = shadow_set.shadowOffsetY;
320
- style_define.shadow_blur = shadow_set.shadowBlur;
321
- style_define.shadow_color = shadow_set.shadowColor;
322
- }
323
-
324
- // Stroke处理
325
- if (style_define_origin.stroke) {
326
- const stroke_set = style_define_origin.stroke;
327
- style_define.stroke_width = stroke_set.strokeWidth;
328
- style_define.stroke_color = stroke_set.strokeColor;
329
- }
330
-
331
- return new TextStylePack(style_define);
332
- }
333
-
334
- PrepareSyncNewStyles() {
335
- if (this._NewStyleList.length > 0) {
336
- let sync_styles = [];
337
-
338
- for (let new_style of this._NewStyleList) {
339
- sync_styles.push(new_style.GetSyncData());
340
- }
341
-
342
- var status_texture =
343
- Forge.sRenderTextureDelegateManager.CreateTextureHeadStatus();
344
- status_texture.SetResourceInfo({
345
- STA: {
346
- Nam: "TST",
347
- Sta: sync_styles,
348
- },
349
- });
350
-
351
- // 清空 new style 列表
352
- this._NewStyleList = [];
353
- }
354
- }
355
-
356
- GetDisplayStyle(style_define) {
357
- return this._GetStyle(
358
- style_define,
359
- sDisplayStyleNames,
360
- DisplayStyle,
361
- this._DisplayStyleMap,
362
- this._DisplayStyleIds
363
- );
364
- }
365
-
366
- GetFontStyle(style_define) {
367
- return this._GetStyle(
368
- style_define,
369
- sFontStyleNames,
370
- FontStyle,
371
- this._FontStyleMap,
372
- this._FontStyleIds
373
- );
374
- }
375
-
376
- GetColorStyle(style_define) {
377
- return this._GetStyle(
378
- style_define,
379
- sColorStyleNames,
380
- ColorStyle,
381
- this._ColorStyleMap,
382
- this._ColorStyleIds
383
- );
384
- }
385
-
386
- GetSpecialStyle(style_define) {
387
- if (
388
- style_define.shadow_blur === 0 && // 虽然Browser支持blur=0,但盒子Native端当blur为0时不描画
389
- style_define.stroke_width === 0
390
- ) {
391
- return sDisableStyle;
392
- }
393
-
394
- return this._GetStyle(
395
- style_define,
396
- sSpecialStyleNames,
397
- SpecialStyle,
398
- this._SpecialStyleMap,
399
- this._SpecialStyleIds
400
- );
401
- }
402
-
403
- // interface for forge_html
404
- GetDsFromId(id) {
405
- return this._DisplayStyleIds.get(id);
406
- }
407
-
408
- GetFsFromId(id) {
409
- return this._FontStyleIds.get(id);
410
- }
411
-
412
- GetCsFromId(id) {
413
- return this._ColorStyleIds.get(id);
414
- }
415
-
416
- GetSsFromId(id) {
417
- return this._SpecialStyleIds.get(id);
418
- }
419
-
420
- _GetStyle(style_define, prop_name_list, class_define, map_ref, ids_ref) {
421
- let props_values = [];
422
- for (let name of prop_name_list) {
423
- props_values.push(style_define[name]);
424
- }
425
-
426
- // 制作style key
427
- let map_key = props_values.join(":");
428
-
429
- // 查找Map,获取或新建
430
- let style_object = null;
431
- if (!map_ref.has(map_key)) {
432
- style_object = new class_define(...props_values);
433
-
434
- // 填充Map, 两个维度的Map,以提高检索速度
435
- map_ref.set(map_key, style_object);
436
- ids_ref.set(style_object.GetId(), style_object);
437
-
438
- // 加入预备同步native的队列中(解决PC版本的兼容处理,加上了window.JsView判断)
439
- if (window.JsView) {
440
- this._NewStyleList.push(style_object);
441
- }
442
- } else {
443
- style_object = map_ref.get(map_key);
444
- }
445
-
446
- return style_object;
447
- }
448
- }
449
-
450
- // export
451
- Forge.TextStyleObjectBase = TextStyleObjectBase;
452
- Forge.TextStylePack = TextStylePack;
453
- Forge.sTextStyleCache = new TextStyleCache(); // 一个NativeForge内部只有一个共享的map,所以此处也为单例
454
- }