neo.mjs 2.3.18 → 2.3.19

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/README.md CHANGED
@@ -35,6 +35,7 @@ No need to take care of a workers setup, and the cross channel communication on
35
35
  11. <a href="#story--vision">Story & Vision</a>
36
36
  12. <a href="#contributors">neo.mjs is in need of more contributors!</a>
37
37
  13. <a href="#sponsors">neo.mjs is in need of more sponsors!</a>
38
+ 14. <a href="#jobs">Jobs</a>
38
39
 
39
40
  </br></br>
40
41
  <h2 id="slack-channel">1. Slack Channel for questions & feedback</h2>
@@ -232,6 +233,14 @@ The benefit of doing so is getting results delivered faster.
232
233
 
233
234
  More infos: <a href="./BACKERS.md">Sponsors & Backers</a>
234
235
 
236
+ </br></br>
237
+ <h2 id="jobs">14. Jobs</h2>
238
+ Accenture is hiring multiple neo.mjs developers for the new Cloud Technology Studio in Kaiserslauern (Germany):</br>
239
+ <a href="https://www.accenture.com/de-de/careers/jobdetails?id=R00057924_de">Senior neo.mjs Frontend Developer /Architect (all genders)</a></br></br>
240
+
241
+ These full-time roles are based on German contracts, so they require living in (or relocating to) Germany.
242
+
243
+ </br></br>
235
244
  Logo contributed by <a href="https://www.linkedin.com/in/dinkheller/">Torsten Dinkheller</a>.
236
245
 
237
246
  </br></br>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "2.3.18",
3
+ "version": "2.3.19",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,8 +48,8 @@
48
48
  "neo-jsdoc": "^1.0.1",
49
49
  "neo-jsdoc-x": "^1.0.4",
50
50
  "postcss": "^8.4.4",
51
- "sass": "^1.44.0",
52
- "webpack": "^5.64.4",
51
+ "sass": "^1.45.0",
52
+ "webpack": "^5.65.0",
53
53
  "webpack-cli": "^4.9.1",
54
54
  "webpack-dev-server": "4.6.0",
55
55
  "webpack-hook-plugin": "^1.0.7",
@@ -17,10 +17,11 @@ project.configure({
17
17
  });
18
18
 
19
19
  project.plan(
20
+ 'tests/ClassConfigsAndFields.mjs',
20
21
  'tests/ClassSystem.mjs',
21
22
  'tests/CollectionBase.mjs',
22
23
  'tests/VdomHelper.mjs',
23
24
  'tests/VdomCalendar.mjs'
24
25
  );
25
26
 
26
- project.start();
27
+ project.start();
@@ -0,0 +1,69 @@
1
+ import Neo from '../../../src/Neo.mjs';
2
+ import * as core from '../../../src/core/_export.mjs';
3
+
4
+ class TestClass extends core.Base {
5
+ fieldA = 1;
6
+ fieldB = 2;
7
+
8
+ static getConfig() {return {
9
+ className: 'Neo.TestClass',
10
+ configA_: 3,
11
+ configB_: 4
12
+ }}
13
+
14
+ beforeSetA(value) {
15
+ return this.fieldA + value;
16
+ }
17
+
18
+ beforeSetB(value) {
19
+ return this.fieldB + value;
20
+ }
21
+ }
22
+
23
+ Neo.applyClassConfig(TestClass);
24
+
25
+ StartTest(t => {
26
+ t.it('Class based class configs and fields', t => {
27
+ let instance = Neo.create({
28
+ className: 'Neo.TestClass'
29
+ });
30
+
31
+ t.isStrict(instance.configA, 3, 'configA equals ' + 3);
32
+ t.isStrict(instance.configB, 4, 'configB equals ' + 4);
33
+ t.isStrict(instance.fieldA, 1, 'fieldA equals ' + 1);
34
+ t.isStrict(instance.fieldB, 2, 'fieldB equals ' + 2);
35
+ });
36
+
37
+ t.it('Instance based class configs and fields', t => {
38
+ let instance = Neo.create({
39
+ className: 'Neo.TestClass',
40
+ fieldA : 5,
41
+ configA : 6,
42
+ configB : 7,
43
+ fieldB : 8
44
+ });
45
+
46
+ t.isStrict(instance.configA, 11, 'configA equals ' + 11); // 5 + 6
47
+ t.isStrict(instance.configB, 15, 'configB equals ' + 15); // 8 + 7
48
+ t.isStrict(instance.fieldA, 5, 'fieldA equals ' + 5);
49
+ t.isStrict(instance.fieldB, 8, 'fieldB equals ' + 8);
50
+ });
51
+
52
+ t.it('Dynamically changed class configs and fields', t => {
53
+ let instance = Neo.create({
54
+ className: 'Neo.TestClass'
55
+ });
56
+
57
+ instance.set({
58
+ fieldA : 5,
59
+ configA: 6,
60
+ configB: 7,
61
+ fieldB : 8
62
+ });
63
+
64
+ t.isStrict(instance.configA, 11, 'configA equals ' + 11); // 5 + 6
65
+ t.isStrict(instance.configB, 15, 'configB equals ' + 15); // 8 + 7
66
+ t.isStrict(instance.fieldA, 5, 'fieldA equals ' + 5);
67
+ t.isStrict(instance.fieldB, 8, 'fieldB equals ' + 8);
68
+ });
69
+ });
@@ -67,4 +67,4 @@ StartTest(t => {
67
67
  b: valueB
68
68
  });
69
69
  });
70
- });
70
+ });