neo.mjs 7.16.0 → 8.0.0-alpha.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 (71) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/portal/view/ViewportController.mjs +1 -1
  3. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  4. package/apps/realworld/view/HomeComponent.mjs +13 -14
  5. package/apps/realworld/view/user/ProfileComponent.mjs +1 -1
  6. package/apps/realworld/view/user/SignUpComponent.mjs +1 -2
  7. package/examples/ServiceWorker.mjs +2 -2
  8. package/examples/table/container/MainContainer.mjs +17 -12
  9. package/examples/table/nestedRecordFields/MainContainer.mjs +3 -1
  10. package/examples/todoList/version1/MainComponent.mjs +1 -1
  11. package/package.json +5 -5
  12. package/src/DefaultConfig.mjs +2 -2
  13. package/src/button/Base.mjs +8 -8
  14. package/src/calendar/view/SettingsContainer.mjs +4 -0
  15. package/src/calendar/view/calendars/ColorsList.mjs +6 -6
  16. package/src/calendar/view/calendars/Container.mjs +1 -1
  17. package/src/calendar/view/calendars/List.mjs +6 -2
  18. package/src/calendar/view/month/Component.mjs +1 -1
  19. package/src/calendar/view/week/Component.mjs +7 -7
  20. package/src/calendar/view/week/EventDragZone.mjs +1 -1
  21. package/src/calendar/view/week/TimeAxisComponent.mjs +2 -2
  22. package/src/calendar/view/week/plugin/DragDrop.mjs +3 -3
  23. package/src/collection/Base.mjs +4 -3
  24. package/src/component/Base.mjs +81 -36
  25. package/src/component/Circle.mjs +1 -3
  26. package/src/component/DateSelector.mjs +1 -1
  27. package/src/container/Accordion.mjs +1 -1
  28. package/src/container/Base.mjs +18 -6
  29. package/src/core/Base.mjs +10 -9
  30. package/src/draggable/list/DragZone.mjs +1 -1
  31. package/src/draggable/toolbar/DragZone.mjs +1 -1
  32. package/src/draggable/toolbar/SortZone.mjs +1 -1
  33. package/src/draggable/tree/DragZone.mjs +1 -1
  34. package/src/form/Fieldset.mjs +2 -0
  35. package/src/form/field/Color.mjs +4 -4
  36. package/src/form/field/ComboBox.mjs +2 -2
  37. package/src/form/field/Date.mjs +2 -1
  38. package/src/form/field/Picker.mjs +2 -1
  39. package/src/form/field/Text.mjs +8 -8
  40. package/src/layout/Card.mjs +1 -0
  41. package/src/list/Chip.mjs +3 -2
  42. package/src/list/Circle.mjs +2 -1
  43. package/src/list/Component.mjs +5 -0
  44. package/src/manager/Component.mjs +158 -4
  45. package/src/manager/DomEvent.mjs +2 -2
  46. package/src/menu/List.mjs +3 -4
  47. package/src/menu/Panel.mjs +1 -1
  48. package/src/selection/Model.mjs +1 -1
  49. package/src/selection/grid/BaseModel.mjs +61 -0
  50. package/src/selection/grid/CellColumnModel.mjs +2 -2
  51. package/src/selection/grid/CellColumnRowModel.mjs +2 -2
  52. package/src/selection/grid/CellModel.mjs +4 -4
  53. package/src/selection/grid/CellRowModel.mjs +9 -3
  54. package/src/selection/grid/ColumnModel.mjs +15 -26
  55. package/src/selection/grid/RowModel.mjs +15 -25
  56. package/src/selection/table/BaseModel.mjs +61 -0
  57. package/src/selection/table/CellColumnModel.mjs +2 -2
  58. package/src/selection/table/CellColumnRowModel.mjs +2 -2
  59. package/src/selection/table/CellModel.mjs +4 -4
  60. package/src/selection/table/CellRowModel.mjs +9 -3
  61. package/src/selection/table/ColumnModel.mjs +7 -8
  62. package/src/selection/table/RowModel.mjs +7 -7
  63. package/src/table/Container.mjs +1 -0
  64. package/src/table/View.mjs +102 -80
  65. package/src/table/header/Button.mjs +3 -5
  66. package/src/table/header/Toolbar.mjs +1 -0
  67. package/src/tree/List.mjs +1 -1
  68. package/src/util/VDom.mjs +42 -11
  69. package/src/util/VNode.mjs +33 -11
  70. package/src/vdom/Helper.mjs +36 -16
  71. package/src/vdom/VNode.mjs +1 -1
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='7.16.0'
23
+ * @member {String} version='8.0.0-alpha.1'
24
24
  */
25
- version: '7.16.0'
25
+ version: '8.0.0-alpha.1'
26
26
  }
27
27
 
28
28
  /**
@@ -239,7 +239,7 @@ class ViewportController extends Controller {
239
239
  connect : me.onAppConnect,
240
240
  disconnect: me.onAppDisconnect,
241
241
  scope : me
242
- });
242
+ })
243
243
  }
244
244
 
245
245
  /**
@@ -111,7 +111,7 @@ class FooterContainer extends Container {
111
111
  }, {
112
112
  module: Component,
113
113
  cls : ['neo-version'],
114
- html : 'v7.16.0'
114
+ html : 'v8.0.0-alpha.1'
115
115
  }]
116
116
  }],
117
117
  /**
@@ -231,8 +231,8 @@ class HomeComponent extends Component {
231
231
  node, oldNode;
232
232
 
233
233
  if (me.mounted) {
234
- node = VDomUtil.findVdomChild(me.vdom, me.getNavLinkVdomId(value)).parentNode;
235
- oldNode = VDomUtil.findVdomChild(me.vdom, me.getNavLinkVdomId(oldValue)).parentNode;
234
+ node = VDomUtil.find(me.vdom, me.getNavLinkVdomId(value)).parentNode;
235
+ oldNode = VDomUtil.find(me.vdom, me.getNavLinkVdomId(oldValue)).parentNode;
236
236
 
237
237
  NeoArray.add(node.cls, 'active');
238
238
  NeoArray.remove(oldNode.cls, 'active');
@@ -289,7 +289,7 @@ class HomeComponent extends Component {
289
289
  */
290
290
  afterSetLoggedIn(value, oldValue) {
291
291
  let me = this,
292
- navItem = VDomUtil.findVdomChild(me.vdom, me.id + '__nav-item-link_0').vdom;
292
+ navItem = VDomUtil.find(me.vdom, me.id + '__nav-item-link_0').vdom;
293
293
 
294
294
  NeoArray[value ? 'remove' : 'add'](navItem.cls, 'disabled');
295
295
  me.update();
@@ -339,16 +339,15 @@ class HomeComponent extends Component {
339
339
  me.set({
340
340
  articlePreviews: data.json.articles,
341
341
  countArticles : data.json.articlesCount
342
- });
343
- });
342
+ })
343
+ })
344
344
  }
345
345
 
346
346
  /**
347
347
  * @returns {Object} vdom
348
348
  */
349
349
  getContainer() {
350
- let el = VDomUtil.findVdomChild(this.vdom, {cls: 'col-md-9'});
351
- return el?.vdom;
350
+ return VDomUtil.find(this.vdom, {cls: 'col-md-9'})?.vdom
352
351
  }
353
352
 
354
353
  /**
@@ -356,7 +355,7 @@ class HomeComponent extends Component {
356
355
  * @returns {Number}
357
356
  */
358
357
  getNavLinkId(nodeId) {
359
- return parseInt(nodeId.split('__')[1]);
358
+ return parseInt(nodeId.split('__')[1])
360
359
  }
361
360
 
362
361
  /**
@@ -364,7 +363,7 @@ class HomeComponent extends Component {
364
363
  * @returns {String}
365
364
  */
366
365
  getNavLinkVdomId(id) {
367
- return this.id + '__' + id;
366
+ return this.id + '__' + id
368
367
  }
369
368
 
370
369
  /**
@@ -372,7 +371,7 @@ class HomeComponent extends Component {
372
371
  */
373
372
  onNavLinkClick(data) {
374
373
  let me = this,
375
- el = VDomUtil.findVdomChild(me.vdom, data.path[0].id),
374
+ el = VDomUtil.find(me.vdom, data.path[0].id),
376
375
  feedHeader = VDomUtil.getByFlag(me.vdom, 'feed-header'),
377
376
  opts = {};
378
377
 
@@ -401,7 +400,7 @@ class HomeComponent extends Component {
401
400
  me.update();
402
401
 
403
402
  me.getController()._articlesOffset = 0; // silent update
404
- me.getArticles({}, opts);
403
+ me.getArticles({}, opts)
405
404
  }
406
405
  }
407
406
 
@@ -409,14 +408,14 @@ class HomeComponent extends Component {
409
408
  * @param {Object} value
410
409
  */
411
410
  onCurrentUserChange(value) {
412
- this.loggedIn = !!value;
411
+ this.loggedIn = !!value
413
412
  }
414
413
 
415
414
  /**
416
415
  * @param {Object} data
417
416
  */
418
417
  onPageNavLinkClick(data) {
419
- this.currentPage = this.getNavLinkId(data.path[0].id);
418
+ this.currentPage = this.getNavLinkId(data.path[0].id)
420
419
  }
421
420
 
422
421
  /**
@@ -453,7 +452,7 @@ class HomeComponent extends Component {
453
452
 
454
453
  me.getArticles({
455
454
  tag: opts.value
456
- });
455
+ })
457
456
  }
458
457
  }
459
458
 
@@ -268,7 +268,7 @@ class ProfileComponent extends Component {
268
268
  */
269
269
  onNavLinkClick(data) {
270
270
  let me = this,
271
- el = VDomUtil.findVdomChild(me.vdom, data.path[0].id),
271
+ el = VDomUtil.find(me.vdom, data.path[0].id),
272
272
  feedHeader = VDomUtil.getByFlag(me.vdom, 'feed-header'),
273
273
  params = {};
274
274
 
@@ -160,8 +160,7 @@ class SignUpComponent extends Component {
160
160
  * @returns {Object} vdom
161
161
  */
162
162
  getErrorMessagesList() {
163
- let el = VDomUtil.findVdomChild(this.vdom, {cls: 'error-messages'});
164
- return el?.vdom;
163
+ return VDomUtil.find(this.vdom, {cls: 'error-messages'})?.vdom
165
164
  }
166
165
 
167
166
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='7.16.0'
23
+ * @member {String} version='8.0.0-alpha.1'
24
24
  */
25
- version: '7.16.0'
25
+ version: '8.0.0-alpha.1'
26
26
  }
27
27
 
28
28
  /**
@@ -124,31 +124,34 @@ class MainContainer extends ConfigurationViewport {
124
124
  {
125
125
  dataField: 'edit',
126
126
  text : 'Edit Action',
127
- renderer: ({ column, index }) => {
127
+ renderer({column, index}) {
128
128
  const
129
+ me = this,
129
130
  widgetId = `${column.id}-widget-${index}`,
130
- button = (column.widgetMap || (column.widgetMap = {}))[widgetId] || (column.widgetMap[widgetId] = Neo.create({
131
+ button = (column.widgetMap || (column.widgetMap = {}))[widgetId] || (column.widgetMap[widgetId] = Neo.create({
131
132
  module : Button,
132
- appName : this.appName,
133
- handler : this.editButtonHandler,
133
+ appName : me.appName,
134
+ handler : 'up.editButtonHandler',
134
135
  parentId: 'myTableStoreContainer',
135
136
  text : 'Edit'
136
137
  }));
137
138
 
138
- return button.vdom
139
+ me.view.updateDepth = -1;
140
+
141
+ return button.createVdomReference()
139
142
  }
140
- },
141
- {
143
+ }, {
142
144
  dataField: 'menu',
143
145
  text : 'Menu',
144
- renderer({ column, record, index }) {
146
+ renderer({column, record, index}) {
145
147
  const
148
+ me = this,
146
149
  widgetId = `${column.id}-widget-${index}`,
147
- button = (column.widgetMap || (column.widgetMap = {}))[widgetId] || (column.widgetMap[widgetId] = Neo.create('Neo.button.Base', {
150
+ button = (column.widgetMap || (column.widgetMap = {}))[widgetId] || (column.widgetMap[widgetId] = Neo.create('Neo.button.Base', {
148
151
  ntype : 'button',
149
- appName : this.appName,
152
+ appName : me.appName,
150
153
  text : '\u22ee',
151
- windowId: this.windowId,
154
+ windowId: me.windowId,
152
155
  menu : {
153
156
  items : [{
154
157
  text : 'Menu option 1'
@@ -162,7 +165,9 @@ class MainContainer extends ConfigurationViewport {
162
165
  }
163
166
  }));
164
167
 
165
- return button.vdom
168
+ me.view.updateDepth = -1;
169
+
170
+ return button.createVdomReference()
166
171
  }
167
172
  }
168
173
  ]
@@ -106,7 +106,9 @@ class MainContainer extends Viewport {
106
106
  windowId
107
107
  }));
108
108
 
109
- return button.vdom
109
+ me.view.updateDepth = -1;
110
+
111
+ return button.createVdomReference()
110
112
  }
111
113
  }
112
114
 
@@ -99,7 +99,7 @@ class MainComponent extends Component {
99
99
  let me = this,
100
100
  cls = ['far', 'fa-square'],
101
101
  oldCls = ['fa', 'fa-check'],
102
- node = VdomUtil.findVdomChild(me.vdom, data.path[0].id).vdom
102
+ node = VdomUtil.find(me.vdom, data.path[0].id).vdom;
103
103
 
104
104
  if (data.path[0].cls.includes('fa-square')) {
105
105
  cls = ['fa', 'fa-check'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "7.16.0",
3
+ "version": "8.0.0-alpha.1",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -54,16 +54,16 @@
54
54
  "envinfo": "^7.14.0",
55
55
  "fs-extra": "^11.2.0",
56
56
  "highlightjs-line-numbers.js": "^2.9.0",
57
- "inquirer": "^12.0.0",
58
- "marked": "^14.1.3",
57
+ "inquirer": "^12.0.1",
58
+ "marked": "^14.1.4",
59
59
  "monaco-editor": "0.50.0",
60
60
  "neo-jsdoc": "1.0.1",
61
61
  "neo-jsdoc-x": "1.0.5",
62
62
  "postcss": "^8.4.47",
63
- "sass": "^1.80.2",
63
+ "sass": "^1.80.6",
64
64
  "siesta-lite": "5.5.2",
65
65
  "url": "^0.11.4",
66
- "webpack": "^5.95.0",
66
+ "webpack": "^5.96.1",
67
67
  "webpack-cli": "^5.1.4",
68
68
  "webpack-dev-server": "^5.1.0",
69
69
  "webpack-hook-plugin": "^1.0.7",
@@ -262,12 +262,12 @@ const DefaultConfig = {
262
262
  useVdomWorker: true,
263
263
  /**
264
264
  * buildScripts/injectPackageVersion.mjs will update this value
265
- * @default '7.16.0'
265
+ * @default '8.0.0-alpha.1'
266
266
  * @memberOf! module:Neo
267
267
  * @name config.version
268
268
  * @type String
269
269
  */
270
- version: '7.16.0'
270
+ version: '8.0.0-alpha.1'
271
271
  };
272
272
 
273
273
  Object.assign(DefaultConfig, {
@@ -122,14 +122,14 @@ class Base extends Component {
122
122
  * @member {Object} _vdom
123
123
  */
124
124
  _vdom:
125
- {tag: 'button', type: 'button', cn: [
126
- {tag: 'span', cls: ['neo-button-glyph']},
127
- {tag: 'span', cls: ['neo-button-text']},
128
- {cls: ['neo-button-badge']},
129
- {cls: ['neo-button-ripple-wrapper'], cn: [
130
- {cls: ['neo-button-ripple']}
131
- ]}
132
- ]}
125
+ {tag: 'button', type: 'button', cn: [
126
+ {tag: 'span', cls: ['neo-button-glyph']},
127
+ {tag: 'span', cls: ['neo-button-text']},
128
+ {cls: ['neo-button-badge']},
129
+ {cls: ['neo-button-ripple-wrapper'], cn: [
130
+ {cls: ['neo-button-ripple']}
131
+ ]}
132
+ ]}
133
133
  }
134
134
 
135
135
  /**
@@ -57,6 +57,8 @@ class SettingsContainer extends Container {
57
57
  me._style = style; // silent update
58
58
  me._vdom.style = style; // silent update
59
59
 
60
+ me.parent.updateDepth = -1;
61
+
60
62
  me.parent.promiseUpdate().then(() => {
61
63
  me.timeout(400).then(() => {
62
64
  me.collapsed = true;
@@ -145,6 +147,8 @@ class SettingsContainer extends Container {
145
147
 
146
148
  delete me.vdom.removeDom;
147
149
 
150
+ me.parent.updateDepth = -1;
151
+
148
152
  me.parent.promiseUpdate().then(() => {
149
153
  me.collapsed = false;
150
154
  me.mounted = true;
@@ -50,7 +50,7 @@ class ColorsList extends List {
50
50
 
51
51
  if (value && oldValue !== undefined && !me.disableSelection) {
52
52
  record = me.store.find('name', value)[0];
53
- me.selectionModel?.select(me.getItemId(record[me.getKeyProperty()]));
53
+ me.selectionModel?.select(me.getItemId(record[me.getKeyProperty()]))
54
54
  }
55
55
  }
56
56
 
@@ -64,21 +64,21 @@ class ColorsList extends List {
64
64
  return {style: {
65
65
  backgroundColor: `var(--event-${record.name}-color)`,
66
66
  color : `var(--event-${record.name}-color)` // needed for the box-shadow (CSS currentColor)
67
- }};
67
+ }}
68
68
  }
69
69
 
70
70
  /**
71
71
  * @returns {Object}
72
72
  */
73
73
  getVdomRoot() {
74
- return this.vdom;
74
+ return this.vdom
75
75
  }
76
76
 
77
77
  /**
78
78
  * @returns {Object}
79
79
  */
80
80
  getVnodeRoot() {
81
- return this.vnode;
81
+ return this.vnode
82
82
  }
83
83
 
84
84
  /**
@@ -90,7 +90,7 @@ class ColorsList extends List {
90
90
  let me = this,
91
91
  {value} = me;
92
92
 
93
- value && me.afterSetValue(value, null);
93
+ value && me.afterSetValue(value, null)
94
94
  }
95
95
 
96
96
  /**
@@ -103,7 +103,7 @@ class ColorsList extends List {
103
103
 
104
104
  me.fire('change', {
105
105
  record: me.store.get(recordId)
106
- });
106
+ })
107
107
  }
108
108
  }
109
109
 
@@ -61,7 +61,7 @@ class Container extends BaseContainer {
61
61
  active: true,
62
62
  color : 'red',
63
63
  name : 'New Calendar'
64
- });
64
+ })
65
65
  }
66
66
  }
67
67
 
@@ -72,9 +72,13 @@ class List extends ComponentList {
72
72
  })
73
73
  }
74
74
 
75
- me.items = items;
75
+ me.items = items;
76
+ me.updateDepth = 2;
76
77
 
77
- return [checkBox.vdom, {tag: 'i', cls: ['neo-edit-icon', 'fas fa-edit'], id: me.getEditIconId(index)}]
78
+ return [
79
+ checkBox.createVdomReference(),
80
+ {tag: 'i', cls: ['neo-edit-icon', 'fas fa-edit'], id: me.getEditIconId(index)}
81
+ ]
78
82
  }
79
83
 
80
84
  /**
@@ -575,7 +575,7 @@ class Component extends BaseComponent {
575
575
  eventNode = path[0],
576
576
  weekNode = path[2],
577
577
  scrollContainerNode = path[3],
578
- eventVdom = VDomUtil.findVdomChild(me.vdom, eventNode.id).vdom,
578
+ eventVdom = VDomUtil.find(me.vdom, eventNode.id).vdom,
579
579
  record = me.eventStore.get(eventVdom.flag),
580
580
  style = editEventContainer.style;
581
581
 
@@ -190,6 +190,7 @@ class Component extends BaseComponent {
190
190
  * @protected
191
191
  */
192
192
  totalColumns: null,
193
+ updateDepth: -1,
193
194
  /**
194
195
  * @member {Object} vdom
195
196
  */
@@ -224,17 +225,16 @@ class Component extends BaseComponent {
224
225
  {wheel : me.onWheel, scope: me}
225
226
  ]);
226
227
 
227
- me.timeAxis = Neo.create(TimeAxisComponent, {
228
+ me.timeAxis = Neo.create({
229
+ module : TimeAxisComponent,
228
230
  appName : me.appName,
229
231
  parentId : me.id,
230
- listeners: {
231
- change: me.onTimeAxisChange,
232
- scope : me
233
- },
232
+ listeners: {change: me.onTimeAxisChange, scope : me},
233
+ windowId : me.windowId,
234
234
  ...me.timeAxisConfig
235
235
  });
236
236
 
237
- me.getColumnTimeAxisContainer().cn[me.timeAxisPosition === 'start' ? 'unshift' : 'push'](me.timeAxis.vdom);
237
+ me.getColumnTimeAxisContainer().cn[me.timeAxisPosition === 'start' ? 'unshift' : 'push'](me.timeAxis.createVdomReference());
238
238
 
239
239
  if (me.calendarStore.getCount() > 0 && me.eventStore.getCount() > 0) {
240
240
  me.needsEventUpdate = true
@@ -686,7 +686,7 @@ class Component extends BaseComponent {
686
686
  let me = this,
687
687
  {editEventContainer} = me.owner,
688
688
  eventNode = path[0],
689
- eventVdom = VDomUtil.findVdomChild(me.vdom, eventNode.id).vdom,
689
+ eventVdom = VDomUtil.find(me.vdom, eventNode.id).vdom,
690
690
  record = me.eventStore.get(eventVdom.flag),
691
691
  {style} = editEventContainer;
692
692
 
@@ -219,7 +219,7 @@ class EventDragZone extends DragZone {
219
219
  endDate = me.newEndDate;
220
220
  startDate = me.newStartDate || record.startDate
221
221
  } else {
222
- startDate = new Date(VDomUtil.findVdomChild(owner.vdom, me.proxyParentId).vdom.flag + 'T00:00:00.000Z');
222
+ startDate = new Date(VDomUtil.find(owner.vdom, me.proxyParentId).vdom.flag + 'T00:00:00.000Z');
223
223
  startDate.setHours(me.axisStartTime);
224
224
  startDate.setMinutes(me.currentInterval * me.intervalSize);
225
225
 
@@ -187,8 +187,8 @@ class TimeAxisComponent extends Component {
187
187
  html = i === 24 ? '00:00' : (i < 10 ? '0' : '') + i + ':00';
188
188
 
189
189
  vdom.cn.push({
190
- cls : ['neo-c-w-timeaxis-item'],
191
- cn : [{html: html}]
190
+ cls: ['neo-c-w-timeaxis-item'],
191
+ cn : [{html}]
192
192
  })
193
193
  }
194
194
  }
@@ -188,7 +188,7 @@ class DragDrop extends Base {
188
188
  intervalHeight = columnRect.height / intervals,
189
189
  position = Math.min(columnRect.height, data.clientY - columnRect.top),
190
190
  currentInterval = Math.floor(position / intervalHeight),
191
- startDate = new Date(VDomUtil.findVdomChild(owner.vdom, data.path[0].id).vdom.flag + 'T00:00:00.000Z'),
191
+ startDate = new Date(VDomUtil.find(owner.vdom, data.path[0].id).vdom.flag + 'T00:00:00.000Z'),
192
192
  dragElement, endDate, eventDragZone, eventId, record;
193
193
 
194
194
  me.isDragging = true;
@@ -216,7 +216,7 @@ class DragDrop extends Base {
216
216
  // wait until the new event got mounted
217
217
  me.timeout(50).then(() => {
218
218
  eventId = owner.getEventId(record.id);
219
- dragElement = VDomUtil.findVdomChild(owner.vdom, eventId).vdom;
219
+ dragElement = VDomUtil.find(owner.vdom, eventId).vdom;
220
220
 
221
221
  eventDragZone = me.getEventDragZone({
222
222
  dragElement,
@@ -294,7 +294,7 @@ class DragDrop extends Base {
294
294
 
295
295
  me.isDragging = true;
296
296
 
297
- dragElement = VDomUtil.findVdomChild(owner.vdom, data.path[0].id).vdom;
297
+ dragElement = VDomUtil.find(owner.vdom, data.path[0].id).vdom;
298
298
 
299
299
  eventDragZone = me.getEventDragZone({
300
300
  dragElement,
@@ -734,7 +734,8 @@ class Base extends CoreBase {
734
734
  }
735
735
 
736
736
  /**
737
- * Returns items which match the property and value
737
+ * Returns items which match the property and value.
738
+ * Properties can contain dots for namespaces => find('vdom.id', 'neo-vnode-1')
738
739
  * @param {Object|String} property
739
740
  * @param {String|Number} [value] Only required in case the first param is a string
740
741
  * @param {Boolean} returnFirstMatch=false
@@ -758,7 +759,7 @@ class Base extends CoreBase {
758
759
  matchArray = [];
759
760
 
760
761
  propertiesArray.forEach(([key, value]) => {
761
- if (item[key] === value) {
762
+ if (Neo.ns(key, false, item) === value) {
762
763
  matchArray.push(true)
763
764
  }
764
765
  });
@@ -770,7 +771,7 @@ class Base extends CoreBase {
770
771
 
771
772
  items.push(item)
772
773
  }
773
- } else if (item[property] === value) {
774
+ } else if (Neo.ns(property, false, item) === value) {
774
775
  if (returnFirstMatch) {
775
776
  return item
776
777
  }