neo.mjs 5.3.17 → 5.4.1

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='5.3.17'
23
+ * @member {String} version='5.4.1'
24
24
  */
25
- version: '5.3.17'
25
+ version: '5.4.1'
26
26
  }
27
27
 
28
28
  /**
@@ -42,6 +42,12 @@ class Page4 extends FormPageContainer {
42
42
  }, {
43
43
  value : 'strawberry',
44
44
  valueLabelText: 'Strawberry'
45
+ }, {
46
+ labelText : 'Boolean',
47
+ name : 'boolean',
48
+ style : {marginTop: '50px'},
49
+ uncheckedValue: false,
50
+ value : true
45
51
  }]
46
52
  }
47
53
  }
@@ -1,5 +1,6 @@
1
1
  import FormPageContainer from '../FormPageContainer.mjs';
2
- import TextField from '../../../../src/form/field/Text.mjs';
2
+ import HiddenField from '../../../../src/form/field/Hidden.mjs';
3
+ import Label from '../../../../src/component/Label.mjs';
3
4
 
4
5
  /**
5
6
  * @class Form.view.pages.Page9
@@ -12,18 +13,24 @@ class Page9 extends FormPageContainer {
12
13
  * @protected
13
14
  */
14
15
  className: 'Form.view.pages.Page9',
16
+ /**
17
+ * @member {String} formGroup='page9'
18
+ */
19
+ formGroup: 'page9',
15
20
  /**
16
21
  * @member {Object[]} items
17
22
  */
18
23
  items: [{
19
- module : TextField,
20
- labelText: 'Page 9 Field 1',
21
- name : 'page9field1',
22
- required : true
24
+ module: Label,
25
+ text : 'Hidden fields will not get mounted. Inspect the DOM.'
26
+ }, {
27
+ module: HiddenField,
28
+ name : 'field1',
29
+ value : 'foo'
23
30
  }, {
24
- module : TextField,
25
- labelText: 'Page 9 Field 2',
26
- name : 'page9field2'
31
+ module: HiddenField,
32
+ name : 'field2',
33
+ value : 'bar'
27
34
  }]
28
35
  }
29
36
  }
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='5.3.17'
23
+ * @member {String} version='5.4.1'
24
24
  */
25
- version: '5.3.17'
25
+ version: '5.4.1'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "5.3.17",
3
+ "version": "5.4.1",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -56,8 +56,8 @@
56
56
  "neo-jsdoc": "^1.0.1",
57
57
  "neo-jsdoc-x": "^1.0.5",
58
58
  "postcss": "^8.4.21",
59
- "sass": "^1.60.0",
60
- "webpack": "^5.77.0",
59
+ "sass": "^1.61.0",
60
+ "webpack": "^5.78.0",
61
61
  "webpack-cli": "^5.0.1",
62
62
  "webpack-dev-server": "4.13.2",
63
63
  "webpack-hook-plugin": "^1.0.7",
@@ -13,7 +13,7 @@
13
13
  {"id": 9, "cardIndex": 6, "isHeader": false, "isValid": null, "name": "Fieldsets"},
14
14
  {"id": 10, "cardIndex": null, "isHeader": true, "isValid": null, "name": "3. More data"},
15
15
  {"id": 11, "cardIndex": 7, "isHeader": false, "isValid": null, "name": "NumberFields"},
16
- {"id": 12, "cardIndex": 8, "isHeader": false, "isValid": null, "name": "Page 9"},
16
+ {"id": 12, "cardIndex": 8, "isHeader": false, "isValid": null, "name": "HiddenFields"},
17
17
  {"id": 13, "cardIndex": 9, "isHeader": false, "isValid": null, "name": "Page 10"},
18
18
  {"id": 14, "cardIndex": null, "isHeader": true, "isValid": null, "name": "3. Optional data"},
19
19
  {"id": 15, "cardIndex": 10, "isHeader": false, "isValid": null, "name": "Page 11"},
@@ -237,12 +237,12 @@ const DefaultConfig = {
237
237
  useVdomWorker: true,
238
238
  /**
239
239
  * buildScripts/injectPackageVersion.mjs will update this value
240
- * @default '5.3.17'
240
+ * @default '5.4.1'
241
241
  * @memberOf! module:Neo
242
242
  * @name config.version
243
243
  * @type String
244
244
  */
245
- version: '5.3.17'
245
+ version: '5.4.1'
246
246
  };
247
247
 
248
248
  Object.assign(DefaultConfig, {
@@ -122,14 +122,19 @@ class Container extends BaseContainer {
122
122
  ns = values;
123
123
  }
124
124
 
125
+ /*
126
+ * CheckBoxes need custom logic
127
+ * => we only want to pass the uncheckedValue in case the field does not belong to a group
128
+ * (multiple fields using the same name)
129
+ */
125
130
  if (Object.hasOwn(ns, key) && value !== undefined) {
126
- if (ns[key] === null) {
131
+ if (ns[key] === item.uncheckedValue) {
127
132
  ns[key] = []
128
133
  } else if (!Array.isArray(ns[key])) {
129
134
  ns[key] = [ns[key]]
130
135
  }
131
136
 
132
- value !== null && ns[key].unshift(value)
137
+ value !== item.uncheckedValue && ns[key].unshift(value)
133
138
  } else if (value !== undefined) {
134
139
  ns[key] = value
135
140
  }
@@ -1,12 +1,12 @@
1
- import Container from '../container/Base.mjs';
2
- import Legend from '../component/Legend.mjs';
3
- import NeoArray from '../util/Array.mjs';
1
+ import FormContainer from '../form/Container.mjs';
2
+ import Legend from '../component/Legend.mjs';
3
+ import NeoArray from '../util/Array.mjs';
4
4
 
5
5
  /**
6
6
  * @class Neo.form.Fieldset
7
- * @extends Neo.container.Base
7
+ * @extends Neo.form.Container
8
8
  */
9
- class Fieldset extends Container {
9
+ class Fieldset extends FormContainer {
10
10
  static config = {
11
11
  /**
12
12
  * @member {String} className='Neo.form.Fieldset'
@@ -67,9 +67,9 @@ class Fieldset extends Container {
67
67
  */
68
68
  title_: '',
69
69
  /**
70
- * @member {Object} _vdom={tag:'fieldset',cn:[]}
70
+ * @member {Object} vdom={tag:'fieldset',cn:[]}
71
71
  */
72
- _vdom:
72
+ vdom:
73
73
  {tag: 'fieldset', cn: []}
74
74
  }
75
75
 
@@ -91,6 +91,13 @@ class CheckBox extends Base {
91
91
  ]}
92
92
  }
93
93
 
94
+ /**
95
+ * In case the CheckBox does not belong to a group (multiple fields with the same name),
96
+ * you can pass a custom value for the unchecked state.
97
+ * @member {*} uncheckedValue=null
98
+ */
99
+ uncheckedValue = null
100
+
94
101
  /**
95
102
  * @param {Object} config
96
103
  */
@@ -316,7 +323,9 @@ class CheckBox extends Base {
316
323
  * @returns {String|null}
317
324
  */
318
325
  getValue() {
319
- return this.checked ? this.value : null
326
+ let me = this;
327
+
328
+ return me.checked ? me.value : me.uncheckedValue
320
329
  }
321
330
 
322
331
  /**
@@ -0,0 +1,28 @@
1
+ import Base from './Base.mjs';
2
+
3
+ /**
4
+ * @class Neo.form.field.Hidden
5
+ * @extends Neo.form.field.Base
6
+ */
7
+ class Hidden extends Base {
8
+ static config = {
9
+ /**
10
+ * @member {String} className='Neo.form.field.Hidden'
11
+ * @protected
12
+ */
13
+ className: 'Neo.form.field.Hidden',
14
+ /**
15
+ * @member {String} ntype='hiddenfield'
16
+ * @protected
17
+ */
18
+ ntype: 'hiddenfield',
19
+ /**
20
+ * @member {Boolean} hidden=true
21
+ */
22
+ hidden: true
23
+ }
24
+ }
25
+
26
+ Neo.applyClassConfig(Hidden);
27
+
28
+ export default Hidden;