neo.mjs 4.2.7 → 4.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 (62) 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/examples/ConfigurationViewport.mjs +1 -1
  14. package/examples/button/base/MainContainer.mjs +75 -12
  15. package/examples/tab/container/MainContainer.mjs +3 -3
  16. package/examples/todoList/version1/MainComponent.mjs +3 -6
  17. package/package.json +1 -1
  18. package/resources/scss/src/button/Base.scss +41 -3
  19. package/resources/scss/src/tab/Container.scss +1 -3
  20. package/resources/scss/src/tab/header/Button.scss +6 -1
  21. package/resources/scss/src/table/header/Button.scss +21 -1
  22. package/resources/scss/theme-dark/button/Base.scss +7 -1
  23. package/resources/scss/theme-dark/table/header/Button.scss +11 -9
  24. package/resources/scss/theme-light/button/Base.scss +7 -1
  25. package/resources/scss/theme-light/table/header/Button.scss +11 -9
  26. package/src/button/Base.mjs +151 -43
  27. package/src/calendar/view/YearComponent.mjs +3 -6
  28. package/src/calendar/view/month/Component.mjs +3 -6
  29. package/src/calendar/view/week/Component.mjs +3 -6
  30. package/src/calendar/view/week/plugin/DragDrop.mjs +6 -9
  31. package/src/component/Base.mjs +16 -0
  32. package/src/component/Carousel.mjs +5 -17
  33. package/src/component/Chip.mjs +2 -7
  34. package/src/component/Circle.mjs +4 -7
  35. package/src/component/DateSelector.mjs +5 -8
  36. package/src/component/Gallery.mjs +4 -7
  37. package/src/component/Helix.mjs +2 -5
  38. package/src/component/Splitter.mjs +3 -6
  39. package/src/component/mwc/Button.mjs +4 -7
  40. package/src/component/mwc/TextField.mjs +2 -5
  41. package/src/draggable/DropZone.mjs +3 -7
  42. package/src/draggable/list/DragZone.mjs +6 -9
  43. package/src/draggable/toolbar/DragZone.mjs +5 -8
  44. package/src/form/Fieldset.mjs +3 -6
  45. package/src/form/field/CheckBox.mjs +2 -5
  46. package/src/form/field/Range.mjs +3 -6
  47. package/src/form/field/Text.mjs +2 -5
  48. package/src/form/field/trigger/Base.mjs +4 -12
  49. package/src/grid/header/Button.mjs +3 -6
  50. package/src/list/Base.mjs +4 -6
  51. package/src/plugin/Resizable.mjs +3 -6
  52. package/src/selection/grid/CellModel.mjs +3 -6
  53. package/src/selection/grid/ColumnModel.mjs +3 -6
  54. package/src/selection/grid/RowModel.mjs +3 -6
  55. package/src/selection/table/CellModel.mjs +3 -6
  56. package/src/selection/table/ColumnModel.mjs +3 -6
  57. package/src/selection/table/RowModel.mjs +3 -6
  58. package/src/sitemap/Component.mjs +3 -6
  59. package/src/tab/header/Button.mjs +13 -2
  60. package/src/table/header/Button.mjs +9 -5
  61. package/src/tooltip/Base.mjs +5 -15
  62. package/src/util/KeyNavigation.mjs +8 -13
@@ -74,15 +74,12 @@ class Splitter extends Component {
74
74
  construct(config) {
75
75
  super.construct(config);
76
76
 
77
- let me = this,
78
- domListeners = me.domListeners;
77
+ let me = this;
79
78
 
80
- domListeners.push(
79
+ me.addDomListeners([
81
80
  {'drag:end' : me.onDragEnd, scope: me},
82
81
  {'drag:start': me.onDragStart, scope: me}
83
- );
84
-
85
- me.domListeners = domListeners;
82
+ ]);
86
83
  }
87
84
 
88
85
  /**
@@ -99,13 +99,10 @@ class Button extends Component {
99
99
  * @protected
100
100
  */
101
101
  afterSetHandler(value, oldValue) {
102
- if (value) {
103
- let me = this,
104
- domListeners = me.domListeners;
105
-
106
- domListeners.push({click: value, scope: me});
107
- me.domListeners = domListeners;
108
- }
102
+ value && this.addDomListeners({
103
+ click: value,
104
+ scope: this
105
+ });
109
106
  }
110
107
 
111
108
  /**
@@ -77,14 +77,11 @@ class TextField extends Component {
77
77
  Neo.main.addon.Mwc.loadTextFieldModule();
78
78
  }
79
79
 
80
- let me = this,
81
- domListeners = me.domListeners;
80
+ let me = this;
82
81
 
83
- domListeners.push(
82
+ me.addDomListeners(
84
83
  {input: me.onInputValueChange, scope: me}
85
84
  );
86
-
87
- me.domListeners = domListeners;
88
85
  }
89
86
 
90
87
  /**
@@ -28,17 +28,13 @@ class DropZone extends Base {
28
28
  construct(config) {
29
29
  super.construct(config);
30
30
 
31
- let me = this,
32
- owner = me.owner,
33
- domListeners = owner.domListeners;
31
+ let me = this;
34
32
 
35
- domListeners.push(
33
+ me.owner.addDomListeners([
36
34
  {'drop' : me.onDrop, scope: me},
37
35
  {'drop:enter': me.onDropEnter, scope: me},
38
36
  {'drop:leave': me.onDropLeave, scope: me}
39
- );
40
-
41
- owner.domListeners = domListeners;
37
+ ]);
42
38
  }
43
39
 
44
40
  /**
@@ -32,18 +32,15 @@ class DragZone extends BaseDragZone {
32
32
  construct(config) {
33
33
  super.construct(config);
34
34
 
35
- let me = this,
36
- owner = me.owner,
37
- domListeners = owner.domListeners,
38
- opts = {delegate: '.neo-draggable', scope: me},
39
- store = owner.store;
35
+ let me = this,
36
+ owner = me.owner,
37
+ opts = {delegate: '.neo-draggable', scope: me},
38
+ store = owner.store;
40
39
 
41
- domListeners.push(
40
+ owner.addDomListeners([
42
41
  {'drag:end' : me.onDragEnd, ...opts},
43
42
  {'drag:start': me.onDragStart, ...opts}
44
- );
45
-
46
- owner.domListeners = domListeners;
43
+ ]);
47
44
 
48
45
  store.on({
49
46
  load : me.onStoreLoad,
@@ -26,18 +26,15 @@ class DragZone extends BaseDragZone {
26
26
  construct(config) {
27
27
  super.construct(config);
28
28
 
29
- let me = this,
30
- owner = me.owner,
31
- domListeners = owner.domListeners,
32
- opts = {delegate: '.neo-draggable', scope: me};
29
+ let me = this,
30
+ owner = me.owner,
31
+ opts = {delegate: '.neo-draggable', scope: me};
33
32
 
34
- domListeners.push(
33
+ owner.addDomListeners([
35
34
  {'drag:end' : me.onDragEnd, ...opts},
36
35
  {'drag:move' : me.onDragMove, ...opts},
37
36
  {'drag:start': me.onDragStart, ...opts}
38
- );
39
-
40
- owner.domListeners = domListeners;
37
+ ]);
41
38
 
42
39
  owner.on('insert', me.onItemInsert, me);
43
40
 
@@ -126,9 +126,8 @@ class Fieldset extends Container {
126
126
  * @protected
127
127
  */
128
128
  afterSetCollapsible(value, oldValue) {
129
- let me = this,
130
- cls = me.cls,
131
- domListeners = me.domListeners || [];
129
+ let me = this,
130
+ cls = me.cls;
132
131
 
133
132
  NeoArray[value ? 'add' : 'remove'](cls, 'neo-collapsible');
134
133
  me.cls = cls;
@@ -140,12 +139,10 @@ class Fieldset extends Container {
140
139
  if (value && !me.hasLabelClickListener) {
141
140
  me.hasLabelClickListener = true;
142
141
 
143
- domListeners.push({
142
+ me.addDomListeners({
144
143
  click : me.onLegendClick,
145
144
  delegate: 'neo-legend'
146
145
  });
147
-
148
- me.domListeners = domListeners;
149
146
  }
150
147
  }
151
148
 
@@ -75,14 +75,11 @@ class CheckBox extends Base {
75
75
  construct(config) {
76
76
  super.construct(config);
77
77
 
78
- let me = this,
79
- domListeners = me.domListeners;
78
+ let me = this;
80
79
 
81
- domListeners.push(
80
+ me.addDomListeners(
82
81
  {change: me.onInputValueChange, scope: me}
83
82
  );
84
-
85
- me.domListeners = domListeners;
86
83
  }
87
84
 
88
85
  /**
@@ -51,20 +51,17 @@ class Range extends Number {
51
51
  construct(config) {
52
52
  super.construct(config);
53
53
 
54
- let me = this,
55
- domListeners = me.domListeners,
56
- inputEl = me.vdom.cn[1];
54
+ let me = this,
55
+ inputEl = me.vdom.cn[1];
57
56
 
58
57
  if (me.useInputEvent) {
59
- domListeners.push({
58
+ me.addDomListeners({
60
59
  input: {
61
60
  fn : me.onInputValueChange,
62
61
  id : me.vdom.cn[1].id,
63
62
  scope : me
64
63
  }
65
64
  });
66
-
67
- me.domListeners = domListeners;
68
65
  }
69
66
 
70
67
  inputEl.cls = ['neo-rangefield-input']; // replace neo-textfield-input
@@ -151,14 +151,11 @@ class Text extends Base {
151
151
  construct(config) {
152
152
  super.construct(config);
153
153
 
154
- let me = this,
155
- domListeners = me.domListeners;
154
+ let me = this;
156
155
 
157
- domListeners.push(
156
+ me.addDomListeners(
158
157
  {input: me.onInputValueChange, scope: me}
159
158
  );
160
-
161
- me.domListeners = domListeners;
162
159
  }
163
160
 
164
161
  /**
@@ -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
  /**
package/src/list/Base.mjs CHANGED
@@ -118,14 +118,12 @@ class Base extends Component {
118
118
  construct(config) {
119
119
  super.construct(config);
120
120
 
121
- let me = this,
122
- domListeners = me.domListeners;
121
+ let me = this;
123
122
 
124
- domListeners.push({
125
- click: {fn: me.onClick, scope: me}
123
+ me.addDomListeners({
124
+ click: me.onClick,
125
+ scope: me
126
126
  });
127
-
128
- me.domListeners = domListeners;
129
127
  }
130
128
 
131
129
  /**
@@ -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
  /**
@@ -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-table-row',
38
37
  scope : me
39
38
  });
40
-
41
- view.domListeners = domListeners;
42
39
  }
43
40
 
44
41
  /**
@@ -50,15 +50,12 @@ class Component extends Base {
50
50
  construct(config) {
51
51
  super.construct(config);
52
52
 
53
- let me = this,
54
- domListeners = me.domListeners;
53
+ let me = this;
55
54
 
56
- domListeners.push(
55
+ me.addDomListeners([
57
56
  {click: me.onItemHandlerClick, delegate: '.neo-action-handler', scope: me},
58
57
  {click: me.onItemClick, delegate: '.neo-action', scope: me}
59
- );
60
-
61
- me.domListeners = domListeners;
58
+ ]);
62
59
  }
63
60
 
64
61
  /**
@@ -28,9 +28,13 @@ class Button extends BaseButton {
28
28
  * @member {Object} _vdom
29
29
  */
30
30
  _vdom:
31
- {tag: 'button', cn: [
31
+ {tag: 'button', type: 'button', cn: [
32
32
  {tag: 'span', cls: ['neo-button-glyph']},
33
33
  {tag: 'span', cls: ['neo-button-text']},
34
+ {cls: ['neo-button-badge']},
35
+ {cls: ['neo-button-ripple-wrapper'], cn: [
36
+ {cls: ['neo-button-ripple']}
37
+ ]},
34
38
  {cls: ['neo-tab-button-indicator']}
35
39
  ]}
36
40
  }}
@@ -45,6 +49,13 @@ class Button extends BaseButton {
45
49
  this.updateUseActiveTabIndicator();
46
50
  }
47
51
 
52
+ /**
53
+ * @param {Object} data
54
+ */
55
+ showRipple(data) {
56
+ !this.pressed && super.showRipple(data);
57
+ }
58
+
48
59
  /**
49
60
  * @param {Boolean} [silent=false]
50
61
  */
@@ -52,7 +63,7 @@ class Button extends BaseButton {
52
63
  let me = this,
53
64
  vdom = me.vdom;
54
65
 
55
- vdom.cn[2].removeDom = !me.useActiveTabIndicator;
66
+ vdom.cn[4].removeDom = !me.useActiveTabIndicator;
56
67
 
57
68
  me[silent ? '_vdom' : 'vdom'] = vdom;
58
69
  }
@@ -88,13 +88,17 @@ class Button extends BaseButton {
88
88
  */
89
89
  showHeaderFilter_: false,
90
90
  /**
91
- * @member {String} _vdom
91
+ * @member {Object} _vdom
92
92
  */
93
93
  _vdom:
94
94
  {tag: 'th', cn: [
95
95
  {tag: 'button', cn: [
96
96
  {tag: 'span', cls: ['neo-button-glyph']},
97
- {tag: 'span', cls: ['neo-button-text']}
97
+ {tag: 'span', cls: ['neo-button-text']},
98
+ {tag: 'span', cls: ['neo-button-badge']},
99
+ {tag: 'span', cls: ['neo-button-ripple-wrapper'], cn: [
100
+ {tag: 'span', cls: ['neo-button-ripple']}
101
+ ]}
98
102
  ]}
99
103
  ]}
100
104
  }}
@@ -122,7 +126,7 @@ class Button extends BaseButton {
122
126
  });
123
127
  }
124
128
 
125
- me.domListeners = listeners;
129
+ me.addDomListeners(listeners);
126
130
  }
127
131
 
128
132
  /**
@@ -146,8 +150,8 @@ class Button extends BaseButton {
146
150
 
147
151
  /**
148
152
  * Triggered after the isSorted config got changed
149
- * @param {Boolean} value
150
- * @param {Boolean} oldValue
153
+ * @param {String|null} value
154
+ * @param {String|null} oldValue
151
155
  * @protected
152
156
  */
153
157
  afterSetIsSorted(value, oldValue) {
@@ -90,21 +90,14 @@ class Base extends Container {
90
90
  }
91
91
 
92
92
  if (value) {
93
- let me = this,
94
- component = Neo.getComponent(value),
95
- domListeners = component.domListeners || [];
93
+ let me = this;
96
94
 
97
- domListeners.push({
95
+ Neo.getComponent(value).addDomListeners({
98
96
  mouseenter: me.showDelayed,
99
- delegate : me.delegate,
100
- scope : me
101
- }, {
102
97
  mouseleave: me.hideDelayed,
103
98
  delegate : me.delegate,
104
99
  scope : me
105
100
  });
106
-
107
- component.domListeners = domListeners;
108
101
  }
109
102
  }
110
103
 
@@ -120,15 +113,12 @@ class Base extends Container {
120
113
  }
121
114
 
122
115
  if (value) {
123
- let me = this,
124
- domListeners = me.domListeners || [];
116
+ let me = this;
125
117
 
126
- domListeners.push(
118
+ me.addDomListeners([
127
119
  {mouseenter: me.onMouseEnter, scope: me},
128
120
  {mouseleave: me.onMouseLeave, scope: me}
129
- );
130
-
131
- me.domListeners = domListeners;
121
+ ]);
132
122
  }
133
123
  }
134
124
 
@@ -141,23 +141,18 @@ class KeyNavigation extends Base {
141
141
  * @param {Neo.component.Base} component
142
142
  */
143
143
  register(component) {
144
- let me = this,
145
- domListeners = component.domListeners;
144
+ let me = this;
146
145
 
147
146
  me.component = component;
148
147
  me.keys = me.parseKeys(me.keys);
149
148
 
150
- if (domListeners) {
151
- domListeners.push({
152
- keydown: {
153
- fn : me.onKeyDown,
154
- bubble: me.keyDownEventBubble,
155
- scope : me
156
- }
157
- });
158
-
159
- component.domListeners = domListeners;
160
- }
149
+ component.addDomListeners({
150
+ keydown: {
151
+ bubble: me.keyDownEventBubble,
152
+ fn : me.onKeyDown,
153
+ scope : me
154
+ }
155
+ });
161
156
  }
162
157
 
163
158
  /**