neo.mjs 5.1.11 → 5.1.13

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.1.11'
23
+ * @member {String} version='5.1.13'
24
24
  */
25
- version: '5.1.11'
25
+ version: '5.1.13'
26
26
  }
27
27
 
28
28
  /**
@@ -0,0 +1,13 @@
1
+ Neo.overwrites = {
2
+ Neo: {
3
+ form: {
4
+ field: {
5
+ Text: {
6
+ labelPosition_: 'inline'
7
+ }
8
+ }
9
+ }
10
+ }
11
+ }
12
+
13
+ export default Neo.overwrites;
@@ -0,0 +1,7 @@
1
+ import Overwrites from './Overwrites.mjs';
2
+ import Viewport from './view/Viewport.mjs';
3
+
4
+ export const onStart = () => Neo.app({
5
+ mainView: Viewport,
6
+ name : 'Form'
7
+ });
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <meta charset="UTF-8">
6
+ <title>Form</title>
7
+ </head>
8
+ <body>
9
+ <script src="../../src/MicroLoader.mjs" type="module"></script>
10
+ </body>
11
+ </html>
@@ -0,0 +1,35 @@
1
+ import Model from '../../../src/data/Model.mjs';
2
+
3
+ /**
4
+ * @class Form.model.SideNav
5
+ * @extends Neo.data.Model
6
+ */
7
+ class SideNav extends Model {
8
+ static config = {
9
+ /**
10
+ * @member {String} className='Form.model.SideNav'
11
+ * @protected
12
+ */
13
+ className: 'Form.model.SideNav',
14
+ /**
15
+ * @member {Object[]} fields
16
+ */
17
+ fields: [{
18
+ name: 'cardIndex',
19
+ type: 'Integer'
20
+ }, {
21
+ name: 'id',
22
+ type: 'String'
23
+ }, {
24
+ name: 'isHeader',
25
+ type: 'Boolean'
26
+ }, {
27
+ name: 'name',
28
+ type: 'String'
29
+ }]
30
+ }
31
+ }
32
+
33
+ Neo.applyClassConfig(SideNav);
34
+
35
+ export default SideNav;
@@ -0,0 +1,6 @@
1
+ {
2
+ "appPath": "apps/form/app.mjs",
3
+ "basePath": "../../",
4
+ "environment": "development",
5
+ "mainPath": "./Main.mjs"
6
+ }
@@ -0,0 +1,24 @@
1
+ import SideNavModel from '../model/SideNav.mjs'
2
+ import Store from '../../../src/data/Store.mjs';
3
+
4
+ /**
5
+ * @class Form.store.SideNav
6
+ * @extends Neo.data.Store
7
+ */
8
+ class SideNav extends Store {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.store.SideNav'
12
+ * @protected
13
+ */
14
+ className: 'Form.store.SideNav',
15
+ /**
16
+ * @member {Neo.data.Model} model=SideNavModel
17
+ */
18
+ model: SideNavModel
19
+ }
20
+ }
21
+
22
+ Neo.applyClassConfig(SideNav);
23
+
24
+ export default SideNav;
@@ -0,0 +1,98 @@
1
+ import BaseFormContainer from '../../../src/form/Container.mjs';
2
+ import Container from '../../../src/container/Base.mjs';
3
+ import FormContainerController from './FormContainerController.mjs';
4
+ import Label from '../../../src/component/Label.mjs';
5
+ import Toolbar from '../../../src/toolbar/Base.mjs';
6
+
7
+ /**
8
+ * @class Form.view.FormContainer
9
+ * @extends Neo.form.Container
10
+ */
11
+ class FormContainer extends BaseFormContainer {
12
+ static config = {
13
+ /**
14
+ * @member {String} className='Form.view.FormContainer'
15
+ * @protected
16
+ */
17
+ className: 'Form.view.FormContainer',
18
+ /**
19
+ * @member {String[]} baseCls=['form-form-container','neo-container'],
20
+ * @protected
21
+ */
22
+ baseCls: ['form-form-container', 'neo-container'],
23
+ /**
24
+ * @member {Neo.controller.Component} controller=FormContainerController
25
+ */
26
+ controller: FormContainerController,
27
+ /**
28
+ * @member {Object[]} items
29
+ */
30
+ items: [{
31
+ module: Toolbar,
32
+ cls : ['form-header'],
33
+ flex : 'none',
34
+
35
+ items: [{
36
+ module: Label,
37
+ bind : {text: data => data.activeTitle},
38
+ cls : ['form-header-label'],
39
+ flex : 'none'
40
+ }, '->', {
41
+ handler: 'onValidatePageButtonClick',
42
+ text : 'Validate Page'
43
+ }]
44
+ }, {
45
+ module : Container,
46
+ reference: 'pages-container',
47
+
48
+ layout: {
49
+ ntype: 'card',
50
+ bind : {activeIndex: data => data.activeIndex}
51
+ },
52
+
53
+ items: [{
54
+ module: () => import('./pages/Page1.mjs')
55
+ }, {
56
+ module: () => import('./pages/Page2.mjs')
57
+ }, {
58
+ module: () => import('./pages/Page3.mjs')
59
+ }, {
60
+ module: () => import('./pages/Page4.mjs')
61
+ }, {
62
+ module: () => import('./pages/Page5.mjs')
63
+ }, {
64
+ module: () => import('./pages/Page6.mjs')
65
+ }, {
66
+ module: () => import('./pages/Page7.mjs')
67
+ }, {
68
+ module: () => import('./pages/Page8.mjs')
69
+ }, {
70
+ module: () => import('./pages/Page9.mjs')
71
+ }, {
72
+ module: () => import('./pages/Page10.mjs')
73
+ }]
74
+ }, {
75
+ module: Toolbar,
76
+ cls : ['form-footer'],
77
+ flex : 'none',
78
+
79
+ items: ['->', {
80
+ bind : {disabled: data => data.activeIndex === 0},
81
+ handler: 'onPrevPageButtonClick',
82
+ iconCls: 'fas fa-chevron-left',
83
+ text : 'Back'
84
+ }, {
85
+ bind : {disabled: data => data.activeIndex === data.maxIndex},
86
+ handler : 'onNextPageButtonClick',
87
+ iconCls : 'fas fa-chevron-right',
88
+ iconPosition: 'right',
89
+ style : {marginLeft: '1em'},
90
+ text : 'Next page'
91
+ }]
92
+ }]
93
+ }
94
+ }
95
+
96
+ Neo.applyClassConfig(FormContainer);
97
+
98
+ export default FormContainer;
@@ -0,0 +1,47 @@
1
+ import Component from '../../../src/controller/Component.mjs';
2
+
3
+ /**
4
+ * @class Form.view.FormContainerController
5
+ * @extends Neo.controller.Component
6
+ */
7
+ class FormContainerController extends Component {
8
+ static config = {
9
+ /**
10
+ * @member {String} className='Form.view.FormContainerController'
11
+ * @protected
12
+ */
13
+ className: 'Form.view.FormContainerController'
14
+ }
15
+
16
+ /**
17
+ * @param {Object} data
18
+ */
19
+ onNextPageButtonClick(data) {
20
+ this.getModel().data.activeIndex++;
21
+ }
22
+
23
+ /**
24
+ * @param {Object} data
25
+ */
26
+ onPrevPageButtonClick(data) {
27
+ this.getModel().data.activeIndex--;
28
+ }
29
+
30
+ /**
31
+ * @param {Object} data
32
+ */
33
+ onValidatePageButtonClick(data) {
34
+ let me = this,
35
+ activeIndex = me.getModel().data.activeIndex,
36
+ pagesContainer = me.getReference('pages-container'),
37
+ activeCard = pagesContainer.items[activeIndex];
38
+
39
+ console.log(`Current page: ${activeIndex + 1}`, activeCard.getValues());
40
+
41
+ activeCard.validate();
42
+ }
43
+ }
44
+
45
+ Neo.applyClassConfig(FormContainerController);
46
+
47
+ export default FormContainerController;
@@ -0,0 +1,34 @@
1
+ import FormContainer from '../../../src/form/Container.mjs';
2
+
3
+ /**
4
+ * @class Form.view.FormPageContainer
5
+ * @extends Neo.form.Container
6
+ */
7
+ class FormPageContainer extends FormContainer {
8
+ static config = {
9
+ /**
10
+ * @member {String} className='Form.view.FormPageContainer'
11
+ * @protected
12
+ */
13
+ className: 'Form.view.FormPageContainer',
14
+ /**
15
+ * @member {Object} itemDefaults
16
+ */
17
+ itemDefaults: {
18
+ style: {maxWidth: '300px'}
19
+ },
20
+ /**
21
+ * @member {Object} layout={ntype:'vbox'}
22
+ */
23
+ layout: {ntype: 'vbox'},
24
+ /**
25
+ * @member {Object} _vdom
26
+ */
27
+ vdom:
28
+ {cn: []} // using a div instead of a form tag
29
+ }
30
+ }
31
+
32
+ Neo.applyClassConfig(FormPageContainer);
33
+
34
+ export default FormPageContainer;
@@ -0,0 +1,54 @@
1
+ import List from '../../../src/list/Base.mjs';
2
+
3
+ /**
4
+ * @class Form.view.SideNavList
5
+ * @extends Neo.list.Base
6
+ */
7
+ class SideNavList extends List {
8
+ static config = {
9
+ /**
10
+ * @member {String} className='Form.view.SideNavList'
11
+ * @protected
12
+ */
13
+ className: 'Form.view.SideNavList',
14
+ /**
15
+ * @member {Boolean} useHeaders=true
16
+ */
17
+ useHeaders: true
18
+ }
19
+
20
+ /**
21
+ * Saves activeIndex & activeTitle into the closest view model
22
+ * @param {String[]} items
23
+ */
24
+ onSelect(items) {
25
+ let me = this,
26
+ record = me.store.get(me.getItemRecordId(items[0]));
27
+
28
+ me.getModel().setData({
29
+ activeIndex: record.cardIndex,
30
+ activeTitle: record.name
31
+ })
32
+ }
33
+
34
+ /**
35
+ * Saves the amount of non-header items into the closest view model
36
+ */
37
+ onStoreLoad() {
38
+ let maxIndex = -1;
39
+
40
+ this.store.items.forEach(record => {
41
+ if (!record.isHeader) {
42
+ maxIndex++;
43
+ }
44
+ });
45
+
46
+ this.getModel().data.maxIndex = maxIndex;
47
+
48
+ super.onStoreLoad()
49
+ }
50
+ }
51
+
52
+ Neo.applyClassConfig(SideNavList);
53
+
54
+ export default SideNavList;
@@ -0,0 +1,52 @@
1
+ import BaseViewport from '../../../src/container/Viewport.mjs';
2
+ import FormContainer from './FormContainer.mjs';
3
+ import SideNavList from './SideNavList.mjs';
4
+ import ViewportModel from './ViewportModel.mjs';
5
+
6
+ /**
7
+ * @class Form.view.Viewport
8
+ * @extends Neo.container.Viewport
9
+ */
10
+ class Viewport extends BaseViewport {
11
+ static config = {
12
+ /**
13
+ * @member {String} className='Form.view.Viewport'
14
+ * @protected
15
+ */
16
+ className: 'Form.view.Viewport',
17
+ /**
18
+ * @member {Object[]} items
19
+ */
20
+ items: [{
21
+ ntype: 'container',
22
+ width: '300',
23
+
24
+ items: [{
25
+ flex: 'none',
26
+ vdom: {tag: 'h1', innerHTML: 'My Form Header'}
27
+ }, {
28
+ module: SideNavList,
29
+
30
+ bind: {
31
+ headerlessActiveIndex: data => data.activeIndex,
32
+ store : 'stores.sideNav'
33
+ }
34
+ }]
35
+ }, {
36
+ module: FormContainer,
37
+ style : {margin: '20px'}
38
+ }],
39
+ /**
40
+ * @member {Object} layout={ntype:'hbox',align:'stretch'}
41
+ */
42
+ layout: {ntype: 'hbox', align: 'stretch'},
43
+ /**
44
+ * @member {Neo.model.Component} model=ViewportModel
45
+ */
46
+ model: ViewportModel
47
+ }
48
+ }
49
+
50
+ Neo.applyClassConfig(Viewport);
51
+
52
+ export default Viewport;
@@ -0,0 +1,50 @@
1
+ import Component from '../../../src/model/Component.mjs';
2
+ import SideNavStore from '../store/SideNav.mjs'
3
+
4
+ /**
5
+ * @class Form.view.ViewportModel
6
+ * @extends Neo.model.Component
7
+ */
8
+ class ViewportModel extends Component {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.ViewportModel'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.ViewportModel',
15
+ /**
16
+ * @member {Object} data
17
+ */
18
+ data: {
19
+ /**
20
+ * The currently selected list item inside the SideNavList
21
+ * @member {Number} data.activeIndex
22
+ */
23
+ activeIndex: 0,
24
+ /**
25
+ * The name of the currently selected list item record
26
+ * @member {String} data.activeTitle
27
+ */
28
+ activeTitle: '',
29
+ /**
30
+ * The amount of non-header SideNavList items
31
+ * @member {Number} data.maxIndex
32
+ */
33
+ maxIndex: 0
34
+ },
35
+ /**
36
+ * @member {Object} stores
37
+ */
38
+ stores: {
39
+ sideNav: {
40
+ module : SideNavStore,
41
+ autoLoad: true,
42
+ url : '../../resources/examples/data/formSideNav.json'
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ Neo.applyClassConfig(ViewportModel);
49
+
50
+ export default ViewportModel;
@@ -0,0 +1,34 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page1
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page1 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page1'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page1',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Firstname',
21
+ minLength: 3,
22
+ name : 'firstname',
23
+ required : true
24
+ }, {
25
+ module : TextField,
26
+ labelText: 'Lastname',
27
+ name : 'lastname'
28
+ }]
29
+ }
30
+ }
31
+
32
+ Neo.applyClassConfig(Page1);
33
+
34
+ export default Page1;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page10
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page10 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page10'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page10',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 10 Field 1',
21
+ name : 'page10field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 10 Field 2',
26
+ name : 'page10field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page10);
32
+
33
+ export default Page10;
@@ -0,0 +1,28 @@
1
+ import DateField from '../../../../src/form/field/Date.mjs';
2
+ import FormPageContainer from '../FormPageContainer.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page2
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page2 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page2'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page2',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : DateField,
20
+ labelText: 'Birthday',
21
+ name : 'birthday'
22
+ }]
23
+ }
24
+ }
25
+
26
+ Neo.applyClassConfig(Page2);
27
+
28
+ export default Page2;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page3
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page3 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page3'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page3',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 3 Field 1',
21
+ name : 'page3field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 3 Field 2',
26
+ name : 'page3field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page3);
32
+
33
+ export default Page3;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page4
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page4 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page4'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page4',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 4 Field 1',
21
+ name : 'page4field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 4 Field 2',
26
+ name : 'page4field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page4);
32
+
33
+ export default Page4;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page5
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page5 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page5'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page5',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 5 Field 1',
21
+ name : 'page5field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 5 Field 2',
26
+ name : 'page5field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page5);
32
+
33
+ export default Page5;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page6
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page6 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page6'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page6',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 6 Field 1',
21
+ name : 'page6field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 6 Field 2',
26
+ name : 'page6field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page6);
32
+
33
+ export default Page6;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page7
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page7 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page7'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page7',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 7 Field 1',
21
+ name : 'page7field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 7 Field 2',
26
+ name : 'page7field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page7);
32
+
33
+ export default Page7;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page8
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page8 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page8'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page8',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 8 Field 1',
21
+ name : 'page8field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 8 Field 2',
26
+ name : 'page8field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page8);
32
+
33
+ export default Page8;
@@ -0,0 +1,33 @@
1
+ import FormPageContainer from '../FormPageContainer.mjs';
2
+ import TextField from '../../../../src/form/field/Text.mjs';
3
+
4
+ /**
5
+ * @class Form.view.pages.Page9
6
+ * @extends Form.view.FormPageContainer
7
+ */
8
+ class Page9 extends FormPageContainer {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Form.view.pages.Page9'
12
+ * @protected
13
+ */
14
+ className: 'Form.view.pages.Page9',
15
+ /**
16
+ * @member {Object[]} items
17
+ */
18
+ items: [{
19
+ module : TextField,
20
+ labelText: 'Page 9 Field 1',
21
+ name : 'page9field1',
22
+ required : true
23
+ }, {
24
+ module : TextField,
25
+ labelText: 'Page 9 Field 2',
26
+ name : 'page9field2'
27
+ }]
28
+ }
29
+ }
30
+
31
+ Neo.applyClassConfig(Page9);
32
+
33
+ export default Page9;
@@ -128,27 +128,30 @@ if (programOpts.info) {
128
128
  childProcess = spawnSync(npmCmd, ['i'], cpOpts);
129
129
  childProcess.status && process.exit(childProcess.status);
130
130
  }
131
+
131
132
  if (themes === 'yes') {
132
133
  childProcess = spawnSync('node', [`${neoPath}/buildScripts/buildThemes.mjs`].concat(cpArgs), cpOpts);
133
134
  childProcess.status && process.exit(childProcess.status);
134
135
  }
136
+
135
137
  if (threads === 'yes') {
136
138
  childProcess = spawnSync('node', [`${webpackPath}/buildThreads.mjs`].concat(cpArgs), cpOpts);
137
139
  childProcess.status && process.exit(childProcess.status);
138
140
  }
141
+
139
142
  if (parsedocs === 'yes') {
140
143
  childProcess = spawnSync(npmCmd, ['run', 'generate-docs-json'], cpOpts);
141
144
  childProcess.status && process.exit(childProcess.status);
142
- };
145
+ }
143
146
 
144
- if (env === 'all' || env === 'dev') {
147
+ if (parsedocs === 'yes' && (env === 'all' || env === 'dev')) {
145
148
  childProcess = spawnSync('node', [`${neoPath}/buildScripts/copyFolder.mjs -s ${path.resolve(cwd, 'docs/output') } -t ${path.resolve(cwd, 'dist/development/docs/output')}`], cpOpts);
146
149
  childProcess.status && process.exit(childProcess.status);
147
150
  childProcess = spawnSync('node', [`${neoPath}/buildScripts/copyFolder.mjs -s ${path.resolve(cwd, 'docs/resources')} -t ${path.resolve(cwd, 'dist/development/docs/resources')}`], cpOpts);
148
151
  childProcess.status && process.exit(childProcess.status);
149
152
  }
150
153
 
151
- if (env === 'all' || env === 'prod') {
154
+ if (parsedocs === 'yes' && (env === 'all' || env === 'prod')) {
152
155
  childProcess = spawnSync('node', [`${neoPath}/buildScripts/copyFolder.mjs -s ${path.resolve(cwd, 'docs/output') } -t ${path.resolve(cwd, 'dist/production/docs/output')}`], cpOpts);
153
156
  childProcess.status && process.exit(childProcess.status);
154
157
  childProcess = spawnSync('node', [`${neoPath}/buildScripts/copyFolder.mjs -s ${path.resolve(cwd, 'docs/resources')} -t ${path.resolve(cwd, 'dist/production/docs/resources')}`], cpOpts);
@@ -584,13 +584,6 @@ if (programOpts.info) {
584
584
  ` className: '${className}'`
585
585
  );
586
586
 
587
- baseClass === 'container.Viewport' && addComma(classContent).push(
588
- " /**",
589
- " * @member {Boolean} autoMount=true",
590
- " */",
591
- " autoMount: true"
592
- );
593
-
594
587
  baseClass === 'table.Container' && addComma(classContent).push(
595
588
  " /**",
596
589
  " * @member {Object[]} columns",
@@ -2,6 +2,7 @@
2
2
  "apps": [
3
3
  "Covid",
4
4
  "Docs",
5
+ "Form",
5
6
  "Krausest",
6
7
  "RealWorld",
7
8
  "RealWorld2",
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='5.1.11'
23
+ * @member {String} version='5.1.13'
24
24
  */
25
- version: '5.1.11'
25
+ version: '5.1.13'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "5.1.11",
3
+ "version": "5.1.13",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -56,7 +56,7 @@
56
56
  "neo-jsdoc": "^1.0.1",
57
57
  "neo-jsdoc-x": "^1.0.5",
58
58
  "postcss": "^8.4.21",
59
- "sass": "^1.58.1",
59
+ "sass": "^1.58.3",
60
60
  "webpack": "^5.75.0",
61
61
  "webpack-cli": "^5.0.1",
62
62
  "webpack-dev-server": "4.11.1",
@@ -0,0 +1,19 @@
1
+ {
2
+ "success": true,
3
+
4
+ "data": [
5
+ {"id": 1, "cardIndex": null, "isHeader": true, "name": "1. Basic data"},
6
+ {"id": 2, "cardIndex": 0, "isHeader": false, "name": "Page 1"},
7
+ {"id": 3, "cardIndex": 1, "isHeader": false, "name": "Page 2"},
8
+ {"id": 4, "cardIndex": 2, "isHeader": false, "name": "Page 3"},
9
+ {"id": 5, "cardIndex": null, "isHeader": true, "name": "2. Personal data"},
10
+ {"id": 6, "cardIndex": 3, "isHeader": false, "name": "Page 4"},
11
+ {"id": 7, "cardIndex": 4, "isHeader": false, "name": "Page 5"},
12
+ {"id": 8, "cardIndex": 5, "isHeader": false, "name": "Page 6"},
13
+ {"id": 9, "cardIndex": 6, "isHeader": false, "name": "Page 7"},
14
+ {"id": 10, "cardIndex": null, "isHeader": true, "name": "3. More data"},
15
+ {"id": 11, "cardIndex": 7, "isHeader": false, "name": "Page 8"},
16
+ {"id": 12, "cardIndex": 8, "isHeader": false, "name": "Page 9"},
17
+ {"id": 13, "cardIndex": 9, "isHeader": false, "name": "Page 10"}
18
+ ]
19
+ }
@@ -0,0 +1,22 @@
1
+ .form-form-container.neo-container {
2
+ border : 1px solid #ddd;
3
+ border-radius: 5px;
4
+
5
+ .form-footer {
6
+ border-top: 1px solid #ddd;
7
+ min-height: 50px;
8
+ padding : .5em 1em;
9
+ }
10
+
11
+ .form-header {
12
+ align-items : center;
13
+ border-bottom: 1px solid #ddd;
14
+ display : flex;
15
+ min-height : 50px;
16
+ padding : .5em 1em;
17
+ }
18
+
19
+ .form-header-label {
20
+ font-size: 24px;
21
+ }
22
+ }
@@ -237,12 +237,12 @@ const DefaultConfig = {
237
237
  useVdomWorker: true,
238
238
  /**
239
239
  * buildScripts/injectPackageVersion.mjs will update this value
240
- * @default '5.1.11'
240
+ * @default '5.1.13'
241
241
  * @memberOf! module:Neo
242
242
  * @name config.version
243
243
  * @type String
244
244
  */
245
- version: '5.1.11'
245
+ version: '5.1.13'
246
246
  };
247
247
 
248
248
  Object.assign(DefaultConfig, {