neo.mjs 7.3.0 → 7.4.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.
Files changed (38) hide show
  1. package/README.md +12 -6
  2. package/apps/ServiceWorker.mjs +2 -2
  3. package/apps/portal/index.html +1 -1
  4. package/apps/portal/resources/data/examples_devmode.json +41 -14
  5. package/apps/portal/resources/data/examples_dist_dev.json +41 -14
  6. package/apps/portal/resources/data/examples_dist_prod.json +41 -14
  7. package/apps/portal/view/blog/List.mjs +12 -14
  8. package/apps/portal/view/examples/List.mjs +152 -42
  9. package/apps/portal/view/examples/TabContainer.mjs +4 -3
  10. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  11. package/examples/ServiceWorker.mjs +2 -2
  12. package/examples/table/container/MainStore.mjs +0 -6
  13. package/package.json +4 -2
  14. package/resources/scss/src/apps/portal/examples/List.scss +15 -0
  15. package/src/DefaultConfig.mjs +2 -2
  16. package/src/Main.mjs +8 -0
  17. package/src/component/Base.mjs +4 -3
  18. package/src/component/DateSelector.mjs +4 -5
  19. package/src/dialog/Base.mjs +3 -1
  20. package/src/form/field/Time.mjs +3 -2
  21. package/src/list/Base.mjs +15 -2
  22. package/src/main/DomAccess.mjs +7 -5
  23. package/src/main/DomEvents.mjs +2 -1
  24. package/src/selection/grid/CellColumnModel.mjs +1 -1
  25. package/src/selection/grid/CellColumnRowModel.mjs +2 -2
  26. package/src/selection/grid/CellModel.mjs +16 -23
  27. package/src/selection/grid/CellRowModel.mjs +1 -1
  28. package/src/selection/grid/ColumnModel.mjs +14 -8
  29. package/src/selection/grid/RowModel.mjs +15 -10
  30. package/src/selection/table/CellColumnModel.mjs +1 -1
  31. package/src/selection/table/CellColumnRowModel.mjs +1 -1
  32. package/src/selection/table/CellModel.mjs +16 -25
  33. package/src/selection/table/CellRowModel.mjs +1 -1
  34. package/src/selection/table/ColumnModel.mjs +16 -10
  35. package/src/selection/table/RowModel.mjs +14 -9
  36. package/src/table/View.mjs +2 -2
  37. package/src/worker/App.mjs +11 -0
  38. package/src/worker/ServiceBase.mjs +14 -5
@@ -28,14 +28,20 @@ class ColumnModel extends Model {
28
28
  *
29
29
  */
30
30
  addDomListener() {
31
- let me = this,
32
- {view} = me;
31
+ let me = this;
33
32
 
34
- view.addDomListeners({
35
- click : me.onCellClick,
36
- delegate: '.neo-grid-cell',
37
- scope : me
38
- })
33
+ me.view.on('cellClick', me.onCellClick, me)
34
+ }
35
+
36
+ /**
37
+ * @param args
38
+ */
39
+ destroy(...args) {
40
+ let me = this;
41
+
42
+ me.view.un('cellClick', me.onCellClick, me);
43
+
44
+ super.destroy(...args);
39
45
  }
40
46
 
41
47
  /**
@@ -76,7 +82,7 @@ class ColumnModel extends Model {
76
82
  */
77
83
  onCellClick(data) {
78
84
  let me = this,
79
- id = ColumnModel.getCellId(data.path),
85
+ id = data.data.currentTarget,
80
86
  columnNodeIds, index, tbodyNode;
81
87
 
82
88
  if (id) {
@@ -18,7 +18,7 @@ class RowModel extends Model {
18
18
  */
19
19
  ntype: 'selection-grid-rowmodel',
20
20
  /**
21
- * @member {String} cls='selection-rowmodel'
21
+ * @member {String} cls='neo-selection-rowmodel'
22
22
  * @protected
23
23
  */
24
24
  cls: 'neo-selection-rowmodel'
@@ -28,14 +28,20 @@ class RowModel extends Model {
28
28
  *
29
29
  */
30
30
  addDomListener() {
31
- let me = this,
32
- {view} = me;
31
+ let me = this;
33
32
 
34
- view.addDomListeners({
35
- click : me.onRowClick,
36
- delegate: '.neo-grid-row',
37
- scope : me
38
- })
33
+ me.view.on('rowClick', me.onRowClick, me)
34
+ }
35
+
36
+ /**
37
+ * @param args
38
+ */
39
+ destroy(...args) {
40
+ let me = this;
41
+
42
+ me.view.un('rowClick', me.onRowClick, me);
43
+
44
+ super.destroy(...args);
39
45
  }
40
46
 
41
47
  /**
@@ -120,8 +126,7 @@ class RowModel extends Model {
120
126
  */
121
127
  onRowClick(data) {
122
128
  let me = this,
123
- node = RowModel.getRowNode(data.path),
124
- id = node?.id,
129
+ id = data.data.currentTarget,
125
130
  {view} = me,
126
131
  isSelected, record;
127
132
 
@@ -64,7 +64,7 @@ class CellColumnModel extends CellModel {
64
64
  */
65
65
  onCellClick(data) {
66
66
  let me = this,
67
- id = ColumnModel.getCellId(data.path),
67
+ id = data.data.currentTarget,
68
68
  columnNodeIds, index, tbodyNode;
69
69
 
70
70
  if (id) {
@@ -64,7 +64,7 @@ class CellColumnRowModel extends CellRowModel {
64
64
  */
65
65
  onCellClick(data) {
66
66
  let me = this,
67
- id = ColumnModel.getCellId(data.path),
67
+ id = data.data.currentTarget,
68
68
  columnNodeIds, index, tbodyNode;
69
69
 
70
70
  if (id) {
@@ -17,7 +17,7 @@ class CellModel extends Model {
17
17
  */
18
18
  ntype: 'selection-table-cellmodel',
19
19
  /**
20
- * @member {String} cls='selection-cellmodel'
20
+ * @member {String} cls='neo-selection-cellmodel'
21
21
  * @protected
22
22
  */
23
23
  cls: 'neo-selection-cellmodel'
@@ -27,36 +27,27 @@ class CellModel extends Model {
27
27
  *
28
28
  */
29
29
  addDomListener() {
30
- let me = this,
31
- {view} = me;
32
-
33
- view.addDomListeners({
34
- click : me.onCellClick,
35
- delegate: '.neo-table-cell',
36
- scope : me
37
- })
30
+ let me = this;
31
+
32
+ me.view.on('cellClick', me.onCellClick, me)
33
+ }
34
+
35
+ /**
36
+ * @param args
37
+ */
38
+ destroy(...args) {
39
+ let me = this;
40
+
41
+ me.view.un('cellClick', me.onCellClick, me);
42
+
43
+ super.destroy(...args);
38
44
  }
39
45
 
40
46
  /**
41
47
  * @param {Object} data
42
48
  */
43
49
  onCellClick(data) {
44
- let me = this,
45
- id = null,
46
- {path} = data,
47
- i = 0,
48
- len = path.length;
49
-
50
- for (; i < len; i++) {
51
- if (path[i].tagName === 'td') {
52
- id = path[i].id;
53
- break
54
- }
55
- }
56
-
57
- if (id) {
58
- me.toggleSelection(id)
59
- }
50
+ this.toggleSelection(data.data.currentTarget)
60
51
  }
61
52
 
62
53
  /**
@@ -81,7 +81,7 @@ class CellRowModel extends CellModel {
81
81
  */
82
82
  onCellClick(data) {
83
83
  let me = this,
84
- node = RowModel.getRowNode(data.path), // we could add a separate export for this method
84
+ node = RowModel.getRowNode(data.data.path), // we could add a separate export for this method
85
85
  id = node?.id;
86
86
 
87
87
  if (id) {
@@ -18,7 +18,7 @@ class ColumnModel extends Model {
18
18
  */
19
19
  ntype: 'selection-table-columnmodel',
20
20
  /**
21
- * @member {String} cls='selection-columnmodel'
21
+ * @member {String} cls='neo-selection-columnmodel'
22
22
  * @protected
23
23
  */
24
24
  cls: 'neo-selection-columnmodel'
@@ -28,14 +28,20 @@ class ColumnModel extends Model {
28
28
  *
29
29
  */
30
30
  addDomListener() {
31
- let me = this,
32
- {view} = me;
33
-
34
- view.addDomListeners({
35
- click : me.onCellClick,
36
- delegate: '.neo-table-cell',
37
- scope : me
38
- })
31
+ let me = this;
32
+
33
+ me.view.on('cellClick', me.onCellClick, me)
34
+ }
35
+
36
+ /**
37
+ * @param args
38
+ */
39
+ destroy(...args) {
40
+ let me = this;
41
+
42
+ me.view.un('cellClick', me.onCellClick, me);
43
+
44
+ super.destroy(...args);
39
45
  }
40
46
 
41
47
  /**
@@ -76,7 +82,7 @@ class ColumnModel extends Model {
76
82
  */
77
83
  onCellClick(data) {
78
84
  let me = this,
79
- id = ColumnModel.getCellId(data.path),
85
+ id = data.data.currentTarget,
80
86
  columnNodeIds, index, tbodyNode;
81
87
 
82
88
  if (id) {
@@ -28,14 +28,20 @@ class RowModel extends Model {
28
28
  *
29
29
  */
30
30
  addDomListener() {
31
- let me = this,
32
- {view} = me;
31
+ let me = this;
32
+
33
+ me.view.on('rowClick', me.onRowClick, me)
34
+ }
35
+
36
+ /**
37
+ * @param args
38
+ */
39
+ destroy(...args) {
40
+ let me = this;
41
+
42
+ me.view.un('rowClick', me.onRowClick, me);
33
43
 
34
- view.addDomListeners({
35
- click : me.onRowClick,
36
- delegate: '.neo-table-row',
37
- scope : me
38
- })
44
+ super.destroy(...args);
39
45
  }
40
46
 
41
47
  /**
@@ -120,8 +126,7 @@ class RowModel extends Model {
120
126
  */
121
127
  onRowClick(data) {
122
128
  let me = this,
123
- node = RowModel.getRowNode(data.path),
124
- id = node?.id,
129
+ id = data.data.currentTarget,
125
130
  {view} = me,
126
131
  isSelected, record;
127
132
 
@@ -273,7 +273,7 @@ class View extends Component {
273
273
  */
274
274
  fireCellEvent(data, eventName) {
275
275
  let me = this,
276
- {id} = data.target,
276
+ id = data.currentTarget,
277
277
  dataField = me.getCellDataField(id),
278
278
  record = me.getRecord(id);
279
279
 
@@ -286,7 +286,7 @@ class View extends Component {
286
286
  */
287
287
  fireRowEvent(data, eventName) {
288
288
  let me = this,
289
- {id} = data.target,
289
+ id = data.currentTarget,
290
290
  record = me.getRecord(id);
291
291
 
292
292
  me.parent.fire(eventName, {id: me, data, record})
@@ -376,6 +376,17 @@ class App extends Base {
376
376
  })
377
377
  })
378
378
  }
379
+ /**
380
+ * Triggered in case a connected ServiceWorker receives a new version.
381
+ * Especially inside dist envs, a reload of the connecting window is required,
382
+ * since the SW will clear its caches and the app can receive conflicting bundle versions.
383
+ * @param {Object} data
384
+ * @param {String} data.newVersion
385
+ * @param {String} data.oldVersion
386
+ */
387
+ onNewVersion(data) {
388
+ Neo.Main.reloadWindow({});
389
+ }
379
390
 
380
391
  /**
381
392
  * Fire event on all apps
@@ -250,16 +250,25 @@ class ServiceBase extends Base {
250
250
  * @param {ExtendableMessageEvent} event
251
251
  */
252
252
  async onRegisterNeoConfig(msg, event) {
253
- let me = this;
253
+ let me = this,
254
+ {version} = me;
254
255
 
255
256
  Neo.config = Neo.config || {};
256
257
  Object.assign(Neo.config, msg.data);
257
258
 
258
- if (me.version !== Neo.config.version) {
259
- await me.clearCaches()
260
- }
259
+ if (version !== Neo.config.version) {
260
+ await me.clearCaches();
261
261
 
262
- me.onConnect(event.source)
262
+ me.version = Neo.config.version;
263
+
264
+ me.sendMessage('app', {
265
+ action : 'newVersion',
266
+ newVersion: Neo.config.version,
267
+ oldVersion: version
268
+ })
269
+ } else {
270
+ me.onConnect(event.source)
271
+ }
263
272
  }
264
273
 
265
274
  /**