neo.mjs 6.22.0 → 6.22.1

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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.22.0'
23
+ * @member {String} version='6.22.1'
24
24
  */
25
- version: '6.22.0'
25
+ version: '6.22.1'
26
26
  }
27
27
 
28
28
  /**
@@ -9,7 +9,7 @@ import {getSearchParams} from '../Util.mjs';
9
9
  class ViewportController extends Controller {
10
10
  /**
11
11
  * Valid values for mainContentLayout
12
- * @member {String[]} iconPositions=['top','right','bottom','left']
12
+ * @member {String[]} mainContentLayouts=['card','cube','mixed']
13
13
  * @protected
14
14
  * @static
15
15
  */
@@ -56,6 +56,12 @@ class ViewportController extends Controller {
56
56
  * @member {String[]} connectedApps=[]
57
57
  */
58
58
  connectedApps = []
59
+ /**
60
+ * Internal flag to store the amount of main navigation changes
61
+ * @member {Number} #transitionId=0
62
+ * @private
63
+ */
64
+ #transitionId = 0
59
65
 
60
66
  /**
61
67
  * Triggered after the mainContentLayout config got changed
@@ -108,7 +114,7 @@ class ViewportController extends Controller {
108
114
  livePreviewId = getSearchParams(searchString).id,
109
115
  livePreview = Neo.getComponent(livePreviewId),
110
116
  sourceContainer = livePreview.getReference('preview'),
111
- tabContainer = livePreview.tabContainer,
117
+ {tabContainer} = livePreview,
112
118
  sourceView = sourceContainer.removeAt(0, false);
113
119
 
114
120
  livePreview.previewContainer = mainView;
@@ -136,7 +142,7 @@ class ViewportController extends Controller {
136
142
  livePreviewId = getSearchParams(searchString).id,
137
143
  livePreview = Neo.getComponent(livePreviewId),
138
144
  sourceContainer = livePreview.getReference('preview'),
139
- tabContainer = livePreview.tabContainer,
145
+ {tabContainer} = livePreview,
140
146
  sourceView = mainView.removeAt(0, false);
141
147
 
142
148
  livePreview.previewContainer = null;
@@ -235,16 +241,23 @@ class ViewportController extends Controller {
235
241
  let me = this,
236
242
  {activeIndex, mainContentLayout} = me,
237
243
  container = me.getReference('main-content'),
238
- updateLayout = true;
244
+ updateLayout = true,
245
+ transitionId;
239
246
 
240
247
  if (index !== activeIndex) {
248
+ me.activeIndex = index;
249
+ me.#transitionId++;
250
+
251
+ transitionId = me.#transitionId;
252
+
241
253
  // skip the initial layout-switch, since we do not need a transition
242
254
  if (mainContentLayout === 'mixed' && Neo.isNumber(activeIndex)) {
243
255
  updateLayout = false;
244
256
 
245
- container.wrapperStyle; // todo: without accessing the getter, the flex value can get lost.
246
-
247
- container.layout = {ntype: 'cube', activeIndex, fitContainer: true, hideInactiveCardsOnDestroy: true};
257
+ // enable "fast clicking" on main nav items => do not replace a cube layout with a new instance of cube
258
+ if (container.layout.ntype !== 'layout-cube') {
259
+ container.layout = {ntype: 'cube', activeIndex, fitContainer: true, hideInactiveCardsOnDestroy: true}
260
+ }
248
261
 
249
262
  await me.timeout(200);
250
263
 
@@ -252,14 +265,14 @@ class ViewportController extends Controller {
252
265
 
253
266
  await me.timeout(1100);
254
267
 
255
- container.layout = {ntype: 'card', activeIndex: index}
268
+ if (transitionId === me.#transitionId) {
269
+ container.layout = {ntype: 'card', activeIndex: index}
270
+ }
256
271
  }
257
272
 
258
273
  if (updateLayout) {
259
274
  container.layout.activeIndex = index
260
275
  }
261
-
262
- me.activeIndex = index
263
276
  }
264
277
  }
265
278
  }
@@ -31,6 +31,14 @@ class Container extends Base {
31
31
  profileLinkedIn: 'https://www.linkedin.com/in/tobiasuhlig/',
32
32
  profileX : 'https://x.com/UhligTobias',
33
33
  teamRole : 'Co-Founder & Core Team Member'
34
+ }, {
35
+ module : MemberContainer,
36
+ location : 'Germany',
37
+ name : 'Torsten Dinkheller',
38
+ picture : 'torsten.png',
39
+ profileGitHub : 'https://github.com/Dinkh',
40
+ profileLinkedIn: 'https://www.linkedin.com/in/dinkheller/',
41
+ teamRole : 'Co-Founder & Core Team Member'
34
42
  }],
35
43
  /**
36
44
  * @member {Object} layout={ntype:'vbox',align:'start'}
@@ -36,7 +36,20 @@ class Container extends BaseContainer {
36
36
  }, {
37
37
  module : List,
38
38
  flex : 1,
39
- reference: 'blog-list'
39
+ reference: 'blog-list',
40
+ /**
41
+ * @member {Object[]} domListeners
42
+ */
43
+ domListeners: [{
44
+ scroll(event) {
45
+ const isHomeContainer = event.target.cls.includes('portal-blog-list'),
46
+ beyondEighty = event.scrollTop > 80;
47
+
48
+ if (isHomeContainer) {
49
+ this.toggleCls('hide-sidebar', beyondEighty);
50
+ }
51
+ }
52
+ }]
40
53
  }],
41
54
  /**
42
55
  * @member {Object} layout={ntype:'vbox',align:'stretch'}
@@ -32,7 +32,12 @@ class MainContainer extends Container {
32
32
  Neo.getComponent(data.targetId)?.activate?.()
33
33
  },
34
34
  scroll(event) {
35
- this.toggleCls('hide-sidebar', event.scrollTop > 80)
35
+ const isHomeContainer = event.target.cls.includes('portal-home-maincontainer'),
36
+ beyondEighty = event.scrollTop > 80;
37
+
38
+ if (isHomeContainer) {
39
+ this.toggleCls('hide-sidebar', beyondEighty);
40
+ }
36
41
  }
37
42
  }],
38
43
  /**
@@ -25,6 +25,19 @@ class PageContainer extends Container {
25
25
  nextPageRecord : data => data.nextPageRecord,
26
26
  previousPageRecord: data => data.previousPageRecord
27
27
  },
28
+ /**
29
+ * @member {Object[]} domListeners
30
+ */
31
+ domListeners: [{
32
+ scroll(event) {
33
+ const isHomeContainer = event.target.cls.includes('portal-learn-page-container'),
34
+ beyondEighty = event.scrollTop > 80;
35
+
36
+ if (isHomeContainer) {
37
+ this.toggleCls('hide-sidebar', beyondEighty);
38
+ }
39
+ }
40
+ }],
28
41
  /**
29
42
  * @member {Object[]} items
30
43
  */
@@ -15,6 +15,19 @@ class Component extends BaseComponent {
15
15
  * @member {String[]} cls=['portal-services-component']
16
16
  */
17
17
  cls: ['portal-services-component'],
18
+ /**
19
+ * @member {Object[]} domListeners
20
+ */
21
+ domListeners: [{
22
+ scroll(event) {
23
+ const isHomeContainer = event.target.cls.includes('portal-services-component'),
24
+ beyondEighty = event.scrollTop > 80;
25
+
26
+ if (isHomeContainer) {
27
+ this.toggleCls('hide-sidebar', beyondEighty);
28
+ }
29
+ }
30
+ }],
18
31
  /**
19
32
  * @member {Object} vdom
20
33
  */
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.22.0'
23
+ * @member {String} version='6.22.1'
24
24
  */
25
- version: '6.22.0'
25
+ version: '6.22.1'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.22.0",
3
+ "version": "6.22.1",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -260,12 +260,12 @@ const DefaultConfig = {
260
260
  useVdomWorker: true,
261
261
  /**
262
262
  * buildScripts/injectPackageVersion.mjs will update this value
263
- * @default '6.22.0'
263
+ * @default '6.22.1'
264
264
  * @memberOf! module:Neo
265
265
  * @name config.version
266
266
  * @type String
267
267
  */
268
- version: '6.22.0'
268
+ version: '6.22.1'
269
269
  };
270
270
 
271
271
  Object.assign(DefaultConfig, {