neo.mjs 5.2.1 → 5.2.3
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/apps/form/view/FormContainer.mjs +5 -1
- package/apps/form/view/pages/Page11.mjs +32 -0
- package/apps/form/view/pages/Page12.mjs +32 -0
- package/apps/form/view/pages/Page13.mjs +32 -0
- package/apps/form/view/pages/Page14.mjs +32 -0
- package/apps/form/view/pages/Page4.mjs +26 -8
- package/apps/form/view/pages/Page5.mjs +8 -3
- package/apps/form/view/pages/Page6.mjs +6 -2
- package/examples/ServiceWorker.mjs +2 -2
- package/package.json +1 -1
- package/resources/examples/data/formSideNav.json +7 -2
- package/src/DefaultConfig.mjs +2 -2
- package/src/form/Container.mjs +23 -18
- package/src/form/field/Base.mjs +46 -5
- package/src/form/field/CheckBox.mjs +7 -0
- package/src/form/field/Select.mjs +1 -1
package/apps/ServiceWorker.mjs
CHANGED
@@ -66,7 +66,11 @@ class FormContainer extends BaseFormContainer {
|
|
66
66
|
{module: () => import('./pages/Page7.mjs')},
|
67
67
|
{module: () => import('./pages/Page8.mjs')},
|
68
68
|
{module: () => import('./pages/Page9.mjs')},
|
69
|
-
{module: () => import('./pages/Page10.mjs')}
|
69
|
+
{module: () => import('./pages/Page10.mjs')},
|
70
|
+
{module: () => import('./pages/Page11.mjs')},
|
71
|
+
{module: () => import('./pages/Page12.mjs')},
|
72
|
+
{module: () => import('./pages/Page13.mjs')},
|
73
|
+
{module: () => import('./pages/Page14.mjs')}
|
70
74
|
]
|
71
75
|
}, {
|
72
76
|
module: Toolbar,
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import FormPageContainer from '../FormPageContainer.mjs';
|
2
|
+
import TextField from '../../../../src/form/field/Text.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Form.view.pages.Page11
|
6
|
+
* @extends Form.view.FormPageContainer
|
7
|
+
*/
|
8
|
+
class Page11 extends FormPageContainer {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Form.view.pages.Page11'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Form.view.pages.Page11',
|
15
|
+
/**
|
16
|
+
* @member {Object[]} items
|
17
|
+
*/
|
18
|
+
items: [{
|
19
|
+
module : TextField,
|
20
|
+
labelText: 'Page 11 Field 1',
|
21
|
+
name : 'page11field1'
|
22
|
+
}, {
|
23
|
+
module : TextField,
|
24
|
+
labelText: 'Page 11 Field 2',
|
25
|
+
name : 'page11field2'
|
26
|
+
}]
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
Neo.applyClassConfig(Page11);
|
31
|
+
|
32
|
+
export default Page11;
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import FormPageContainer from '../FormPageContainer.mjs';
|
2
|
+
import TextField from '../../../../src/form/field/Text.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Form.view.pages.Page12
|
6
|
+
* @extends Form.view.FormPageContainer
|
7
|
+
*/
|
8
|
+
class Page12 extends FormPageContainer {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Form.view.pages.Page12'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Form.view.pages.Page12',
|
15
|
+
/**
|
16
|
+
* @member {Object[]} items
|
17
|
+
*/
|
18
|
+
items: [{
|
19
|
+
module : TextField,
|
20
|
+
labelText: 'Page 12 Field 1',
|
21
|
+
name : 'page12field1'
|
22
|
+
}, {
|
23
|
+
module : TextField,
|
24
|
+
labelText: 'Page 12 Field 2',
|
25
|
+
name : 'page12field2'
|
26
|
+
}]
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
Neo.applyClassConfig(Page12);
|
31
|
+
|
32
|
+
export default Page12;
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import FormPageContainer from '../FormPageContainer.mjs';
|
2
|
+
import TextField from '../../../../src/form/field/Text.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Form.view.pages.Page13
|
6
|
+
* @extends Form.view.FormPageContainer
|
7
|
+
*/
|
8
|
+
class Page13 extends FormPageContainer {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Form.view.pages.Page13'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Form.view.pages.Page13',
|
15
|
+
/**
|
16
|
+
* @member {Object[]} items
|
17
|
+
*/
|
18
|
+
items: [{
|
19
|
+
module : TextField,
|
20
|
+
labelText: 'Page 13 Field 1',
|
21
|
+
name : 'page13field1'
|
22
|
+
}, {
|
23
|
+
module : TextField,
|
24
|
+
labelText: 'Page 13 Field 2',
|
25
|
+
name : 'page13field2'
|
26
|
+
}]
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
Neo.applyClassConfig(Page13);
|
31
|
+
|
32
|
+
export default Page13;
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import FormPageContainer from '../FormPageContainer.mjs';
|
2
|
+
import TextField from '../../../../src/form/field/Text.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Form.view.pages.Page14
|
6
|
+
* @extends Form.view.FormPageContainer
|
7
|
+
*/
|
8
|
+
class Page14 extends FormPageContainer {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Form.view.pages.Page14'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Form.view.pages.Page14',
|
15
|
+
/**
|
16
|
+
* @member {Object[]} items
|
17
|
+
*/
|
18
|
+
items: [{
|
19
|
+
module : TextField,
|
20
|
+
labelText: 'Page 14 Field 1',
|
21
|
+
name : 'page14field1'
|
22
|
+
}, {
|
23
|
+
module : TextField,
|
24
|
+
labelText: 'Page 14 Field 2',
|
25
|
+
name : 'page14field2'
|
26
|
+
}]
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
Neo.applyClassConfig(Page14);
|
31
|
+
|
32
|
+
export default Page14;
|
@@ -1,5 +1,5 @@
|
|
1
|
+
import CheckBox from '../../../../src/form/field/CheckBox.mjs';
|
1
2
|
import FormPageContainer from '../FormPageContainer.mjs';
|
2
|
-
import TextField from '../../../../src/form/field/Text.mjs';
|
3
3
|
|
4
4
|
/**
|
5
5
|
* @class Form.view.pages.Page4
|
@@ -12,18 +12,36 @@ class Page4 extends FormPageContainer {
|
|
12
12
|
* @protected
|
13
13
|
*/
|
14
14
|
className: 'Form.view.pages.Page4',
|
15
|
+
/**
|
16
|
+
* @member {Object} itemDefaults
|
17
|
+
*/
|
18
|
+
itemDefaults: {
|
19
|
+
module : CheckBox,
|
20
|
+
labelText : null,
|
21
|
+
labelWidth: 70,
|
22
|
+
name : 'fruits'
|
23
|
+
},
|
15
24
|
/**
|
16
25
|
* @member {Object[]} items
|
17
26
|
*/
|
18
27
|
items: [{
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
28
|
+
labelText : 'Fruits',
|
29
|
+
value : 'apple',
|
30
|
+
valueLabelText: 'Apple'
|
31
|
+
}, {
|
32
|
+
value : 'banana',
|
33
|
+
valueLabelText: 'Banana'
|
34
|
+
}, {
|
35
|
+
checked : true,
|
36
|
+
value : 'lemon',
|
37
|
+
valueLabelText: 'Lemon'
|
38
|
+
}, {
|
39
|
+
checked : true,
|
40
|
+
value : 'orange',
|
41
|
+
valueLabelText: 'Orange'
|
23
42
|
}, {
|
24
|
-
|
25
|
-
|
26
|
-
name : 'page4field2'
|
43
|
+
value : 'strawberry',
|
44
|
+
valueLabelText: 'Strawberry'
|
27
45
|
}]
|
28
46
|
}
|
29
47
|
}
|
@@ -12,18 +12,23 @@ class Page5 extends FormPageContainer {
|
|
12
12
|
* @protected
|
13
13
|
*/
|
14
14
|
className: 'Form.view.pages.Page5',
|
15
|
+
/**
|
16
|
+
* @member {String} formGroup='page5'
|
17
|
+
*/
|
18
|
+
formGroup: 'page5',
|
15
19
|
/**
|
16
20
|
* @member {Object[]} items
|
17
21
|
*/
|
18
22
|
items: [{
|
19
23
|
module : TextField,
|
20
24
|
labelText: 'Page 5 Field 1',
|
21
|
-
name : '
|
22
|
-
required : true
|
25
|
+
name : 'field1',
|
26
|
+
required : true,
|
27
|
+
value : 'bar'
|
23
28
|
}, {
|
24
29
|
module : TextField,
|
25
30
|
labelText: 'Page 5 Field 2',
|
26
|
-
name : '
|
31
|
+
name : 'field2'
|
27
32
|
}]
|
28
33
|
}
|
29
34
|
}
|
@@ -12,18 +12,22 @@ class Page6 extends FormPageContainer {
|
|
12
12
|
* @protected
|
13
13
|
*/
|
14
14
|
className: 'Form.view.pages.Page6',
|
15
|
+
/**
|
16
|
+
* @member {String} formGroup='page6'
|
17
|
+
*/
|
18
|
+
formGroup: 'page6',
|
15
19
|
/**
|
16
20
|
* @member {Object[]} items
|
17
21
|
*/
|
18
22
|
items: [{
|
19
23
|
module : TextField,
|
20
24
|
labelText: 'Page 6 Field 1',
|
21
|
-
name : '
|
25
|
+
name : 'field1',
|
22
26
|
required : true
|
23
27
|
}, {
|
24
28
|
module : TextField,
|
25
29
|
labelText: 'Page 6 Field 2',
|
26
|
-
name : '
|
30
|
+
name : 'field2'
|
27
31
|
}]
|
28
32
|
}
|
29
33
|
}
|
package/package.json
CHANGED
@@ -7,13 +7,18 @@
|
|
7
7
|
{"id": 3, "cardIndex": 1, "isHeader": false, "isValid": null, "name": "Page 2"},
|
8
8
|
{"id": 4, "cardIndex": 2, "isHeader": false, "isValid": null, "name": "Page 3"},
|
9
9
|
{"id": 5, "cardIndex": null, "isHeader": true, "isValid": null, "name": "2. Personal data"},
|
10
|
-
{"id": 6, "cardIndex": 3, "isHeader": false, "isValid": null, "name": "
|
10
|
+
{"id": 6, "cardIndex": 3, "isHeader": false, "isValid": null, "name": "CheckBoxes"},
|
11
11
|
{"id": 7, "cardIndex": 4, "isHeader": false, "isValid": null, "name": "Page 5"},
|
12
12
|
{"id": 8, "cardIndex": 5, "isHeader": false, "isValid": null, "name": "Page 6"},
|
13
13
|
{"id": 9, "cardIndex": 6, "isHeader": false, "isValid": null, "name": "Page 7"},
|
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": "Page 8"},
|
16
16
|
{"id": 12, "cardIndex": 8, "isHeader": false, "isValid": null, "name": "Page 9"},
|
17
|
-
{"id": 13, "cardIndex": 9, "isHeader": false, "isValid": null, "name": "Page 10"}
|
17
|
+
{"id": 13, "cardIndex": 9, "isHeader": false, "isValid": null, "name": "Page 10"},
|
18
|
+
{"id": 14, "cardIndex": null, "isHeader": true, "isValid": null, "name": "3. Optional data"},
|
19
|
+
{"id": 15, "cardIndex": 14, "isHeader": false, "isValid": null, "name": "Page 11"},
|
20
|
+
{"id": 16, "cardIndex": 14, "isHeader": false, "isValid": null, "name": "Page 12"},
|
21
|
+
{"id": 17, "cardIndex": 14, "isHeader": false, "isValid": null, "name": "Page 13"},
|
22
|
+
{"id": 18, "cardIndex": 14, "isHeader": false, "isValid": null, "name": "Page 14"}
|
18
23
|
]
|
19
24
|
}
|
package/src/DefaultConfig.mjs
CHANGED
@@ -237,12 +237,12 @@ const DefaultConfig = {
|
|
237
237
|
useVdomWorker: true,
|
238
238
|
/**
|
239
239
|
* buildScripts/injectPackageVersion.mjs will update this value
|
240
|
-
* @default '5.2.
|
240
|
+
* @default '5.2.3'
|
241
241
|
* @memberOf! module:Neo
|
242
242
|
* @name config.version
|
243
243
|
* @type String
|
244
244
|
*/
|
245
|
-
version: '5.2.
|
245
|
+
version: '5.2.3'
|
246
246
|
};
|
247
247
|
|
248
248
|
Object.assign(DefaultConfig, {
|
package/src/form/Container.mjs
CHANGED
@@ -84,37 +84,42 @@ class Container extends BaseContainer {
|
|
84
84
|
return fields;
|
85
85
|
}
|
86
86
|
|
87
|
-
/**
|
88
|
-
* @returns {Promise<Object>}
|
89
|
-
*/
|
90
|
-
async getSubmitValues() {
|
91
|
-
let fields = await this.getFields(),
|
92
|
-
values = {};
|
93
|
-
|
94
|
-
fields.forEach(item => {
|
95
|
-
values[item.name || item.id] = item.getSubmitValue();
|
96
|
-
});
|
97
|
-
|
98
|
-
return values;
|
99
|
-
}
|
100
|
-
|
101
87
|
/**
|
102
88
|
* @returns {Promise<Object>}
|
103
89
|
*/
|
104
90
|
async getValues() {
|
105
91
|
let fields = await this.getFields(),
|
106
92
|
values = {},
|
107
|
-
key, ns, nsArray;
|
93
|
+
itemName, key, ns, nsArray, value;
|
108
94
|
|
109
95
|
fields.forEach(item => {
|
96
|
+
value = item.getValue();
|
97
|
+
|
110
98
|
if (item.name) {
|
111
|
-
|
99
|
+
itemName = item.name;
|
100
|
+
|
101
|
+
if (item.formGroup) {
|
102
|
+
itemName = item.formGroup + '.' + itemName;
|
103
|
+
}
|
104
|
+
|
105
|
+
nsArray = itemName.split('.');
|
112
106
|
key = nsArray.pop();
|
113
107
|
ns = Neo.ns(nsArray, true, values);
|
108
|
+
} else {
|
109
|
+
key = item.id;
|
110
|
+
ns = values;
|
111
|
+
}
|
112
|
+
|
113
|
+
if (Object.hasOwn(ns, key)) {
|
114
|
+
if (ns[key] === null) {
|
115
|
+
ns[key] = []
|
116
|
+
} else if (!Array.isArray(ns[key])) {
|
117
|
+
ns[key] = [ns[key]]
|
118
|
+
}
|
114
119
|
|
115
|
-
ns[key]
|
120
|
+
value !== null && ns[key].unshift(value)
|
116
121
|
} else {
|
117
|
-
|
122
|
+
ns[key] = value;
|
118
123
|
}
|
119
124
|
});
|
120
125
|
|
package/src/form/field/Base.mjs
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import Component
|
1
|
+
import Component from '../../component/Base.mjs';
|
2
|
+
import ComponentManager from '../../manager/Component.mjs';
|
2
3
|
|
3
4
|
/**
|
4
5
|
* Abstract base class for form fields
|
@@ -17,12 +18,24 @@ class Base extends Component {
|
|
17
18
|
* @protected
|
18
19
|
*/
|
19
20
|
ntype: 'basefield',
|
21
|
+
/**
|
22
|
+
* Form groups can get set on any parent component level.
|
23
|
+
* An alternative way for using dots in field names.
|
24
|
+
* @member {String|null} formGroup_=null
|
25
|
+
*/
|
26
|
+
formGroup_: null,
|
20
27
|
/**
|
21
28
|
* @member {*} value_=null
|
22
29
|
*/
|
23
30
|
value_: null
|
24
31
|
}
|
25
32
|
|
33
|
+
/**
|
34
|
+
* An internal cache for formGroups of all parent levels
|
35
|
+
* @member {String|null} formGroupString=null
|
36
|
+
*/
|
37
|
+
formGroupString = null
|
38
|
+
|
26
39
|
/**
|
27
40
|
* Triggered after the value config got changed
|
28
41
|
* @param {*} value
|
@@ -34,6 +47,34 @@ class Base extends Component {
|
|
34
47
|
}
|
35
48
|
}
|
36
49
|
|
50
|
+
/**
|
51
|
+
* Triggered when accessing the formGroup config
|
52
|
+
* @param {String|null} value
|
53
|
+
* @returns {String|null} parents
|
54
|
+
* @protected
|
55
|
+
*/
|
56
|
+
beforeGetFormGroup(value) {
|
57
|
+
let me = this,
|
58
|
+
group = [],
|
59
|
+
returnValue;
|
60
|
+
|
61
|
+
if (me.formGroupString) {
|
62
|
+
return me.formGroupString;
|
63
|
+
}
|
64
|
+
|
65
|
+
value && group.push(value);
|
66
|
+
|
67
|
+
ComponentManager.getParents(me).forEach(parent => {
|
68
|
+
parent.formGroup && group.push(parent.formGroup)
|
69
|
+
});
|
70
|
+
|
71
|
+
returnValue = group.join('.');
|
72
|
+
|
73
|
+
me.formGroupString = returnValue;
|
74
|
+
|
75
|
+
return returnValue;
|
76
|
+
}
|
77
|
+
|
37
78
|
/**
|
38
79
|
* Override this method as needed
|
39
80
|
* @param {*} value
|
@@ -48,9 +89,9 @@ class Base extends Component {
|
|
48
89
|
}
|
49
90
|
|
50
91
|
/**
|
51
|
-
* @returns {*}
|
92
|
+
* @returns {*}
|
52
93
|
*/
|
53
|
-
|
94
|
+
getValue() {
|
54
95
|
return this.value;
|
55
96
|
}
|
56
97
|
|
@@ -63,9 +104,9 @@ class Base extends Component {
|
|
63
104
|
|
64
105
|
/**
|
65
106
|
* Resets the field to a new value or null
|
66
|
-
* @param {*}
|
107
|
+
* @param {*} value=null
|
67
108
|
*/
|
68
|
-
reset(value) {
|
109
|
+
reset(value=null) {
|
69
110
|
this.value = value;
|
70
111
|
}
|
71
112
|
|