neo.mjs 8.29.0 → 8.31.0
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/BACKERS.md +15 -15
- package/CONTRIBUTING.md +9 -9
- package/apps/ServiceWorker.mjs +2 -2
- package/apps/portal/index.html +1 -1
- package/apps/portal/view/home/FooterContainer.mjs +1 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/grid/animatedRowSorting/MainModel.mjs +40 -0
- package/examples/grid/animatedRowSorting/MainStore.mjs +36 -0
- package/examples/grid/animatedRowSorting/Viewport.mjs +87 -0
- package/examples/grid/animatedRowSorting/app.mjs +6 -0
- package/examples/grid/animatedRowSorting/index.html +11 -0
- package/examples/grid/animatedRowSorting/neo-config.json +8 -0
- package/examples/grid/bigData/GridContainer.mjs +3 -2
- package/examples/grid/bigData/MainModel.mjs +3 -2
- package/examples/grid/bigData/MainStore.mjs +3 -2
- package/package.json +3 -3
- package/resources/scss/src/component/Progress.scss +1 -1
- package/resources/scss/src/grid/column/Progress.scss +34 -0
- package/resources/scss/theme-dark/grid/column/Progress.scss +6 -0
- package/resources/scss/theme-light/grid/column/Progress.scss +6 -0
- package/resources/scss/theme-neo-light/grid/column/Progress.scss +6 -0
- package/src/DefaultConfig.mjs +2 -2
- package/src/collection/Base.mjs +2 -1
- package/src/component/Base.mjs +1 -1
- package/src/component/Progress.mjs +26 -5
- package/src/data/Store.mjs +12 -9
- package/src/grid/Container.mjs +45 -68
- package/src/grid/ScrollManager.mjs +1 -1
- package/src/grid/View.mjs +81 -1
- package/src/grid/column/Component.mjs +50 -8
- package/src/grid/column/Progress.mjs +42 -0
- package/src/grid/column/_export.mjs +2 -1
- package/src/grid/header/Button.mjs +1 -2
- package/src/grid/plugin/AnimateRows.mjs +234 -0
- package/src/list/plugin/Animate.mjs +16 -7
- package/src/vdom/Helper.mjs +1 -1
- package/src/worker/Manager.mjs +6 -8
package/BACKERS.md
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
# Sponsors & Backers
|
2
2
|
|
3
|
-
Truth to be told, the
|
3
|
+
Truth to be told, the Neo.mjs project is in need of sponsors & backers.
|
4
4
|
|
5
5
|
As an <a href="./LICENSE">MIT-licensed</a> open source project,
|
6
|
-
you can use
|
6
|
+
you can use Neo.mjs for free (as long as you stick to the license & copyright notice).
|
7
7
|
|
8
8
|
Prior to the public release, the project was already at <a href=".github/NEOMJS_HISTORY.md">3720 commits</a>.
|
9
9
|
|
10
|
-
To get
|
10
|
+
To get Neo.mjs to this point, I spent 3 years of my full and unpaid working time.
|
11
11
|
This does not only include many 100h+ weeks and several sleepless nights,
|
12
12
|
but I also burned most of my personal savings to get here.
|
13
13
|
|
14
|
-
I did this, since I truly and deeply believe that
|
14
|
+
I did this, since I truly and deeply believe that Neo.mjs has the potential to start a new era of UI development.
|
15
15
|
|
16
16
|
The current version is just a fraction of a much bigger picture I have in mind.
|
17
17
|
Trust me, it is beautiful :)
|
18
18
|
|
19
|
-
I can definitely say that I did use several other UI frameworks in the past and that
|
19
|
+
I can definitely say that I did use several other UI frameworks in the past and that Neo.mjs boosted my productivity
|
20
20
|
to an entire new level.
|
21
21
|
|
22
22
|
This is something I would love to share with you!
|
@@ -29,35 +29,35 @@ By default, the main Readme will only include sponsors starting at the Gold tier
|
|
29
29
|
(*) Only valid as long as the sponsorship stays active.
|
30
30
|
|
31
31
|
# What will I sponsor?
|
32
|
-
Obviously the continuing of the development for the
|
32
|
+
Obviously the continuing of the development for the Neo.mjs framework.
|
33
33
|
To get the idea of what this means in detail, please take a look at the: <a href=".github/VISION.md">Project Vision</a>.
|
34
34
|
|
35
|
-
# Why should I sponsor
|
35
|
+
# Why should I sponsor Neo.mjs?
|
36
36
|
I am in need to make up for the invested time, which means that going forward,
|
37
37
|
I have to spend a lot of my time on billable projects.
|
38
|
-
Of course I will do my best to continue pushing
|
38
|
+
Of course I will do my best to continue pushing Neo.mjs in my free time.
|
39
39
|
|
40
|
-
With active sponsors I could invest more time into
|
40
|
+
With active sponsors I could invest more time into Neo.mjs,
|
41
41
|
which means that you will get new features, guides and bug-fixes a lot faster.
|
42
42
|
|
43
43
|
# For developers:
|
44
44
|
You can select a Backer tier ($10 / month), which would equal a cup of coffee for me every month (after taxes).
|
45
|
-
This will not cover my living costs (unless
|
45
|
+
This will not cover my living costs (unless Neo.mjs goes viral), but it does have an impact on
|
46
46
|
my motivation for sure.
|
47
47
|
|
48
48
|
# For companies:
|
49
49
|
Starting at the bronze tier (special offer), you will be able to place your company logo on the main repository landing page (Readme.md).
|
50
|
-
This will have a high impact on the
|
51
|
-
to find
|
50
|
+
This will have a high impact on the Neo.mjs community and make it easier for you
|
51
|
+
to find Neo.mjs developers in the future.
|
52
52
|
|
53
53
|
Obviously, sponsoring open source projects in general will increase your companies reputation.
|
54
54
|
|
55
|
-
As soon as the
|
55
|
+
As soon as the Neo.mjs community grows, it will also increase your company visibility in a good way.
|
56
56
|
|
57
|
-
Please make sure to create a feature request ticket inside the
|
57
|
+
Please make sure to create a feature request ticket inside the Neo.mjs <a href="../../issues">Issues Tracker</a>
|
58
58
|
after signing a sponsor program to provide your company logo!
|
59
59
|
|
60
|
-
### Thanks a lot for your support of the
|
60
|
+
### Thanks a lot for your support of the Neo.mjs project!<br/>
|
61
61
|
<a href="https://github.com/sponsors/tobiu">Sponsor Tobias Uhlig</a>
|
62
62
|
|
63
63
|
<br><br>
|
package/CONTRIBUTING.md
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
#
|
2
|
-
We are very excited that you are interested in contributing to
|
1
|
+
# Neo.mjs Contributing Guide
|
2
|
+
We are very excited that you are interested in contributing to Neo.mjs.<br>
|
3
3
|
No worries, you don't need to be a guru, ninja or rockstar to support the project.
|
4
4
|
|
5
5
|
## What you can do to help:
|
6
6
|
|
7
|
-
### 1.
|
7
|
+
### 1. Neo.mjs just got released, so the most important thing right now is to get more eyes on the project.
|
8
8
|
1. Add a star to this repository. Ok, this one was easy. Thank you!
|
9
|
-
2. Tell your friends about
|
9
|
+
2. Tell your friends about Neo.mjs.
|
10
10
|
3. Write blog posts or post on social media (Facebook, LinkedIn, Twitter, etc.)
|
11
11
|
4. Please stick to our <a href=".github/CODE_OF_CONDUCT.md">Code of Conduct</a>
|
12
|
-
5. Interested to see a
|
12
|
+
5. Interested to see a Neo.mjs session at a developer conference? Definitely possible. Just reach out!
|
13
13
|
|
14
14
|
### 2. Use the issues tracker
|
15
15
|
1. In case you got an idea for a new feature
|
@@ -17,9 +17,9 @@ No worries, you don't need to be a guru, ninja or rockstar to support the projec
|
|
17
17
|
1. Ideally, you create a new breaking test inside the tests folder.
|
18
18
|
This saves a lot of time and ensures the bug will stay fixed once the ticket is resolved.
|
19
19
|
3. Please like or comment on current tickets.
|
20
|
-
This is a great help to figure out which tickets are the most important ones for the
|
20
|
+
This is a great help to figure out which tickets are the most important ones for the Neo.mjs community.
|
21
21
|
|
22
|
-
### 3. Contribute to the
|
22
|
+
### 3. Contribute to the Neo.mjs code base
|
23
23
|
1. Please ***always*** create a new issue inside our <a href="../../issues">Issues Tracker</a> first and wait for approval.
|
24
24
|
This ensures that your idea fits the scope of the project and makes it less likely to get a rejected PR.
|
25
25
|
We will do our best to reply to new tickets within 7d max. In case we don't, feel free to bump the ticket.
|
@@ -27,12 +27,12 @@ No worries, you don't need to be a guru, ninja or rockstar to support the projec
|
|
27
27
|
Otherwise multiple contributors could work on the same item in parallel.
|
28
28
|
3. Please make sure that pull requests are always related to an issue inside our <a href="../../issues">Issues Tracker</a>.
|
29
29
|
4. Please create PRs for the dev branch and not for master.
|
30
|
-
5. Please do not copy code from other frameworks / libraries. So far, the entire
|
30
|
+
5. Please do not copy code from other frameworks / libraries. So far, the entire Neo.mjs code base is written from scratch.
|
31
31
|
1. It is simply impossible to verify if contributed code is self-written.
|
32
32
|
2. Adding new npm packages => dependencies / devDependencies is fine, in case there are no licensing conflicts.
|
33
33
|
6. Refer to the <a href="./.github/CODEBASE_OVERVIEW.md">codebase overview</a> to understand how our repository is structured.
|
34
34
|
|
35
|
-
### 4. In case you created a nice app or component using
|
35
|
+
### 4. In case you created a nice app or component using Neo.mjs, please let us know about it.
|
36
36
|
1. We are always interested to feature client projects in blog posts or on social media.
|
37
37
|
|
38
38
|
<br><br>
|
package/apps/ServiceWorker.mjs
CHANGED
package/apps/portal/index.html
CHANGED
@@ -0,0 +1,40 @@
|
|
1
|
+
import Model from '../../../src/data/Model.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class Neo.examples.grid.animatedRowSorting.MainModel
|
5
|
+
* @extends Neo.data.Model
|
6
|
+
*/
|
7
|
+
class MainModel extends Model {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='Neo.examples.grid.animatedRowSorting.MainModel'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'Neo.examples.grid.animatedRowSorting.MainModel',
|
14
|
+
/**
|
15
|
+
* @member {Object[]} fields
|
16
|
+
*/
|
17
|
+
fields: [{
|
18
|
+
name: 'country',
|
19
|
+
type: 'String'
|
20
|
+
}, {
|
21
|
+
name: 'firstname',
|
22
|
+
type: 'String'
|
23
|
+
}, {
|
24
|
+
name: 'id',
|
25
|
+
type: 'Int'
|
26
|
+
}, {
|
27
|
+
name: 'lastname',
|
28
|
+
type: 'String'
|
29
|
+
}, {
|
30
|
+
name: 'progress',
|
31
|
+
type: 'Int'
|
32
|
+
}],
|
33
|
+
/**
|
34
|
+
* @member {Boolean} trackModifiedFields=true
|
35
|
+
*/
|
36
|
+
trackModifiedFields: true
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
export default Neo.setupClass(MainModel);
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import Model from './MainModel.mjs';
|
2
|
+
import Store from '../../../src/data/Store.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Neo.examples.grid.animatedRowSorting.MainStore
|
6
|
+
* @extends Neo.data.Store
|
7
|
+
*/
|
8
|
+
class MainStore extends Store {
|
9
|
+
static config = {
|
10
|
+
className: 'Neo.examples.grid.animatedRowSorting.MainStore',
|
11
|
+
model : Model,
|
12
|
+
|
13
|
+
data: [
|
14
|
+
{country : 'DE', firstname: 'Max', id: 1, lastname : 'Johnson', progress : 50},
|
15
|
+
{country : 'UK', firstname: 'Paul', id: 2, lastname : 'Walker', progress : 10},
|
16
|
+
{country : 'US', firstname: 'Sam', id: 3, lastname : 'Anderson', progress : 90},
|
17
|
+
{country : 'GR', firstname: 'William', id: 4, lastname : 'Wilson', progress : 30},
|
18
|
+
{country : 'AT', firstname: 'Carol', id: 5, lastname : 'Jackson', progress : 70},
|
19
|
+
{country : 'NL', firstname: 'Amanda', id: 6, lastname : 'King', progress : 100},
|
20
|
+
{country : 'FR', firstname: 'Sarah', id: 7, lastname : 'Scott', progress : 35}
|
21
|
+
],
|
22
|
+
|
23
|
+
filters: [{
|
24
|
+
property: 'firstname',
|
25
|
+
operator: 'like',
|
26
|
+
value : null
|
27
|
+
}],
|
28
|
+
|
29
|
+
sorters: [{
|
30
|
+
property : 'id',
|
31
|
+
direction: 'ASC'
|
32
|
+
}]
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
export default Neo.setupClass(MainStore);
|
@@ -0,0 +1,87 @@
|
|
1
|
+
import BaseViewport from '../../../src/container/Viewport.mjs';
|
2
|
+
import GridContainer from '../../../src/grid/Container.mjs';
|
3
|
+
import MainStore from './MainStore.mjs';
|
4
|
+
import NumberField from '../../../src/form/field/Number.mjs';
|
5
|
+
import Toolbar from '../../../src/toolbar/Base.mjs';
|
6
|
+
|
7
|
+
/**
|
8
|
+
* @class Neo.examples.grid.animatedRowSorting.Viewport
|
9
|
+
* @extends Neo.container.Viewport
|
10
|
+
*/
|
11
|
+
class Viewport extends BaseViewport {
|
12
|
+
static config = {
|
13
|
+
/**
|
14
|
+
* @member {String} className='Neo.examples.grid.animatedRowSorting.Viewport'
|
15
|
+
* @protected
|
16
|
+
*/
|
17
|
+
className: 'Neo.examples.grid.animatedRowSorting.Viewport',
|
18
|
+
/**
|
19
|
+
* @member {Object} style={padding:'1em'}
|
20
|
+
*/
|
21
|
+
style: {padding: '1em'},
|
22
|
+
/**
|
23
|
+
* @member {Object[]} items
|
24
|
+
*/
|
25
|
+
items: [{
|
26
|
+
module: Toolbar,
|
27
|
+
flex : 'none',
|
28
|
+
style : {marginBottom: '1em', maxWidth: 'fit-content'},
|
29
|
+
|
30
|
+
items : [{
|
31
|
+
ntype : 'textfield',
|
32
|
+
labelPosition: 'inline',
|
33
|
+
labelText : 'Firstname',
|
34
|
+
listeners : {change: 'up.onFirstnameFieldChange'},
|
35
|
+
width : 120
|
36
|
+
},{
|
37
|
+
module : NumberField,
|
38
|
+
clearable : false,
|
39
|
+
labelPosition: 'inline',
|
40
|
+
labelText : 'Transition Duration',
|
41
|
+
listeners : {change: 'up.onTransitionDurationFieldChange'},
|
42
|
+
maxValue : 1000,
|
43
|
+
minValue : 200,
|
44
|
+
stepSize : 100,
|
45
|
+
style : {marginLeft: '1em'},
|
46
|
+
value : 500,
|
47
|
+
width : 180
|
48
|
+
}]
|
49
|
+
}, {
|
50
|
+
module : GridContainer,
|
51
|
+
reference: 'grid',
|
52
|
+
store : MainStore,
|
53
|
+
|
54
|
+
columnDefaults: {
|
55
|
+
width: 200
|
56
|
+
},
|
57
|
+
|
58
|
+
viewConfig: {
|
59
|
+
animatedRowSorting: true
|
60
|
+
},
|
61
|
+
|
62
|
+
columns: [
|
63
|
+
{dataField: 'id', text: 'Id', width: 100},
|
64
|
+
{dataField: 'firstname', text: 'Firstname'},
|
65
|
+
{dataField: 'lastname', text: 'Lastname'},
|
66
|
+
{dataField: 'progress', text: 'Progress', type: 'progress'},
|
67
|
+
{dataField: 'country', text: 'Country'}
|
68
|
+
]
|
69
|
+
}]
|
70
|
+
}
|
71
|
+
|
72
|
+
/**
|
73
|
+
* @param {Object} data
|
74
|
+
*/
|
75
|
+
onFirstnameFieldChange(data) {
|
76
|
+
this.getReference('grid').store.getFilter('firstname').value = data.value
|
77
|
+
}
|
78
|
+
|
79
|
+
/**
|
80
|
+
* @param {Object} data
|
81
|
+
*/
|
82
|
+
onTransitionDurationFieldChange(data) {
|
83
|
+
this.getReference('grid').view.getPlugin('grid-animate-rows').transitionDuration = data.value
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
export default Neo.setupClass(Viewport);
|
@@ -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>Neo Grid: Animated Row Sorting</title>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<script src="../../../src/MicroLoader.mjs" type="module"></script>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
{
|
2
|
+
"appPath" : "examples/grid/animatedRowSorting/app.mjs",
|
3
|
+
"basePath" : "../../../",
|
4
|
+
"environment" : "development",
|
5
|
+
"mainPath" : "./Main.mjs",
|
6
|
+
"mainThreadAddons": ["DragDrop", "Navigator", "ResizeObserver", "Stylesheet"],
|
7
|
+
"themes" : ["neo-theme-dark", "neo-theme-light"]
|
8
|
+
}
|
@@ -46,7 +46,7 @@ class GridContainer extends BaseGridContainer {
|
|
46
46
|
* @protected
|
47
47
|
*/
|
48
48
|
afterSetAmountColumns(value, oldValue) {
|
49
|
-
let i =
|
49
|
+
let i = 7,
|
50
50
|
columns = [
|
51
51
|
{type: 'index', dataField: 'id', text: '#', width: 60},
|
52
52
|
{cellAlign: 'left', dataField: 'firstname', defaultSortDirection: 'ASC', text: 'Firstname', width: 150},
|
@@ -57,7 +57,8 @@ class GridContainer extends BaseGridContainer {
|
|
57
57
|
text : record.firstname + ' ++',
|
58
58
|
width : 130
|
59
59
|
})},
|
60
|
-
{type: 'animatedChange', dataField: 'counter', text: 'Counter'}
|
60
|
+
{type: 'animatedChange', dataField: 'counter', text: 'Counter'},
|
61
|
+
{type: 'progress', dataField: 'progress', text: 'Progress', width: 150}
|
61
62
|
];
|
62
63
|
|
63
64
|
for (; i <= value; i++) {
|
@@ -24,13 +24,14 @@ class MainModel extends Model {
|
|
24
24
|
* @protected
|
25
25
|
*/
|
26
26
|
afterSetAmountColumns(value, oldValue) {
|
27
|
-
let i =
|
27
|
+
let i = 7,
|
28
28
|
fields = [
|
29
29
|
{name: 'id', type: 'Int'},
|
30
30
|
{name: 'countAction'},
|
31
31
|
{name: 'counter', type: 'Int'},
|
32
32
|
{name: 'firstname', type: 'String'},
|
33
|
-
{name: 'lastname', type: 'String'}
|
33
|
+
{name: 'lastname', type: 'String'},
|
34
|
+
{name: 'progress', type: 'Int'}
|
34
35
|
];
|
35
36
|
|
36
37
|
for (; i <= value; i++) {
|
@@ -113,12 +113,13 @@ class MainStore extends Store {
|
|
113
113
|
column, record;
|
114
114
|
|
115
115
|
for (; row < amountRows; row++) {
|
116
|
-
column =
|
116
|
+
column = 7;
|
117
117
|
record = {
|
118
118
|
id : row + 1,
|
119
119
|
counter : Math.round(Math.random() * 100),
|
120
120
|
firstname: me.firstnames[Math.floor(Math.random() * amountFirstnames)],
|
121
|
-
lastname : me.lastnames[ Math.floor(Math.random() * amountLastnames)]
|
121
|
+
lastname : me.lastnames[ Math.floor(Math.random() * amountLastnames)],
|
122
|
+
progress : Math.round(Math.random() * 100)
|
122
123
|
};
|
123
124
|
|
124
125
|
for (; column <= amountColumns; column++) {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neo.mjs",
|
3
|
-
"version": "8.
|
3
|
+
"version": "8.31.0",
|
4
4
|
"description": "The webworkers driven UI framework",
|
5
5
|
"type": "module",
|
6
6
|
"repository": {
|
@@ -48,7 +48,7 @@
|
|
48
48
|
"homepage": "https://neomjs.com/",
|
49
49
|
"devDependencies": {
|
50
50
|
"@fortawesome/fontawesome-free": "^6.7.2",
|
51
|
-
"autoprefixer": "^10.4.
|
51
|
+
"autoprefixer": "^10.4.21",
|
52
52
|
"chalk": "^5.4.1",
|
53
53
|
"clean-webpack-plugin": "^4.0.0",
|
54
54
|
"commander": "^13.1.0",
|
@@ -56,7 +56,7 @@
|
|
56
56
|
"envinfo": "^7.14.0",
|
57
57
|
"fs-extra": "^11.3.0",
|
58
58
|
"highlightjs-line-numbers.js": "^2.9.0",
|
59
|
-
"inquirer": "^12.4.
|
59
|
+
"inquirer": "^12.4.3",
|
60
60
|
"marked": "^15.0.7",
|
61
61
|
"monaco-editor": "0.50.0",
|
62
62
|
"neo-jsdoc": "1.0.1",
|
@@ -0,0 +1,34 @@
|
|
1
|
+
.neo-grid-cell {
|
2
|
+
.neo-progress-wrapper {
|
3
|
+
progress[value] {
|
4
|
+
appearance: none;
|
5
|
+
border : none;
|
6
|
+
display : flex;
|
7
|
+
height : var(--grid-cell-progress-height);
|
8
|
+
|
9
|
+
@-moz-document url-prefix() {
|
10
|
+
background-color: var(--grid-cell-progress-track-color);
|
11
|
+
border-radius : var(--grid-cell-progress-border-radius);
|
12
|
+
box-shadow : 0 2px 5px rgba(0, 0, 0, 0.25) inset;
|
13
|
+
}
|
14
|
+
|
15
|
+
// for webkit the progress-bar is the track
|
16
|
+
&::-webkit-progress-bar {
|
17
|
+
background-color: var(--grid-cell-progress-track-color);
|
18
|
+
border-radius : var(--grid-cell-progress-border-radius);
|
19
|
+
box-shadow : 0 2px 5px rgba(0, 0, 0, 0.25) inset;
|
20
|
+
}
|
21
|
+
|
22
|
+
// for mozilla the progress-bar is the active range
|
23
|
+
&::-moz-progress-bar {
|
24
|
+
background-color: var(--grid-cell-progress-active-color);
|
25
|
+
border-radius : var(--grid-cell-progress-border-radius);
|
26
|
+
}
|
27
|
+
|
28
|
+
&::-webkit-progress-value {
|
29
|
+
background-color: var(--grid-cell-progress-active-color);
|
30
|
+
border-radius : var(--grid-cell-progress-border-radius);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
package/src/DefaultConfig.mjs
CHANGED
@@ -263,12 +263,12 @@ const DefaultConfig = {
|
|
263
263
|
useVdomWorker: true,
|
264
264
|
/**
|
265
265
|
* buildScripts/injectPackageVersion.mjs will update this value
|
266
|
-
* @default '8.
|
266
|
+
* @default '8.31.0'
|
267
267
|
* @memberOf! module:Neo
|
268
268
|
* @name config.version
|
269
269
|
* @type String
|
270
270
|
*/
|
271
|
-
version: '8.
|
271
|
+
version: '8.31.0'
|
272
272
|
};
|
273
273
|
|
274
274
|
Object.assign(DefaultConfig, {
|
package/src/collection/Base.mjs
CHANGED
@@ -360,7 +360,8 @@ class Collection extends Base {
|
|
360
360
|
* @protected
|
361
361
|
*/
|
362
362
|
cacheUpdate(opts) {
|
363
|
-
|
363
|
+
// disabled for now
|
364
|
+
// console.log('cacheUpdate', opts, this[toAddArray]);
|
364
365
|
return;
|
365
366
|
|
366
367
|
let me = this,
|
package/src/component/Base.mjs
CHANGED
@@ -451,7 +451,7 @@ class Component extends Base {
|
|
451
451
|
get parent() {
|
452
452
|
let me = this;
|
453
453
|
|
454
|
-
return me.parentComponent || me.parentId === 'document.body' ? null : Neo.getComponent(me.parentId)
|
454
|
+
return me.parentComponent || (me.parentId === 'document.body' ? null : Neo.getComponent(me.parentId))
|
455
455
|
}
|
456
456
|
|
457
457
|
/**
|
@@ -37,12 +37,25 @@ class Progress extends Base {
|
|
37
37
|
* @member {Object} _vdom
|
38
38
|
*/
|
39
39
|
_vdom:
|
40
|
-
{tag: 'div', cls: ['neo-progress'], cn: [
|
40
|
+
{tag: 'div', cls: ['neo-progress-wrapper'], cn: [
|
41
41
|
{tag: 'label'},
|
42
42
|
{tag: 'progress'}
|
43
43
|
]}
|
44
44
|
}
|
45
45
|
|
46
|
+
/**
|
47
|
+
* @member {Object} label
|
48
|
+
*/
|
49
|
+
get label() {
|
50
|
+
return this.vdom.cn[0]
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* @member {Object} progress
|
54
|
+
*/
|
55
|
+
get progress() {
|
56
|
+
return this.vdom.cn[1]
|
57
|
+
}
|
58
|
+
|
46
59
|
/**
|
47
60
|
* Triggered after the id config got changed
|
48
61
|
* @param {String} value
|
@@ -52,7 +65,7 @@ class Progress extends Base {
|
|
52
65
|
afterSetId(value, oldValue) {
|
53
66
|
super.afterSetId(value, oldValue);
|
54
67
|
|
55
|
-
this.
|
68
|
+
this.label.for = value;
|
56
69
|
this.update()
|
57
70
|
}
|
58
71
|
|
@@ -63,7 +76,15 @@ class Progress extends Base {
|
|
63
76
|
* @protected
|
64
77
|
*/
|
65
78
|
afterSetLabelText(value, oldValue) {
|
66
|
-
|
79
|
+
let {label} = this;
|
80
|
+
|
81
|
+
if (!value) {
|
82
|
+
label.removeDom = true
|
83
|
+
} else {
|
84
|
+
delete label.removeDom
|
85
|
+
}
|
86
|
+
|
87
|
+
label.html = value;
|
67
88
|
this.update()
|
68
89
|
}
|
69
90
|
|
@@ -74,7 +95,7 @@ class Progress extends Base {
|
|
74
95
|
* @protected
|
75
96
|
*/
|
76
97
|
afterSetMax(value, oldValue) {
|
77
|
-
this.
|
98
|
+
this.progress.max = value;
|
78
99
|
this.update()
|
79
100
|
}
|
80
101
|
|
@@ -85,7 +106,7 @@ class Progress extends Base {
|
|
85
106
|
* @protected
|
86
107
|
*/
|
87
108
|
afterSetValue(value, oldValue) {
|
88
|
-
this.
|
109
|
+
this.progress.value = value;
|
89
110
|
this.update()
|
90
111
|
}
|
91
112
|
|