@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,715 +0,0 @@
1
- /* eslint-disable no-extra-boolean-cast */
2
- /* eslint-disable no-prototype-builtins */
3
-
4
- import Forge from "../../engine-js/ForgeDefine";
5
-
6
- function DebugPrintFocusNode() {
7
- console.log("FocusNode:");
8
- console.log(FocusNode.sLastFocus);
9
- }
10
-
11
- class Hub {
12
- constructor(container_only, name_space) {
13
- this.RouterDelegate = {
14
- ref: null
15
- };
16
- if (!container_only) {
17
- this.RouterDelegate.ref = new RouterInner(false, name_space); // 创建正式Router
18
- }
19
- }
20
-
21
- getNodeByName(name) {
22
- return this.RouterDelegate.ref.getNodeByName(name);
23
- }
24
-
25
- focusByNameBeforeMount(name, resotre_pre_child_focus) {
26
- if (name.includes(".")) {
27
- name = name.split(".");
28
- }
29
- return this.RouterDelegate.ref.focusBeforeMount(name, resotre_pre_child_focus);
30
- }
31
-
32
- setFocus(name, resotre_pre_child_focus) {
33
- return this.focusByNameBeforeMount(name, resotre_pre_child_focus);
34
- }
35
-
36
- printFocusList() {
37
- for (let node_name in this.RouterDelegate.ref._ChildMap) {
38
- console.log(`branchName[${node_name}] ${node_name === this.RouterDelegate.ref._FocusNodeName ? "focused" : ""}`,
39
- this.RouterDelegate.ref._ChildMap[node_name]);
40
- }
41
- }
42
-
43
- printGlobalLastFocus() {
44
- DebugPrintFocusNode();
45
- }
46
-
47
- getCurrentFocusStack() {
48
- const result = [];
49
- if (this.RouterDelegate.ref) {
50
- let node = this.RouterDelegate.ref.getCurrentFocusNode();
51
- // 仅处理单Hub中的内容
52
- // TODO:要处理跨HUB的内容报出,为了vue从根hub进行焦点打印时的需求
53
- while (node
54
- && node instanceof FocusNode
55
- && node.RouterDelegate.ref === this.RouterDelegate.ref) {
56
- result.push({
57
- name: node.BranchName,
58
- });
59
- node = node.GetParentPage();
60
- }
61
- } else {
62
- console.error("getCurrentFocusStack failed: router delegate is null.")
63
- }
64
- return result;
65
- }
66
-
67
- debugPrintNodes() {
68
- console.log("***print focus nodes***");
69
- for (let key in this.RouterDelegate.ref._ChildMap) {
70
- if (!key.includes("__DEFAULT_ID_")) {
71
- console.log(key, this.RouterDelegate.ref._ChildMap[key]);
72
- }
73
- }
74
- console.log("***********************");
75
- }
76
- }
77
-
78
- class RouterInner {
79
- constructor(is_tmp, name_space) {
80
- this._IsTemp = !!is_tmp;
81
- this._ChildMap = {}
82
- this._FocusNameBeforeMount = null;
83
- this._FocusNodeName = null;
84
- this.NameSpace = name_space;
85
- }
86
-
87
- getCurrentFocusNode() {
88
- return this._ChildMap[this._FocusNodeName];
89
- }
90
-
91
- getNodeByName(full_name, caller_node) {
92
- // Router拓补图设计是仿照namespace嵌套的拓扑图设计的,full_name格式为
93
- // 相对namespace访问方式: namespace.namespace.name
94
- // 以root为基点访问方式: .namespace.namespace.name
95
- // 所以查找逻辑为:
96
- // 1. 找到full_name中第一节所对应的Router:
97
- // A. 绝对路径为root node的router
98
- // B. 相对路径为本节点的router
99
- // C. 仅有name则本节点router为查找源
100
- // 2. 一节节分析full_name,作为NameSpace查找下一级Router直到最后一节router
101
- // 3. 在最后一节router中以name查找节点
102
- let path_array = full_name.split(".");
103
- let start_router = this._FindRouterSearchBase(path_array, caller_node);
104
- return start_router._GetNodeFromPathArray(path_array, full_name);
105
- }
106
-
107
- _FindRouterSearchBase(path_array, caller_node) {
108
- if (path_array[0].length == 0) {
109
- // 绝对路径,找root节点,再从root开始查找
110
- let node = undefined;
111
- for (let id in this._ChildMap) {
112
- // 以任意节点开始溯源
113
- node = this._ChildMap[id];
114
- break;
115
- }
116
- let root_node;
117
- do {
118
- root_node = node;
119
- node = node.GetParentPage();
120
- } while (node != null);
121
-
122
- // 去除path_array中代表root的第一节
123
- path_array.splice(0, 1);
124
-
125
- return root_node.RouterDelegate.ref;
126
- } else {
127
- // 相对路径
128
- if (caller_node && caller_node.AsHub) {
129
- // Hub节点的默认查找行为,不是向子查找,而是查找兄弟节点,所以父节点的Router来查找
130
- if (caller_node.GetParentPage()) {
131
- return caller_node.GetParentPage().RouterDelegate.ref;
132
- } else {
133
- // Root节点,自能从自己进行查找
134
- return this;
135
- }
136
- } else {
137
- // 以本节点为基础进行查找
138
- return this;
139
- }
140
- }
141
- }
142
-
143
- _GetNodeFromPathArray(path_array, full_name) {
144
- let deepth = 0;
145
- let router = this;
146
-
147
- // 以节点的Router是否与自己相同来判断是否是含有实际Router的节点
148
- // 然后通过名字对比找到目标Router
149
- while (deepth < path_array.length - 1) {
150
- let found = false;
151
- for (let id in router._ChildMap) {
152
- let child_router = router._ChildMap[id].RouterDelegate.ref;
153
- if (child_router != router && child_router.NameSpace == path_array[deepth]) {
154
- // 找到子节点
155
- router = child_router;
156
- deepth++;
157
- found = true;
158
- break;
159
- }
160
- }
161
- if (!found) {
162
- console.error(`Error: no found subpath fname=${full_name}`);
163
- return undefined;
164
- }
165
- }
166
-
167
- let name = path_array[deepth]; // 路径最后一节为节点名称
168
- if (router._ChildMap.hasOwnProperty(name)) {
169
- return router._ChildMap[name];
170
- } else {
171
- console.error(`Error: no found fname=${full_name}`);
172
- return undefined;
173
- }
174
- }
175
-
176
- add(name, focus_node) {
177
- if (name.indexOf('.') >= 0) {
178
- console.error(`ERROR: FDiv name can not contains '.'`)
179
- return;
180
- }
181
-
182
- if (this._ChildMap.hasOwnProperty(name) && this._ChildMap[name] !== focus_node) {
183
- console.error(`ERROR: FDiv router branch name duplicated:[${name}]`);
184
- return;
185
- }
186
-
187
- this._ChildMap[name] = focus_node;
188
-
189
- // Resume focus before mount/add
190
- if (this._FocusNameBeforeMount) {
191
- if (typeof this._FocusNameBeforeMount == "string") {
192
- if (this._FocusNameBeforeMount == name) {
193
- this._FocusNameBeforeMount = null;
194
- focus_node.Focus();
195
- }
196
- } else{
197
- let nodeName = this._FocusNameBeforeMount[0];
198
- if (nodeName == name) {
199
- focus_node.RouterDelegate.ref.focusBeforeMount(this._FocusNameBeforeMount.slice(1))
200
- this._FocusNameBeforeMount = null;
201
- }
202
- }
203
- }
204
- }
205
-
206
- remove(name, focus_node) {
207
- let map_node = this._ChildMap[name];
208
- if (map_node && map_node == focus_node) {
209
- delete this._ChildMap[name];
210
- }
211
-
212
- // 清理焦点缓存信息会导致节点重新mount时丢失焦点,因此需要保持缓存
213
- // if (this._FocusNodeName == name) {
214
- // this._FocusNodeName = null;
215
- // }
216
- }
217
-
218
- rename(origin_name, new_name) {
219
- // 检查是否在列表中
220
- if (!this._ChildMap.hasOwnProperty(origin_name)) {
221
- console.error(`ERROR: alter name failed ${origin_name}->${new_name}`);
222
- return;
223
- }
224
-
225
- // 移除原名
226
- let focus_node = this._ChildMap[origin_name];
227
- delete this._ChildMap[origin_name];
228
-
229
- // 添加为新名
230
- this.add(new_name, focus_node);
231
-
232
- // 焦点缓存也进行切换
233
- if (this._FocusNodeName == origin_name) {
234
- this._FocusNodeName = new_name;
235
- }
236
- }
237
-
238
- focusBeforeMount(name, resotre_pre_child_focus) {
239
- let nameLegal = false;
240
- if (name.indexOf(".") >= 0) {
241
- console.error("ERROR: not support name with namespace")
242
- return false;
243
- }
244
- if (typeof name == "string") {
245
- if (!name.includes(".")) {
246
- nameLegal = true;
247
- let focus_node = this._ChildMap[name];
248
- this._FocusNodeName = name;
249
- if (focus_node) {
250
- focus_node.Focus(!resotre_pre_child_focus);
251
- return true
252
- }
253
- this._FocusNameBeforeMount = name;
254
- return false;
255
- }
256
- } else if (typeof name == "object") {
257
- if (Array.isArray(name)) {
258
- if (name.length > 0) {
259
- nameLegal = true;
260
- if (name.length == 1) {
261
- return this.focusBeforeMount(name[0])
262
- } else {
263
- let nodeName = name[0];
264
- let focus_node = this._ChildMap[nodeName];
265
- this._FocusNodeName = nodeName;
266
- if (focus_node) {
267
- return focus_node.RouterDelegate.ref.focusBeforeMount(name.slice(1))
268
- }
269
- this._FocusNameBeforeMount = name;
270
- return false;
271
- }
272
- }
273
- }
274
- }
275
- if (!nameLegal) {
276
- console.error("illegal name param", name)
277
- }
278
- return false;
279
- }
280
-
281
- focus(name, resotre_pre_child_focus) {
282
- let node_existed = this.focusBeforeMount(name, resotre_pre_child_focus);
283
- if (!node_existed)
284
- console.log("No found branch:" + name);
285
-
286
- return node_existed;
287
- }
288
-
289
- forEach(func) {
290
- for (let name in this._ChildMap) {
291
- func(this._ChildMap[name], name, this._ChildMap)
292
- }
293
- }
294
-
295
- printNodes() {
296
- console.log(this._ChildMap);
297
- }
298
- }
299
-
300
- class FocusNode extends Forge.PageBase {
301
- constructor(name) {
302
- super(name);
303
- this._OnKeyDown = null;
304
- this._OnKeyUp = null;
305
- this._OnFocus = null;
306
- this._OnBlur = null;
307
- this._DispatchKeyDown = null;
308
- this._DispatchKeyUp = null;
309
- this._OnCustomerEvent = null;
310
- this._DKeyDownProxy = undefined;
311
- this._DKeyUpProxy = undefined;
312
- this._Mounted = false;
313
- this.BranchName = name;
314
- this.AsHub = false;
315
-
316
- this.InterfaceHub = null;
317
-
318
- // RouterDelegate
319
- // 当子节点RouterDelegate不独立时, 父子节点中的RouterDelegate为同一实例
320
- // 用解决RouterDelegate.ref由临时节点改为正式节点时,所有非独立Router的FocusNode能同时改变的问题
321
- this.RouterDelegate = {
322
- ref: null,
323
- };
324
- this._TmpRouter = null;
325
-
326
- // 不能写成(ev)=>模式,因为里面需要调用super
327
- this._OriginDispatchKeyDown = this._OriginDispatchKeyDown.bind(this);
328
- this._OriginDispatchKeyUp = this._OriginDispatchKeyUp.bind(this);
329
-
330
- this._AutoShow = false; // TODO: AutoShow调整成false以避免PageBase产生问题
331
- }
332
-
333
- updateMountState() {
334
- this._Mounted = true;
335
- let sub_nodes = this.SubPages; // 拿去SubPages当前对象,不能永久ref,SubPages进行清空时会换对象
336
- for (let index in sub_nodes) {
337
- sub_nodes[index].updateMountState();
338
- }
339
- }
340
-
341
- getHub() {
342
- // 不直接返回RouterInner, 访问RouterInner的外部接口由Hub提供
343
- if (!this.InterfaceHub) {
344
- this.InterfaceHub = new Hub(true);
345
- this.InterfaceHub.RouterDelegate = this.RouterDelegate;
346
- }
347
- return this.InterfaceHub;
348
- }
349
-
350
- setHub(hub) {
351
- if (!this.RouterDelegate.ref) {
352
- // 只同步hub中的Router实例
353
- this.RouterDelegate.ref = hub.RouterDelegate.ref;
354
- this.AsHub = true;
355
- } else {
356
- console.error("Error: hub is already setted.");
357
- }
358
- }
359
-
360
- _UseParentRouter(router_delegate) {
361
- this.RouterDelegate = router_delegate;
362
-
363
- // 同时更新用户调用接口中的RouterDelegate
364
- if (this.InterfaceHub) {
365
- this.InterfaceHub.RouterDelegate = router_delegate;
366
- }
367
- }
368
-
369
- routerAdd(name, focus_node) {
370
- if (!focus_node.RouterDelegate.ref) {
371
- // 子节点自身无Router,则共用父节点的Router
372
- focus_node._UseParentRouter(this.RouterDelegate);
373
- }
374
-
375
- if (!this.RouterDelegate.ref) {
376
- // 未和根节点取得联系,线使用临时Router收集所有子节点
377
- this.RouterDelegate.ref = new RouterInner(true);
378
- }
379
-
380
- this.RouterDelegate.ref.add(name, focus_node);
381
- }
382
-
383
- routerRenameChild(origin_name, new_name) {
384
- this.RouterDelegate.ref.rename(origin_name, new_name);
385
- }
386
-
387
- printFocusList() {
388
- if (this.RouterDelegate.ref) {
389
- this.RouterDelegate.ref.printFocusList();
390
- } else {
391
- console.error("Error: no router");
392
- }
393
- }
394
-
395
- routerUnbind() {
396
- let router
397
- if (this.AsHub) {
398
- // Hub节点的默认查找行为,不是向子查找,而是查找兄弟节点,所以父节点的Router来查找
399
- if (this.GetParentPage()) {
400
- router = this.GetParentPage().RouterDelegate.ref;
401
- }
402
- } else {
403
- router = this.RouterDelegate.ref
404
- }
405
-
406
- if (router) {
407
- router.remove(this.BranchName, this);
408
- }
409
- }
410
-
411
- setBranchName(name) {
412
- if (name === this.BranchName) {
413
- // 同名不用改
414
- return;
415
- }
416
-
417
- let origin_name = this.BranchName;
418
- this.BranchName = name;
419
- this.PageName = name;
420
-
421
- if (this._ParentPage) {
422
- // 已经关联父节点,需要进行Router更名
423
- this._ParentPage.routerRenameChild(origin_name, name);
424
- }
425
- }
426
-
427
- setOnKeyDown(onkeydown) {
428
- this._OnKeyDown = onkeydown;
429
- }
430
-
431
- setOnKeyUp(onkeyup) {
432
- this._OnKeyUp = onkeyup;
433
- }
434
-
435
- setOnFocus(onfoucs) {
436
- this._OnFocus = onfoucs;
437
- }
438
-
439
- setOnBlur(onblur) {
440
- this._OnBlur = onblur;
441
- }
442
-
443
- setDispatchKeyUp(dispatchckeyup) {
444
- this._DispatchKeyUp = dispatchckeyup;
445
- }
446
-
447
- setDispatchKeyDown(dispatchkeydown) {
448
- this._DispatchKeyDown = dispatchkeydown
449
- }
450
-
451
- setOnCustomerEvent(onCustomerEvent) {
452
- this._OnCustomerEvent = onCustomerEvent;
453
- }
454
-
455
- setDispatchKeyProxy(keydown_proxy, keyup_proxy) {
456
- this._DKeyDownProxy = keydown_proxy;
457
- this._DKeyUpProxy = keyup_proxy;
458
- }
459
-
460
- requestFocus(resotre_pre_child_focus) {
461
- let router = this.RouterDelegate.ref;
462
- if (this.AsHub) {
463
- // Hub节点的默认查找行为,不是向子查找,而是查找兄弟节点,所以父节点的Router来查找
464
- if (this.GetParentPage()) {
465
- router = this.GetParentPage().RouterDelegate.ref;
466
- }
467
- }
468
- if (!!router) {
469
- return router.focus(this.BranchName, resotre_pre_child_focus);
470
- } else {
471
- console.error("error: lost router");
472
- return false;
473
- }
474
- }
475
-
476
- // Override OnKeyDown
477
- OnKeyDown(ev) {
478
- if (!!this._OnKeyDown) {
479
- return this._OnKeyDown(ev);
480
- } else {
481
- return false;
482
- }
483
- }
484
-
485
- // Override OnKeyUp
486
- OnKeyUp(ev) {
487
- if (!!this._OnKeyUp) {
488
- return this._OnKeyUp(ev);
489
- } else {
490
- return false;
491
- }
492
- }
493
-
494
- // Override OnCustomerEvent
495
- OnCustomerEvent(ev) {
496
- if (this._OnCustomerEvent) {
497
- return this._OnCustomerEvent(ev);
498
- } else {
499
- return false;
500
- }
501
- }
502
-
503
- // alter of PageBase.BubbleCustomerEvent
504
- bubbleCustomerEvent(ev) {
505
- this.BubbleCustomerEvent(ev);
506
- }
507
-
508
- // alter of PageBase.DispatchKeyDown()
509
- dispatchKeyDown(ev) {
510
- return this.DispatchKeyDown(ev);
511
- }
512
-
513
- // Override DispatchKeyDown
514
- DispatchKeyDown(ev) {
515
- FocusNode.sLastFocus = this;
516
- if (this._DKeyDownProxy) {
517
- // 外部接管Dispatch流程,例如react的root
518
- return this._DKeyDownProxy(ev, this._OriginDispatchKeyDown);
519
- } else {
520
- return this._OriginDispatchKeyDown(ev);
521
- }
522
- }
523
-
524
- _OriginDispatchKeyDown(ev) {
525
- let consumed = false;
526
- if (this._DispatchKeyDown) {
527
- consumed = this._DispatchKeyDown(ev);
528
- }
529
-
530
- if (!consumed) {
531
- return super.DispatchKeyDown(ev);
532
- } else {
533
- return true;
534
- }
535
- }
536
-
537
- // alter of PageBase.DispatchKeyDown()
538
- dispatchKeyUp(ev) {
539
- return this.DispatchKeyUp(ev);
540
- }
541
-
542
- // Override DispatchKeyUp
543
- DispatchKeyUp(ev) {
544
- if (this.__DKeyUpProxy) {
545
- // 外部接管Dispatch流程,例如react的root
546
- return this.__DKeyUpProxy(ev, this._OriginDispatchKeyUp);
547
- } else {
548
- return this._OriginDispatchKeyUp(ev);
549
- }
550
- }
551
-
552
- _OriginDispatchKeyUp(ev) {
553
- let consumed = false;
554
- if (this._DispatchKeyUp) {
555
- consumed = this._DispatchKeyUp(ev);
556
- }
557
-
558
- if (!consumed) {
559
- return super.DispatchKeyUp(ev);
560
- } else {
561
- return true;
562
- }
563
- }
564
-
565
- // alter of PageBase.attachToActivity()
566
- attachToActivity(activity, content_view) {
567
- this.AttachToActivity(activity, content_view);
568
- }
569
-
570
- // Override AttachToActivity
571
- AttachToActivity(activity, content_view) {
572
- super.SetParent(activity, content_view);
573
- }
574
-
575
- // alter of PageBase.SetParent()
576
- setParent(parent) {
577
- this.SetParent(parent);
578
- }
579
-
580
- // Override SetParent
581
- SetParent(parent) {
582
- if (parent == null) {
583
- // Forge.ThrowError("ERROR: parent is null");
584
- return;
585
- }
586
-
587
- super.SetParent(parent, null);
588
-
589
- if (this._ParentPage._Mounted) {
590
- this.updateMountState();
591
- trigger_focus();
592
- }
593
-
594
- if (parent instanceof FocusNode) {
595
- if (this.RouterDelegate.ref && this.RouterDelegate.ref._IsTemp) {
596
- // 发现临时节点
597
- let tmp_router = this.RouterDelegate.ref;
598
- this.RouterDelegate.ref = null; // 重置ref,避免RouterDelegate向上关联处理失效
599
-
600
- // 将节点内所有子内容转移到父节点中
601
- tmp_router.forEach((value, key) => {
602
- parent.routerAdd(key, value)
603
- });
604
- }
605
-
606
- // 挂载自身到父节点中
607
- parent.routerAdd(this.BranchName, this);
608
- } else {
609
- // 纯forge节点(可能为root节点),不需要Router进行关联处理
610
- }
611
- }
612
-
613
- // alter of PageBase.Focus()
614
- focus(blur_child_foucs) {
615
- this.Focus(blur_child_foucs);
616
- }
617
-
618
- // Override Focus
619
- Focus(blur_child_foucs) {
620
- if (!this._Mounted) {
621
- FocusNode.sFocusMemos.push({ obj: this, bcf: blur_child_foucs });
622
- console.log("page base tree not build, cache focus")
623
- return;
624
- }
625
-
626
- super.Focus(blur_child_foucs);
627
- }
628
-
629
- //Override OnFocus
630
- OnFocus() {
631
- if (this._OnFocus)
632
- this._OnFocus();
633
- }
634
-
635
- //Override OnBlur
636
- OnBlur() {
637
- if (this._OnBlur)
638
- this._OnBlur();
639
- }
640
-
641
- onUnMount() {
642
- // 脱离父节点
643
- let parent_node = this.GetParentPage();
644
- if (parent_node) {
645
- parent_node.RemoveSubPage(this);
646
- }
647
-
648
- // 清理所有子节点
649
- this.ClearSubPages();
650
-
651
- // 解除Rounter关联
652
- this.routerUnbind();
653
- }
654
-
655
- getName() {
656
- let node = this;
657
- let path_array = [this.RouterDelegate.ref.NameSpace];
658
- if(!this.AsHub) {
659
- path_array.push(this.BranchName);
660
- }
661
- let router = this.RouterDelegate.ref;
662
- do {
663
- node = node.GetParentPage();
664
- if (path_array[0] == "__AppRoot__") {
665
- break;
666
- }
667
- if (node && node.RouterDelegate.ref != router) {
668
- // Found new level router
669
- router = node.RouterDelegate.ref;
670
- path_array.unshift(router.NameSpace);
671
- }
672
- } while (node);
673
-
674
- if (path_array[0] == "__AppRoot__") {
675
- // 调整root节点的显示名
676
- path_array[0] = "";
677
- } else {
678
- console.error("ERROR: missing app root");
679
- }
680
-
681
- return path_array.join('.');
682
- }
683
-
684
- getNodeByName(name) {
685
- return this.RouterDelegate.ref.getNodeByName(name, this);
686
- }
687
-
688
- printFocusNodeList() {
689
- this.getHub().printFocusList();
690
- }
691
-
692
- printGlobalLastFocus() {
693
- this.getHub().printGlobalLastFocus()
694
- }
695
- }
696
- FocusNode.sFocusMemos = [];
697
- FocusNode.sLastFocus = null;
698
- FocusNode.sRootPageNode = null;
699
-
700
- let trigger_focus = () => {
701
- let memo_size = FocusNode.sFocusMemos.length;
702
- if (memo_size > 0) {
703
- let focus_memo = FocusNode.sFocusMemos;
704
- FocusNode.sFocusMemos = [];
705
- for (let i = 0; i < memo_size; i++) {
706
- focus_memo[i].obj.Focus(focus_memo[i].bcf);
707
- }
708
- }
709
- }
710
-
711
- export {
712
- FocusNode,
713
- trigger_focus as TriggerFocus,
714
- Hub as FocusHub
715
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Created by luocf on 2020/1/17.
3
- */
4
- if (typeof window["Forge"] === 'undefined')
5
- window["Forge"] = {};
6
-
7
- var Forge = window["Forge"]
8
- export default Forge