neo.mjs 8.21.2 → 8.23.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 (39) hide show
  1. package/.github/CODEBASE_OVERVIEW.md +0 -1
  2. package/.github/CODE_OF_CONDUCT.md +0 -1
  3. package/.github/CONCEPT.md +0 -1
  4. package/.github/GETTING_STARTED.md +0 -1
  5. package/.github/NEOMJS_HISTORY.md +0 -1
  6. package/.github/STORY.md +0 -1
  7. package/.github/VISION.md +2 -126
  8. package/BACKERS.md +0 -1
  9. package/CONTRIBUTING.md +0 -1
  10. package/LICENSE +1 -1
  11. package/README.md +5 -1
  12. package/apps/ServiceWorker.mjs +2 -2
  13. package/apps/portal/index.html +1 -1
  14. package/apps/portal/view/about/Container.mjs +1 -1
  15. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  16. package/apps/portal/view/services/Component.mjs +0 -9
  17. package/examples/ConfigurationViewport.mjs +21 -8
  18. package/examples/ServiceWorker.mjs +2 -2
  19. package/examples/component/magicmovetext/MainContainer.mjs +90 -0
  20. package/examples/component/magicmovetext/app.mjs +6 -0
  21. package/examples/component/magicmovetext/index.html +11 -0
  22. package/examples/component/magicmovetext/neo-config.json +6 -0
  23. package/examples/grid/bigData/ControlsContainer.mjs +142 -84
  24. package/package.json +9 -7
  25. package/resources/scss/src/component/MagicMoveText.scss +45 -0
  26. package/resources/scss/src/examples/ConfigurationViewport.scss +27 -0
  27. package/resources/scss/src/examples/grid/bigData/ControlsContainer.scss +10 -1
  28. package/src/DefaultConfig.mjs +2 -2
  29. package/src/component/MagicMoveText.mjs +306 -0
  30. package/src/data/Store.mjs +12 -0
  31. package/src/grid/Container.mjs +1 -1
  32. package/src/grid/View.mjs +183 -67
  33. package/src/grid/header/Toolbar.mjs +1 -1
  34. package/src/main/DomAccess.mjs +18 -24
  35. package/src/selection/grid/CellModel.mjs +7 -3
  36. package/src/selection/grid/RowModel.mjs +2 -0
  37. package/src/selection/grid/_export.mjs +8 -0
  38. package/src/util/ClassSystem.mjs +4 -4
  39. package/resources/scss/src/examples/ConfigurationPanel.scss +0 -25
@@ -1,6 +1,8 @@
1
- import ComboBox from '../../../src/form/field/ComboBox.mjs';
2
- import Container from '../../../src/container/Base.mjs';
3
- import Radio from '../../../src/form/field/Radio.mjs';
1
+ import * as selection from '../../../src/selection/grid/_export.mjs';
2
+ import ComboBox from '../../../src/form/field/ComboBox.mjs';
3
+ import Container from '../../../src/container/Base.mjs';
4
+ import Radio from '../../../src/form/field/Radio.mjs';
5
+ import TabContainer from '../../../src/tab/Container.mjs';
4
6
 
5
7
  /**
6
8
  * @class Neo.examples.grid.bigData.ControlsContainer
@@ -26,91 +28,137 @@ class ControlsContainer extends Container {
26
28
  handler: 'up.onControlsToggleButtonClick',
27
29
  iconCls: 'fas fa-bars'
28
30
  }, {
29
- module: Container,
31
+ module: TabContainer,
30
32
  cls : ['neo-examples-bigdata-controls-container-content'],
31
- layout: 'vbox',
32
-
33
- itemDefaults: {
34
- module : ComboBox,
35
- clearable : false,
36
- displayField: 'id',
37
- editable : false
38
- },
39
33
 
40
34
  items: [{
41
- labelText : 'Amount Rows',
42
- labelWidth: 120,
43
- listeners : {change: 'up.onAmountRowsChange'},
44
- store : ['1000', '5000', '10000', '20000', '50000'],
45
- value : '1000',
46
- width : 200
47
- }, {
48
- labelText : 'Amount Columns',
49
- labelWidth: 145,
50
- listeners : {change: 'up.onAmountColumnsChange'},
51
- store : ['10', '25', '50', '75', '100'],
52
- value : '50',
53
- width : 200
54
- }, {
55
- labelText : 'Buffer Rows',
56
- labelWidth: 145,
57
- listeners : {change: 'up.onBufferRowRangeChange'},
58
- store : ['0', '3', '5', '10', '25', '50'],
59
- value : '5',
60
- width : 200
61
- }, {
62
- labelText : 'Buffer Columns',
63
- labelWidth: 145,
64
- listeners : {change: 'up.onBufferColumnRangeChange'},
65
- store : ['0', '3', '5', '10', '20'],
66
- value : '3',
67
- width : 200
68
- }, {
69
- module : Radio,
70
- checked : true,
71
- labelText : 'Theme',
72
- labelWidth : 70,
73
- listeners : {change: 'up.onThemeRadioChange'},
74
- name : 'theme',
75
- style : {marginTop: '2em'},
76
- value : 'neo-theme-dark',
77
- valueLabelText: 'Dark'
78
- }, {
79
- module : Radio,
80
- labelText : '',
81
- labelWidth : 70,
82
- listeners : {change: 'up.onThemeRadioChange'},
83
- name : 'theme',
84
- style : {marginTop: '.3em'},
85
- value : 'neo-theme-light',
86
- valueLabelText: 'Light'
87
- }, {
88
- ntype: 'label',
89
- style: {marginTop: '2em'},
90
- text : 'Filters'
91
- }, {
92
- ntype : 'textfield',
93
- clearable : true,
94
- editable : true,
95
- labelText : 'Firstname',
96
- labelWidth: 90,
97
- listeners : {change: 'up.onFilterFieldChange'},
98
- name : 'firstname',
99
- style : {marginTop: '.3em'},
100
- width : 200
101
- }, {
102
- ntype : 'textfield',
103
- clearable : true,
104
- editable : true,
105
- labelText : 'Lastname',
106
- labelWidth: 90,
107
- listeners : {change: 'up.onFilterFieldChange'},
108
- name : 'lastname',
109
- width : 200
35
+ module: Container,
36
+ header: {text: 'Settings'},
37
+ layout: 'vbox',
38
+
39
+ itemDefaults: {
40
+ module : ComboBox,
41
+ clearable : false,
42
+ displayField: 'id',
43
+ editable : false
44
+ },
45
+
46
+ items: [{
47
+ labelText : 'Amount Rows',
48
+ labelWidth: 120,
49
+ listeners : {change: 'up.onAmountRowsChange'},
50
+ store : ['1000', '5000', '10000', '20000', '50000'],
51
+ value : '1000',
52
+ width : 200
53
+ }, {
54
+ labelText : 'Amount Columns',
55
+ labelWidth: 145,
56
+ listeners : {change: 'up.onAmountColumnsChange'},
57
+ store : ['10', '25', '50', '75', '100'],
58
+ value : '50',
59
+ width : 200
60
+ }, {
61
+ labelText : 'Buffer Rows',
62
+ labelWidth: 145,
63
+ listeners : {change: 'up.onBufferRowRangeChange'},
64
+ store : ['0', '3', '5', '10', '25', '50'],
65
+ value : '5',
66
+ width : 200
67
+ }, {
68
+ labelText : 'Buffer Columns',
69
+ labelWidth: 145,
70
+ listeners : {change: 'up.onBufferColumnRangeChange'},
71
+ store : ['0', '3', '5', '10', '20'],
72
+ value : '3',
73
+ width : 200
74
+ }, {
75
+ module : Radio,
76
+ checked : true,
77
+ labelText : 'Theme',
78
+ labelWidth : 70,
79
+ listeners : {change: 'up.onThemeRadioChange'},
80
+ name : 'theme',
81
+ style : {marginTop: '2em'},
82
+ value : 'neo-theme-dark',
83
+ valueLabelText: 'Dark'
84
+ }, {
85
+ module : Radio,
86
+ labelText : '',
87
+ labelWidth : 70,
88
+ listeners : {change: 'up.onThemeRadioChange'},
89
+ name : 'theme',
90
+ style : {marginTop: '.3em'},
91
+ value : 'neo-theme-light',
92
+ valueLabelText: 'Light'
93
+ }, {
94
+ ntype: 'label',
95
+ style: {marginTop: '2em'},
96
+ text : 'Filters'
97
+ }, {
98
+ ntype : 'textfield',
99
+ clearable : true,
100
+ editable : true,
101
+ labelText : 'Firstname',
102
+ labelWidth: 90,
103
+ listeners : {change: 'up.onFilterFieldChange'},
104
+ name : 'firstname',
105
+ style : {marginTop: '.3em'},
106
+ width : 200
107
+ }, {
108
+ ntype : 'textfield',
109
+ clearable : true,
110
+ editable : true,
111
+ labelText : 'Lastname',
112
+ labelWidth: 90,
113
+ listeners : {change: 'up.onFilterFieldChange'},
114
+ name : 'lastname',
115
+ width : 200
116
+ }, {
117
+ ntype : 'label',
118
+ reference: 'count-rows-label',
119
+ style : {marginTop: '1em'}
120
+ }]
110
121
  }, {
111
- ntype : 'label',
112
- reference: 'count-rows-label',
113
- style : {marginTop: '1em'}
122
+ module: Container,
123
+ header: {text: 'Selection'},
124
+ layout: 'vbox',
125
+
126
+ itemDefaults: {
127
+ module : Radio,
128
+ hideLabel : true,
129
+ hideValueLabel: false,
130
+ labelText : '',
131
+ listeners : {change: 'up.onSelectionModelChange'},
132
+ name : 'selectionModel',
133
+ style : {marginTop: '.3em'},
134
+ width : 200
135
+ },
136
+
137
+ items: [{
138
+ ntype: 'label',
139
+ style: {marginTop: 0},
140
+ text : 'Pick the Selection Model'
141
+ }, {
142
+ style : {marginTop: '1em'},
143
+ selectionModel: selection.CellModel,
144
+ valueLabelText: 'Cell'
145
+ }, {
146
+ selectionModel: selection.ColumnModel,
147
+ valueLabelText: 'Column'
148
+ }, {
149
+ checked : true,
150
+ selectionModel: selection.RowModel,
151
+ valueLabelText: 'Row'
152
+ }, {
153
+ selectionModel: selection.CellColumnModel,
154
+ valueLabelText: 'Cell & Column'
155
+ }, {
156
+ selectionModel: selection.CellRowModel,
157
+ valueLabelText: 'Cell & Row'
158
+ }, {
159
+ selectionModel: selection.CellColumnRowModel,
160
+ valueLabelText: 'Cell & Column & Row'
161
+ }]
114
162
  }]
115
163
  }],
116
164
  /**
@@ -204,6 +252,16 @@ class ControlsContainer extends Container {
204
252
  this.grid.store.getFilter(data.component.name).value = data.value
205
253
  }
206
254
 
255
+ /**
256
+ * @param {Object} data
257
+ */
258
+ onSelectionModelChange(data) {
259
+ this.grid.view.selectionModel = data.component.selectionModel
260
+ }
261
+
262
+ /**
263
+ *
264
+ */
207
265
  updateRowsLabel() {
208
266
  let {store} = this.grid;
209
267
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "8.21.2",
3
+ "version": "8.23.0",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -36,9 +36,11 @@
36
36
  "webworker",
37
37
  "ecmascript",
38
38
  "css",
39
- "json"
39
+ "json",
40
+ "react-alternative",
41
+ "angular-alternative"
40
42
  ],
41
- "author": "Tobias Uhlig, Rich Waters",
43
+ "author": "Tobias Uhlig",
42
44
  "license": "MIT",
43
45
  "bugs": {
44
46
  "url": "https://github.com/neomjs/neo/issues"
@@ -54,16 +56,16 @@
54
56
  "envinfo": "^7.14.0",
55
57
  "fs-extra": "^11.3.0",
56
58
  "highlightjs-line-numbers.js": "^2.9.0",
57
- "inquirer": "^12.4.1",
59
+ "inquirer": "^12.4.2",
58
60
  "marked": "^15.0.7",
59
61
  "monaco-editor": "0.50.0",
60
62
  "neo-jsdoc": "1.0.1",
61
63
  "neo-jsdoc-x": "1.0.5",
62
- "postcss": "^8.5.2",
63
- "sass": "^1.84.0",
64
+ "postcss": "^8.5.3",
65
+ "sass": "^1.85.0",
64
66
  "siesta-lite": "5.5.2",
65
67
  "url": "^0.11.4",
66
- "webpack": "^5.97.1",
68
+ "webpack": "^5.98.0",
67
69
  "webpack-cli": "^6.0.1",
68
70
  "webpack-dev-server": "^5.2.0",
69
71
  "webpack-hook-plugin": "^1.0.7",
@@ -0,0 +1,45 @@
1
+ .neo-magic-move-text {
2
+ --neo-height : 100px;
3
+ --neo-transition-time: 500ms;
4
+ --neo-width : 450px;
5
+
6
+ align-items : center;
7
+ background-color: #000;
8
+ color : #fff;
9
+ display : flex;
10
+ font-size : 30px;
11
+ font-weight : bold;
12
+ height : var(--neo-height);
13
+ justify-content : center;
14
+ width : var(--neo-width);
15
+
16
+ .neo-content {
17
+ height : 100%;
18
+ position: relative;
19
+ width : 100%;
20
+
21
+ > * {
22
+ position : absolute;
23
+ transition:
24
+ color 0.2s ease-out,
25
+ left var(--neo-transition-time) ease-out,
26
+ opacity var(--neo-transition-time) ease-out;
27
+ }
28
+ }
29
+
30
+ .neo-measure-element-wrapper {
31
+ align-items : center;
32
+ background-color: #000;
33
+ display : flex;
34
+ height : var(--neo-height);
35
+ justify-content: center;
36
+ left : -5000px;
37
+ position : absolute;
38
+ top : -5000px;
39
+ width : var(--neo-width);
40
+ }
41
+
42
+ .neo-measure-element {
43
+ position: relative;
44
+ }
45
+ }
@@ -0,0 +1,27 @@
1
+ .neo-examples-configuration-viewport {
2
+ transition: width .5s ease-in-out;
3
+
4
+ @media (max-width: 450px) {
5
+ overflow-y: auto;
6
+
7
+ .neo-example-container {
8
+ flex: none !important;
9
+ }
10
+
11
+ &.neo-flex-container {
12
+ &.neo-flex-direction-row {
13
+ flex-direction: column;
14
+ }
15
+ }
16
+ }
17
+
18
+ .neo-configuration-header-toolbar {
19
+ border : 0;
20
+ border-bottom: 1px solid var(--panel-border-color);
21
+ }
22
+
23
+ .neo-configuration-panel-body {
24
+ overflow-y: auto;
25
+ padding : 10px;
26
+ }
27
+ }
@@ -15,8 +15,17 @@
15
15
  .neo-examples-bigdata-controls-container-content {
16
16
  box-shadow: 0 5px 10px rgba(75,75,75,.3);
17
17
  opacity : 0;
18
- padding : .5em 1em;
19
18
  transition: opacity 250ms ease-out;
19
+
20
+ > .neo-container {
21
+ overflow-y: auto;
22
+ padding : .5em 1em;
23
+
24
+ > .neo-container {
25
+ flex : none;
26
+ height: fit-content;
27
+ }
28
+ }
20
29
  }
21
30
 
22
31
  &.neo-expanded {
@@ -263,12 +263,12 @@ const DefaultConfig = {
263
263
  useVdomWorker: true,
264
264
  /**
265
265
  * buildScripts/injectPackageVersion.mjs will update this value
266
- * @default '8.21.2'
266
+ * @default '8.23.0'
267
267
  * @memberOf! module:Neo
268
268
  * @name config.version
269
269
  * @type String
270
270
  */
271
- version: '8.21.2'
271
+ version: '8.23.0'
272
272
  };
273
273
 
274
274
  Object.assign(DefaultConfig, {