neo.mjs 6.10.7 → 6.10.9

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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.10.7'
23
+ * @member {String} version='6.10.9'
24
24
  */
25
- version: '6.10.7'
25
+ version: '6.10.9'
26
26
  }
27
27
 
28
28
  /**
@@ -2,16 +2,16 @@ import Base from '../../../src/toolbar/Base.mjs';
2
2
  import Label from '../../../src/component/Label.mjs';
3
3
 
4
4
  /**
5
- * @class Portal.view.learn.HeaderToolbar
5
+ * @class Portal.view.HeaderToolbar
6
6
  * @extends Neo.container.Base
7
7
  */
8
8
  class HeaderToolbar extends Base {
9
9
  static config = {
10
10
  /**
11
- * @member {String} className='Portal.view.learn.HeaderToolbar'
11
+ * @member {String} className='Portal.view.HeaderToolbar'
12
12
  * @protected
13
13
  */
14
- className: 'Portal.view.learn.HeaderToolbar',
14
+ className: 'Portal.view.HeaderToolbar',
15
15
  /**
16
16
  * @member {String[]} cls=['learnneo-header-toolbar']
17
17
  */
@@ -402,23 +402,23 @@ class MainContainerController extends ComponentController {
402
402
  * @param {Object} data
403
403
  */
404
404
  onCountryFieldChange(data) {
405
- let component = data.component,
406
- store = component.store,
407
- value = data.value,
405
+ let component = data.component,
406
+ store = component.store,
407
+ value = data.value,
408
408
  record;
409
409
 
410
410
  if (store.getCount() > 0) {
411
411
  if (Neo.isObject(value)) {
412
412
  record = value;
413
- value = value[component.displayField];
413
+ value = value[component.displayField]
414
414
  } else {
415
- record = value && store.find('country', value)?.[0];
415
+ record = value && store.find('country', value)?.[0]
416
416
  }
417
417
 
418
418
  this.getModel().setData({
419
419
  country : value,
420
420
  countryRecord: record || null
421
- });
421
+ })
422
422
  }
423
423
  }
424
424
 
@@ -151,7 +151,10 @@ class TableContainer extends Container {
151
151
 
152
152
  me.historicalDataTable = Neo.create({
153
153
  module : HistoricalDataTable,
154
+ appName : me.appName,
155
+ parentId : me.id,
154
156
  reference: 'historical-data-table',
157
+ windowId : me.windowId,
155
158
 
156
159
  tabButtonConfig: {
157
160
  iconCls: 'fa fa-table',
@@ -168,6 +171,7 @@ class TableContainer extends Container {
168
171
  appName : me.appName,
169
172
  parentId : me.id,
170
173
  reference: 'table',
174
+ windowId : me.windowId,
171
175
  ...me.tableConfig
172
176
  });
173
177
 
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.10.7'
23
+ * @member {String} version='6.10.9'
24
24
  */
25
- version: '6.10.7'
25
+ version: '6.10.9'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.10.7",
3
+ "version": "6.10.9",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -0,0 +1 @@
1
+ ### todo: Adding Properties
@@ -0,0 +1 @@
1
+ ### todo: Component Models and Binding
@@ -0,0 +1 @@
1
+ ### todo: Updating View State
@@ -0,0 +1 @@
1
+ ### todo: Describing a View
@@ -0,0 +1 @@
1
+ ### todo: Events
@@ -0,0 +1 @@
1
+ ### todo: Extending Components
@@ -0,0 +1 @@
1
+ ### todo: Rock Scissors Paper
@@ -0,0 +1 @@
1
+ ### todo: Setup
@@ -0,0 +1 @@
1
+ ### todo: What about HTML tags?
@@ -1,217 +1,37 @@
1
- {
2
- "data": [
3
- {
4
- "id": "2023-10-01T18-29-19-158Z",
5
- "parentId": null,
6
- "isLeaf": true,
7
- "name": "Why Neo.mjs? "
8
- },
9
- {
10
- "id": "GettingStarted",
11
- "parentId": null,
12
- "isLeaf": false,
13
- "name": "Getting Started"
14
- },
15
- {
16
- "id": "Setup",
17
- "parentId": "GettingStarted",
18
- "isLeaf": true,
19
- "name": "Setup"
20
- },
21
- {
22
- "id": "2023-10-14T19-25-08-153Z",
23
- "parentId": "GettingStarted",
24
- "isLeaf": true,
25
- "name": "Workspaces and Applications"
26
- },
27
- {
28
- "id": "DescribingTheUI",
29
- "parentId": "GettingStarted",
30
- "isLeaf": true,
31
- "name": "Describing a View"
32
- },
33
- {
34
- "id": "Events",
35
- "parentId": "GettingStarted",
36
- "isLeaf": true,
37
- "name": "Events"
38
- },
39
- {
40
- "id": "ComponentState",
41
- "parentId": "GettingStarted",
42
- "isLeaf": true,
43
- "name": "Updating View State"
44
- },
45
- {
46
- "id": "Extending",
47
- "parentId": "GettingStarted",
48
- "isLeaf": true,
49
- "name": "Extending Components"
50
- },
51
- {
52
- "id": "ExtendingAddingProperties",
53
- "parentId": "GettingStarted",
54
- "isLeaf": true,
55
- "name": "Adding Properties"
56
- },
57
- {
58
- "id": "ComponentModels",
59
- "parentId": "GettingStarted",
60
- "isLeaf": true,
61
- "name": "Component Models and Binding"
62
- },
63
- {
64
- "id": "WhatAboutHTML",
65
- "parentId": "GettingStarted",
66
- "isLeaf": true,
67
- "name": "What about HTML tags?"
68
- },
69
- {
70
- "id": "Tutorials",
71
- "parentId": null,
72
- "isLeaf": false,
73
- "expanded": false,
74
- "name": "Tutorials"
75
- },
76
- {
77
- "id": "RSP",
78
- "parentId": "Tutorials",
79
- "isLeaf": true,
80
- "expanded": false,
81
- "name": "Rock Scissors Paper"
82
- },
83
- {
84
- "id": "Earthquakes",
85
- "parentId": "Tutorials",
86
- "isLeaf": false,
87
- "expanded": false,
88
- "name": "Earthquakes"
89
- },
90
- {
91
- "id": "InDepth",
92
- "parentId": null,
93
- "isLeaf": false,
94
- "expanded": false,
95
- "name": "Cookbook"
96
- },
97
- {
98
- "id": "Config",
99
- "parentId": "InDepth",
100
- "isLeaf": false,
101
- "name": "Config"
102
- },
103
- {
104
- "id": "InstanceLifecycle",
105
- "parentId": "InDepth",
106
- "isLeaf": false,
107
- "name": "Instance Lifecycle"
108
- },
109
- {
110
- "id": "Forms",
111
- "parentId": "InDepth",
112
- "isLeaf": false,
113
- "name": "User Input (Forms)"
114
- },
115
- {
116
- "id": "CustomComponents",
117
- "parentId": "InDepth",
118
- "isLeaf": false,
119
- "name": "Custom Components"
120
- },
121
- {
122
- "id": "Tables",
123
- "parentId": "InDepth",
124
- "isLeaf": false,
125
- "name": "Tables (Stores)"
126
- },
127
- {
128
- "id": "InDepthComponentModels",
129
- "parentId": "InDepth",
130
- "isLeaf": false,
131
- "name": "Shared Binable Data (Component Models)"
132
- },
133
- {
134
- "id": "MultiWindow",
135
- "parentId": "InDepth",
136
- "isLeaf": false,
137
- "name": "Multi-Window Applicaitons"
138
- },
139
- {
140
- "id": "MainThreadAddons",
141
- "parentId": "InDepth",
142
- "isLeaf": false,
143
- "name": "Main Thread Addons"
144
- },
145
- {
146
- "id": "MainThreadAddonIntro",
147
- "parentId": "MainThreadAddons",
148
- "isLeaf": true,
149
- "name": "Introduction"
150
- },
151
- {
152
- "id": "MainThreadAddonExample",
153
- "parentId": "MainThreadAddons",
154
- "isLeaf": true,
155
- "name": "Example"
156
- },
157
- {
158
- "id": "Mixins",
159
- "parentId": "InDepth",
160
- "isLeaf": false,
161
- "name": "Mixins"
162
- },
163
- {
164
- "id": "JavaScriptClasses",
165
- "parentId": null,
166
- "isLeaf": false,
167
- "name": "JavaScript Classes"
168
- },
169
- {
170
- "id": "2023-10-07T19-18-28-517Z",
171
- "parentId": "JavaScriptClasses",
172
- "isLeaf": true,
173
- "name": "Classes, Properties, and Methods"
174
- },
175
- {
176
- "id": "2023-10-08T20-20-07-934Z",
177
- "parentId": "JavaScriptClasses",
178
- "isLeaf": true,
179
- "name": "Overriding Methods"
180
- },
181
- {
182
- "id": "2023-10-08T20-20-37-336Z",
183
- "parentId": "Class Basics",
184
- "isLeaf": true,
185
- "name": "Other JavaScript Class Features"
186
- },
187
- {
188
- "id": "2023-10-08T21-58-25-809Z",
189
- "parentId": "JavaScriptClasses",
190
- "isLeaf": true,
191
- "name": "Super"
192
- },
193
- {
194
- "id": "2023-10-31T13-59-37-550Z",
195
- "parentId": "2023-10-16T19-38-29-590Z",
196
- "isLeaf": true,
197
- "name": "New Node"
198
- },
199
- {
200
- "id": "appendix",
201
- "parentId": null,
202
- "name": "Appendix"
203
- },
204
- {
205
- "id": "stylesheet",
206
- "parentId": "appendix",
207
- "name": "Stylesheet",
208
- "isLeaf": true
209
- },
210
- {
211
- "id": "TestLivePreview",
212
- "parentId": "appendix",
213
- "name": "Test",
214
- "isLeaf": true
215
- }
216
- ]
217
- }
1
+ {"data": [
2
+ {"name": "Why Neo.mjs? ", "parentId": null, "isLeaf": true, "id": "2023-10-01T18-29-19-158Z"},
3
+ {"name": "Getting Started", "parentId": null, "isLeaf": false, "id": "GettingStarted"},
4
+ {"name": "Setup", "parentId": "GettingStarted", "isLeaf": true, "id": "Setup"},
5
+ {"name": "Workspaces and Applications", "parentId": "GettingStarted", "isLeaf": true, "id": "2023-10-14T19-25-08-153Z"},
6
+ {"name": "Describing a View", "parentId": "GettingStarted", "isLeaf": true, "id": "DescribingTheUI"},
7
+ {"name": "Events", "parentId": "GettingStarted", "isLeaf": true, "id": "Events"},
8
+ {"name": "Updating View State", "parentId": "GettingStarted", "isLeaf": true, "id": "ComponentState"},
9
+ {"name": "Extending Components", "parentId": "GettingStarted", "isLeaf": true, "id": "Extending"},
10
+ {"name": "Adding Properties", "parentId": "GettingStarted", "isLeaf": true, "id": "AddingProperties"},
11
+ {"name": "Component Models and Binding", "parentId": "GettingStarted", "isLeaf": true, "id": "ComponentModels"},
12
+ {"name": "What about HTML tags?", "parentId": "GettingStarted", "isLeaf": true, "id": "WhatAboutHTML"},
13
+ {"name": "Tutorials", "parentId": null, "isLeaf": false, "expanded": false, "id": "Tutorials"},
14
+ {"name": "Rock Scissors Paper", "parentId": "Tutorials", "isLeaf": true, "expanded": false, "id": "RSP"},
15
+ {"name": "Earthquakes", "parentId": "Tutorials", "isLeaf": false, "expanded": false, "id": "Earthquakes"},
16
+ {"name": "Cookbook", "parentId": null, "isLeaf": false, "expanded": false, "id": "InDepth"},
17
+ {"name": "Config", "parentId": "InDepth", "isLeaf": false, "id": "Config"},
18
+ {"name": "Instance Lifecycle", "parentId": "InDepth", "isLeaf": false, "id": "InstanceLifecycle"},
19
+ {"name": "User Input (Forms)", "parentId": "InDepth", "isLeaf": false, "id": "Forms"},
20
+ {"name": "Custom Components", "parentId": "InDepth", "isLeaf": false, "id": "CustomComponents"},
21
+ {"name": "Tables (Stores)", "parentId": "InDepth", "isLeaf": false, "id": "Tables"},
22
+ {"name": "Shared Bindable Data (Component Models)", "parentId": "InDepth", "isLeaf": false, "id": "InDepthComponentModels"},
23
+ {"name": "Multi-Window Applications", "parentId": "InDepth", "isLeaf": false, "id": "MultiWindow"},
24
+ {"name": "Main Thread Addons", "parentId": "InDepth", "isLeaf": false, "id": "MainThreadAddons"},
25
+ {"name": "Introduction", "parentId": "MainThreadAddons", "isLeaf": true, "id": "MainThreadAddonIntro"},
26
+ {"name": "Example", "parentId": "MainThreadAddons", "isLeaf": true, "id": "MainThreadAddonExample"},
27
+ {"name": "Mixins", "parentId": "InDepth", "isLeaf": false, "id": "Mixins"},
28
+ {"name": "JavaScript Classes", "parentId": null, "isLeaf": false, "id": "JavaScriptClasses"},
29
+ {"name": "Classes, Properties, and Methods", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-07T19-18-28-517Z"},
30
+ {"name": "Overriding Methods", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-08T20-20-07-934Z"},
31
+ {"name": "Other JavaScript Class Features", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-08T20-20-37-336Z"},
32
+ {"name": "Super", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-08T21-58-25-809Z"},
33
+ {"name": "New Node", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-31T13-59-37-550Z"},
34
+ {"name": "Appendix", "parentId": null, "id": "appendix"},
35
+ {"name": "Stylesheet", "parentId": "appendix", "isLeaf": true, "id": "stylesheet"},
36
+ {"name": "Test", "parentId": "appendix", "isLeaf": true, "id": "TestLivePreview"}
37
+ ]}
@@ -236,12 +236,12 @@ const DefaultConfig = {
236
236
  useVdomWorker: true,
237
237
  /**
238
238
  * buildScripts/injectPackageVersion.mjs will update this value
239
- * @default '6.10.7'
239
+ * @default '6.10.9'
240
240
  * @memberOf! module:Neo
241
241
  * @name config.version
242
242
  * @type String
243
243
  */
244
- version: '6.10.7'
244
+ version: '6.10.9'
245
245
  };
246
246
 
247
247
  Object.assign(DefaultConfig, {
@@ -92,7 +92,7 @@ class Application extends Base {
92
92
 
93
93
  Logger.addContextMenuListener(me.mainView);
94
94
 
95
- value.render(true)
95
+ await value.render(true)
96
96
  }
97
97
  }
98
98
 
@@ -101,8 +101,13 @@ class Base extends CoreBase {
101
101
 
102
102
  if (currentHash) {
103
103
  this.onHashChange(currentHash, null)
104
- } else if (defaultHash) {
105
- Neo.Main.setRoute({value: defaultHash})
104
+ } else {
105
+ /*
106
+ * worker.App: onLoadApplication() will push config.hash into the HashHistory with a 5ms delay.
107
+ * We only want to set a default route, in case the HashHistory is empty and there is no initial
108
+ * value that will get consumed.
109
+ */
110
+ !Neo.config.hash && defaultHash && Neo.Main.setRoute({value: defaultHash})
106
111
  }
107
112
  }
108
113
 
@@ -494,7 +494,7 @@ class Component extends Base {
494
494
  let me = this,
495
495
  data, keyLeaf, parentModel, scope;
496
496
 
497
- if (Neo.isObject(value)) {
497
+ if (Neo.isObject(value) && !value[Symbol.for('isRecord')]) {
498
498
  Object.entries(value).forEach(([dataKey, dataValue]) => {
499
499
  me.internalSetData(`${key}.${dataKey}`, dataValue, originModel)
500
500
  })
@@ -23,8 +23,10 @@ class RemoteMethodAccess extends Base {
23
23
  * @param {Object} target
24
24
  */
25
25
  assignPort(source, target) {
26
- const {appName, port, windowId} = source;
27
- Object.assign(target, {appName, port, windowId})
26
+ if (source) {
27
+ const {appName, port, windowId} = source;
28
+ Object.assign(target, {appName, port, windowId})
29
+ }
28
30
  }
29
31
 
30
32
  /**