neo.mjs 7.1.0 → 7.3.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 (47) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/portal/index.html +1 -1
  3. package/apps/portal/model/Example.mjs +56 -0
  4. package/apps/portal/resources/data/examples_devmode.json +114 -0
  5. package/apps/portal/resources/data/examples_dist_dev.json +108 -0
  6. package/apps/portal/resources/data/examples_dist_prod.json +108 -0
  7. package/apps/portal/store/Examples.mjs +26 -0
  8. package/apps/portal/view/HeaderToolbar.mjs +3 -0
  9. package/apps/portal/view/Viewport.mjs +3 -2
  10. package/apps/portal/view/ViewportController.mjs +32 -14
  11. package/apps/portal/view/about/Container.mjs +2 -2
  12. package/apps/portal/view/blog/List.mjs +3 -3
  13. package/apps/portal/view/examples/List.mjs +156 -0
  14. package/apps/portal/view/examples/TabContainer.mjs +81 -0
  15. package/apps/portal/view/examples/TabContainerController.mjs +41 -0
  16. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  17. package/apps/realworld/api/Article.mjs +7 -1
  18. package/apps/realworld/api/Favorite.mjs +7 -1
  19. package/apps/realworld/api/Profile.mjs +7 -1
  20. package/apps/realworld/api/Tag.mjs +7 -1
  21. package/apps/realworld/api/User.mjs +7 -1
  22. package/apps/realworld2/api/Article.mjs +7 -1
  23. package/apps/realworld2/api/Favorite.mjs +7 -1
  24. package/apps/realworld2/api/Profile.mjs +7 -1
  25. package/apps/realworld2/api/Tag.mjs +7 -1
  26. package/apps/realworld2/api/User.mjs +7 -1
  27. package/apps/shareddialog/view/MainContainerController.mjs +37 -30
  28. package/examples/ServiceWorker.mjs +2 -2
  29. package/examples/todoList/version2/TodoListModel.mjs +1 -1
  30. package/package.json +2 -2
  31. package/resources/scss/src/apps/portal/about/MemberContainer.scss +5 -4
  32. package/resources/scss/src/apps/portal/blog/Container.scss +2 -0
  33. package/resources/scss/src/apps/portal/examples/List.scss +158 -0
  34. package/resources/scss/src/apps/portal/examples/TabContainer.scss +36 -0
  35. package/resources/scss/src/button/Base.scss +4 -0
  36. package/resources/scss/src/calendar/view/calendars/ColorsList.scss +4 -0
  37. package/resources/scss/src/calendar/view/calendars/List.scss +2 -1
  38. package/resources/scss/src/dialog/Base.scss +2 -2
  39. package/resources/scss/src/list/Base.scss +3 -3
  40. package/resources/scss/theme-neo-light/button/Base.scss +3 -3
  41. package/src/DefaultConfig.mjs +2 -2
  42. package/src/calendar/view/MainContainer.mjs +13 -10
  43. package/src/calendar/view/calendars/EditContainer.mjs +3 -2
  44. package/src/calendar/view/calendars/List.mjs +1 -0
  45. package/src/calendar/view/week/Component.mjs +5 -3
  46. package/src/calendar/view/week/plugin/DragDrop.mjs +4 -3
  47. package/src/layout/Cube.mjs +44 -38
@@ -28,6 +28,10 @@ class MainContainerController extends ComponentController {
28
28
  * @member {String} dockedWindowAppName='SharedDialog2'
29
29
  */
30
30
  dockedWindowAppName: 'SharedDialog2',
31
+ /**
32
+ * @member {Number|null} dockedWindowId=null
33
+ */
34
+ dockedWindowId: null,
31
35
  /**
32
36
  * @member {Neo.component.Base|null} dockedWindowProxy=null
33
37
  */
@@ -40,7 +44,7 @@ class MainContainerController extends ComponentController {
40
44
  /**
41
45
  * @member {Number} dockedWindowSize=500
42
46
  */
43
- dockedWindowSize: 500,
47
+ dockedWindowSize: 620,
44
48
  /**
45
49
  * @member {Object} dialogRect=null
46
50
  */
@@ -67,7 +71,7 @@ class MainContainerController extends ComponentController {
67
71
  connect : me.onAppConnect,
68
72
  disconnect: me.onAppDisconnect,
69
73
  scope : me
70
- });
74
+ })
71
75
  }
72
76
 
73
77
  /**
@@ -81,7 +85,7 @@ class MainContainerController extends ComponentController {
81
85
  Neo.main.addon.WindowPosition.setDock({
82
86
  name: this.dockedWindowAppName,
83
87
  dock: value
84
- });
88
+ })
85
89
  }
86
90
  }
87
91
 
@@ -90,15 +94,17 @@ class MainContainerController extends ComponentController {
90
94
  * @param {String} appName
91
95
  */
92
96
  createDialog(data, appName) {
93
- let me = this;
97
+ let me = this,
98
+ {windowId} = me;
94
99
 
95
100
  me.enableOpenDialogButtons(false);
96
101
 
97
102
  me.dialog = Neo.create(DemoDialog, {
98
103
  animateTargetId : data.component.id,
99
- appName : appName,
104
+ appName,
100
105
  boundaryContainerId: null,
101
106
  cls : [me.currentTheme, 'neo-dialog', 'neo-panel', 'neo-container'],
107
+ windowId,
102
108
 
103
109
  dragZoneConfig: {
104
110
  alwaysFireDragMove: true
@@ -109,7 +115,7 @@ class MainContainerController extends ComponentController {
109
115
  dragZoneCreated: me.onDragZoneCreated,
110
116
  scope : me
111
117
  }
112
- });
118
+ })
113
119
  }
114
120
 
115
121
  /**
@@ -164,7 +170,7 @@ class MainContainerController extends ComponentController {
164
170
  me.mountDialogInOtherWindow({
165
171
  fullyIncludeIntoWindow: true,
166
172
  proxyRect : proxyRect
167
- });
173
+ })
168
174
  }
169
175
  }
170
176
 
@@ -173,15 +179,15 @@ class MainContainerController extends ComponentController {
173
179
  */
174
180
  enableOpenDialogButtons(enable) {
175
181
  this.getOpenDialogButtons().forEach(button => {
176
- button.disabled = !enable;
177
- });
182
+ button.disabled = !enable
183
+ })
178
184
  }
179
185
 
180
186
  /**
181
187
  * @return {Neo.button.Base}
182
188
  */
183
189
  getOpenDockedWindowButton() {
184
- return this.component.down({iconCls: 'far fa-window-restore'});
190
+ return this.component.down({iconCls: 'far fa-window-restore'})
185
191
  }
186
192
 
187
193
  /**
@@ -190,7 +196,7 @@ class MainContainerController extends ComponentController {
190
196
  getOpenDialogButtons() {
191
197
  return ComponentManager.find({
192
198
  flag: 'open-dialog-button'
193
- });
199
+ })
194
200
  }
195
201
 
196
202
  /**
@@ -203,7 +209,7 @@ class MainContainerController extends ComponentController {
203
209
  left : 'right',
204
210
  right : 'left',
205
211
  top : 'bottom'
206
- }[side];
212
+ }[side]
207
213
  }
208
214
 
209
215
  /**
@@ -237,17 +243,14 @@ class MainContainerController extends ComponentController {
237
243
  break;
238
244
  }
239
245
 
240
- return {
241
- left: left,
242
- top : top
243
- };
246
+ return {left, top}
244
247
  }
245
248
 
246
249
  /**
247
250
  * @return {Boolean}
248
251
  */
249
252
  hasDockedWindow() {
250
- return this.connectedApps.includes(this.dockedWindowAppName);
253
+ return this.connectedApps.includes(this.dockedWindowAppName)
251
254
  }
252
255
 
253
256
  /**
@@ -277,6 +280,8 @@ class MainContainerController extends ComponentController {
277
280
  me.timeout(70).then(() => {
278
281
  dialog.appName = dialog.appName === dragEndWindowAppName ? appName : dragEndWindowAppName;
279
282
 
283
+ // todo: windowI
284
+
280
285
  me.getOpenDialogButtons().forEach(button => {
281
286
  if (button.appName === dialog.appName) {
282
287
  dialog.animateTargetId = button.id
@@ -299,6 +304,7 @@ class MainContainerController extends ComponentController {
299
304
  /**
300
305
  * @param {Object} data
301
306
  * @param {String} data.appName
307
+ * @param {Number} data.windowId
302
308
  */
303
309
  onAppConnect(data) {
304
310
  let me = this,
@@ -311,6 +317,7 @@ class MainContainerController extends ComponentController {
311
317
  }
312
318
 
313
319
  if (name === me.dockedWindowAppName) {
320
+ me.dockedWindowId = data.windowId;
314
321
  me.getOpenDockedWindowButton().disabled = true
315
322
  }
316
323
 
@@ -385,9 +392,8 @@ class MainContainerController extends ComponentController {
385
392
 
386
393
  if (Rectangle.leavesSide(dragStartWindowRect, proxyRect, side)) {
387
394
  if (Rectangle.excludes(dragStartWindowRect, proxyRect)) {
388
- me.mountDialogInOtherWindow({
389
- proxyRect: proxyRect
390
- })
395
+ console.log('mountDialogInOtherWindow');
396
+ me.mountDialogInOtherWindow({proxyRect})
391
397
  } else {
392
398
  me.dropDialogBetweenWindows(proxyRect)
393
399
  }
@@ -400,18 +406,17 @@ class MainContainerController extends ComponentController {
400
406
  */
401
407
  onDragMove(data) {
402
408
  if (this.hasDockedWindow()) {
403
- let me = this,
404
- dialogRect = me.dialogRect,
405
- dockedWindowAppName = me.dockedWindowAppName,
406
- dragStartWindowRect = me.dragStartWindowRect,
407
- proxyRect = Rectangle.moveTo(dialogRect, data.clientX - data.offsetX, data.clientY - data.offsetY),
408
- side = me.dockedWindowSide,
409
+ let me = this,
410
+ {dialogRect, dragStartWindowRect, dockedWindowAppName, dockedWindowId} = me,
411
+ proxyRect = Rectangle.moveTo(dialogRect, data.clientX - data.offsetX, data.clientY - data.offsetY),
412
+ side = me.dockedWindowSide,
409
413
  proxyPosition, vdom;
410
414
 
411
415
  // in case we trigger the drag:start inside the docked window,
412
416
  // we can keep the same logic with just flipping the side.
413
417
  if (me.dialog.appName === dockedWindowAppName) {
414
418
  dockedWindowAppName = me.component.appName;
419
+ dockedWindowId = me.component.windowId;
415
420
  side = me.getOppositeSide(me.dockedWindowSide);
416
421
  }
417
422
 
@@ -434,14 +439,16 @@ class MainContainerController extends ComponentController {
434
439
  appName : dockedWindowAppName,
435
440
  autoMount : true,
436
441
  autoRender: true,
437
- cls : ['neo-dialog-wrapper'],
442
+ cls : ['neo-dialog', 'neo-dragproxy'],
438
443
  parentId : 'document.body',
439
- vdom : vdom
444
+ vdom : vdom,
445
+ windowId : dockedWindowId
440
446
  });
441
-
447
+ console.log(me.windowId, dockedWindowId);
442
448
  // The other window has most likely not loaded The dialog JS module yet,
443
449
  // but the drag proxy is using some CSS rules of it.
444
- Neo.currentWorker.insertThemeFiles(dockedWindowAppName, Neo.dialog.Base.prototype)
450
+ Neo.currentWorker.insertThemeFiles(dockedWindowId, Neo.dialog.Base.prototype);
451
+ Neo.currentWorker.insertThemeFiles(dockedWindowId, Neo.draggable.DragProxyComponent.prototype)
445
452
  } else {
446
453
  me.updateDockedWindowProxyStyle({
447
454
  ...proxyPosition,
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='7.1.0'
23
+ * @member {String} version='7.3.0'
24
24
  */
25
- version: '7.1.0'
25
+ version: '7.3.0'
26
26
  }
27
27
 
28
28
  /**
@@ -6,7 +6,7 @@ import Model from '../../../src/data/Model.mjs';
6
6
  */
7
7
  class TodoListModel extends Model {
8
8
  static config = {
9
- className : 'Neo.examples.todoList.version2.MainModel',
9
+ className : 'Neo.examples.todoList.version2.TodoListModel',
10
10
  keyProperty: 'id',
11
11
 
12
12
  fields: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "7.1.0",
3
+ "version": "7.3.0",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -49,7 +49,7 @@
49
49
  "clean-webpack-plugin": "^4.0.0",
50
50
  "commander": "^12.1.0",
51
51
  "cssnano": "^7.0.6",
52
- "envinfo": "^7.13.0",
52
+ "envinfo": "^7.14.0",
53
53
  "fs-extra": "^11.2.0",
54
54
  "highlightjs-line-numbers.js": "^2.8.0",
55
55
  "inquirer": "^10.2.2",
@@ -1,8 +1,9 @@
1
1
  .portal-about-member-container {
2
- border : 1px solid var(--sem-color-border-default);
3
- min-width: 600px;
4
- padding : 1em 1em 4em;
5
- position : relative;
2
+ border : 1px solid var(--sem-color-border-default);
3
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
4
+ min-width : 600px;
5
+ padding : 1em 1em 4em;
6
+ position : relative;
6
7
 
7
8
  &:not(:nth-child(2)) {
8
9
  margin-top: 1em;
@@ -14,5 +14,7 @@
14
14
 
15
15
  .portal-blog-toolbar {
16
16
  background-color: var(--portal-blog-toolbar-background-color);
17
+ box-shadow : 0 5px 10px rgba(0, 0, 0, 0.3);
18
+ z-index : 2;
17
19
  }
18
20
  }
@@ -0,0 +1,158 @@
1
+ .portal-examples-list.neo-list {
2
+ transition: padding var(--portal-transition-duration) ease-out;
3
+
4
+ .neo-list-item {
5
+ cursor : default;
6
+ display : flex;
7
+ max-width : 800px;
8
+ margin : 0 auto;
9
+ overflow : hidden;
10
+ padding : 0;
11
+ transition : height var(--portal-transition-duration) ease-out, margin-bottom var(--portal-transition-duration) ease-out;
12
+ white-space : normal;
13
+ width : 100%;
14
+
15
+ .content {
16
+ flex: 1;
17
+ }
18
+
19
+ .neo-absolute {
20
+ position: absolute;
21
+ }
22
+
23
+ .neo-full-size {
24
+ height: 100%;
25
+ width : 100%;
26
+ }
27
+
28
+ .neo-github-image {
29
+ color : #ddd;
30
+ text-decoration : none;
31
+ transition-duration : var(--portal-transition-duration);
32
+ transition-property : font-size, height, width;
33
+ transition-timing-function: ease-out;
34
+ }
35
+
36
+ .neo-inner-content {
37
+ color : #fff;
38
+ display : inline-block;
39
+ margin-left: 10px;
40
+ text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
41
+ transition : font-size var(--portal-transition-duration) ease-out;
42
+ }
43
+
44
+ .neo-inner-details {
45
+ transition: line-height var(--portal-transition-duration) ease-out;
46
+ }
47
+
48
+ .neo-item-bottom-position {
49
+ bottom : 0;
50
+ left : 0;
51
+ transition: margin var(--portal-transition-duration) ease-out;
52
+ }
53
+
54
+ .neo-relative {
55
+ position: relative;
56
+ }
57
+
58
+ .neo-title {
59
+ color : #fff;
60
+ font-weight : 600;
61
+ line-height : 1;
62
+ text-decoration: none;
63
+ text-shadow : 1px 1px 1px #000, 1px 1px 1px #fff;
64
+ transition : color 250ms ease-out;
65
+
66
+ &:hover {
67
+ color: #5d83a7
68
+ }
69
+ }
70
+
71
+ .neo-top-20 {
72
+ align-items: center;
73
+ display : flex;
74
+ transition : margin var(--portal-transition-duration) ease-out;
75
+ }
76
+
77
+ .preview-image {
78
+ background-blend-mode: overlay;
79
+ background-size : cover;
80
+ height : 100%;
81
+ }
82
+ }
83
+
84
+ @media (max-height: 400px), (max-width: 600px) {
85
+ padding: 5px 5px 0 5px;
86
+
87
+ .neo-github-image {
88
+ font-size: 30px;
89
+ height : 30px;
90
+ width : 30px;
91
+ }
92
+
93
+ .neo-inner-content {
94
+ font-size: 12px;
95
+ }
96
+
97
+ .neo-inner-details {
98
+ line-height: 16px;
99
+ }
100
+
101
+ .neo-item-bottom-position {
102
+ margin: 9px 12px;
103
+ right : 15%;
104
+ }
105
+
106
+ .neo-list-item {
107
+ border-radius: 10px;
108
+ height : 200px;
109
+ margin-bottom: 5px;
110
+ }
111
+
112
+ .neo-title {
113
+ font-size: 20px;
114
+ }
115
+
116
+ .neo-top-20 {
117
+ margin-top: 10px;
118
+ }
119
+ }
120
+
121
+ @media (min-height: 401px) and (min-width: 601px) {
122
+ padding: 10px 10px 0 10px;
123
+
124
+ .neo-github-image {
125
+ font-size: 44px;
126
+ height : 44px;
127
+ width : 44px;
128
+ }
129
+
130
+ .neo-inner-content {
131
+ font-size: 16px;
132
+ }
133
+
134
+ .neo-inner-details {
135
+ font-size : 16px;
136
+ line-height: 22px;
137
+ }
138
+
139
+ .neo-item-bottom-position {
140
+ margin: 30px 40px;
141
+ right : 30%;
142
+ }
143
+
144
+ .neo-list-item {
145
+ border-radius: 20px;
146
+ height : 400px;
147
+ margin-bottom: 10px;
148
+ }
149
+
150
+ .neo-title {
151
+ font-size: 34px;
152
+ }
153
+
154
+ .neo-top-20 {
155
+ margin-top: 20px;
156
+ }
157
+ }
158
+ }
@@ -0,0 +1,36 @@
1
+ .portal-examples-tab-container.neo-tab-container {
2
+
3
+ }
4
+
5
+ // must not be inside the root class to honor the styling for tab button drag&drop
6
+ .portal-examples-tab-header-toolbar.neo-tab-header-toolbar {
7
+ background-color: #8BA6FF;
8
+
9
+ .neo-tab-header-button.neo-button {
10
+ .neo-button-glyph {
11
+ color: #fff;
12
+ }
13
+
14
+ .neo-button-ripple {
15
+ background-color: #3E63DD;
16
+ }
17
+
18
+ &.neo-button.pressed .neo-tab-button-indicator {
19
+ background-color: #3E63DD;
20
+ }
21
+
22
+ .neo-button-text {
23
+ color: #fff;
24
+ }
25
+
26
+ &.pressed {
27
+ .neo-button-glyph {
28
+ color: #3E63DD;
29
+ }
30
+ }
31
+ }
32
+
33
+ .neo-tab-strip .neo-active-tab-indicator {
34
+ background-color: #3E63DD;
35
+ }
36
+ }
@@ -73,16 +73,20 @@
73
73
  .neo-button-ripple {
74
74
  background-color: var(--button-ripple-background-color);
75
75
  border-radius : 50%;
76
+ padding : var(--button-padding);
76
77
  opacity : 0;
77
78
  position : absolute;
78
79
  transform : scale(4);
79
80
  }
80
81
 
81
82
  .neo-button-ripple-wrapper {
83
+ border-radius : var(--button-border-radius);
82
84
  height : 100%;
85
+ left : 0;
83
86
  overflow : hidden;
84
87
  pointer-events: none;
85
88
  position : absolute;
89
+ top : 0;
86
90
  width : 100%;
87
91
  }
88
92
 
@@ -16,5 +16,9 @@
16
16
  &.neo-selected {
17
17
  box-shadow: 0 0 0 0.25em currentColor;
18
18
  }
19
+
20
+ &[aria-selected="true"] {
21
+ outline: none !important;
22
+ }
19
23
  }
20
24
  }
@@ -1,4 +1,4 @@
1
- .neo-calendars-list.neo-list {
1
+ .neo-calendars-list {
2
2
  .neo-checkboxfield {
3
3
  align-items: center;
4
4
  display : flex;
@@ -64,6 +64,7 @@
64
64
 
65
65
  .neo-edit-icon {
66
66
  color : var(--calendars-list-edit-icon-color);
67
+ cursor : pointer;
67
68
  font-size : 16px;
68
69
  font-weight : 600;
69
70
  height : 1em;
@@ -107,6 +107,6 @@
107
107
 
108
108
  // A focusable, but zero-sized element used to grab and redirect focus in focus-trapped modals
109
109
  .neo-focus-trap {
110
- position : absolute;
111
- clip : rect(0, 0, 0, 0);
110
+ clip : rect(0, 0, 0, 0);
111
+ position: absolute;
112
112
  }
@@ -69,9 +69,9 @@
69
69
  }
70
70
 
71
71
  &[aria-selected="true"] {
72
- background-color: var(--list-item-background-color-selected) !important;
73
- color : var(--list-item-color-selected) !important;
74
- cursor : default !important;
72
+ background-color: var(--list-item-background-color-selected);
73
+ color : var(--list-item-color-selected);
74
+ cursor : default;
75
75
  }
76
76
 
77
77
  .neo-highlight-search {
@@ -45,7 +45,7 @@
45
45
  --button-background-gradient-start : #434749;
46
46
  --button-opacity-disabled : inherit;
47
47
  --button-outline-active : none;
48
- --button-ripple-background-color : transparent;
48
+ --button-ripple-background-color : #8BA6FF;
49
49
  --button-use-gradients : false;
50
50
 
51
51
  // {module: Button; ui: --secondary} ––––––––––––––––––––––––––––––––––––––––––––––––––
@@ -78,7 +78,7 @@
78
78
  --button-secondary-badge-background-color : transparent;
79
79
  --button-secondary-badge-color : transparent;
80
80
  --button-secondary-opacity-disabled : none;
81
- --button-secondary-ripple-background-color : inherit;
81
+ --button-secondary-ripple-background-color : #8BA6FF;
82
82
 
83
83
 
84
84
  // {module: Button; ui: --ghost} –––––––––––––––––––––––––––––––––––––––––––––––––––––--
@@ -111,7 +111,7 @@
111
111
  --button-ghost-badge-background-color : transparent;
112
112
  --button-ghost-badge-color : transparent;
113
113
  --button-ghost-opacity-disabled : inherit;
114
- --button-ghost-ripple-background-color : inherit;
114
+ --button-ghost-ripple-background-color : #8BA6FF;
115
115
 
116
116
 
117
117
  // {module: Button; ui: --tertiary} –––––––––––––––––––––––––––––––––––––––––––––––––––
@@ -262,12 +262,12 @@ const DefaultConfig = {
262
262
  useVdomWorker: true,
263
263
  /**
264
264
  * buildScripts/injectPackageVersion.mjs will update this value
265
- * @default '7.1.0'
265
+ * @default '7.3.0'
266
266
  * @memberOf! module:Neo
267
267
  * @name config.version
268
268
  * @type String
269
269
  */
270
- version: '7.1.0'
270
+ version: '7.3.0'
271
271
  };
272
272
 
273
273
  Object.assign(DefaultConfig, {
@@ -323,11 +323,12 @@ class MainContainer extends Container {
323
323
  let me = this;
324
324
 
325
325
  me._editCalendarContainer = value = Neo.create({
326
- module : EditCalendarContainer,
327
- appName: me.appName,
328
- model : {parent: me.getModel()},
329
- owner : me,
330
- width : 250,
326
+ module : EditCalendarContainer,
327
+ appName : me.appName,
328
+ model : {parent: me.getModel()},
329
+ owner : me,
330
+ width : 250,
331
+ windowId: me.windowId,
331
332
  ...me.editCalendarContainerConfig
332
333
  })
333
334
  }
@@ -345,11 +346,12 @@ class MainContainer extends Container {
345
346
  let me = this;
346
347
 
347
348
  me._editEventContainer = value = Neo.create({
348
- module : EditEventContainer,
349
- appName: me.appName,
350
- model : {parent: me.getModel()},
351
- owner : me,
352
- width : 250,
349
+ module : EditEventContainer,
350
+ appName : me.appName,
351
+ model : {parent: me.getModel()},
352
+ owner : me,
353
+ width : 250,
354
+ windowId: me.windowId,
353
355
  ...me.editEventContainerConfig
354
356
  })
355
357
  }
@@ -499,6 +501,7 @@ class MainContainer extends Container {
499
501
  me.items[1].add({
500
502
  module : module.default,
501
503
  collapsed,
504
+ minWidth : me.settingsContainerWidth,
502
505
  removeInactiveCards: me.removeInactiveCards,
503
506
  style : {marginRight: !collapsed ? '0' : `-${me.settingsContainerWidth}px`},
504
507
  width : me.settingsContainerWidth,
@@ -64,7 +64,9 @@ class EditContainer extends FormContainer {
64
64
  afterSetMounted(value, oldValue) {
65
65
  super.afterSetMounted(value, oldValue);
66
66
 
67
- value && this.getField('name').focus();
67
+ value && this.getField('name').then(field => {
68
+ field.focus()
69
+ })
68
70
  }
69
71
 
70
72
  /**
@@ -116,7 +118,6 @@ class EditContainer extends FormContainer {
116
118
  if (record) {
117
119
  me.colorsList = Neo.create({
118
120
  module : ColorsList,
119
- appName : me.appName,
120
121
  listeners : {change: me.onColorChange, scope: me},
121
122
  parentId : me.parentId,
122
123
  value : record.color,
@@ -66,6 +66,7 @@ class List extends ComponentList {
66
66
  appName : me.appName,
67
67
  listeners: {change: me.onCheckboxChange, scope: me},
68
68
  parentId : me.id,
69
+ windowId : me.windowId,
69
70
  ...me.itemDefaults,
70
71
  ...config
71
72
  })
@@ -359,19 +359,21 @@ class Component extends BaseComponent {
359
359
  import('./plugin/DragDrop.mjs'),
360
360
  import('./plugin/EventResizable.mjs')
361
361
  ]).then(modules => {
362
- let me = this,
363
- {appName} = me,
364
- plugins = me.plugins || [];
362
+ let me = this,
363
+ {appName, windowId} = me,
364
+ plugins = me.plugins || [];
365
365
 
366
366
  plugins.push({
367
367
  module : modules[0].default,
368
368
  appName,
369
+ windowId,
369
370
  ...me.pluginDragDropConfig
370
371
  }, {
371
372
  module : modules[1].default,
372
373
  appName,
373
374
  delegationCls: 'neo-event',
374
375
  directions : ['b', 't'],
376
+ windowId,
375
377
  ...me.pluginEventResizableConfig
376
378
  });
377
379