neo.mjs 6.7.3 → 6.7.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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.7.3'
23
+ * @member {String} version='6.7.5'
24
24
  */
25
- version: '6.7.3'
25
+ version: '6.7.5'
26
26
  }
27
27
 
28
28
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.7.3'
23
+ * @member {String} version='6.7.5'
24
24
  */
25
- version: '6.7.3'
25
+ version: '6.7.5'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.7.3",
3
+ "version": "6.7.5",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -56,7 +56,7 @@
56
56
  "inquirer": "^9.2.11",
57
57
  "neo-jsdoc": "1.0.1",
58
58
  "neo-jsdoc-x": "1.0.5",
59
- "postcss": "^8.4.30",
59
+ "postcss": "^8.4.31",
60
60
  "sass": "^1.68.0",
61
61
  "showdown": "^2.1.0",
62
62
  "webpack": "^5.88.2",
@@ -1,6 +1,6 @@
1
1
  .neo-tab-header-toolbar {
2
2
  background-color: transparent;
3
- height : var(--tab-button-height-pressed);
3
+ flex : 0 0 auto;
4
4
  padding : 0;
5
5
 
6
6
  &.neo-dock-bottom {
@@ -236,12 +236,12 @@ const DefaultConfig = {
236
236
  useVdomWorker: true,
237
237
  /**
238
238
  * buildScripts/injectPackageVersion.mjs will update this value
239
- * @default '6.7.3'
239
+ * @default '6.7.5'
240
240
  * @memberOf! module:Neo
241
241
  * @name config.version
242
242
  * @type String
243
243
  */
244
- version: '6.7.3'
244
+ version: '6.7.5'
245
245
  };
246
246
 
247
247
  Object.assign(DefaultConfig, {
package/src/Neo.mjs CHANGED
@@ -371,17 +371,13 @@ Neo = globalThis.Neo = Object.assign({
371
371
  * @returns {Object} target
372
372
  */
373
373
  merge(target, source) {
374
- if (Neo.typeOf(target) === 'Object') {
375
- for (let key in source) {
376
- if (Neo.typeOf(source[key]) === 'Object') {
377
- if (!target[key]) {
378
- target[key] = source[key];
379
- } else {
380
- Neo.merge(target[key], source[key]);
381
- }
382
- } else {
383
- target[key] = source[key];
384
- }
374
+ for (const key in source) {
375
+ const value = source[key];
376
+
377
+ if (Neo.typeOf(value) === 'Object') {
378
+ target[key] = Neo.merge(target[key], value);
379
+ } else {
380
+ target[key] = value;
385
381
  }
386
382
  }
387
383
 
@@ -445,6 +445,7 @@ class MainContainer extends Container {
445
445
  height : me.sideBarWidth,
446
446
  listeners: {change: me.onDateSelectorChange, scope: me},
447
447
  parentId : me.id, // we need the parentId to access the model inside the ctor
448
+ value : null,
448
449
 
449
450
  bind: {
450
451
  locale : data => data.locale,
@@ -48,9 +48,10 @@ class Base extends CoreBase {
48
48
  ntype: 'component',
49
49
  /**
50
50
  * The default alignment specification to position this Component relative to some other
51
- * Component, or Element or Rectangle.
51
+ * Component, or Element or Rectangle. Only applies in case floating = true.
52
+ * @member {Object|String} align_={edgeAlign:'t-b',constrainTo:'document.body'}
52
53
  */
53
- align_ : {
54
+ align_: {
54
55
  edgeAlign : 't-b',
55
56
  constrainTo : 'document.body'
56
57
  },
@@ -970,26 +971,30 @@ class Base extends CoreBase {
970
971
  }
971
972
 
972
973
  /**
973
- * @param {Object|String} align
974
+ * Triggered before the align config gets changed.
975
+ * @param {Object|String} value
976
+ * @param {Object} oldValue
974
977
  * @returns {Object}
978
+ * @protected
975
979
  */
976
- beforeSetAlign(align) {
980
+ beforeSetAlign(value, oldValue) {
977
981
  let me = this;
978
982
 
979
983
  // Just a simple 't-b'
980
- if (typeof align === 'string') {
981
- align = {
982
- edgeAlign: align
983
- };
984
+ if (typeof value === 'string') {
985
+ value = {
986
+ edgeAlign: value
987
+ }
984
988
  }
985
989
  // merge the incoming alignment specification into the configured default
986
- return me.merge(me.merge({}, me.constructor.config.align), align);
990
+ return Neo.merge(Neo.merge({}, me.constructor.config.align), value)
987
991
  }
988
992
 
989
993
  /**
990
994
  * Triggered before the cls config gets changed.
991
995
  * @param {String[]} value
992
996
  * @param {String[]} oldValue
997
+ * @returns {String[]}
993
998
  * @protected
994
999
  */
995
1000
  beforeSetCls(value, oldValue) {
@@ -1018,8 +1023,9 @@ class Base extends CoreBase {
1018
1023
 
1019
1024
  /**
1020
1025
  * Triggered before the domListeners config gets changed.
1021
- * @param {Object} value
1022
- * @param {Object} oldValue
1026
+ * @param {Object|Object[]} value
1027
+ * @param {Object[]} oldValue
1028
+ * @returns {Object[]}
1023
1029
  * @protected
1024
1030
  */
1025
1031
  beforeSetDomListeners(value, oldValue) {
@@ -1034,6 +1040,7 @@ class Base extends CoreBase {
1034
1040
  * Triggered before the hideMode config gets changed
1035
1041
  * @param {String} value
1036
1042
  * @param {String} oldValue
1043
+ * @returns {String}
1037
1044
  * @protected
1038
1045
  */
1039
1046
  beforeSetHideMode(value, oldValue) {
@@ -1045,6 +1052,7 @@ class Base extends CoreBase {
1045
1052
  * Creates a KeyNavigation instance if needed.
1046
1053
  * @param {Object} value
1047
1054
  * @param {Object} oldValue
1055
+ * @returns {Neo.util.KeyNavigation}
1048
1056
  * @protected
1049
1057
  */
1050
1058
  beforeSetKeys(value, oldValue) {
@@ -1088,6 +1096,7 @@ class Base extends CoreBase {
1088
1096
  * Triggered before the plugins config gets changed.
1089
1097
  * @param {Object[]} value
1090
1098
  * @param {Object[]} oldValue
1099
+ * @returns {Neo.plugin.Base[]}
1091
1100
  * @protected
1092
1101
  */
1093
1102
  beforeSetPlugins(value, oldValue) {
@@ -1129,7 +1138,7 @@ class Base extends CoreBase {
1129
1138
 
1130
1139
  if (typeof value === 'object') {
1131
1140
  // merge the incoming style specification into the configured default
1132
- value = me.merge(me.merge({}, me.constructor.config.style), value)
1141
+ value = Neo.merge(Neo.merge({}, me.constructor.config.style), value)
1133
1142
  }
1134
1143
 
1135
1144
  return value
@@ -2006,7 +2015,7 @@ class Base extends CoreBase {
2006
2015
  * hideMode: 'removeDom' uses vdom removeDom.
2007
2016
  * hideMode: 'visibility' uses css visibility.
2008
2017
  */
2009
- show(align) {
2018
+ show() {
2010
2019
  const me = this;
2011
2020
 
2012
2021
  if (me.hideMode !== 'visibility') {
@@ -346,16 +346,18 @@ class DateSelector extends Component {
346
346
  afterSetValue(value, oldValue) {
347
347
  let me = this;
348
348
 
349
- if (!me.isUpdating) {
350
- me.currentDate = new Date(`${value}T00:00:00.000Z`);
349
+ if (value) {
350
+ if (!me.isUpdating) {
351
+ me.currentDate = new Date(`${value}T00:00:00.000Z`);
351
352
 
352
- me.fire('change', {
353
- component: me,
354
- oldValue,
355
- value
356
- })
357
- } else {
358
- me.cacheUpdate()
353
+ me.fire('change', {
354
+ component: me,
355
+ oldValue,
356
+ value
357
+ })
358
+ } else {
359
+ me.cacheUpdate()
360
+ }
359
361
  }
360
362
  }
361
363
 
package/src/core/Base.mjs CHANGED
@@ -364,26 +364,6 @@ class Base {
364
364
  }
365
365
  }
366
366
 
367
- /**
368
- * Merges nested objects
369
- * @param {Object} dest={}
370
- * @param {Object} src
371
- * @returns {Object}
372
- */
373
- merge(dest={}, src) {
374
- for (const key in src) {
375
- const value = src[key];
376
-
377
- if (typeof value === 'object') {
378
- dest[key] = this.merge(dest[key], value);
379
- }
380
- else {
381
- dest[key] = value;
382
- }
383
- }
384
- return dest;
385
- }
386
-
387
367
  /**
388
368
  * Override this method to change the order configs are applied to this instance.
389
369
  * @param {Object} config
@@ -535,9 +535,9 @@ class FileUpload extends Base {
535
535
  }
536
536
  // Failed network request
537
537
  else {
538
+ me.error = xhr.response ? JSON.parse(xhr.response).message : `HTTP status : ${xhr.statusText}`;
538
539
  me.progress = NaN;
539
- me.error = `HTTP status : ${xhr.statusText}`;
540
- me.state = 'upload-failed';
540
+ me.state = 'upload-failed';
541
541
  }
542
542
  }
543
543