neo.mjs 7.5.0 → 7.7.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 (36) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/portal/index.html +1 -1
  3. package/apps/portal/resources/data/examples_devmode.json +20 -21
  4. package/apps/portal/resources/data/examples_dist_dev.json +19 -20
  5. package/apps/portal/resources/data/examples_dist_prod.json +19 -20
  6. package/apps/portal/view/examples/TabContainerController.mjs +27 -1
  7. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  8. package/apps/shareddialog/view/MainContainerController.mjs +31 -22
  9. package/examples/ServiceWorker.mjs +2 -2
  10. package/package.json +2 -2
  11. package/resources/scss/src/apps/colors/TableContainer.scss +11 -9
  12. package/resources/scss/src/apps/portal/blog/List.scss +17 -3
  13. package/resources/scss/src/apps/portal/examples/List.scss +17 -3
  14. package/resources/scss/src/apps/portal/services/Component.scss +7 -8
  15. package/resources/scss/theme-dark/apps/docs/classdetails/MembersList.scss +3 -1
  16. package/resources/scss/theme-dark/button/Base.scss +3 -1
  17. package/resources/scss/theme-dark/list/Base.scss +3 -1
  18. package/resources/scss/theme-dark/table/header/Button.scss +3 -1
  19. package/resources/scss/theme-dark/tree/List.scss +3 -1
  20. package/resources/scss/theme-light/apps/covid/HeaderContainer.scss +6 -4
  21. package/resources/scss/theme-light/apps/docs/classdetails/MembersList.scss +3 -1
  22. package/resources/scss/theme-light/button/Base.scss +3 -1
  23. package/resources/scss/theme-light/grid/View.scss +8 -6
  24. package/resources/scss/theme-light/list/Base.scss +6 -4
  25. package/resources/scss/theme-light/table/View.scss +8 -6
  26. package/resources/scss/theme-light/table/header/Button.scss +3 -1
  27. package/resources/scss/theme-neo-light/apps/covid/HeaderContainer.scss +6 -4
  28. package/resources/scss/theme-neo-light/apps/docs/classdetails/MembersList.scss +3 -1
  29. package/resources/scss/theme-neo-light/design-tokens/Core.scss +11 -9
  30. package/resources/scss/theme-neo-light/grid/View.scss +8 -6
  31. package/resources/scss/theme-neo-light/table/View.scss +8 -6
  32. package/resources/scss/theme-neo-light/table/header/Button.scss +3 -1
  33. package/src/DefaultConfig.mjs +2 -2
  34. package/src/main/addon/WindowPosition.mjs +4 -4
  35. package/src/plugin/Resizable.mjs +8 -5
  36. package/src/table/View.mjs +2 -2
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='7.5.0'
23
+ * @member {String} version='7.7.0'
24
24
  */
25
- version: '7.5.0'
25
+ version: '7.7.0'
26
26
  }
27
27
 
28
28
  /**
@@ -16,7 +16,7 @@
16
16
  "@type": "Organization",
17
17
  "name": "Neo.mjs"
18
18
  },
19
- "datePublished": "2024-09-16",
19
+ "datePublished": "2024-09-20",
20
20
  "publisher": {
21
21
  "@type": "Organization",
22
22
  "name": "Neo.mjs"
@@ -37,93 +37,92 @@
37
37
  "sharedWorkers": true,
38
38
  "url" : "https://neomjs.github.io/pages2/workspace/neo-shared-offscreen-canvas-demo/apps/mainapp/index.html"
39
39
  }, {
40
- "id" : 16,
40
+ "id" : 16,
41
+ "image" : "devmode/multi_window_dd.png",
42
+ "name" : "Multi-Window Drag&Drop",
43
+ "sharedWorkers": true,
44
+ "sourceUrl" : "apps/shareddialog",
45
+ "url" : "apps/shareddialog/index.html"
46
+ }, {
47
+ "id" : 15,
41
48
  "image" : "devmode/tabContainer.png",
42
49
  "name" : "tab.Container",
43
50
  "sourceUrl": "examples/tab/container",
44
51
  "url" : "examples/tab/container/index.html"
45
52
  }, {
46
- "id" : 15,
53
+ "id" : 14,
47
54
  "image" : "devmode/model-component-example.png",
48
55
  "name" : "View Models Example",
49
56
  "sourceUrl": "examples/model/advanced",
50
57
  "url" : "examples/model/advanced/index.html"
51
58
  }, {
52
- "id" : 14,
59
+ "id" : 13,
53
60
  "image" : "devmode/dragdrop.png",
54
61
  "name" : "Dialog drag&drop",
55
62
  "sourceUrl": "examples/dialog",
56
63
  "url" : "examples/dialog/"
57
64
  }, {
58
- "id" : 13,
65
+ "id" : 12,
59
66
  "image" : "dist_prod/colorsApp.png",
60
67
  "name" : "Colors Dashboard",
61
68
  "sharedWorkers": true,
62
69
  "sourceUrl" : "apps/colors",
63
70
  "url" : "apps/colors/index.html"
64
71
  }, {
65
- "id" : 12,
72
+ "id" : 11,
66
73
  "image" : "devmode/covidDashboard.png",
67
74
  "name" : "Covid Dashboard",
68
75
  "sourceUrl": "apps/covid",
69
76
  "url" : "apps/covid/index.html"
70
77
  }, {
71
- "id" : 11,
78
+ "id" : 10,
72
79
  "image" : "devmode/coronaHelix.png",
73
80
  "name" : "COVID-19 Helix",
74
81
  "sourceUrl": "examples/component/coronaHelix",
75
82
  "url" : "examples/component/coronaHelix/index.html"
76
83
  }, {
77
- "id" : 10,
84
+ "id" : 9,
78
85
  "image" : "devmode/gallery.png",
79
86
  "name" : "component.Gallery",
80
87
  "sourceUrl": "examples/component/gallery",
81
88
  "url" : "examples/component/gallery/index.html"
82
89
  }, {
83
- "id" : 9,
90
+ "id" : 8,
84
91
  "image" : "devmode/tableFiltering.png",
85
92
  "name" : "Table Filtering",
86
93
  "sourceUrl": "examples/tableFiltering",
87
94
  "url" : "examples/tableFiltering/"
88
95
  }, {
89
- "id" : 8,
96
+ "id" : 7,
90
97
  "image" : "devmode/dateSelector.png",
91
98
  "name" : "component.DateSelector",
92
99
  "sourceUrl": "examples/component/dateSelector",
93
100
  "url" : "examples/component/dateSelector/index.html"
94
101
  }, {
95
- "id" : 7,
102
+ "id" : 6,
96
103
  "image" : "devmode/dateField.png",
97
104
  "name" : "form.field.Date",
98
105
  "sourceUrl": "examples/form/field/date",
99
106
  "url" : "examples/form/field/date/index.html"
100
107
  }, {
101
- "id" : 6,
108
+ "id" : 5,
102
109
  "image" : "devmode/selectField.png",
103
110
  "name" : "form.field.ComboBox",
104
111
  "sourceUrl": "examples/form/field/combobox",
105
112
  "url" : "examples/form/field/combobox/index.html"
106
113
  }, {
107
- "id" : 5,
114
+ "id" : 4,
108
115
  "image" : "dist_prod/portalApp.png",
109
116
  "name" : "Portal App",
110
117
  "sharedWorkers": true,
111
118
  "sourceUrl" : "apps/portal",
112
119
  "url" : "apps/portal/index.html"
113
120
  }, {
114
- "id" : 4,
121
+ "id" : 3,
115
122
  "image" : "devmode/siesta.png",
116
123
  "name" : "Siesta Unit Tests",
117
124
  "sourceUrl": "test/siesta",
118
125
  "url" : "test/siesta/index.html"
119
- }, {
120
- "hidden" : true,
121
- "id" : 3,
122
- "image" : "devmode/multi_window_dd.png",
123
- "name" : "Multi Window Drag&Drop",
124
- "sharedWorkers": true,
125
- "sourceUrl" : "apps/shareddialog",
126
- "url" : "apps/shareddialog/index.html"
127
126
  }, {
128
127
  "hidden" : true,
129
128
  "id" : 2,
@@ -37,87 +37,86 @@
37
37
  "sourceUrl" : "https://github.com/neomjs/shared-offscreen",
38
38
  "url" : "https://neomjs.github.io/pages2/workspace/neo-shared-offscreen-canvas-demo/dist/development/apps/mainapp/index.html"
39
39
  }, {
40
- "id" : 15,
40
+ "id" : 15,
41
+ "image" : "devmode/multi_window_dd.png",
42
+ "name" : "Multi-Window Drag&Drop",
43
+ "sharedWorkers": true,
44
+ "sourceUrl" : "apps/shareddialog",
45
+ "url" : "dist/development/apps/shareddialog/index.html"
46
+ }, {
47
+ "id" : 14,
41
48
  "image" : "devmode/tabContainer.png",
42
49
  "name" : "tab.Container",
43
50
  "sourceUrl": "examples/tab/container",
44
51
  "url" : "dist/development/examples/tab/container/index.html"
45
52
  }, {
46
- "id" : 14,
53
+ "id" : 13,
47
54
  "image" : "devmode/model-component-example.png",
48
55
  "name" : "View Models Example",
49
56
  "sourceUrl": "examples/model/advanced",
50
57
  "url" : "dist/development/examples/model/advanced/index.html"
51
58
  }, {
52
- "id" : 13,
59
+ "id" : 12,
53
60
  "image" : "devmode/dragdrop.png",
54
61
  "name" : "Dialog drag&drop",
55
62
  "sourceUrl": "examples/dialog",
56
63
  "url" : "dist/development/examples/dialog/"
57
64
  }, {
58
- "id" : 12,
65
+ "id" : 11,
59
66
  "image" : "dist_prod/colorsApp.png",
60
67
  "name" : "Colors Dashboard",
61
68
  "sharedWorkers": true,
62
69
  "sourceUrl" : "apps/colors",
63
70
  "url" : "dist/development/apps/colors/index.html"
64
71
  }, {
65
- "id" : 11,
72
+ "id" : 10,
66
73
  "image" : "devmode/covidDashboard.png",
67
74
  "name" : "Covid Dashboard",
68
75
  "sourceUrl": "apps/covid",
69
76
  "url" : "dist/development/apps/covid/index.html#mainview=table"
70
77
  }, {
71
- "id" : 10,
78
+ "id" : 9,
72
79
  "image" : "devmode/coronaHelix.png",
73
80
  "name" : "COVID-19 Helix",
74
81
  "sourceUrl": "examples/component/coronaHelix",
75
82
  "url" : "dist/development/examples/component/coronaHelix/index.html"
76
83
  }, {
77
- "id" : 9,
84
+ "id" : 8,
78
85
  "image" : "devmode/gallery.png",
79
86
  "name" : "component.Gallery",
80
87
  "sourceUrl": "examples/component/gallery",
81
88
  "url" : "dist/development/examples/component/gallery/index.html"
82
89
  }, {
83
- "id" : 8,
90
+ "id" : 7,
84
91
  "image" : "devmode/tableFiltering.png",
85
92
  "name" : "Table Filtering",
86
93
  "sourceUrl": "examples/tableFiltering",
87
94
  "url" : "dist/development/examples/tableFiltering/"
88
95
  }, {
89
- "id" : 7,
96
+ "id" : 6,
90
97
  "image" : "devmode/dateSelector.png",
91
98
  "name" : "component.DateSelector",
92
99
  "sourceUrl": "examples/component/dateSelector",
93
100
  "url" : "dist/development/examples/component/dateSelector/index.html"
94
101
  }, {
95
- "id" : 6,
102
+ "id" : 5,
96
103
  "image" : "devmode/dateField.png",
97
104
  "name" : "form.field.Date",
98
105
  "sourceUrl": "examples/form/field/date",
99
106
  "url" : "dist/development/examples/form/field/date/index.html"
100
107
  }, {
101
- "id" : 5,
108
+ "id" : 4,
102
109
  "image" : "devmode/selectField.png",
103
110
  "name" : "form.field.ComboBox",
104
111
  "sourceUrl": "examples/form/field/combobox",
105
112
  "url" : "dist/development/examples/form/field/combobox/index.html"
106
113
  }, {
107
- "id" : 4,
114
+ "id" : 3,
108
115
  "image" : "dist_prod/portalApp.png",
109
116
  "name" : "Portal App",
110
117
  "sharedWorkers": true,
111
118
  "sourceUrl" : "apps/portal",
112
119
  "url" : "dist/development/apps/portal/index.html"
113
- }, {
114
- "hidden" : true,
115
- "id" : 3,
116
- "image" : "devmode/multi_window_dd.png",
117
- "name" : "Multi Window Drag&Drop",
118
- "sharedWorkers": true,
119
- "sourceUrl" : "apps/shareddialog",
120
- "url" : "dist/development/apps/shareddialog/index.html"
121
120
  }, {
122
121
  "hidden" : true,
123
122
  "id" : 2,
@@ -37,87 +37,86 @@
37
37
  "sourceUrl" : "https://github.com/neomjs/shared-offscreen",
38
38
  "url" : "https://neomjs.github.io/pages2/workspace/neo-shared-offscreen-canvas-demo/dist/production/apps/mainapp/index.html"
39
39
  }, {
40
- "id" : 15,
40
+ "id" : 15,
41
+ "image" : "devmode/multi_window_dd.png",
42
+ "name" : "Multi-Window Drag&Drop",
43
+ "sharedWorkers": true,
44
+ "sourceUrl" : "apps/shareddialog",
45
+ "url" : "dist/production/apps/shareddialog/index.html"
46
+ }, {
47
+ "id" : 14,
41
48
  "image" : "devmode/tabContainer.png",
42
49
  "name" : "tab.Container",
43
50
  "sourceUrl": "examples/tab/container",
44
51
  "url" : "dist/production/examples/tab/container/index.html"
45
52
  }, {
46
- "id" : 14,
53
+ "id" : 13,
47
54
  "image" : "devmode/model-component-example.png",
48
55
  "name" : "View Models Example",
49
56
  "sourceUrl": "examples/model/advanced",
50
57
  "url" : "dist/production/examples/model/advanced/index.html"
51
58
  }, {
52
- "id" : 13,
59
+ "id" : 12,
53
60
  "image" : "devmode/dragdrop.png",
54
61
  "name" : "Dialog drag&drop",
55
62
  "sourceUrl": "examples/dialog",
56
63
  "url" : "dist/production/examples/dialog/"
57
64
  }, {
58
- "id" : 12,
65
+ "id" : 11,
59
66
  "image" : "dist_prod/colorsApp.png",
60
67
  "name" : "Colors Dashboard",
61
68
  "sharedWorkers": true,
62
69
  "sourceUrl" : "apps/colors",
63
70
  "url" : "dist/production/apps/colors/index.html"
64
71
  }, {
65
- "id" : 11,
72
+ "id" : 10,
66
73
  "image" : "devmode/covidDashboard.png",
67
74
  "name" : "Covid Dashboard",
68
75
  "sourceUrl": "apps/covid",
69
76
  "url" : "dist/production/apps/covid/index.html#mainview=table"
70
77
  }, {
71
- "id" : 10,
78
+ "id" : 9,
72
79
  "image" : "devmode/coronaHelix.png",
73
80
  "name" : "COVID-19 Helix",
74
81
  "sourceUrl": "examples/component/coronaHelix",
75
82
  "url" : "dist/production/examples/component/coronaHelix/index.html"
76
83
  }, {
77
- "id" : 9,
84
+ "id" : 8,
78
85
  "image" : "devmode/gallery.png",
79
86
  "name" : "component.Gallery",
80
87
  "sourceUrl": "examples/component/gallery",
81
88
  "url" : "dist/production/examples/component/gallery/index.html"
82
89
  }, {
83
- "id" : 8,
90
+ "id" : 7,
84
91
  "image" : "devmode/tableFiltering.png",
85
92
  "name" : "Table Filtering",
86
93
  "sourceUrl": "examples/tableFiltering",
87
94
  "url" : "dist/production/examples/tableFiltering/"
88
95
  }, {
89
- "id" : 7,
96
+ "id" : 6,
90
97
  "image" : "devmode/dateSelector.png",
91
98
  "name" : "component.DateSelector",
92
99
  "sourceUrl": "examples/component/dateSelector",
93
100
  "url" : "dist/production/examples/component/dateSelector/index.html"
94
101
  }, {
95
- "id" : 6,
102
+ "id" : 5,
96
103
  "image" : "devmode/dateField.png",
97
104
  "name" : "form.field.Date",
98
105
  "sourceUrl": "examples/form/field/date",
99
106
  "url" : "dist/production/examples/form/field/date/index.html"
100
107
  }, {
101
- "id" : 5,
108
+ "id" : 4,
102
109
  "image" : "devmode/selectField.png",
103
110
  "name" : "form.field.ComboBox",
104
111
  "sourceUrl": "examples/form/field/combobox",
105
112
  "url" : "dist/production/examples/form/field/combobox/index.html"
106
113
  }, {
107
- "id" : 4,
114
+ "id" : 3,
108
115
  "image" : "dist_prod/portalApp.png",
109
116
  "name" : "Portal App",
110
117
  "sharedWorkers": true,
111
118
  "sourceUrl" : "apps/portal",
112
119
  "url" : "dist/production/apps/portal/index.html"
113
- }, {
114
- "hidden" : true,
115
- "id" : 3,
116
- "image" : "devmode/multi_window_dd.png",
117
- "name" : "Multi Window Drag&Drop",
118
- "sharedWorkers": true,
119
- "sourceUrl" : "apps/shareddialog",
120
- "url" : "dist/production/apps/shareddialog/index.html"
121
120
  }, {
122
121
  "hidden" : true,
123
122
  "id" : 2,
@@ -1,4 +1,5 @@
1
1
  import Component from '../../../../src/controller/Component.mjs';
2
+ import NeoArray from '../../../../src/util/Array.mjs';
2
3
 
3
4
  /**
4
5
  * @class Portal.view.examples.TabContainerController
@@ -20,6 +21,21 @@ class TabContainerController extends Component {
20
21
  }
21
22
  }
22
23
 
24
+ /**
25
+ * We need to store the current positions, since drag&drop resorting of tabs is enabled
26
+ * @member {String[]} tabItems
27
+ */
28
+ tabItems = ['devmode', 'dist_dev', 'dist_prod']
29
+
30
+ /**
31
+ *
32
+ */
33
+ onComponentConstructed() {
34
+ let me = this;
35
+
36
+ me.component.on('moveTo', me.onMoveTab, me)
37
+ }
38
+
23
39
  /**
24
40
  * @param {Object} params
25
41
  * @param {Object} value
@@ -28,13 +44,23 @@ class TabContainerController extends Component {
28
44
  onExamplesRoute(params, value, oldValue) {
29
45
  let me = this,
30
46
  itemId = params?.itemId || 'dist_prod',
47
+ index = me.tabItems.indexOf(itemId),
31
48
  store = me.getReference(`examples-${itemId.replace('_', '-')}-list`).store;
32
49
 
33
50
  if (store?.getCount() < 1) {
34
51
  store.load()
35
52
  }
36
53
 
37
- me.component.activeIndex = itemId === 'dist_prod' ? 2 : itemId === 'dist_dev' ? 1 : 0
54
+ me.component.activeIndex = index
55
+ }
56
+
57
+ /**
58
+ * @param {Object} data
59
+ * @param {Number} data.fromIndex
60
+ * @param {Number} data.toIndex
61
+ */
62
+ onMoveTab({fromIndex, toIndex}) {
63
+ NeoArray.move(this.tabItems, fromIndex, toIndex)
38
64
  }
39
65
  }
40
66
 
@@ -111,7 +111,7 @@ class FooterContainer extends Container {
111
111
  }, {
112
112
  module: Component,
113
113
  cls : ['neo-version'],
114
- html : 'v7.5.0'
114
+ html : 'v7.7.0'
115
115
  }]
116
116
  }],
117
117
  /**
@@ -104,6 +104,8 @@ class MainContainerController extends ComponentController {
104
104
  appName,
105
105
  boundaryContainerId: null,
106
106
  cls : [me.currentTheme, 'neo-dialog', 'neo-panel', 'neo-container'],
107
+ height : 200,
108
+ width : 300,
107
109
  windowId,
108
110
 
109
111
  dragZoneConfig: {
@@ -169,7 +171,7 @@ class MainContainerController extends ComponentController {
169
171
  } else { // drop the dialog fully into the dragEnd window
170
172
  me.mountDialogInOtherWindow({
171
173
  fullyIncludeIntoWindow: true,
172
- proxyRect : proxyRect
174
+ proxyRect
173
175
  })
174
176
  }
175
177
  }
@@ -260,14 +262,16 @@ class MainContainerController extends ComponentController {
260
262
  */
261
263
  mountDialogInOtherWindow(data) {
262
264
  let me = this,
263
- appName = me.component.appName,
265
+ {appName, windowId} = me.component,
264
266
  dialog = me.dialog,
265
267
  dragEndWindowAppName = me.dockedWindowAppName,
268
+ dragEndWindowId = me.dockedWindowId,
266
269
  side = me.dockedWindowSide,
267
- proxyPosition, wrapperStyle;
270
+ needsSwitch, proxyPosition, wrapperStyle;
268
271
 
269
272
  if (dialog.appName === dragEndWindowAppName) {
270
- dragEndWindowAppName = me.component.appName;
273
+ dragEndWindowAppName = appName;
274
+ dragEndWindowId = windowId;
271
275
  side = me.getOppositeSide(me.dockedWindowSide)
272
276
  }
273
277
 
@@ -278,9 +282,10 @@ class MainContainerController extends ComponentController {
278
282
  // we need a delay to ensure dialog.Base: onDragEnd() is done.
279
283
  // we could use the dragEnd event of the dragZone instead.
280
284
  me.timeout(70).then(() => {
281
- dialog.appName = dialog.appName === dragEndWindowAppName ? appName : dragEndWindowAppName;
285
+ needsSwitch = dialog.appName === dragEndWindowAppName;
282
286
 
283
- // todo: windowI
287
+ dialog.appName = needsSwitch ? appName : dragEndWindowAppName;
288
+ dialog.windowId = needsSwitch ? windowId : dragEndWindowId;
284
289
 
285
290
  me.getOpenDialogButtons().forEach(button => {
286
291
  if (button.appName === dialog.appName) {
@@ -370,9 +375,7 @@ class MainContainerController extends ComponentController {
370
375
  * @param {Object} data
371
376
  */
372
377
  onDockedPositionChange(data) {
373
- if (data.value === true) {
374
- this.dockedWindowSide = data.component.value
375
- }
378
+ this.dockedWindowSide = data.value
376
379
  }
377
380
 
378
381
  /**
@@ -392,7 +395,6 @@ class MainContainerController extends ComponentController {
392
395
 
393
396
  if (Rectangle.leavesSide(dragStartWindowRect, proxyRect, side)) {
394
397
  if (Rectangle.excludes(dragStartWindowRect, proxyRect)) {
395
- console.log('mountDialogInOtherWindow');
396
398
  me.mountDialogInOtherWindow({proxyRect})
397
399
  } else {
398
400
  me.dropDialogBetweenWindows(proxyRect)
@@ -439,15 +441,18 @@ class MainContainerController extends ComponentController {
439
441
  appName : dockedWindowAppName,
440
442
  autoMount : true,
441
443
  autoRender: true,
442
- cls : ['neo-dialog', 'neo-dragproxy'],
444
+ cls : ['neo-dialog', 'neo-panel', 'neo-dragproxy'],
443
445
  parentId : 'document.body',
444
446
  vdom : vdom,
445
447
  windowId : dockedWindowId
446
448
  });
447
- console.log(me.windowId, dockedWindowId);
449
+
448
450
  // The other window has most likely not loaded The dialog JS module yet,
449
451
  // but the drag proxy is using some CSS rules of it.
452
+ // todo: a new helper method to parse an existing instance based on its cmp tree for theme files
450
453
  Neo.currentWorker.insertThemeFiles(dockedWindowId, Neo.dialog.Base.prototype);
454
+ Neo.currentWorker.insertThemeFiles(dockedWindowId, Neo.form.field.Text.prototype);
455
+ Neo.currentWorker.insertThemeFiles(dockedWindowId, Neo.form.field.trigger.Clear.prototype);
451
456
  Neo.currentWorker.insertThemeFiles(dockedWindowId, Neo.draggable.DragProxyComponent.prototype)
452
457
  } else {
453
458
  me.updateDockedWindowProxyStyle({
@@ -508,35 +513,37 @@ console.log(me.windowId, dockedWindowId);
508
513
  * @param {Object} handlerData
509
514
  */
510
515
  openDockedWindow(handlerData) {
511
- Neo.Main.getWindowData().then(data => {
516
+ let {windowId} = this;
517
+
518
+ Neo.Main.getWindowData({windowId}).then(data => {
512
519
  let me = this,
513
520
  dock = me.dockedWindowSide,
514
521
  size = me.dockedWindowSize,
515
522
  height, left, top, width;
516
523
 
517
- switch (dock) {
524
+ switch(dock) {
518
525
  case 'bottom':
519
526
  height = size;
520
527
  left = data.screenLeft;
521
- top = data.outerHeight + data.screenTop - 52;
528
+ top = data.outerHeight + data.screenTop - 62;
522
529
  width = data.outerWidth;
523
530
  break
524
531
  case 'left':
525
- height = data.outerHeight - 78;
532
+ height = data.outerHeight - 86;
526
533
  left = data.screenLeft - size;
527
- top = data.screenTop + 28;
534
+ top = data.screenTop + 24;
528
535
  width = size;
529
536
  break
530
537
  case 'right':
531
- height = data.outerHeight - 78;
538
+ height = data.outerHeight - 86;
532
539
  left = data.outerWidth + data.screenLeft;
533
- top = data.screenTop + 28;
540
+ top = data.screenTop + 24;
534
541
  width = size;
535
542
  break
536
543
  case 'top':
537
544
  height = size;
538
545
  left = data.screenLeft;
539
- top = data.screenTop - size + 28;
546
+ top = data.screenTop - size + 24;
540
547
  width = data.outerWidth;
541
548
  break
542
549
  }
@@ -544,13 +551,15 @@ console.log(me.windowId, dockedWindowId);
544
551
  Neo.Main.windowOpen({
545
552
  url : 'childapps/shareddialog2/index.html',
546
553
  windowFeatures: `height=${height},left=${left},top=${top},width=${width}`,
554
+ windowId,
547
555
  windowName : me.dockedWindowAppName
548
556
  });
549
557
 
550
558
  Neo.main.addon.WindowPosition.registerWindow({
551
- dock: dock,
559
+ dock,
552
560
  name: me.dockedWindowAppName,
553
- size: size
561
+ size,
562
+ windowId
554
563
  })
555
564
  })
556
565
  }
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='7.5.0'
23
+ * @member {String} version='7.7.0'
24
24
  */
25
- version: '7.5.0'
25
+ version: '7.7.0'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "7.5.0",
3
+ "version": "7.7.0",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -60,7 +60,7 @@
60
60
  "neo-jsdoc": "1.0.1",
61
61
  "neo-jsdoc-x": "1.0.5",
62
62
  "postcss": "^8.4.47",
63
- "sass": "^1.78.0",
63
+ "sass": "^1.79.2",
64
64
  "siesta-lite": "5.5.2",
65
65
  "url": "^0.11.4",
66
66
  "webpack": "^5.94.0",
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  $base-color: #1c60a0;
2
4
 
3
5
  .colors-table-container.neo-table-container {
@@ -8,39 +10,39 @@ $base-color: #1c60a0;
8
10
  }
9
11
 
10
12
  .color-2 {
11
- background-color: lighten($base-color, 5%);
13
+ background-color: color.adjust($base-color, $lightness: 5%);
12
14
  }
13
15
 
14
16
  .color-3 {
15
- background-color: lighten($base-color, 10%);
17
+ background-color: color.adjust($base-color, $lightness: 10%);
16
18
  }
17
19
 
18
20
  .color-4 {
19
- background-color: lighten($base-color, 15%);
21
+ background-color: color.adjust($base-color, $lightness: 15%);
20
22
  }
21
23
 
22
24
  .color-5 {
23
- background-color: lighten($base-color, 20%);
25
+ background-color: color.adjust($base-color, $lightness: 20%);
24
26
  }
25
27
 
26
28
  .color-6 {
27
- background-color: lighten($base-color, 25%);
29
+ background-color: color.adjust($base-color, $lightness: 25%);
28
30
  }
29
31
 
30
32
  .color-7 {
31
- background-color: lighten($base-color, 30%);
33
+ background-color: color.adjust($base-color, $lightness: 30%);
32
34
  }
33
35
 
34
36
  .color-8 {
35
- background-color: lighten($base-color, 35%);
37
+ background-color: color.adjust($base-color, $lightness: 35%);
36
38
  }
37
39
 
38
40
  .color-9 {
39
- background-color: lighten($base-color, 40%);
41
+ background-color: color.adjust($base-color, $lightness: 40%);
40
42
  }
41
43
 
42
44
  .color-10 {
43
- background-color: lighten($base-color, 45%);
45
+ background-color: color.adjust($base-color, $lightness: 45%);
44
46
  }
45
47
 
46
48
  .neo-index-column {
@@ -1,3 +1,9 @@
1
+ @property --portal-blog-list-gradient-end {
2
+ syntax : "<color>";
3
+ initial-value: #333;
4
+ inherits : false;
5
+ }
6
+
1
7
  @property --portal-blog-list-gradient-start {
2
8
  syntax : "<color>";
3
9
  initial-value: #777;
@@ -5,11 +11,10 @@
5
11
  }
6
12
 
7
13
  .portal-blog-list.neo-list {
8
- --portal-blog-list-gradient-end: #333;
9
-
10
14
  transition: padding var(--portal-transition-duration) ease-out;
11
15
 
12
16
  .neo-list-item {
17
+ box-shadow : 0 5px 10px rgba(0, 0, 0, 0.3);
13
18
  cursor : default;
14
19
  display : flex;
15
20
  margin-left : auto;
@@ -33,6 +38,12 @@
33
38
  .preview-image {
34
39
  --portal-blog-list-gradient-start: #3E63DD;
35
40
  }
41
+
42
+ &:focus {
43
+ .preview-image {
44
+ --portal-blog-list-gradient-end: darkgreen;
45
+ }
46
+ }
36
47
  }
37
48
 
38
49
  .content {
@@ -118,7 +129,10 @@
118
129
  background-position : 50% 50%;
119
130
  background-size : cover;
120
131
  height : 100%;
121
- transition : --portal-blog-list-gradient-start var(--portal-transition-duration) ease-out;
132
+
133
+ transition:
134
+ --portal-blog-list-gradient-end var(--portal-transition-duration) ease-out,
135
+ --portal-blog-list-gradient-start var(--portal-transition-duration) ease-out;
122
136
  }
123
137
  }
124
138
 
@@ -1,3 +1,9 @@
1
+ @property --portal-examples-list-gradient-end {
2
+ syntax : "<color>";
3
+ initial-value: #333;
4
+ inherits : false;
5
+ }
6
+
1
7
  @property --portal-examples-list-gradient-start {
2
8
  syntax : "<color>";
3
9
  initial-value: #777;
@@ -5,11 +11,10 @@
5
11
  }
6
12
 
7
13
  .portal-examples-list.neo-list {
8
- --portal-examples-list-gradient-end: #333;
9
-
10
14
  transition: padding var(--portal-transition-duration) ease-out;
11
15
 
12
16
  .neo-list-item {
17
+ box-shadow : 0 5px 10px rgba(0, 0, 0, 0.3);
13
18
  cursor : default;
14
19
  display : flex;
15
20
  max-width : 800px;
@@ -32,6 +37,12 @@
32
37
  .preview-image {
33
38
  --portal-examples-list-gradient-start: #3E63DD;
34
39
  }
40
+
41
+ &:focus {
42
+ .preview-image {
43
+ --portal-examples-list-gradient-end: darkgreen;
44
+ }
45
+ }
35
46
  }
36
47
 
37
48
  .content {
@@ -121,7 +132,10 @@
121
132
  background-blend-mode: overlay;
122
133
  background-size : cover;
123
134
  height : 100%;
124
- transition : --portal-examples-list-gradient-start var(--portal-transition-duration) ease-out;
135
+
136
+ transition:
137
+ --portal-examples-list-gradient-end var(--portal-transition-duration) ease-out,
138
+ --portal-examples-list-gradient-start var(--portal-transition-duration) ease-out;
125
139
  }
126
140
  }
127
141
 
@@ -4,14 +4,13 @@
4
4
  padding : 0.1em 6em 1em 6em;
5
5
 
6
6
  .info-block {
7
- background-color: lighten(#8BA6FF, 10%);
8
- border-radius : 8px;
9
- box-shadow : 0 3px 6px rgba(0, 0, 0, 0.3);
10
- margin-left : auto;
11
- margin-right : auto;
12
- margin-top : 2em;
13
- max-width : 800px;
14
- padding : 0.5em 3em 1em 3em;
7
+ border : 1px solid var(--sem-color-border-default);
8
+ box-shadow : 0 3px 6px rgba(0, 0, 0, 0.3);
9
+ margin-left : auto;
10
+ margin-right: auto;
11
+ margin-top : 2em;
12
+ max-width : 800px;
13
+ padding : 0.5em 3em 1em 3em;
15
14
  }
16
15
 
17
16
  h1 {
@@ -1,9 +1,11 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .docs-classhierarchy-memberslist
2
4
  --docs-classhierarchy-memberslist-background-color : #282b2b;
3
5
  --docs-memberlist-group-header-background-color : #33343d;
4
6
  --docs-memberlist-group-header-color : #bbb;
5
7
  --docs-param-table-list-item-background-color : #323232;
6
- --docs-param-table-list-item-background-image : linear-gradient(#{lighten(#323232, 2%)}, #323232);
8
+ --docs-param-table-list-item-background-image : linear-gradient(#{color.adjust(#323232, $lightness: 2%)}, #323232);
7
9
  --docs-param-table-list-item-header-background-clip: text;
8
10
  --docs-param-table-list-item-header-text-shadow : 2px 2px 3px rgba(200,200,200,0.1);
9
11
  --docs-param-table-list-item-highlight-search-color: #ccc;
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  $background-color: #3c3f41;
2
4
  $border-color : #2b2b2b;
3
5
  $border-style : solid;
@@ -32,7 +34,7 @@ $text-color : #bbb;
32
34
  --button-opacity-disabled : var(--neo-disabled-opacity);
33
35
  --button-outline-active : none;
34
36
  --button-padding : 5px 12px 5px 12px;
35
- --button-ripple-background-color : #{darken(#5d83a7, 10%)};
37
+ --button-ripple-background-color : #{color.adjust(#5d83a7, $lightness: -10%)};
36
38
  --button-text-color : #{$text-color};
37
39
  --button-text-color-active : #{$text-color};
38
40
  --button-text-color-disabled : #{$text-color};
@@ -1,9 +1,11 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .neo-list-container
2
4
  --list-container-background-color : #33343d;
3
5
  --list-container-border : 1px solid #282829;
4
6
  --list-container-list-color : #bbb;
5
7
  --list-item-background-color : #33343d;
6
- --list-item-background-color-hover : #{lighten(#33343d, 10%)};
8
+ --list-item-background-color-hover : #{color.adjust(#33343d, $lightness: 10%)};
7
9
  --list-item-background-color-selected : #5a7082;
8
10
  --list-item-color-selected : #2b2b2b;
9
11
  --list-item-focus-outline : 1px solid #f6d199;
@@ -1,7 +1,9 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .neo-table-header
2
4
  --table-header-button-background-color : #323232;
3
5
  --table-header-button-background-image : linear-gradient(#3c3f41, #323232);
4
6
  --table-header-button-color : #bbb;
5
7
  --table-header-button-glyph-color : #bbb;
6
- --table-header-button-ripple-background-color: #{darken(#5d83a7, 10%)};
8
+ --table-header-button-ripple-background-color: #{color.adjust(#5d83a7, $lightness: -10%)};
7
9
  }
@@ -1,4 +1,6 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .neo-tree-list
2
4
  --tree-list-color : #bbb;
3
- --tree-list-menu-item-color: #{lighten(#33343d, 20%)};
5
+ --tree-list-menu-item-color: #{color.adjust(#33343d, $lightness: 20%)};
4
6
  }
@@ -1,10 +1,12 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .covid-header-container
2
4
  --covid-header-active-background-color : rgba(100, 181, 246, .65);
3
- --covid-header-active-color : #{darken(#64b5f6, 20%)};
5
+ --covid-header-active-color : #{color.adjust(#64b5f6, $lightness: -20%)};
4
6
  --covid-header-cases-background-color : rgba(187, 187, 187, .65);
5
- --covid-header-cases-color : #{darken(#bbb, 30%)};
7
+ --covid-header-cases-color : #{color.adjust(#bbb, $lightness: -30%)};
6
8
  --covid-header-deaths-background-color : rgba(251, 103, 103, .65);
7
- --covid-header-deaths-color : #{darken(#fb6767, 20%)};
9
+ --covid-header-deaths-color : #{color.adjust(#fb6767, $lightness: -20%)};
8
10
  --covid-header-recovered-background-color: rgba( 40, 218, 111, .65);
9
- --covid-header-recovered-color : #{darken(#28ca68, 20%)};
11
+ --covid-header-recovered-color : #{color.adjust(#28ca68, $lightness: -20%)};
10
12
  }
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .docs-classhierarchy-memberslist
2
4
  --docs-classhierarchy-memberslist-background-color : #bbb;
3
5
  --docs-memberlist-group-header-background-color : steelblue;
@@ -8,7 +10,7 @@
8
10
  --docs-param-table-list-item-header-text-shadow : none;
9
11
  --docs-param-table-list-item-highlight-search-color: red;
10
12
  --docs-param-table-source-link-color : #bbb;
11
- --docs-param-table-source-link-color-hover : #{darken(#1c60a0, 10%)};
13
+ --docs-param-table-source-link-color-hover : #{color.adjust(#1c60a0, $lightness: -10%)};
12
14
  --docs-param-table-thead-background-color : slategray;
13
15
  --docs-param-table-thead-background-image : none;
14
16
  --docs-param-table-tr-background-clip : none;
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  $background-color: #fff;
2
4
  $border-color : #ddd;
3
5
  $border-style : solid;
@@ -31,7 +33,7 @@ $text-color : #1c60a0;
31
33
  --button-opacity-disabled : var(--neo-disabled-opacity);
32
34
  --button-outline-active : none;
33
35
  --button-padding : 5px 12px 5px 12px;
34
- --button-ripple-background-color : #{lighten($text-color, 50%)};
36
+ --button-ripple-background-color : #{color.adjust($text-color, $lightness: 50%)};
35
37
  --button-text-color : #{$text-color};
36
38
  --button-text-color-active : #{$text-color};
37
39
  --button-text-color-disabled : #{$text-color};
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-grid-view
2
- --grid-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --grid-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --grid-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --grid-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --grid-cellmodel-selected-cell-color : #2b2b2b;
5
- --grid-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --grid-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --grid-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --grid-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --grid-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --grid-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --grid-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --grid-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --grid-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --grid-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --grid-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --grid-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,14 +1,16 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-list-container
2
4
  --list-container-background-color : #fff;
3
5
  --list-container-border : 0;
4
- --list-container-list-color : #{lighten(#33343d, 20%)};
6
+ --list-container-list-color : #{color.adjust(#33343d, $lightness: 20%)};
5
7
  --list-item-background-color : #fff;
6
- --list-item-background-color-hover : #{lighten(#33343d, 70%)};
7
- --list-item-background-color-selected : #{lighten(#64B5F6, 22%)};
8
+ --list-item-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
9
+ --list-item-background-color-selected : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --list-item-color-selected : #2b2b2b;
9
11
  --list-item-focus-outline : 1px solid darkorange;
10
12
  --list-item-focus-outline-offset : -1px;
11
- --list-item-glyph-color : #{lighten(#33343d, 20%)};
13
+ --list-item-glyph-color : #{color.adjust(#33343d, $lightness: 20%)};
12
14
  --list-item-highlight-search-color : red;
13
15
  --list-item-padding : 5px;
14
16
  }
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-table-view
2
- --table-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --table-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --table-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --table-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --table-cellmodel-selected-cell-color : #2b2b2b;
5
- --table-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --table-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --table-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --table-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --table-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --table-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --table-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --table-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --table-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --table-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --table-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --table-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,7 +1,9 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-table-header-button
2
4
  --table-header-button-background-color : #5d83a7;
3
5
  --table-header-button-background-image : none;
4
6
  --table-header-button-color : #fff;
5
7
  --table-header-button-glyph-color : #fff;
6
- --table-header-button-ripple-background-color: #{darken(#5d83a7, 10%)};
8
+ --table-header-button-ripple-background-color: #{color.adjust(#5d83a7, $lightness: -10%)};
7
9
  }
@@ -1,10 +1,12 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .covid-header-container
2
4
  --covid-header-active-background-color : rgba(100, 181, 246, .65);
3
- --covid-header-active-color : #{darken(#64b5f6, 20%)};
5
+ --covid-header-active-color : #{color.adjust(#64b5f6, $lightness: -20%)};
4
6
  --covid-header-cases-background-color : rgba(187, 187, 187, .65);
5
- --covid-header-cases-color : #{darken(#bbb, 30%)};
7
+ --covid-header-cases-color : #{color.adjust(#bbb, $lightness: -30%)};
6
8
  --covid-header-deaths-background-color : rgba(251, 103, 103, .65);
7
- --covid-header-deaths-color : #{darken(#fb6767, 20%)};
9
+ --covid-header-deaths-color : #{color.adjust(#fb6767, $lightness: -20%)};
8
10
  --covid-header-recovered-background-color: rgba( 40, 218, 111, .65);
9
- --covid-header-recovered-color : #{darken(#28ca68, 20%)};
11
+ --covid-header-recovered-color : #{color.adjust(#28ca68, $lightness: -20%)};
10
12
  }
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .docs-classhierarchy-memberslist
2
4
  --docs-classhierarchy-memberslist-background-color : #bbb;
3
5
  --docs-memberlist-group-header-background-color : steelblue;
@@ -8,7 +10,7 @@
8
10
  --docs-param-table-list-item-header-text-shadow : none;
9
11
  --docs-param-table-list-item-highlight-search-color: red;
10
12
  --docs-param-table-source-link-color : #bbb;
11
- --docs-param-table-source-link-color-hover : #{darken(#1c60a0, 10%)};
13
+ --docs-param-table-source-link-color-hover : #{color.adjust(#1c60a0, $lightness: -10%)};
12
14
  --docs-param-table-thead-background-color : slategray;
13
15
  --docs-param-table-thead-background-image : none;
14
16
  --docs-param-table-tr-background-clip : none;
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light {
2
4
  --black : #000000;
3
5
  --borderradius-0 : 0px;
@@ -28,16 +30,16 @@
28
30
  --gray-700 : #454B42;
29
31
  --gray-800 : #292D28;
30
32
  --gray-900 : #0E0F0D;
31
- --green-100 : #{lighten(#29F5AA, 70%)};
32
- --green-200 : #{lighten(#29F5AA, 50%)};
33
- --green-300 : #{lighten(#29F5AA, 20%)};
34
- --green-400 : #{lighten(#29F5AA, 10%)};
35
- --green-50 : #{lighten(#29F5AA, 85%)};
33
+ --green-100 : #{color.adjust(#29F5AA, $lightness: 70%)};
34
+ --green-200 : #{color.adjust(#29F5AA, $lightness: 50%)};
35
+ --green-300 : #{color.adjust(#29F5AA, $lightness: 20%)};
36
+ --green-400 : #{color.adjust(#29F5AA, $lightness: 10%)};
37
+ --green-50 : #{color.adjust(#29F5AA, $lightness: 85%)};
36
38
  --green-500 : #29F5AA;
37
- --green-600 : #{darken(#29F5AA, 10%)};
38
- --green-700 : #{darken(#29F5AA, 20%)};
39
- --green-800 : #{darken(#29F5AA, 40%)};
40
- --green-900 : #{darken(#29F5AA, 60%)};
39
+ --green-600 : #{color.adjust(#29F5AA, $lightness: -10%)};
40
+ --green-700 : #{color.adjust(#29F5AA, $lightness: -20%)};
41
+ --green-800 : #{color.adjust(#29F5AA, $lightness: -40%)};
42
+ --green-900 : #{color.adjust(#29F5AA, $lightness: -60%)};
41
43
  --height-16 : 16px;
42
44
  --height-2 : 2px;
43
45
  --height-24 : 24px;
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .neo-grid-view
2
- --grid-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --grid-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --grid-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --grid-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --grid-cellmodel-selected-cell-color : #2b2b2b;
5
- --grid-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --grid-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --grid-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --grid-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --grid-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --grid-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --grid-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --grid-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --grid-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --grid-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --grid-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --grid-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .neo-table-view
2
- --table-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --table-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --table-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --table-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --table-cellmodel-selected-cell-color : #2b2b2b;
5
- --table-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --table-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --table-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --table-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --table-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --table-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --table-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --table-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --table-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --table-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --table-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --table-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,7 +1,9 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .neo-table-header-button
2
4
  --table-header-button-background-color : #5d83a7;
3
5
  --table-header-button-background-image : none;
4
6
  --table-header-button-color : #fff;
5
7
  --table-header-button-glyph-color : #fff;
6
- --table-header-button-ripple-background-color: #{darken(#5d83a7, 10%)};
8
+ --table-header-button-ripple-background-color: #{color.adjust(#5d83a7, $lightness: -10%)};
7
9
  }
@@ -262,12 +262,12 @@ const DefaultConfig = {
262
262
  useVdomWorker: true,
263
263
  /**
264
264
  * buildScripts/injectPackageVersion.mjs will update this value
265
- * @default '7.5.0'
265
+ * @default '7.7.0'
266
266
  * @memberOf! module:Neo
267
267
  * @name config.version
268
268
  * @type String
269
269
  */
270
- version: '7.5.0'
270
+ version: '7.7.0'
271
271
  };
272
272
 
273
273
  Object.assign(DefaultConfig, {
@@ -161,19 +161,19 @@ class WindowPosition extends Base {
161
161
  switch(data.dock) {
162
162
  case 'bottom':
163
163
  left = screenLeft;
164
- top = win.outerHeight + screenTop - 50;
164
+ top = win.outerHeight + screenTop - 62;
165
165
  break
166
166
  case 'left':
167
167
  left = screenLeft - size;
168
- top = screenTop + 28;
168
+ top = screenTop + 24;
169
169
  break
170
170
  case 'right':
171
171
  left = win.outerWidth + screenLeft;
172
- top = screenTop + 28;
172
+ top = screenTop + 24;
173
173
  break
174
174
  case 'top':
175
175
  left = screenLeft;
176
- top = screenTop - size + 78;
176
+ top = screenTop - size + 86;
177
177
  break
178
178
  }
179
179
 
@@ -246,7 +246,7 @@ class Resizable extends Base {
246
246
  afterSetWindowId(value, oldValue) {
247
247
  let me = this;
248
248
 
249
- value && Neo.currentWorker.insertThemeFiles(value, me.__proto__)
249
+ value && Neo.currentWorker.insertThemeFiles(value, me.__proto__);
250
250
 
251
251
  if (me.dragZone) {
252
252
  me.dragZone.windowId = value
@@ -279,8 +279,9 @@ class Resizable extends Base {
279
279
  * @param {Object} data
280
280
  */
281
281
  onDragEnd(data) {
282
- let me = this,
283
- style = me.owner.wrapperStyle; // todo: delegation target
282
+ let me = this,
283
+ {owner} = me,
284
+ style = owner.wrapperStyle; // todo: delegation target
284
285
 
285
286
  Object.assign(me, {
286
287
  boundaryContainerRect: null,
@@ -294,12 +295,14 @@ class Resizable extends Base {
294
295
  ...me.dragZone.dragProxy.wrapperStyle
295
296
  });
296
297
 
297
- me.owner.wrapperStyle = style;
298
+ owner.wrapperStyle = style;
298
299
 
299
300
  me.removeBodyCursorCls();
300
301
 
301
302
  me.dragZone.dragEnd();
302
- me.removeAllNodes()
303
+ me.removeAllNodes();
304
+
305
+ owner.focus(owner.id, true)
303
306
  }
304
307
 
305
308
  /**
@@ -277,7 +277,7 @@ class View extends Component {
277
277
  dataField = me.getCellDataField(id),
278
278
  record = me.getRecord(id);
279
279
 
280
- me.parent.fire(eventName, {id: me, data, dataField, record})
280
+ me.parent.fire(eventName, {data, dataField, record, view: me})
281
281
  }
282
282
 
283
283
  /**
@@ -289,7 +289,7 @@ class View extends Component {
289
289
  id = data.currentTarget,
290
290
  record = me.getRecord(id);
291
291
 
292
- me.parent.fire(eventName, {id: me, data, record})
292
+ me.parent.fire(eventName, {data, record, view: me})
293
293
  }
294
294
 
295
295
  /**