neo.mjs 4.2.7 → 4.3.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.
Files changed (86) hide show
  1. package/apps/realworld/view/HomeComponent.mjs +3 -6
  2. package/apps/realworld/view/article/CommentComponent.mjs +3 -6
  3. package/apps/realworld/view/article/Component.mjs +4 -7
  4. package/apps/realworld/view/article/CreateCommentComponent.mjs +3 -6
  5. package/apps/realworld/view/article/CreateComponent.mjs +3 -6
  6. package/apps/realworld/view/article/PreviewComponent.mjs +2 -5
  7. package/apps/realworld/view/article/TagListComponent.mjs +2 -5
  8. package/apps/realworld/view/user/ProfileComponent.mjs +3 -6
  9. package/apps/realworld/view/user/SettingsComponent.mjs +3 -6
  10. package/apps/realworld/view/user/SignUpComponent.mjs +2 -5
  11. package/apps/realworld2/view/article/PreviewComponent.mjs +2 -5
  12. package/apps/realworld2/view/article/TagListComponent.mjs +2 -5
  13. package/apps/website/view/MainContainer.mjs +1 -0
  14. package/apps/website/view/MainContainerController.mjs +7 -0
  15. package/apps/website/view/blog/List.mjs +41 -3
  16. package/apps/website/view/examples/List.mjs +28 -3
  17. package/apps/website/view/examples/TabContainer.mjs +7 -4
  18. package/buildScripts/addConfig.mjs +1 -0
  19. package/examples/ConfigurationViewport.mjs +1 -1
  20. package/examples/button/base/MainContainer.mjs +75 -12
  21. package/examples/tab/container/MainContainer.mjs +3 -3
  22. package/examples/todoList/version1/MainComponent.mjs +3 -6
  23. package/package.json +1 -1
  24. package/resources/scss/src/apps/website/blog/List.scss +2 -2
  25. package/resources/scss/src/apps/website/examples/List.scss +2 -2
  26. package/resources/scss/src/button/Base.scss +41 -3
  27. package/resources/scss/src/calendar/view/calendars/ColorsList.scss +5 -2
  28. package/resources/scss/src/layout/Card.scss +6 -10
  29. package/resources/scss/src/list/Base.scss +11 -3
  30. package/resources/scss/src/tab/Container.scss +3 -4
  31. package/resources/scss/src/tab/header/Button.scss +6 -1
  32. package/resources/scss/src/table/Container.scss +3 -1
  33. package/resources/scss/src/table/header/Button.scss +21 -1
  34. package/resources/scss/src/tree/List.scss +11 -1
  35. package/resources/scss/theme-dark/button/Base.scss +7 -1
  36. package/resources/scss/theme-dark/table/header/Button.scss +11 -9
  37. package/resources/scss/theme-light/button/Base.scss +7 -1
  38. package/resources/scss/theme-light/table/header/Button.scss +11 -9
  39. package/src/button/Base.mjs +151 -43
  40. package/src/calendar/view/YearComponent.mjs +3 -6
  41. package/src/calendar/view/calendars/ColorsList.mjs +18 -0
  42. package/src/calendar/view/calendars/EditContainer.mjs +7 -9
  43. package/src/calendar/view/month/Component.mjs +3 -6
  44. package/src/calendar/view/week/Component.mjs +3 -6
  45. package/src/calendar/view/week/plugin/DragDrop.mjs +6 -9
  46. package/src/component/Base.mjs +123 -58
  47. package/src/component/Carousel.mjs +5 -17
  48. package/src/component/Chip.mjs +2 -7
  49. package/src/component/Circle.mjs +4 -7
  50. package/src/component/DateSelector.mjs +5 -8
  51. package/src/component/Gallery.mjs +4 -7
  52. package/src/component/Helix.mjs +2 -5
  53. package/src/component/Splitter.mjs +3 -6
  54. package/src/component/mwc/Button.mjs +4 -7
  55. package/src/component/mwc/TextField.mjs +2 -5
  56. package/src/draggable/DropZone.mjs +3 -7
  57. package/src/draggable/list/DragZone.mjs +6 -9
  58. package/src/draggable/toolbar/DragZone.mjs +5 -8
  59. package/src/form/Fieldset.mjs +3 -6
  60. package/src/form/field/CheckBox.mjs +2 -5
  61. package/src/form/field/Range.mjs +3 -6
  62. package/src/form/field/Text.mjs +2 -5
  63. package/src/form/field/trigger/Base.mjs +4 -12
  64. package/src/grid/header/Button.mjs +3 -6
  65. package/src/layout/Base.mjs +5 -7
  66. package/src/layout/Card.mjs +32 -35
  67. package/src/layout/Fit.mjs +11 -11
  68. package/src/layout/Flexbox.mjs +28 -36
  69. package/src/layout/HBox.mjs +1 -1
  70. package/src/layout/VBox.mjs +1 -1
  71. package/src/list/Base.mjs +31 -11
  72. package/src/plugin/Resizable.mjs +3 -6
  73. package/src/selection/grid/CellModel.mjs +3 -6
  74. package/src/selection/grid/ColumnModel.mjs +3 -6
  75. package/src/selection/grid/RowModel.mjs +3 -6
  76. package/src/selection/table/CellModel.mjs +3 -6
  77. package/src/selection/table/ColumnModel.mjs +3 -6
  78. package/src/selection/table/RowModel.mjs +3 -6
  79. package/src/sitemap/Component.mjs +3 -6
  80. package/src/tab/Container.mjs +1 -1
  81. package/src/tab/header/Button.mjs +13 -2
  82. package/src/table/Container.mjs +11 -3
  83. package/src/table/header/Button.mjs +9 -5
  84. package/src/tooltip/Base.mjs +5 -15
  85. package/src/tree/List.mjs +4 -0
  86. package/src/util/KeyNavigation.mjs +8 -13
@@ -81,28 +81,20 @@ class Base extends Component {
81
81
  construct(config) {
82
82
  super.construct(config);
83
83
 
84
- let me = this,
85
- domListeners = me.domListeners || [],
86
- fieldListeners;
84
+ let me = this;
87
85
 
88
- domListeners.push(
86
+ me.addDomListeners(
89
87
  {click: me.onTriggerClick, scope: me}
90
88
  );
91
89
 
92
- me.domListeners = domListeners;
93
-
94
90
  if (me.showOnHover) {
95
91
  me.hidden = true;
96
92
 
97
93
  me.field.on('constructed', () => {
98
- fieldListeners = me.field.domListeners || [];
99
-
100
- fieldListeners.push(
94
+ me.field.addDomListeners([
101
95
  {mouseenter: me.onMouseEnter, scope: me},
102
96
  {mouseleave: me.onMouseLeave, scope: me}
103
- );
104
-
105
- me.field.domListeners = fieldListeners;
97
+ ]);
106
98
  }, me);
107
99
  }
108
100
  }
@@ -68,15 +68,12 @@ class Button extends BaseButton {
68
68
  construct(config) {
69
69
  super.construct(config);
70
70
 
71
- let me = this,
72
- domListeners = me.domListeners;
71
+ let me = this;
73
72
 
74
- domListeners.push({
73
+ me.addDomListeners({
75
74
  click: me.onButtonClick,
76
75
  scope: me
77
- })
78
-
79
- me.domListeners = domListeners;
76
+ });
80
77
  }
81
78
 
82
79
  /**
@@ -44,33 +44,31 @@ class Base extends CoreBase {
44
44
  * @protected
45
45
  */
46
46
  afterSetAppName(value, oldValue) {
47
- if (value) {
48
- Neo.currentWorker.insertThemeFiles(value, this.__proto__);
49
- }
47
+ value && Neo.currentWorker.insertThemeFiles(value, this.__proto__);
50
48
  }
51
49
 
52
50
  /**
53
- * Placeholder Method
51
+ * Placeholder method
54
52
  * @param {Neo.component.Base} item
55
53
  * @protected
56
54
  */
57
55
  applyChildAttributes(item) {}
58
56
 
59
57
  /**
60
- * Placeholder Method
58
+ * Placeholder method
61
59
  * @protected
62
60
  */
63
61
  applyRenderAttributes() {}
64
62
 
65
63
  /**
66
- * Placeholder Method
64
+ * Placeholder method
67
65
  * @param {Neo.component.Base} item
68
66
  * @protected
69
67
  */
70
68
  removeChildAttributes(item) {}
71
69
 
72
70
  /**
73
- * Placeholder Method
71
+ * Placeholder method
74
72
  * @protected
75
73
  */
76
74
  removeRenderAttributes() {}
@@ -9,16 +9,16 @@ class Card extends Base {
9
9
  static getStaticConfig() {return {
10
10
  /*
11
11
  * The name of the CSS class for an active item inside the card layout
12
- * @member activeItemCls
12
+ * @member {String} activeItemCls='neo-active-item'
13
13
  * @static
14
14
  */
15
- activeItemCls: 'active-item',
15
+ activeItemCls: 'neo-active-item',
16
16
  /*
17
17
  * The name of the CSS class for an inactive item inside the card layout
18
- * @member inactiveItemCls
18
+ * @member {String} inactiveItemCls='neo-inactive-item'
19
19
  * @static
20
20
  */
21
- inactiveItemCls: 'inactive-item',
21
+ inactiveItemCls: 'neo-inactive-item',
22
22
  /*
23
23
  * The name of the CSS class for an item inside the card layout
24
24
  * @member itemCls
@@ -67,7 +67,7 @@ class Card extends Base {
67
67
  sCfg = me.getStaticConfig(),
68
68
  needsUpdate = false,
69
69
  removeInactiveCards = me.removeInactiveCards,
70
- cls, i, isActiveIndex, item, items, len, module, proto, vdom;
70
+ i, isActiveIndex, item, items, len, module, proto, vdom, wrapperCls;
71
71
 
72
72
  if (Neo.isNumber(value) && container) {
73
73
  items = container.items;
@@ -94,35 +94,32 @@ class Card extends Base {
94
94
  module = item.module;
95
95
 
96
96
  if (isActiveIndex && !module?.isClass && Neo.isFunction(module)) {
97
- module = await module();
98
- module = module.default;
99
- proto = module.prototype;
100
- cls = item.cls || proto.constructor.config.cls || [];
97
+ module = await module();
98
+ module = module.default;
99
+ proto = module.prototype;
100
+ wrapperCls = item.wrapperCls || proto.constructor.config.wrapperCls || [];
101
101
 
102
- item.className = proto.className;
103
- item.cls = [...cls, sCfg.itemCls]
104
- item.module = module;
102
+ item.className = proto.className;
103
+ item.wrapperCls = [...wrapperCls, sCfg.itemCls];
104
+ item.module = module;
105
105
 
106
106
  delete item.vdom;
107
107
 
108
108
  items[i] = item = Neo.create(item);
109
109
 
110
- container.fire('cardLoaded', {
111
- item: item
112
- });
110
+ container.fire('cardLoaded', {item});
113
111
 
114
112
  vdom.cn[i] = item.vdom;
115
113
  }
116
114
 
117
115
  if (item instanceof Neo.core.Base) {
118
- cls = item.cls;
116
+ wrapperCls = item.wrapperCls;
119
117
 
120
- NeoArray.remove(cls, isActiveIndex ? sCfg.inactiveItemCls : sCfg.activeItemCls);
121
- NeoArray.add( cls, isActiveIndex ? sCfg.activeItemCls : sCfg.inactiveItemCls);
118
+ NeoArray.remove(wrapperCls, isActiveIndex ? sCfg.inactiveItemCls : sCfg.activeItemCls);
119
+ NeoArray.add( wrapperCls, isActiveIndex ? sCfg.activeItemCls : sCfg.inactiveItemCls);
122
120
 
123
121
  if (removeInactiveCards || needsUpdate) {
124
- item._cls = cls; // silent update
125
- item.getVdomRoot().cls = cls;
122
+ item.wrapperCls = wrapperCls;
126
123
 
127
124
  if (isActiveIndex) {
128
125
  delete item.vdom.removeDom;
@@ -132,7 +129,7 @@ class Card extends Base {
132
129
  item.vdom.removeDom = true;
133
130
  }
134
131
  } else {
135
- item.cls = cls;
132
+ item.wrapperCls = wrapperCls;
136
133
  }
137
134
  }
138
135
  }
@@ -153,18 +150,18 @@ class Card extends Base {
153
150
  let me = this,
154
151
  isActiveIndex = me.activeIndex === index,
155
152
  sCfg = me.getStaticConfig(),
156
- childCls = item.cls,
153
+ childCls = item.wrapperCls,
157
154
  vdom = item.vdom;
158
155
 
159
156
  NeoArray.add(childCls, sCfg.itemCls);
160
157
  NeoArray.add(childCls, isActiveIndex ? sCfg.activeItemCls : sCfg.inactiveItemCls);
161
158
 
162
159
  if (!keepInDom && me.removeInactiveCards) {
163
- item._cls = childCls; // silent update
164
- vdom.removeDom = !isActiveIndex;
160
+ item.wrapperCls = childCls;
161
+ vdom.removeDom = !isActiveIndex;
165
162
  item.vdom = vdom;
166
163
  } else {
167
- item.cls = childCls;
164
+ item.wrapperCls = childCls;
168
165
  }
169
166
  }
170
167
 
@@ -172,17 +169,17 @@ class Card extends Base {
172
169
  * Applies CSS classes to the container this layout is bound to
173
170
  */
174
171
  applyRenderAttributes() {
175
- let me = this,
176
- container = Neo.getComponent(me.containerId),
177
- cls = container?.cls || [];
172
+ let me = this,
173
+ container = Neo.getComponent(me.containerId),
174
+ wrapperCls = container?.wrapperCls || [];
178
175
 
179
176
  if (!container) {
180
177
  Neo.logError('layout.Card: applyRenderAttributes -> container not yet created', me.containerId);
181
178
  }
182
179
 
183
- NeoArray.add(cls, 'neo-layout-card');
180
+ NeoArray.add(wrapperCls, 'neo-layout-card');
184
181
 
185
- container.cls = cls;
182
+ container.wrapperCls = wrapperCls;
186
183
  }
187
184
 
188
185
  /**
@@ -190,17 +187,17 @@ class Card extends Base {
190
187
  * Gets called when switching to a different layout.
191
188
  */
192
189
  removeRenderAttributes() {
193
- let me = this,
194
- container = Neo.getComponent(me.containerId),
195
- cls = container?.cls || [];
190
+ let me = this,
191
+ container = Neo.getComponent(me.containerId),
192
+ wrapperCls = container?.wrapperCls || [];
196
193
 
197
194
  if (!container) {
198
195
  Neo.logError('layout.Card: removeRenderAttributes -> container not yet created', me.containerId);
199
196
  }
200
197
 
201
- NeoArray.remove(cls, 'neo-layout-card');
198
+ NeoArray.remove(wrapperCls, 'neo-layout-card');
202
199
 
203
- container.cls = cls;
200
+ container.wrapperCls = wrapperCls;
204
201
  }
205
202
  }
206
203
 
@@ -26,7 +26,7 @@ class Fit extends Base {
26
26
  */
27
27
  applyChildAttributes(child, index) {
28
28
  if (!child.ignoreLayout) {
29
- child.cls = NeoArray.union(child.cls, 'neo-layout-fit-item');
29
+ child.wrapperCls = NeoArray.union(child.wrapperCls, 'neo-layout-fit-item');
30
30
  }
31
31
  }
32
32
 
@@ -34,17 +34,17 @@ class Fit extends Base {
34
34
  * Applies CSS classes to the container this layout is bound to
35
35
  */
36
36
  applyRenderAttributes() {
37
- let me = this,
38
- container = Neo.getComponent(me.containerId),
39
- cls = container?.cls || [];
37
+ let me = this,
38
+ container = Neo.getComponent(me.containerId),
39
+ wrapperCls = container?.wrapperCls || [];
40
40
 
41
41
  if (!container) {
42
42
  Neo.logError('layout.Fit: applyRenderAttributes -> container not yet created', me.containerId);
43
43
  }
44
44
 
45
- NeoArray.add(cls, 'neo-layout-fit');
45
+ NeoArray.add(wrapperCls, 'neo-layout-fit');
46
46
 
47
- container.cls = cls;
47
+ container.wrapperCls = wrapperCls;
48
48
  }
49
49
 
50
50
  /**
@@ -52,17 +52,17 @@ class Fit extends Base {
52
52
  * Gets called when switching to a different layout.
53
53
  */
54
54
  removeRenderAttributes() {
55
- let me = this,
56
- container = Neo.getComponent(me.containerId),
57
- cls = container?.cls || [];
55
+ let me = this,
56
+ container = Neo.getComponent(me.containerId),
57
+ wrapperCls = container?.wrapperCls || [];
58
58
 
59
59
  if (!container) {
60
60
  Neo.logError('layout.Fit: removeRenderAttributes -> container not yet created', me.containerId);
61
61
  }
62
62
 
63
- NeoArray.remove(cls, 'neo-layout-fit');
63
+ NeoArray.remove(wrapperCls, 'neo-layout-fit');
64
64
 
65
- container.cls = cls;
65
+ container.wrapperCls = wrapperCls;
66
66
  }
67
67
  }
68
68
 
@@ -130,31 +130,23 @@ class Flexbox extends Base {
130
130
  * Applies CSS classes to the container this layout is bound to
131
131
  */
132
132
  applyRenderAttributes() {
133
- let me = this,
134
- container = Neo.getComponent(me.containerId),
135
- prefix = me.prefix,
136
- cls = container?.cls || [];
133
+ let me = this,
134
+ container = Neo.getComponent(me.containerId),
135
+ prefix = me.prefix,
136
+ wrapperCls = container?.wrapperCls || [];
137
137
 
138
138
  if (!container) {
139
139
  Neo.logError('layout.Flexbox: applyRenderAttributes -> container not yet created', me.containerId);
140
140
  }
141
141
 
142
- NeoArray.add(cls, prefix + 'container');
142
+ NeoArray.add(wrapperCls, prefix + 'container');
143
143
 
144
- if (me.align) {
145
- NeoArray.add(cls, prefix + 'align-' + me.align);
146
- }
147
- if (me.direction) {
148
- NeoArray.add(cls, prefix + 'direction-' + me.direction);
149
- }
150
- if (me.pack) {
151
- NeoArray.add(cls, prefix + 'pack-' + me.pack);
152
- }
153
- if (me.wrap) {
154
- NeoArray.add(cls, prefix + 'wrap-' + me.wrap);
155
- }
144
+ me.align && NeoArray.add(wrapperCls, prefix + 'align-' + me.align);
145
+ me.direction && NeoArray.add(wrapperCls, prefix + 'direction-' + me.direction);
146
+ me.pack && NeoArray.add(wrapperCls, prefix + 'pack-' + me.pack);
147
+ me.wrap && NeoArray.add(wrapperCls, prefix + 'wrap-' + me.wrap);
156
148
 
157
- container.cls = cls;
149
+ container.wrapperCls = wrapperCls;
158
150
  }
159
151
 
160
152
  /**
@@ -220,31 +212,31 @@ class Flexbox extends Base {
220
212
  * @protected
221
213
  */
222
214
  removeRenderAttributes() {
223
- let me = this,
224
- container = Neo.getComponent(me.containerId),
225
- prefix = me.prefix,
226
- cls = container?.cls || [];
215
+ let me = this,
216
+ container = Neo.getComponent(me.containerId),
217
+ prefix = me.prefix,
218
+ wrapperCls = container?.wrapperCls || [];
227
219
 
228
220
  if (!container) {
229
221
  Neo.logError('layout.Flexbox: removeRenderAttributes -> container not yet created', me.containerId);
230
222
  }
231
223
 
232
- NeoArray.remove(cls, prefix + 'container');
224
+ NeoArray.remove(wrapperCls, prefix + 'container');
233
225
 
234
226
  if (me.align) {
235
- NeoArray.remove(cls, prefix + 'align-' + me.align);
227
+ NeoArray.remove(wrapperCls, prefix + 'align-' + me.align);
236
228
  }
237
229
  if (me.direction) {
238
- NeoArray.remove(cls, prefix + 'direction-' + me.direction);
230
+ NeoArray.remove(wrapperCls, prefix + 'direction-' + me.direction);
239
231
  }
240
232
  if (me.pack) {
241
- NeoArray.remove(cls, prefix + 'pack-' + me.pack);
233
+ NeoArray.remove(wrapperCls, prefix + 'pack-' + me.pack);
242
234
  }
243
235
  if (me.wrap) {
244
- NeoArray.remove(cls, prefix + 'wrap-' + me.wrap);
236
+ NeoArray.remove(wrapperCls, prefix + 'wrap-' + me.wrap);
245
237
  }
246
238
 
247
- container.cls = cls;
239
+ container.wrapperCls = wrapperCls;
248
240
  }
249
241
 
250
242
  /**
@@ -268,26 +260,26 @@ class Flexbox extends Base {
268
260
  }
269
261
 
270
262
  /**
271
- * Updates the Container CSS cls
263
+ * Updates the Container CSS wrapperCls
272
264
  * @param {String|null} value
273
265
  * @param {String|null} oldValue
274
266
  * @param {String} propertyName
275
267
  * @protected
276
268
  */
277
269
  updateInputValue(value, oldValue, propertyName) {
278
- let me = this,
279
- container = Neo.getComponent(me.containerId),
280
- prefix = me.prefix,
281
- cls = container?.cls;
270
+ let me = this,
271
+ container = Neo.getComponent(me.containerId),
272
+ prefix = me.prefix,
273
+ wrapperCls = container?.wrapperCls;
282
274
 
283
275
  if (container?.rendered) {
284
- NeoArray.remove(cls, prefix + propertyName + '-' + oldValue);
276
+ NeoArray.remove(wrapperCls, prefix + propertyName + '-' + oldValue);
285
277
 
286
278
  if (value !== null) {
287
- NeoArray.add(cls, prefix + propertyName + '-' + value);
279
+ NeoArray.add(wrapperCls, prefix + propertyName + '-' + value);
288
280
  }
289
281
 
290
- container.cls = cls;
282
+ container.wrapperCls = wrapperCls;
291
283
  }
292
284
  }
293
285
  }
@@ -25,7 +25,7 @@ class HBox extends Flexbox {
25
25
 
26
26
  /**
27
27
  * Applies the flex value to an item of the container this layout is bound to
28
- * @param {Object} item
28
+ * @param {Neo.component.Base} item
29
29
  */
30
30
  applyChildAttributes(item) {
31
31
  // Do not apply flex if fixed width
@@ -25,7 +25,7 @@ class VBox extends Flexbox {
25
25
 
26
26
  /**
27
27
  * Applies the flex value to an item of the container this layout is bound to
28
- * @param {Object} item
28
+ * @param {Neo.component.Base} item
29
29
  */
30
30
  applyChildAttributes(item) {
31
31
  // Do not apply flex if fixed height
package/src/list/Base.mjs CHANGED
@@ -30,9 +30,9 @@ class Base extends Component {
30
30
  */
31
31
  autoDestroyStore: true,
32
32
  /**
33
- * @member {String[]} cls=['neo-list-container','neo-list']
33
+ * @member {String[]} cls=['neo-list']
34
34
  */
35
- cls: ['neo-list-container', 'neo-list'],
35
+ cls: ['neo-list'],
36
36
  /**
37
37
  * @member {Boolean} disableSelection_=false
38
38
  */
@@ -106,7 +106,11 @@ class Base extends Component {
106
106
  */
107
107
  useCheckBoxes_: false,
108
108
  /**
109
- * @member {Object} _vdom={tag:'ul',cn:[]}
109
+ * @member {Boolean} useWrapperNode_=false
110
+ */
111
+ useWrapperNode_: false,
112
+ /**
113
+ * @member {Object} _vdom
110
114
  */
111
115
  _vdom:
112
116
  {tag: 'ul', cn: []}
@@ -118,14 +122,12 @@ class Base extends Component {
118
122
  construct(config) {
119
123
  super.construct(config);
120
124
 
121
- let me = this,
122
- domListeners = me.domListeners;
125
+ let me = this;
123
126
 
124
- domListeners.push({
125
- click: {fn: me.onClick, scope: me}
127
+ me.addDomListeners({
128
+ click: me.onClick,
129
+ scope: me
126
130
  });
127
-
128
- me.domListeners = domListeners;
129
131
  }
130
132
 
131
133
  /**
@@ -225,6 +227,24 @@ class Base extends Component {
225
227
  me.cls = cls;
226
228
  }
227
229
 
230
+ /**
231
+ * Triggered after the useWrapperNode config got changed
232
+ * @param {Boolean} value
233
+ * @param {Boolean} oldValue
234
+ * @protected
235
+ */
236
+ afterSetUseWrapperNode(value, oldValue) {
237
+ let me = this,
238
+ cls = me.cls,
239
+ wrapperCls = me.wrapperCls;
240
+
241
+ NeoArray[value ? 'add' : 'remove'](cls, 'neo-use-wrapper-node');
242
+ NeoArray[value ? 'add' : 'remove'](wrapperCls, 'neo-list-wrapper');
243
+
244
+ me.wrapperCls = wrapperCls;
245
+ me.cls = cls;
246
+ }
247
+
228
248
  /**
229
249
  * Triggered before the selectionModel config gets changed.
230
250
  * @param {Neo.selection.Model} value
@@ -273,7 +293,7 @@ class Base extends Component {
273
293
 
274
294
  item = {
275
295
  tag : me.itemTagName,
276
- cls : cls,
296
+ cls,
277
297
  id : itemId,
278
298
  tabIndex: -1
279
299
  };
@@ -343,7 +363,7 @@ class Base extends Component {
343
363
  */
344
364
  createItems(silent=false) {
345
365
  let me = this,
346
- vdom = me.vdom,
366
+ vdom = me.getVdomRoot(),
347
367
  listItem;
348
368
 
349
369
  if (!(me.animate && !me.getPlugin('animate'))) {
@@ -175,10 +175,9 @@ class Resizable extends Base {
175
175
  construct(config) {
176
176
  super.construct(config);
177
177
 
178
- let me = this,
179
- domListeners = me.owner.domListeners;
178
+ let me = this;
180
179
 
181
- domListeners.push(
180
+ me.owner.addDomListeners([
182
181
  {'drag:end' : me.onDragEnd, scope: me, delegate: '.neo-resizable'},
183
182
  {'drag:move' : me.onDragMove, scope: me, delegate: '.neo-resizable'},
184
183
  {'drag:start': me.onDragStart, scope: me, delegate: '.neo-resizable'},
@@ -186,9 +185,7 @@ class Resizable extends Base {
186
185
  {mousemove : me.onMouseMove, scope: me, local : true},
187
186
  {mouseleave : me.onMouseLeave, scope: me, delegate: `.${me.delegationCls}`},
188
187
  {mouseup : me.onMouseUp, scope: me, delegate: '.neo-resizable'}
189
- );
190
-
191
- me.owner.domListeners = domListeners;
188
+ ]);
192
189
  }
193
190
 
194
191
  /**
@@ -27,17 +27,14 @@ class CellModel extends Model {
27
27
  *
28
28
  */
29
29
  addDomListener() {
30
- let me = this,
31
- view = me.view,
32
- domListeners = view.domListeners;
30
+ let me = this,
31
+ view = me.view;
33
32
 
34
- domListeners.push({
33
+ view.addDomListeners({
35
34
  click : me.onCellClick,
36
35
  delegate: '.neo-grid-cell',
37
36
  scope : me
38
37
  });
39
-
40
- view.domListeners = domListeners;
41
38
  }
42
39
 
43
40
  /**
@@ -28,17 +28,14 @@ class ColumnModel extends Model {
28
28
  *
29
29
  */
30
30
  addDomListener() {
31
- let me = this,
32
- view = me.view,
33
- domListeners = view.domListeners;
31
+ let me = this,
32
+ view = me.view;
34
33
 
35
- domListeners.push({
34
+ view.addDomListeners({
36
35
  click : me.onCellClick,
37
36
  delegate: '.neo-grid-cell',
38
37
  scope : me
39
38
  });
40
-
41
- view.domListeners = domListeners;
42
39
  }
43
40
 
44
41
  /**
@@ -28,17 +28,14 @@ class RowModel extends Model {
28
28
  *
29
29
  */
30
30
  addDomListener() {
31
- let me = this,
32
- view = me.view,
33
- domListeners = view.domListeners;
31
+ let me = this,
32
+ view = me.view;
34
33
 
35
- domListeners.push({
34
+ view.addDomListeners({
36
35
  click : me.onRowClick,
37
36
  delegate: '.neo-grid-row',
38
37
  scope : me
39
38
  });
40
-
41
- view.domListeners = domListeners;
42
39
  }
43
40
 
44
41
  /**
@@ -27,17 +27,14 @@ class CellModel extends Model {
27
27
  *
28
28
  */
29
29
  addDomListener() {
30
- let me = this,
31
- view = me.view,
32
- domListeners = view.domListeners;
30
+ let me = this,
31
+ view = me.view;
33
32
 
34
- domListeners.push({
33
+ view.addDomListeners({
35
34
  click : me.onCellClick,
36
35
  delegate: '.neo-table-cell',
37
36
  scope : me
38
37
  });
39
-
40
- view.domListeners = domListeners;
41
38
  }
42
39
 
43
40
  /**
@@ -28,17 +28,14 @@ class ColumnModel extends Model {
28
28
  *
29
29
  */
30
30
  addDomListener() {
31
- let me = this,
32
- view = me.view,
33
- domListeners = view.domListeners;
31
+ let me = this,
32
+ view = me.view;
34
33
 
35
- domListeners.push({
34
+ view.addDomListeners({
36
35
  click : me.onCellClick,
37
36
  delegate: '.neo-table-cell',
38
37
  scope : me
39
38
  });
40
-
41
- view.domListeners = domListeners;
42
39
  }
43
40
 
44
41
  /**