neo.mjs 6.5.2 → 6.5.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/FormContainerController.mjs +4 -6
- package/examples/ServiceWorker.mjs +2 -2
- package/package.json +4 -4
- package/src/DefaultConfig.mjs +2 -2
- package/src/form/field/Base.mjs +35 -5
- package/src/form/field/CheckBox.mjs +3 -1
- package/src/form/field/Text.mjs +7 -4
- package/src/util/Function.mjs +1 -1
package/apps/ServiceWorker.mjs
CHANGED
@@ -19,12 +19,10 @@ class FormContainerController extends Component {
|
|
19
19
|
onComponentConstructed() {
|
20
20
|
super.onComponentConstructed();
|
21
21
|
|
22
|
-
this.component.on(
|
23
|
-
console.log('
|
24
|
-
|
25
|
-
|
26
|
-
this.component.on('fieldChange', data => {
|
27
|
-
console.log('fieldChange', data);
|
22
|
+
this.component.on({
|
23
|
+
fieldChange : data => console.log('fieldChange' , data),
|
24
|
+
fieldFocusLeave: data => console.log('fieldFocusLeave', data),
|
25
|
+
fieldUserChange: data => console.log('fieldUserChange', data)
|
28
26
|
})
|
29
27
|
}
|
30
28
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neo.mjs",
|
3
|
-
"version": "6.5.
|
3
|
+
"version": "6.5.3",
|
4
4
|
"description": "The webworkers driven UI framework",
|
5
5
|
"type": "module",
|
6
6
|
"repository": {
|
@@ -53,11 +53,11 @@
|
|
53
53
|
"envinfo": "^7.10.0",
|
54
54
|
"fs-extra": "^11.1.1",
|
55
55
|
"highlightjs-line-numbers.js": "^2.8.0",
|
56
|
-
"inquirer": "^9.2.
|
56
|
+
"inquirer": "^9.2.11",
|
57
57
|
"neo-jsdoc": "1.0.1",
|
58
58
|
"neo-jsdoc-x": "1.0.5",
|
59
59
|
"postcss": "^8.4.29",
|
60
|
-
"sass": "^1.
|
60
|
+
"sass": "^1.67.0",
|
61
61
|
"showdown": "^2.1.0",
|
62
62
|
"webpack": "^5.88.2",
|
63
63
|
"webpack-cli": "^5.1.4",
|
@@ -67,7 +67,7 @@
|
|
67
67
|
},
|
68
68
|
"devDependencies": {
|
69
69
|
"siesta-lite": "5.5.2",
|
70
|
-
"url": "^0.11.
|
70
|
+
"url": "^0.11.2"
|
71
71
|
},
|
72
72
|
"funding": {
|
73
73
|
"type": "GitHub Sponsors",
|
package/src/DefaultConfig.mjs
CHANGED
@@ -236,12 +236,12 @@ const DefaultConfig = {
|
|
236
236
|
useVdomWorker: true,
|
237
237
|
/**
|
238
238
|
* buildScripts/injectPackageVersion.mjs will update this value
|
239
|
-
* @default '6.5.
|
239
|
+
* @default '6.5.3'
|
240
240
|
* @memberOf! module:Neo
|
241
241
|
* @name config.version
|
242
242
|
* @type String
|
243
243
|
*/
|
244
|
-
version: '6.5.
|
244
|
+
version: '6.5.3'
|
245
245
|
};
|
246
246
|
|
247
247
|
Object.assign(DefaultConfig, {
|
package/src/form/field/Base.mjs
CHANGED
@@ -7,6 +7,16 @@ import ComponentManager from '../../manager/Component.mjs';
|
|
7
7
|
* @extends Neo.component.Base
|
8
8
|
*/
|
9
9
|
class Base extends Component {
|
10
|
+
/**
|
11
|
+
* @member {Object} delayable
|
12
|
+
* @protected
|
13
|
+
* @static
|
14
|
+
*/
|
15
|
+
static delayable = {
|
16
|
+
fireChangeEvent : {type: 'debounce', timer: 300},
|
17
|
+
fireUserChangeEvent: {type: 'debounce', timer: 300}
|
18
|
+
}
|
19
|
+
|
10
20
|
static config = {
|
11
21
|
/**
|
12
22
|
* @member {String} className='Neo.form.field.Base'
|
@@ -127,29 +137,49 @@ class Base extends Component {
|
|
127
137
|
|
128
138
|
/**
|
129
139
|
* Override this method as needed
|
130
|
-
* @param {*}
|
131
|
-
* @param {*}
|
140
|
+
* @param {*} value
|
141
|
+
* @param {*} oldValue
|
142
|
+
* @param {String} eventName
|
132
143
|
*/
|
133
|
-
|
144
|
+
doFireChangeEvent(value, oldValue, eventName) {
|
134
145
|
let me = this,
|
135
146
|
FormContainer = Neo.form?.Container,
|
147
|
+
formEvent = 'field' + Neo.capitalize(eventName),
|
136
148
|
opts = {component: me, oldValue, value};
|
137
149
|
|
138
150
|
if (Neo.isFunction(me.getGroupValue)) {
|
139
151
|
opts.groupValue = me.getGroupValue()
|
140
152
|
}
|
141
153
|
|
142
|
-
me.fire(
|
154
|
+
me.fire(eventName, opts);
|
143
155
|
|
144
156
|
if (!me.suspendEvents) {
|
145
157
|
ComponentManager.getParents(me).forEach(parent => {
|
146
158
|
if (FormContainer && parent instanceof FormContainer) {
|
147
|
-
parent.fire(
|
159
|
+
parent.fire(formEvent, opts)
|
148
160
|
}
|
149
161
|
})
|
150
162
|
}
|
151
163
|
}
|
152
164
|
|
165
|
+
/**
|
166
|
+
* Override this method as needed
|
167
|
+
* @param {*} value
|
168
|
+
* @param {*} oldValue
|
169
|
+
*/
|
170
|
+
fireChangeEvent(value, oldValue) {
|
171
|
+
this.doFireChangeEvent(value, oldValue, 'change')
|
172
|
+
}
|
173
|
+
|
174
|
+
/**
|
175
|
+
* Override this method as needed
|
176
|
+
* @param {*} value
|
177
|
+
* @param {*} oldValue
|
178
|
+
*/
|
179
|
+
fireUserChangeEvent(value, oldValue) {
|
180
|
+
this.doFireChangeEvent(value, oldValue, 'userChange')
|
181
|
+
}
|
182
|
+
|
153
183
|
/**
|
154
184
|
* Forms in neo can be nested. This method will return the closest parent which is a form.Container or null.
|
155
185
|
* @returns {Neo.form.Container|null}
|
@@ -525,7 +525,9 @@ class CheckBox extends Base {
|
|
525
525
|
// keep the vdom & vnode in sync for future updates
|
526
526
|
me.vnode.childNodes[0].childNodes[me.hideLabel ? 0 : 1].attributes.checked = `${checked}`;
|
527
527
|
|
528
|
-
me.checked = checked
|
528
|
+
me.checked = checked;
|
529
|
+
|
530
|
+
me.fireUserChangeEvent(me.getValue(), me.getOldValue())
|
529
531
|
}
|
530
532
|
|
531
533
|
/**
|
package/src/form/field/Text.mjs
CHANGED
@@ -1242,16 +1242,19 @@ class Text extends Base {
|
|
1242
1242
|
* @protected
|
1243
1243
|
*/
|
1244
1244
|
onInputValueChange(data) {
|
1245
|
-
let me
|
1246
|
-
|
1247
|
-
|
1245
|
+
let me = this,
|
1246
|
+
oldValue = me.value,
|
1247
|
+
value = data.value,
|
1248
|
+
vnode = VNodeUtil.findChildVnode(me.vnode, {nodeName: 'input'});
|
1248
1249
|
|
1249
1250
|
if (vnode) {
|
1250
1251
|
// required for validation -> revert a wrong user input
|
1251
1252
|
vnode.vnode.attributes.value = value;
|
1252
1253
|
}
|
1253
1254
|
|
1254
|
-
me.value = me.inputValueAdjustor(value)
|
1255
|
+
me.value = me.inputValueAdjustor(value);
|
1256
|
+
|
1257
|
+
me.fireUserChangeEvent(value, oldValue)
|
1255
1258
|
}
|
1256
1259
|
|
1257
1260
|
/**
|
package/src/util/Function.mjs
CHANGED
@@ -47,7 +47,7 @@ export function createSequence(target, methodName, fn, scope) {
|
|
47
47
|
/**
|
48
48
|
* @param {Function} func
|
49
49
|
* @param {Neo.core.Base} scope
|
50
|
-
* @param {Number} timeout
|
50
|
+
* @param {Number} timeout=300
|
51
51
|
* @returns {Function}
|
52
52
|
*/
|
53
53
|
export function debounce(func, scope, timeout=300) {
|