neo.mjs 4.3.14 → 4.3.16
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.
- package/package.json +6 -6
- package/src/component/Base.mjs +7 -3
- package/src/controller/Component.mjs +41 -42
- package/src/core/Base.mjs +14 -5
- package/src/data/RecordFactory.mjs +1 -0
- package/src/manager/DomEvent.mjs +0 -28
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neo.mjs",
|
3
|
-
"version": "4.3.
|
3
|
+
"version": "4.3.16",
|
4
4
|
"description": "The webworkers driven UI framework",
|
5
5
|
"type": "module",
|
6
6
|
"repository": {
|
@@ -41,7 +41,7 @@
|
|
41
41
|
},
|
42
42
|
"homepage": "https://neomjs.github.io/pages/",
|
43
43
|
"dependencies": {
|
44
|
-
"@fortawesome/fontawesome-free": "^6.2.
|
44
|
+
"@fortawesome/fontawesome-free": "^6.2.1",
|
45
45
|
"@material/mwc-button": "^0.27.0",
|
46
46
|
"@material/mwc-textfield": "^0.27.0",
|
47
47
|
"autoprefixer": "^10.4.13",
|
@@ -55,10 +55,10 @@
|
|
55
55
|
"inquirer": "^9.1.4",
|
56
56
|
"neo-jsdoc": "^1.0.1",
|
57
57
|
"neo-jsdoc-x": "^1.0.4",
|
58
|
-
"postcss": "^8.4.
|
59
|
-
"sass": "^1.56.
|
60
|
-
"webpack": "^5.
|
61
|
-
"webpack-cli": "^
|
58
|
+
"postcss": "^8.4.19",
|
59
|
+
"sass": "^1.56.1",
|
60
|
+
"webpack": "^5.75.0",
|
61
|
+
"webpack-cli": "^5.0.0",
|
62
62
|
"webpack-dev-server": "4.11.1",
|
63
63
|
"webpack-hook-plugin": "^1.0.7",
|
64
64
|
"webpack-node-externals": "^3.0.0"
|
package/src/component/Base.mjs
CHANGED
@@ -447,12 +447,16 @@ class Base extends CoreBase {
|
|
447
447
|
|
448
448
|
/**
|
449
449
|
* Registers the domListeners inside the Neo.manager.DomEvent
|
450
|
-
* @param {
|
451
|
-
* @param {
|
450
|
+
* @param {Object[]} value
|
451
|
+
* @param {Object[]} oldValue
|
452
452
|
* @protected
|
453
453
|
*/
|
454
454
|
afterSetDomListeners(value, oldValue) {
|
455
|
-
|
455
|
+
let me = this;
|
456
|
+
|
457
|
+
me.getController()?.parseDomListeners(me);
|
458
|
+
|
459
|
+
DomEventManager.updateDomListeners(me, value, oldValue);
|
456
460
|
}
|
457
461
|
|
458
462
|
/**
|
@@ -20,7 +20,7 @@ class Component extends Base {
|
|
20
20
|
*/
|
21
21
|
ntype: 'component-controller',
|
22
22
|
/**
|
23
|
-
* @member {
|
23
|
+
* @member {Neo.component.Base|null} component=null
|
24
24
|
* @protected
|
25
25
|
*/
|
26
26
|
component: null,
|
@@ -135,49 +135,13 @@ class Component extends Base {
|
|
135
135
|
onComponentConstructed() {}
|
136
136
|
|
137
137
|
/**
|
138
|
-
* @param {Neo.component.Base}
|
138
|
+
* @param {Neo.component.Base} component=this.component
|
139
139
|
*/
|
140
140
|
parseConfig(component=this.component) {
|
141
|
-
let me
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
eventHandler, fn, handlerScope, parentController;
|
146
|
-
|
147
|
-
if (domListeners) {
|
148
|
-
domListeners.forEach(domListener => {
|
149
|
-
Object.entries(domListener).forEach(([key, value]) => {
|
150
|
-
eventHandler = null;
|
151
|
-
|
152
|
-
if (key !== 'scope' && key !== 'delegate') {
|
153
|
-
if (Neo.isString(value)) {
|
154
|
-
eventHandler = value;
|
155
|
-
} else if (Neo.isObject(value) && value.hasOwnProperty('fn') && Neo.isString(value.fn)) {
|
156
|
-
eventHandler = value.fn;
|
157
|
-
}
|
158
|
-
|
159
|
-
if (eventHandler) {
|
160
|
-
handlerScope = me.getHandlerScope(eventHandler);
|
161
|
-
|
162
|
-
if (!handlerScope) {
|
163
|
-
Logger.logError('Unknown domEvent handler for', eventHandler, component);
|
164
|
-
} else {
|
165
|
-
fn = handlerScope[eventHandler].bind(handlerScope);
|
166
|
-
domListener[key] = fn;
|
167
|
-
|
168
|
-
DomEventManager.updateListenerPlaceholder({
|
169
|
-
componentId : component.id,
|
170
|
-
eventHandlerMethod: fn,
|
171
|
-
eventHandlerName : eventHandler,
|
172
|
-
eventName : key,
|
173
|
-
scope : parentController
|
174
|
-
});
|
175
|
-
}
|
176
|
-
}
|
177
|
-
}
|
178
|
-
});
|
179
|
-
});
|
180
|
-
}
|
141
|
+
let me = this,
|
142
|
+
listeners = component.listeners,
|
143
|
+
reference = component.reference,
|
144
|
+
eventHandler, handlerScope;
|
181
145
|
|
182
146
|
if (listeners) {
|
183
147
|
Object.entries(listeners).forEach(([key, value]) => {
|
@@ -215,6 +179,41 @@ class Component extends Base {
|
|
215
179
|
}
|
216
180
|
}
|
217
181
|
|
182
|
+
/**
|
183
|
+
* @param {Neo.component.Base} component=this.component
|
184
|
+
*/
|
185
|
+
parseDomListeners(component=this.component) {
|
186
|
+
let me = this,
|
187
|
+
domListeners = component.domListeners,
|
188
|
+
eventHandler, scope;
|
189
|
+
|
190
|
+
if (domListeners) {
|
191
|
+
domListeners.forEach(domListener => {
|
192
|
+
Object.entries(domListener).forEach(([key, value]) => {
|
193
|
+
eventHandler = null;
|
194
|
+
|
195
|
+
if (key !== 'scope' && key !== 'delegate') {
|
196
|
+
if (Neo.isString(value)) {
|
197
|
+
eventHandler = value;
|
198
|
+
} else if (Neo.isObject(value) && value.hasOwnProperty('fn') && Neo.isString(value.fn)) {
|
199
|
+
eventHandler = value.fn;
|
200
|
+
}
|
201
|
+
|
202
|
+
if (eventHandler) {
|
203
|
+
scope = me.getHandlerScope(eventHandler);
|
204
|
+
|
205
|
+
if (!scope) {
|
206
|
+
Logger.logError('Unknown domEvent handler for', eventHandler, component);
|
207
|
+
} else {
|
208
|
+
domListener[key] = scope[eventHandler].bind(scope);
|
209
|
+
}
|
210
|
+
}
|
211
|
+
}
|
212
|
+
});
|
213
|
+
});
|
214
|
+
}
|
215
|
+
}
|
216
|
+
|
218
217
|
/**
|
219
218
|
* Will get called by component.Base: destroy() in case the component has a reference config
|
220
219
|
* @param {Neo.component.Base} component
|
package/src/core/Base.mjs
CHANGED
@@ -299,7 +299,8 @@ class Base {
|
|
299
299
|
* @param {Object|Object[]} items
|
300
300
|
*/
|
301
301
|
parseItemConfigs(items) {
|
302
|
-
let me = this
|
302
|
+
let me = this,
|
303
|
+
ns, nsArray, nsKey, symbolNs;
|
303
304
|
|
304
305
|
if (items) {
|
305
306
|
if (!Array.isArray(items)) {
|
@@ -311,14 +312,22 @@ class Base {
|
|
311
312
|
if (Array.isArray(value)) {
|
312
313
|
me.parseItemConfigs(value);
|
313
314
|
} else if (typeof value === 'string' && value.startsWith('@config:')) {
|
314
|
-
|
315
|
+
nsArray = value.substring(8).trim().split('.');
|
316
|
+
nsKey = nsArray.pop();
|
317
|
+
ns = Neo.ns(nsArray, false, me);
|
315
318
|
|
316
|
-
if (!
|
317
|
-
console.error('The used @config does not exist:',
|
319
|
+
if (!Object.hasOwn(ns, nsKey)) {
|
320
|
+
console.error('The used @config does not exist:', nsKey, nsArray.join('.'));
|
318
321
|
} else {
|
322
|
+
symbolNs = Neo.ns(nsArray, false, me[configSymbol]);
|
323
|
+
|
319
324
|
// The config might not be processed yet, especially for configs
|
320
325
|
// not ending with an underscore, so we need to check the configSymbol first.
|
321
|
-
|
326
|
+
if (symbolNs && Object.hasOwn(symbolNs, nsKey)) {
|
327
|
+
item[key] = symbolNs[nsKey];
|
328
|
+
} else {
|
329
|
+
item[key] = ns[nsKey];
|
330
|
+
}
|
322
331
|
}
|
323
332
|
}
|
324
333
|
});
|
package/src/manager/DomEvent.mjs
CHANGED
@@ -405,34 +405,6 @@ class DomEvent extends Base {
|
|
405
405
|
}
|
406
406
|
}
|
407
407
|
|
408
|
-
/**
|
409
|
-
* Intended for Neo.controller.Component to replace listener placeholders provided as a string
|
410
|
-
* @param {Object} config
|
411
|
-
* @param {String} config.componentId
|
412
|
-
* @param {Function} config.eventHandlerMethod
|
413
|
-
* @param {String} config.eventHandlerName
|
414
|
-
* @param {String} config.eventName
|
415
|
-
* @param {Neo.core.Base} config.scope
|
416
|
-
*/
|
417
|
-
updateListenerPlaceholder(config) {
|
418
|
-
let me = this,
|
419
|
-
items = me.items[config.componentId] || {},
|
420
|
-
eventListeners = items[config.eventName] || [],
|
421
|
-
i = 0,
|
422
|
-
len = eventListeners.length,
|
423
|
-
listener;
|
424
|
-
|
425
|
-
for (; i < len; i++) {
|
426
|
-
listener = eventListeners[i];
|
427
|
-
|
428
|
-
if (listener.fn === config.eventHandlerName) {
|
429
|
-
listener.fn = config.eventHandlerMethod;
|
430
|
-
listener.scope = config.scope;
|
431
|
-
break;
|
432
|
-
}
|
433
|
-
}
|
434
|
-
}
|
435
|
-
|
436
408
|
/**
|
437
409
|
* @param {Object} listener
|
438
410
|
* @param {Array} path
|