neo.mjs 8.0.0-beta.1 → 8.0.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 (146) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/colors/view/Viewport.mjs +9 -9
  3. package/apps/colors/view/ViewportController.mjs +13 -13
  4. package/apps/colors/view/{ViewportModel.mjs → ViewportStateProvider.mjs} +8 -8
  5. package/apps/covid/view/MainContainer.mjs +8 -8
  6. package/apps/covid/view/MainContainerController.mjs +9 -8
  7. package/apps/covid/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
  8. package/apps/covid/view/TableContainerController.mjs +1 -1
  9. package/apps/form/view/FormContainerController.mjs +2 -2
  10. package/apps/form/view/SideNavList.mjs +3 -3
  11. package/apps/form/view/Viewport.mjs +7 -7
  12. package/apps/form/view/ViewportController.mjs +4 -4
  13. package/apps/form/view/{ViewportModel.mjs → ViewportStateProvider.mjs} +8 -8
  14. package/apps/portal/index.html +1 -1
  15. package/apps/portal/resources/data/examples_devmode.json +3 -3
  16. package/apps/portal/resources/data/examples_dist_dev.json +3 -3
  17. package/apps/portal/resources/data/examples_dist_prod.json +3 -3
  18. package/apps/portal/view/Viewport.mjs +12 -12
  19. package/apps/portal/view/ViewportStateProvider.mjs +27 -0
  20. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  21. package/apps/portal/view/learn/ContentComponent.mjs +2 -2
  22. package/apps/portal/view/learn/ContentTreeList.mjs +1 -1
  23. package/apps/portal/view/learn/MainContainer.mjs +9 -9
  24. package/apps/portal/view/learn/MainContainerController.mjs +12 -12
  25. package/apps/portal/view/learn/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
  26. package/apps/portal/view/learn/PageSectionsList.mjs +1 -1
  27. package/apps/sharedcovid/view/GalleryContainer.mjs +2 -2
  28. package/apps/sharedcovid/view/HelixContainer.mjs +2 -2
  29. package/apps/sharedcovid/view/MainContainer.mjs +8 -8
  30. package/apps/sharedcovid/view/MainContainerController.mjs +11 -9
  31. package/apps/sharedcovid/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +8 -8
  32. package/apps/sharedcovid/view/TableContainerController.mjs +1 -1
  33. package/apps/sharedcovid/view/mapboxGl/Container.mjs +2 -2
  34. package/buildScripts/createClass.mjs +11 -11
  35. package/buildScripts/createComponent.mjs +4 -4
  36. package/docs/app/view/MainContainerController.mjs +6 -6
  37. package/examples/ServiceWorker.mjs +2 -2
  38. package/examples/calendar/weekview/MainContainer.mjs +6 -6
  39. package/examples/{model → stateProvider}/advanced/MainContainer.mjs +12 -12
  40. package/examples/{model → stateProvider}/advanced/MainContainerController.mjs +10 -10
  41. package/examples/stateProvider/advanced/app.mjs +6 -0
  42. package/examples/{model/dialog → stateProvider/advanced}/index.html +1 -1
  43. package/examples/{model/inline → stateProvider/advanced}/neo-config.json +1 -1
  44. package/examples/{model → stateProvider}/dialog/EditUserDialog.mjs +3 -3
  45. package/examples/{model → stateProvider}/dialog/EditUserDialogController.mjs +5 -5
  46. package/examples/{model → stateProvider}/dialog/MainContainer.mjs +7 -7
  47. package/examples/{model → stateProvider}/dialog/MainContainerController.mjs +5 -5
  48. package/examples/{model → stateProvider}/dialog/app.mjs +1 -1
  49. package/examples/{model/multiWindow2 → stateProvider/dialog}/index.html +1 -1
  50. package/examples/{model → stateProvider}/dialog/neo-config.json +1 -1
  51. package/examples/{model → stateProvider}/extendedClass/MainContainer.mjs +13 -13
  52. package/examples/{model/inline → stateProvider/extendedClass}/MainContainerController.mjs +7 -7
  53. package/examples/stateProvider/extendedClass/MainContainerStateProvider.mjs +24 -0
  54. package/examples/stateProvider/extendedClass/app.mjs +6 -0
  55. package/examples/stateProvider/extendedClass/index.html +11 -0
  56. package/examples/stateProvider/extendedClass/neo-config.json +7 -0
  57. package/examples/{model → stateProvider}/inline/MainContainer.mjs +10 -10
  58. package/examples/{model/extendedClass → stateProvider/inline}/MainContainerController.mjs +7 -7
  59. package/examples/{model/extendedClass → stateProvider/inline}/app.mjs +1 -1
  60. package/examples/{model/extendedClass → stateProvider/inline}/index.html +1 -1
  61. package/examples/{model/extendedClass → stateProvider/inline}/neo-config.json +1 -1
  62. package/examples/{model/inlineNoModel → stateProvider/inlineNoStateProvider}/MainContainer.mjs +4 -4
  63. package/examples/{model/inlineNoModel → stateProvider/inlineNoStateProvider}/MainContainerController.mjs +3 -3
  64. package/examples/stateProvider/inlineNoStateProvider/README.md +8 -0
  65. package/examples/stateProvider/inlineNoStateProvider/app.mjs +6 -0
  66. package/examples/{model/inline → stateProvider/inlineNoStateProvider}/index.html +1 -1
  67. package/examples/stateProvider/inlineNoStateProvider/neo-config.json +7 -0
  68. package/examples/{model → stateProvider}/multiWindow/EditUserDialog.mjs +3 -3
  69. package/examples/{model → stateProvider}/multiWindow/EditUserDialogController.mjs +5 -5
  70. package/examples/{model → stateProvider}/multiWindow/MainContainer.mjs +3 -3
  71. package/examples/{model → stateProvider}/multiWindow/MainContainerController.mjs +6 -6
  72. package/examples/{model → stateProvider}/multiWindow/Viewport.mjs +3 -3
  73. package/examples/{model → stateProvider}/multiWindow/ViewportController.mjs +14 -14
  74. package/examples/{model/multiWindow2 → stateProvider/multiWindow}/app.mjs +1 -1
  75. package/examples/{model/advanced → stateProvider/multiWindow}/index.html +1 -1
  76. package/examples/{model → stateProvider}/multiWindow/neo-config.json +1 -1
  77. package/examples/{model → stateProvider}/multiWindow2/Viewport.mjs +3 -3
  78. package/examples/{model/multiWindow → stateProvider/multiWindow2}/app.mjs +1 -1
  79. package/examples/{model/multiWindow → stateProvider/multiWindow2}/index.html +1 -1
  80. package/examples/{model → stateProvider}/multiWindow2/neo-config.json +1 -1
  81. package/examples/{model → stateProvider}/nestedData/MainContainer.mjs +9 -9
  82. package/examples/{model → stateProvider}/nestedData/MainContainerController.mjs +7 -7
  83. package/examples/stateProvider/nestedData/app.mjs +6 -0
  84. package/examples/stateProvider/nestedData/index.html +11 -0
  85. package/examples/stateProvider/nestedData/neo-config.json +7 -0
  86. package/examples/{model → stateProvider}/table/MainContainer.mjs +8 -8
  87. package/examples/stateProvider/table/MainContainerStateProvider.mjs +24 -0
  88. package/examples/{model → stateProvider}/table/MainModel.mjs +2 -2
  89. package/examples/{model → stateProvider}/table/MainStore.mjs +2 -2
  90. package/examples/{model/advanced → stateProvider/table}/app.mjs +1 -1
  91. package/examples/{model/advanced → stateProvider/table}/neo-config.json +1 -1
  92. package/examples/{model → stateProvider}/twoWay/MainContainer.mjs +9 -9
  93. package/examples/{model/inline → stateProvider/twoWay}/app.mjs +1 -1
  94. package/examples/stateProvider/twoWay/index.html +11 -0
  95. package/examples/{model → stateProvider}/twoWay/neo-config.json +1 -1
  96. package/examples/table/nestedRecordFields/EditUserDialog.mjs +3 -3
  97. package/examples/table/nestedRecordFields/MainContainer.mjs +8 -8
  98. package/examples/table/nestedRecordFields/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +10 -10
  99. package/examples/toolbar/paging/view/MainContainer.mjs +7 -7
  100. package/examples/toolbar/paging/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +8 -8
  101. package/examples/treeAccordion/MainContainer.mjs +2 -2
  102. package/package.json +6 -6
  103. package/resources/data/deck/learnneo/pages/guides/{ViewModels.md → StateProviders.md} +52 -58
  104. package/resources/data/deck/learnneo/tree.json +46 -46
  105. package/src/DefaultConfig.mjs +2 -2
  106. package/src/Neo.mjs +2 -2
  107. package/src/button/Base.mjs +7 -7
  108. package/src/calendar/view/EditEventContainer.mjs +3 -3
  109. package/src/calendar/view/MainContainer.mjs +27 -27
  110. package/src/calendar/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
  111. package/src/calendar/view/YearComponent.mjs +5 -5
  112. package/src/calendar/view/calendars/EditContainer.mjs +1 -1
  113. package/src/calendar/view/calendars/List.mjs +1 -1
  114. package/src/calendar/view/month/Component.mjs +6 -6
  115. package/src/calendar/view/settings/GeneralContainer.mjs +2 -2
  116. package/src/calendar/view/week/Component.mjs +10 -10
  117. package/src/calendar/view/week/EventDragZone.mjs +1 -1
  118. package/src/code/LivePreview.mjs +2 -2
  119. package/src/component/Base.mjs +77 -61
  120. package/src/container/Base.mjs +3 -3
  121. package/src/controller/Component.mjs +29 -12
  122. package/src/core/Base.mjs +1 -2
  123. package/src/core/Compare.mjs +128 -83
  124. package/src/date/SelectorContainer.mjs +12 -12
  125. package/src/date/{SelectorContainerModel.mjs → SelectorContainerStateProvider.mjs} +7 -7
  126. package/src/layout/Base.mjs +6 -6
  127. package/src/{model/Component.mjs → state/Provider.mjs} +67 -69
  128. package/src/tooltip/Base.mjs +17 -17
  129. package/src/tree/Accordion.mjs +15 -13
  130. package/src/vdom/Helper.mjs +1 -3
  131. package/src/worker/App.mjs +2 -2
  132. package/apps/portal/view/ViewportModel.mjs +0 -27
  133. package/examples/model/extendedClass/MainContainerModel.mjs +0 -24
  134. package/examples/model/inlineNoModel/README.md +0 -8
  135. package/examples/model/inlineNoModel/app.mjs +0 -6
  136. package/examples/model/inlineNoModel/index.html +0 -11
  137. package/examples/model/inlineNoModel/neo-config.json +0 -7
  138. package/examples/model/nestedData/app.mjs +0 -6
  139. package/examples/model/nestedData/index.html +0 -11
  140. package/examples/model/nestedData/neo-config.json +0 -7
  141. package/examples/model/table/MainContainerModel.mjs +0 -24
  142. package/examples/model/table/app.mjs +0 -6
  143. package/examples/model/table/neo-config.json +0 -7
  144. package/examples/model/twoWay/app.mjs +0 -6
  145. package/examples/model/twoWay/index.html +0 -11
  146. /package/examples/{model → stateProvider}/table/index.html +0 -0
@@ -95,16 +95,6 @@ class Component extends Base {
95
95
  me : parent?.getHandlerScope(handlerName) || null
96
96
  }
97
97
 
98
- /**
99
- * sameLevelOnly=false will return the closest VM inside the component parent tree,
100
- * in case there is none on the same level.
101
- * @param {Boolean} [sameLevelOnly=false]
102
- */
103
- getModel(sameLevelOnly=false) {
104
- let {component} = this;
105
- return sameLevelOnly ? component.model : component.getModel()
106
- }
107
-
108
98
  /**
109
99
  * Get the closest controller inside the components parent tree
110
100
  * @returns {Neo.controller.Component|null}
@@ -141,12 +131,31 @@ class Component extends Base {
141
131
  }
142
132
 
143
133
  /**
144
- * Convenience shortcut for accessing model.Component based data.Stores
134
+ * Convenience shortcut
135
+ * @param args
136
+ * @returns {*}
137
+ */
138
+ getState(...args) {
139
+ return this.getStateProvider().getData(...args)
140
+ }
141
+
142
+ /**
143
+ * sameLevelOnly=false will return the closest stateProvider inside the component parent tree,
144
+ * in case there is none on the same level.
145
+ * @param {Boolean} [sameLevelOnly=false]
146
+ */
147
+ getStateProvider(sameLevelOnly=false) {
148
+ let {component} = this;
149
+ return sameLevelOnly ? component.stateProvider : component.getStateProvider()
150
+ }
151
+
152
+ /**
153
+ * Convenience shortcut for accessing state.Provider based data.Stores
145
154
  * @param {String} key
146
155
  * @returns {Neo.data.Store}
147
156
  */
148
157
  getStore(key) {
149
- return this.getModel().getStore(key)
158
+ return this.getStateProvider().getStore(key)
150
159
  }
151
160
 
152
161
  /**
@@ -267,6 +276,14 @@ class Component extends Base {
267
276
 
268
277
  me.getParent()?.removeReference(component)
269
278
  }
279
+
280
+ /**
281
+ * Convenience shortcut
282
+ * @param args
283
+ */
284
+ setState(...args) {
285
+ this.getStateProvider().setData(...args)
286
+ }
270
287
  }
271
288
 
272
289
  export default Neo.setupClass(Component);
package/src/core/Base.mjs CHANGED
@@ -55,7 +55,6 @@ class Base {
55
55
  /**
56
56
  * Configs will get merged throughout the class hierarchy
57
57
  * @returns {Object} config
58
- * @tutorial 02_ClassSystem
59
58
  */
60
59
  static config = {
61
60
  /**
@@ -606,7 +605,7 @@ class Base {
606
605
  timeout(time) {
607
606
  return new Promise(resolve => {
608
607
  let timeoutIds = this.#timeoutIds,
609
- timeoutId = setTimeout(() => {timeoutIds.splice(timeoutIds.indexOf(timeoutId, 1)); resolve()}, time);
608
+ timeoutId = setTimeout(() => {timeoutIds.splice(timeoutIds.indexOf(timeoutId), 1); resolve()}, time);
610
609
 
611
610
  timeoutIds.push(timeoutId)
612
611
  })
@@ -14,118 +14,163 @@ class Compare extends Base {
14
14
  }
15
15
 
16
16
  /**
17
- * @param {*} item1
18
- * @param {*} item2
17
+ * Storing the comparison method names by data type
18
+ * @member {Object} map
19
+ */
20
+ static map = {
21
+ Array : 'compareArrays',
22
+ Date : 'compareDates',
23
+ Function : 'compareFunctions',
24
+ Map : 'compareMaps',
25
+ NeoInstance: 'compareNeoInstances',
26
+ Object : 'compareObjects',
27
+ RegExp : 'compareRegExps',
28
+ Set : 'compareSets'
29
+ }
30
+
31
+ /**
32
+ * @param {Array} item1
33
+ * @param {Array} item2
19
34
  * @returns {Boolean}
20
35
  */
21
- static isEqual(item1, item2) {
22
- if (item1 === item2) {
23
- return true;
36
+ static compareArrays(item1, item2) {
37
+ if (item1.length !== item2.length) {
38
+ return false
24
39
  }
25
40
 
26
- let type1 = Neo.typeOf(item1),
27
- type2 = Neo.typeOf(item2),
28
- key;
29
-
30
- if (type1 !== type2) {
31
- return false;
41
+ for (const [i, v] of item1.entries()) {
42
+ if (!Compare.isEqual(v, item2[i])) {
43
+ return false
44
+ }
32
45
  }
33
46
 
34
- switch (type1) {
35
- case 'Array': {
36
- if (item1.length !== item2.length) {
37
- return false;
38
- }
39
-
40
- for (const [i, v] of item1.entries()) {
41
- if (!Compare.isEqual(v, item2[i])) {
42
- return false;
43
- }
44
- }
47
+ return true
48
+ }
45
49
 
46
- break;
47
- }
50
+ /**
51
+ * @param {Date} item1
52
+ * @param {Date} item2
53
+ * @returns {Boolean}
54
+ */
55
+ static compareDates(item1, item2) {
56
+ return item1.valueOf() === item2.valueOf()
57
+ }
48
58
 
49
- case 'Date': {
50
- return item1.valueOf() === item2.valueOf();
51
- }
59
+ /**
60
+ * @param {Function} item1
61
+ * @param {Function} item2
62
+ * @returns {Boolean}
63
+ */
64
+ static compareFunctions(item1, item2) {
65
+ if (item1.name !== item2.name) {
66
+ return false
67
+ }
52
68
 
53
- case 'Function': {
54
- if (item1.name !== item2.name) {
55
- return false;
56
- }
69
+ return item1.toString() === item2.toString()
70
+ }
57
71
 
58
- return item1.toString() === item2.toString();
59
- }
72
+ /**
73
+ * @param {Map} item1
74
+ * @param {Map} item2
75
+ * @returns {Boolean}
76
+ */
77
+ static compareMaps(item1, item2) {
78
+ if (item1.size !== item2.size) {
79
+ return false
80
+ }
60
81
 
61
- case 'Map': {
62
- if (item1.size !== item2.size) {
63
- return false;
64
- }
82
+ let val2;
65
83
 
66
- let val2;
84
+ for (const [key, val] of item1) {
85
+ val2 = item2.get(key);
67
86
 
68
- for (const [key, val] of item1) {
69
- val2 = item2.get(key);
87
+ if (val2 !== val || val2 === undefined && !item2.has(key)) {
88
+ return false
89
+ }
90
+ }
70
91
 
71
- if (val2 !== val || val2 === undefined && !item2.has(key)) {
72
- return false;
73
- }
74
- }
92
+ return true
93
+ }
75
94
 
76
- break;
77
- }
95
+ /**
96
+ * @param {Neo.core.Base} item1
97
+ * @param {Neo.core.Base} item2
98
+ * @returns {Boolean}
99
+ */
100
+ static compareNeoInstances(item1, item2) {
101
+ return item1.id === item2.id
102
+ }
78
103
 
79
- case 'NeoInstance': {
80
- if (item1.id !== item2.id) {
81
- return false;
82
- }
104
+ /**
105
+ * @param {Object} item1
106
+ * @param {Object} item2
107
+ * @returns {Boolean}
108
+ */
109
+ static compareObjects(item1, item2) {
110
+ if (Object.keys(item1).length !== Object.keys(item2).length) {
111
+ return false
112
+ }
83
113
 
84
- break;
114
+ for (let key in item1) {
115
+ if (!Compare.isEqual(item1[key], item2[key])) {
116
+ return false
85
117
  }
118
+ }
86
119
 
87
- case 'Object': {
88
- if (Object.keys(item1).length !== Object.keys(item2).length) {
89
- return false;
90
- }
91
-
92
- for (key in item1) {
93
- if (!Compare.isEqual(item1[key], item2[key])) {
94
- return false;
95
- }
96
- }
120
+ return true
121
+ }
97
122
 
98
- break;
99
- }
123
+ /**
124
+ * @param {RegExp} item1
125
+ * @param {RegExp} item2
126
+ * @returns {Boolean}
127
+ */
128
+ static compareRegExps(item1, item2) {
129
+ return item1.toString() === item2.toString()
130
+ }
100
131
 
101
- case 'RegExp': {
102
- if (item1.toString() !== item2.toString()) {
103
- return false;
104
- }
132
+ /**
133
+ * @param {Set} item1
134
+ * @param {Set} item2
135
+ * @returns {Boolean}
136
+ */
137
+ static compareSets(item1, item2) {
138
+ if (item1.size !== item2.size) {
139
+ return false
140
+ }
105
141
 
106
- break;
142
+ for (let key of item1) {
143
+ if (!item2.has(key)) {
144
+ return false
107
145
  }
146
+ }
108
147
 
109
- case 'Set': {
110
- if (item1.size !== item2.size) {
111
- return false;
112
- }
148
+ return true
149
+ }
113
150
 
114
- for (key of item1) {
115
- if (!item2.has(key)) {
116
- return false;
117
- }
118
- }
151
+ /**
152
+ * @param {*} item1
153
+ * @param {*} item2
154
+ * @returns {Boolean}
155
+ */
156
+ static isEqual(item1, item2) {
157
+ if (item1 === item2) {
158
+ return true
159
+ }
119
160
 
120
- break;
121
- }
161
+ let type1 = Neo.typeOf(item1),
162
+ type2 = Neo.typeOf(item2);
122
163
 
123
- default: {
124
- return item1 === item2;
125
- }
164
+ if (type1 !== type2) {
165
+ return false
166
+ }
167
+
168
+ if (Compare.map[type1]) {
169
+ return Compare[Compare.map[type1]](item1, item2)
126
170
  }
127
171
 
128
- return true;
172
+ // all other types
173
+ return item1 === item2
129
174
  }
130
175
  }
131
176
 
@@ -1,11 +1,11 @@
1
- import ClassSystemUtil from '../util/ClassSystem.mjs';
2
- import Container from '../container/Base.mjs';
3
- import DateSelectorModel from '../selection/DateSelectorModel.mjs';
4
- import DayViewComponent from './DayViewComponent.mjs';
5
- import DateUtil from '../util/Date.mjs';
6
- import NeoArray from '../util/Array.mjs';
7
- import SelectorContainerModel from './SelectorContainerModel.mjs';
8
- import Toolbar from '../toolbar/Base.mjs';
1
+ import ClassSystemUtil from '../util/ClassSystem.mjs';
2
+ import Container from '../container/Base.mjs';
3
+ import DateSelectorModel from '../selection/DateSelectorModel.mjs';
4
+ import DayViewComponent from './DayViewComponent.mjs';
5
+ import DateUtil from '../util/Date.mjs';
6
+ import NeoArray from '../util/Array.mjs';
7
+ import SelectorContainerStateProvider from './SelectorContainerStateProvider.mjs';
8
+ import Toolbar from '../toolbar/Base.mjs';
9
9
 
10
10
  const todayDate = new Date();
11
11
 
@@ -114,10 +114,6 @@ class SelectorContainer extends Container {
114
114
  * @member {String|null} minValue_=null
115
115
  */
116
116
  minValue_: null,
117
- /**
118
- * @member {Neo.model.Component} model=SelectorContainerModel
119
- */
120
- model: SelectorContainerModel,
121
117
  /**
122
118
  * Used for wheel events. min value = 1.
123
119
  * A higher value means lesser sensitivity for wheel events
@@ -149,6 +145,10 @@ class SelectorContainer extends Container {
149
145
  * @member {Boolean} showWeekends_=true
150
146
  */
151
147
  showWeekends_: true,
148
+ /**
149
+ * @member {Neo.state.Provider} stateProvider=SelectorContainerStateProvider
150
+ */
151
+ stateProvider: SelectorContainerStateProvider,
152
152
  /**
153
153
  * True to use sliding animations
154
154
  * @member {Boolean} useAnimations=true
@@ -1,16 +1,16 @@
1
- import Component from '../model/Component.mjs';
1
+ import StateProvider from '../state/Provider.mjs';
2
2
 
3
3
  /**
4
- * @class Neo.date.SelectorContainerModel
5
- * @extends Neo.model.Component
4
+ * @class Neo.date.SelectorContainerStateProvider
5
+ * @extends Neo.state.Provider
6
6
  */
7
- class SelectorContainerModel extends Component {
7
+ class SelectorContainerStateProvider extends StateProvider {
8
8
  static config = {
9
9
  /**
10
- * @member {String} className='Neo.date.SelectorContainerModel'
10
+ * @member {String} className='Neo.date.SelectorContainerStateProvider'
11
11
  * @protected
12
12
  */
13
- className: 'Neo.date.SelectorContainerModel',
13
+ className: 'Neo.date.SelectorContainerStateProvider',
14
14
  /**
15
15
  * @member {Object} data
16
16
  */
@@ -28,4 +28,4 @@ class SelectorContainerModel extends Component {
28
28
  }
29
29
  }
30
30
 
31
- export default Neo.setupClass(SelectorContainerModel);
31
+ export default Neo.setupClass(SelectorContainerStateProvider);
@@ -101,18 +101,18 @@ class Base extends CoreBase {
101
101
  destroy() {
102
102
  let me = this;
103
103
 
104
- me.bind && me.container.getModel()?.removeBindings(me.id);
104
+ me.bind && me.getStateProvider()?.removeBindings(me.id);
105
105
 
106
106
  super.destroy()
107
107
  }
108
108
 
109
109
  /**
110
- * Returns the container model or its closest parent model
110
+ * Returns the container stateProvider or its closest parent stateProvider
111
111
  * @param {String} [ntype]
112
- * @returns {Neo.model.Component|null}
112
+ * @returns {Neo.state.Provider|null}
113
113
  */
114
- getModel(ntype) {
115
- return this.container.getModel()
114
+ getStateProvider(ntype) {
115
+ return this.container.getStateProvider(ntype)
116
116
  }
117
117
 
118
118
  /**
@@ -125,7 +125,7 @@ class Base extends CoreBase {
125
125
 
126
126
  let me = this;
127
127
 
128
- me.bind && me.container.getModel()?.parseConfig(me)
128
+ me.bind && me.container.getStateProvider()?.parseConfig(me)
129
129
  }
130
130
 
131
131
  /**