neo.mjs 6.9.4 → 6.9.5
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/apps/ServiceWorker.mjs +2 -2
- package/examples/ServiceWorker.mjs +2 -2
- package/package.json +1 -1
- package/src/DefaultConfig.mjs +2 -2
- package/src/Neo.mjs +9 -4
- package/src/component/Base.mjs +2 -1
- package/src/core/Base.mjs +10 -2
package/apps/ServiceWorker.mjs
CHANGED
package/package.json
CHANGED
package/src/DefaultConfig.mjs
CHANGED
@@ -236,12 +236,12 @@ const DefaultConfig = {
|
|
236
236
|
useVdomWorker: true,
|
237
237
|
/**
|
238
238
|
* buildScripts/injectPackageVersion.mjs will update this value
|
239
|
-
* @default '6.9.
|
239
|
+
* @default '6.9.5'
|
240
240
|
* @memberOf! module:Neo
|
241
241
|
* @name config.version
|
242
242
|
* @type String
|
243
243
|
*/
|
244
|
-
version: '6.9.
|
244
|
+
version: '6.9.5'
|
245
245
|
};
|
246
246
|
|
247
247
|
Object.assign(DefaultConfig, {
|
package/src/Neo.mjs
CHANGED
@@ -380,20 +380,25 @@ Neo = globalThis.Neo = Object.assign({
|
|
380
380
|
* @memberOf module:Neo
|
381
381
|
* @param {Object} target
|
382
382
|
* @param {Object} source
|
383
|
+
* @param {Object} defaults
|
383
384
|
* @returns {Object} target
|
384
385
|
*/
|
385
|
-
merge(target, source) {
|
386
|
+
merge(target, source, defaults) {
|
387
|
+
if (defaults) {
|
388
|
+
return Neo.merge(Neo.merge(target, defaults), source)
|
389
|
+
}
|
390
|
+
|
386
391
|
for (const key in source) {
|
387
392
|
const value = source[key];
|
388
393
|
|
389
394
|
if (Neo.typeOf(value) === 'Object') {
|
390
|
-
target[key] = Neo.merge(target[key] || {}, value)
|
395
|
+
target[key] = Neo.merge(target[key] || {}, value)
|
391
396
|
} else {
|
392
|
-
target[key] = value
|
397
|
+
target[key] = value
|
393
398
|
}
|
394
399
|
}
|
395
400
|
|
396
|
-
return target
|
401
|
+
return target
|
397
402
|
},
|
398
403
|
|
399
404
|
/**
|
package/src/component/Base.mjs
CHANGED
@@ -996,8 +996,9 @@ class Base extends CoreBase {
|
|
996
996
|
edgeAlign: value
|
997
997
|
}
|
998
998
|
}
|
999
|
+
|
999
1000
|
// merge the incoming alignment specification into the configured default
|
1000
|
-
return Neo.merge(
|
1001
|
+
return Neo.merge({}, value, me.constructor.config.align)
|
1001
1002
|
}
|
1002
1003
|
|
1003
1004
|
/**
|
package/src/core/Base.mjs
CHANGED
@@ -71,6 +71,12 @@ class Base {
|
|
71
71
|
* @protected
|
72
72
|
*/
|
73
73
|
ntype: 'base',
|
74
|
+
/**
|
75
|
+
* While it is recommended to change the static delayable configs on class level,
|
76
|
+
* you can change it on instance level too. If not null, we will do a deep merge.
|
77
|
+
* @member {Object} delayable=null
|
78
|
+
*/
|
79
|
+
delayable: null,
|
74
80
|
/**
|
75
81
|
* The unique component id
|
76
82
|
* @member {String|null} id_=null
|
@@ -178,9 +184,11 @@ class Base {
|
|
178
184
|
* Adjusts all methods inside static delayable
|
179
185
|
*/
|
180
186
|
applyDelayable() {
|
181
|
-
let me
|
187
|
+
let me = this,
|
188
|
+
ctorDelayable = me.constructor.delayable,
|
189
|
+
delayable = me.delayable ? Neo.merge({}, me.delayable, ctorDelayable) : ctorDelayable;
|
182
190
|
|
183
|
-
Object.entries(
|
191
|
+
Object.entries(delayable).forEach(([key, value]) => {
|
184
192
|
let map = {
|
185
193
|
debounce() {me[key] = new debounce(me[key], me, value.timer)},
|
186
194
|
throttle() {me[key] = new throttle(me[key], me, value.timer)}
|