neo.mjs 6.17.2 → 6.18.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.
- package/apps/ServiceWorker.mjs +3 -5
- package/apps/colors/README.md +8 -0
- package/apps/colors/app.mjs +6 -0
- package/apps/colors/childapps/widget/app.mjs +7 -0
- package/apps/colors/childapps/widget/index.html +11 -0
- package/apps/colors/childapps/widget/neo-config.json +10 -0
- package/apps/colors/childapps/widget/view/Viewport.mjs +19 -0
- package/apps/colors/index.html +11 -0
- package/apps/colors/model/Color.mjs +43 -0
- package/apps/colors/neo-config.json +10 -0
- package/apps/colors/remotes-api.json +13 -0
- package/apps/colors/store/Colors.mjs +24 -0
- package/apps/colors/view/BarChartComponent.mjs +64 -0
- package/apps/colors/view/HeaderToolbar.mjs +95 -0
- package/apps/colors/view/PieChartComponent.mjs +58 -0
- package/apps/colors/view/TableContainer.mjs +91 -0
- package/apps/colors/view/Viewport.mjs +57 -0
- package/apps/colors/view/ViewportController.mjs +277 -0
- package/apps/colors/view/ViewportModel.mjs +53 -0
- package/apps/portal/Util.mjs +11 -0
- package/apps/portal/childapps/preview/neo-config.json +2 -2
- package/apps/portal/neo-config.json +2 -1
- package/apps/portal/remotes-api.json +13 -0
- package/apps/portal/view/HeaderToolbar.mjs +1 -1
- package/apps/portal/view/ViewportController.mjs +89 -1
- package/apps/portal/view/home/MainContainer.mjs +5 -6
- package/apps/portal/view/home/parts/AfterMath.mjs +1 -1
- package/apps/portal/view/home/parts/{CoolStuff.mjs → Colors.mjs} +20 -28
- package/apps/portal/view/home/parts/Helix.mjs +75 -0
- package/apps/portal/view/learn/LivePreview.mjs +56 -15
- package/apps/portal/view/learn/MainContainerController.mjs +10 -90
- package/apps/realworld/api/Article.mjs +1 -3
- package/apps/realworld/api/Favorite.mjs +1 -3
- package/apps/realworld/api/Profile.mjs +1 -3
- package/apps/realworld/api/Tag.mjs +1 -3
- package/apps/realworld/api/User.mjs +1 -3
- package/apps/realworld2/api/Article.mjs +1 -3
- package/apps/realworld2/api/Favorite.mjs +1 -3
- package/apps/realworld2/api/Profile.mjs +1 -3
- package/apps/realworld2/api/Tag.mjs +1 -3
- package/apps/realworld2/api/User.mjs +1 -3
- package/apps/realworld2/view/article/HelixContainer.mjs +5 -5
- package/buildScripts/webpack/json/myApps.template.json +1 -0
- package/docs/app/view/MainContainer.mjs +5 -0
- package/docs/app/view/classdetails/MembersList.mjs +1 -1
- package/examples/ServiceWorker.mjs +3 -5
- package/examples/component/helix/Viewport.mjs +309 -0
- package/examples/component/helix/ViewportController.mjs +122 -0
- package/examples/component/helix/app.mjs +2 -2
- package/examples/component/helix/neo-config.json +0 -1
- package/examples/component/multiWindowHelix/Viewport.mjs +11 -3
- package/examples/component/multiWindowHelix/ViewportController.mjs +21 -9
- package/examples/component/multiWindowHelix/neo-config.json +0 -1
- package/examples/fieldWithPrefix/MainContainer.mjs +1 -6
- package/examples/list/animate/MainContainerController.mjs +1 -1
- package/examples/worker/task/MyTasks.mjs +1 -3
- package/package.json +2 -2
- package/resources/data/deck/learnneo/pages/GuideEvents.md +131 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Speed.md +1 -1
- package/resources/images/logo/neo_logo_primary.svg +6 -0
- package/resources/images/logo/neo_logo_text_primary.svg +5 -0
- package/resources/scss/src/apps/colors/BarChartComponent.scss +3 -0
- package/resources/scss/src/apps/colors/HeaderToolbar.scss +11 -0
- package/resources/scss/src/apps/colors/PieChartComponent.scss +3 -0
- package/resources/scss/src/apps/colors/TableContainer.scss +64 -0
- package/resources/scss/src/apps/colors/Viewport.scss +9 -0
- package/resources/scss/src/apps/portal/HeaderToolbar.scss +1 -1
- package/resources/scss/src/apps/portal/home/MainContainer.scss +1 -1
- package/resources/scss/src/apps/portal/home/preview/PageCodeContainer.scss +1 -1
- package/resources/scss/src/examples/component/multiWindowHelix/Viewport.scss +3 -0
- package/resources/scss/src/form/field/CheckBox.scss +1 -0
- package/resources/scss/src/tab/header/Button.scss +2 -1
- package/resources/scss/theme-dark/Global.scss +8 -0
- package/resources/scss/theme-dark/button/Base.scss +1 -1
- package/resources/scss/theme-dark/tab/header/Button.scss +1 -0
- package/resources/scss/theme-light/Global.scss +8 -0
- package/resources/scss/theme-light/button/Base.scss +1 -1
- package/resources/scss/theme-light/tab/header/Button.scss +1 -0
- package/resources/scss/theme-neo-light/Global.scss +53 -53
- package/resources/scss/theme-neo-light/button/Base.scss +3 -4
- package/resources/scss/theme-neo-light/tab/header/Button.scss +6 -8
- package/src/DefaultConfig.mjs +2 -2
- package/src/Fetch.mjs +1 -3
- package/src/Main.mjs +13 -11
- package/src/MicroLoader.mjs +2 -2
- package/src/Neo.mjs +27 -26
- package/src/Xhr.mjs +1 -3
- package/src/button/Base.mjs +6 -4
- package/src/button/Split.mjs +10 -9
- package/src/calendar/view/EditEventContainer.mjs +13 -12
- package/src/calendar/view/MainContainer.mjs +40 -40
- package/src/calendar/view/MainContainerModel.mjs +5 -5
- package/src/calendar/view/SettingsContainer.mjs +11 -11
- package/src/calendar/view/YearComponent.mjs +73 -75
- package/src/calendar/view/calendars/ColorsList.mjs +2 -2
- package/src/calendar/view/calendars/EditContainer.mjs +2 -2
- package/src/calendar/view/calendars/List.mjs +12 -13
- package/src/calendar/view/month/Component.mjs +72 -73
- package/src/calendar/view/settings/GeneralContainer.mjs +5 -5
- package/src/calendar/view/settings/MonthContainer.mjs +5 -5
- package/src/calendar/view/settings/WeekContainer.mjs +6 -6
- package/src/calendar/view/settings/YearContainer.mjs +4 -4
- package/src/calendar/view/week/Component.mjs +47 -57
- package/src/calendar/view/week/EventDragZone.mjs +43 -50
- package/src/calendar/view/week/TimeAxisComponent.mjs +21 -21
- package/src/calendar/view/week/plugin/DragDrop.mjs +53 -45
- package/src/calendar/view/week/plugin/EventResizable.mjs +8 -3
- package/src/collection/Base.mjs +15 -22
- package/src/collection/Filter.mjs +4 -9
- package/src/collection/Sorter.mjs +6 -7
- package/src/component/Base.mjs +25 -31
- package/src/component/Canvas.mjs +9 -9
- package/src/component/Carousel.mjs +31 -33
- package/src/component/Chip.mjs +9 -9
- package/src/component/Circle.mjs +84 -91
- package/src/component/Clock.mjs +8 -8
- package/src/component/DateSelector.mjs +14 -15
- package/src/component/Gallery.mjs +82 -80
- package/src/component/Helix.mjs +131 -126
- package/src/component/Iframe.mjs +1 -1
- package/src/component/Label.mjs +1 -1
- package/src/component/Legend.mjs +3 -3
- package/src/component/Process.mjs +39 -37
- package/src/component/Splitter.mjs +9 -11
- package/src/component/StatusBadge.mjs +2 -3
- package/src/component/Timer.mjs +62 -68
- package/src/component/Toast.mjs +11 -11
- package/src/component/Video.mjs +7 -8
- package/src/component/mwc/Button.mjs +10 -10
- package/src/component/mwc/TextField.mjs +17 -17
- package/src/component/wrapper/AmChart.mjs +5 -5
- package/src/component/wrapper/CesiumJS.mjs +11 -17
- package/src/component/wrapper/GoogleMaps.mjs +58 -35
- package/src/component/wrapper/MapboxGL.mjs +112 -79
- package/src/container/Accordion.mjs +18 -20
- package/src/container/AccordionItem.mjs +12 -11
- package/src/container/Base.mjs +24 -23
- package/src/container/Panel.mjs +9 -9
- package/src/controller/Base.mjs +12 -14
- package/src/controller/Component.mjs +60 -66
- package/src/core/Base.mjs +5 -8
- package/src/core/IdGenerator.mjs +1 -3
- package/src/core/Observable.mjs +17 -17
- package/src/core/Util.mjs +5 -5
- package/src/data/Model.mjs +3 -3
- package/src/data/RecordFactory.mjs +3 -6
- package/src/data/Store.mjs +34 -34
- package/src/data/connection/Fetch.mjs +3 -3
- package/src/data/connection/WebSocket.mjs +21 -25
- package/src/data/connection/Xhr.mjs +31 -28
- package/src/date/DayViewComponent.mjs +1 -1
- package/src/date/SelectorContainer.mjs +2 -2
- package/src/dialog/Base.mjs +27 -25
- package/src/dialog/header/Toolbar.mjs +5 -4
- package/src/draggable/DragProxyComponent.mjs +7 -4
- package/src/draggable/DragZone.mjs +30 -30
- package/src/draggable/DropZone.mjs +7 -7
- package/src/draggable/list/DragZone.mjs +18 -18
- package/src/draggable/tab/header/toolbar/SortZone.mjs +7 -7
- package/src/draggable/toolbar/DragZone.mjs +15 -15
- package/src/draggable/toolbar/SortZone.mjs +30 -31
- package/src/draggable/tree/DragZone.mjs +9 -9
- package/src/filter/BooleanContainer.mjs +3 -3
- package/src/filter/NumberContainer.mjs +5 -5
- package/src/filter/ToggleOperatorsButton.mjs +5 -5
- package/src/form/Fieldset.mjs +26 -26
- package/src/form/field/Base.mjs +1 -1
- package/src/form/field/CheckBox.mjs +15 -16
- package/src/form/field/Color.mjs +13 -15
- package/src/form/field/ComboBox.mjs +16 -24
- package/src/form/field/Country.mjs +1 -1
- package/src/form/field/Date.mjs +3 -4
- package/src/form/field/Display.mjs +1 -1
- package/src/form/field/Email.mjs +2 -2
- package/src/form/field/Number.mjs +51 -56
- package/src/form/field/Picker.mjs +2 -2
- package/src/form/field/Radio.mjs +1 -1
- package/src/form/field/Range.mjs +7 -6
- package/src/form/field/Text.mjs +29 -36
- package/src/form/field/TextArea.mjs +9 -9
- package/src/form/field/Time.mjs +30 -30
- package/src/form/field/trigger/Base.mjs +19 -13
- package/src/form/field/trigger/Clear.mjs +13 -13
- package/src/form/field/trigger/CopyToClipboard.mjs +7 -7
- package/src/form/field/trigger/Picker.mjs +2 -2
- package/src/form/field/trigger/SpinDown.mjs +1 -1
- package/src/form/field/trigger/SpinUp.mjs +1 -1
- package/src/form/field/trigger/SpinUpDown.mjs +3 -3
- package/src/form/field/trigger/Time.mjs +3 -3
- package/src/grid/Container.mjs +33 -33
- package/src/grid/View.mjs +20 -22
- package/src/grid/header/Button.mjs +12 -12
- package/src/grid/header/Toolbar.mjs +4 -4
- package/src/layout/Base.mjs +5 -4
- package/src/layout/Card.mjs +15 -16
- package/src/layout/Fit.mjs +22 -8
- package/src/layout/Flexbox.mjs +30 -29
- package/src/layout/Form.mjs +15 -15
- package/src/layout/Grid.mjs +2 -2
- package/src/layout/HBox.mjs +3 -2
- package/src/layout/VBox.mjs +3 -2
- package/src/list/Base.mjs +45 -47
- package/src/list/Chip.mjs +4 -4
- package/src/list/Circle.mjs +3 -3
- package/src/list/Color.mjs +4 -4
- package/src/list/Component.mjs +10 -10
- package/src/list/plugin/Animate.mjs +18 -13
- package/src/main/DomAccess.mjs +92 -56
- package/src/main/DomEvents.mjs +38 -39
- package/src/main/addon/AmCharts.mjs +37 -37
- package/src/main/addon/AnalyticsByGoogle.mjs +4 -4
- package/src/main/addon/CesiumJS.mjs +8 -8
- package/src/main/addon/CloneNode.mjs +5 -5
- package/src/main/addon/Cookie.mjs +4 -4
- package/src/main/addon/DragDrop.mjs +35 -34
- package/src/main/addon/GoogleMaps.mjs +19 -19
- package/src/main/addon/LocalStorage.mjs +3 -3
- package/src/main/addon/MapboxGL.mjs +40 -41
- package/src/main/addon/MonacoEditor.mjs +5 -5
- package/src/main/addon/Mwc.mjs +6 -6
- package/src/main/addon/Navigator.mjs +35 -39
- package/src/main/addon/Popover.mjs +5 -6
- package/src/main/addon/PrefixField.mjs +1 -2
- package/src/main/addon/ServiceWorker.mjs +9 -9
- package/src/main/addon/Siesta.mjs +3 -2
- package/src/main/addon/Stylesheet.mjs +37 -37
- package/src/main/addon/WebComponent.mjs +2 -3
- package/src/main/addon/WindowPosition.mjs +18 -18
- package/src/main/draggable/sensor/Base.mjs +2 -2
- package/src/main/draggable/sensor/Mouse.mjs +15 -15
- package/src/main/draggable/sensor/Touch.mjs +24 -23
- package/src/main/mixin/DeltaUpdates.mjs +10 -12
- package/src/main/mixin/TouchDomEvents.mjs +6 -6
- package/src/manager/Base.mjs +4 -4
- package/src/manager/Component.mjs +41 -41
- package/src/manager/DomEvent.mjs +41 -44
- package/src/manager/Focus.mjs +14 -16
- package/src/manager/Instance.mjs +2 -4
- package/src/manager/Store.mjs +4 -8
- package/src/manager/Task.mjs +20 -22
- package/src/manager/Toast.mjs +14 -16
- package/src/manager/rpc/Api.mjs +1 -3
- package/src/manager/rpc/Message.mjs +16 -18
- package/src/menu/List.mjs +16 -16
- package/src/menu/Panel.mjs +4 -4
- package/src/model/Component.mjs +5 -5
- package/src/plugin/Base.mjs +2 -0
- package/src/plugin/Popover.mjs +1 -1
- package/src/plugin/PrefixField.mjs +35 -45
- package/src/plugin/Resizable.mjs +86 -101
- package/src/plugin/Responsive.mjs +1 -1
- package/src/remotes/Api.mjs +4 -6
- package/src/selection/CircleModel.mjs +12 -16
- package/src/selection/DateSelectorModel.mjs +21 -23
- package/src/selection/GalleryModel.mjs +49 -63
- package/src/selection/HelixModel.mjs +35 -41
- package/src/selection/ListModel.mjs +9 -14
- package/src/selection/Model.mjs +31 -31
- package/src/selection/TreeAccordionModel.mjs +74 -80
- package/src/selection/grid/CellColumnModel.mjs +10 -10
- package/src/selection/grid/CellColumnRowModel.mjs +10 -10
- package/src/selection/grid/CellModel.mjs +26 -28
- package/src/selection/grid/CellRowModel.mjs +24 -24
- package/src/selection/grid/ColumnModel.mjs +16 -20
- package/src/selection/grid/RowModel.mjs +27 -29
- package/src/selection/menu/ListModel.mjs +2 -2
- package/src/selection/table/CellColumnModel.mjs +12 -12
- package/src/selection/table/CellColumnRowModel.mjs +12 -12
- package/src/selection/table/CellModel.mjs +26 -29
- package/src/selection/table/CellRowModel.mjs +19 -19
- package/src/selection/table/ColumnModel.mjs +18 -22
- package/src/selection/table/RowModel.mjs +27 -29
- package/src/sitemap/Component.mjs +20 -20
- package/src/sitemap/Store.mjs +1 -1
- package/src/tab/Container.mjs +15 -15
- package/src/tab/Strip.mjs +1 -1
- package/src/tab/header/Toolbar.mjs +4 -4
- package/src/table/Container.mjs +8 -10
- package/src/table/View.mjs +29 -34
- package/src/table/header/Button.mjs +18 -18
- package/src/table/header/Toolbar.mjs +2 -2
- package/src/toolbar/Base.mjs +14 -14
- package/src/toolbar/Breadcrumb.mjs +11 -11
- package/src/toolbar/Paging.mjs +18 -18
- package/src/tooltip/Base.mjs +20 -22
- package/src/tree/Accordion.mjs +69 -75
- package/src/tree/List.mjs +22 -25
- package/src/util/Array.mjs +19 -18
- package/src/util/ClassSystem.mjs +9 -9
- package/src/util/Css.mjs +2 -2
- package/src/util/Date.mjs +9 -9
- package/src/util/Function.mjs +2 -2
- package/src/util/HashHistory.mjs +3 -5
- package/src/util/KeyNavigation.mjs +17 -17
- package/src/util/Logger.mjs +9 -9
- package/src/util/Matrix.mjs +19 -19
- package/src/util/String.mjs +9 -9
- package/src/util/Style.mjs +11 -11
- package/src/util/VDom.mjs +12 -14
- package/src/util/VNode.mjs +29 -29
- package/src/vdom/Helper.mjs +84 -93
- package/src/vdom/VNode.mjs +1 -1
- package/src/worker/App.mjs +19 -16
- package/src/worker/Base.mjs +14 -15
- package/src/worker/Canvas.mjs +1 -3
- package/src/worker/Data.mjs +4 -8
- package/src/worker/Manager.mjs +27 -32
- package/src/worker/Message.mjs +1 -1
- package/src/worker/ServiceBase.mjs +38 -42
- package/src/worker/Task.mjs +1 -3
- package/src/worker/VDom.mjs +2 -4
- package/src/worker/mixin/RemoteMethodAccess.mjs +5 -6
- package/examples/component/helix/MainContainer.mjs +0 -340
- /package/resources/images/{Neo_Logo_Blue.svg → logo/neo_logo_secondary.svg} +0 -0
- /package/resources/images/{Neo_Logo_Text.svg → logo/neo_logo_text_secondary.svg} +0 -0
- /package/resources/images/{Neo_Logo_White.svg → logo/neo_logo_white.svg} +0 -0
package/src/selection/Model.mjs
CHANGED
@@ -59,10 +59,10 @@ class Model extends Base {
|
|
59
59
|
*/
|
60
60
|
beforeGetItems(value) {
|
61
61
|
if (!value) {
|
62
|
-
this._items = value = []
|
62
|
+
this._items = value = []
|
63
63
|
}
|
64
64
|
|
65
|
-
return value
|
65
|
+
return value
|
66
66
|
}
|
67
67
|
|
68
68
|
/**
|
@@ -71,7 +71,7 @@ class Model extends Base {
|
|
71
71
|
* @returns {Neo.component.Base}
|
72
72
|
*/
|
73
73
|
beforeGetView(value) {
|
74
|
-
return Neo.getComponent(this._view)
|
74
|
+
return Neo.getComponent(this._view)
|
75
75
|
}
|
76
76
|
|
77
77
|
/**
|
@@ -79,7 +79,7 @@ class Model extends Base {
|
|
79
79
|
* @returns {String} the view id
|
80
80
|
*/
|
81
81
|
beforeSetView(value) {
|
82
|
-
return value && value.id
|
82
|
+
return value && value.id
|
83
83
|
}
|
84
84
|
|
85
85
|
/**
|
@@ -98,13 +98,13 @@ class Model extends Base {
|
|
98
98
|
item = item.isRecord ? view.getItemId(item) : Neo.isObject(item) ? item.id : item;
|
99
99
|
|
100
100
|
if (itemCollection.includes(item)) {
|
101
|
-
let me
|
102
|
-
view = me
|
103
|
-
node
|
101
|
+
let me = this,
|
102
|
+
{view} = me,
|
103
|
+
node = view.getVdomChild(item);
|
104
104
|
|
105
105
|
if (node) {
|
106
106
|
node.cls = NeoArray.remove(node.cls || [], selectedCls || me.selectedCls);
|
107
|
-
node['aria-selected'] = false
|
107
|
+
node['aria-selected'] = false
|
108
108
|
}
|
109
109
|
|
110
110
|
NeoArray.remove(itemCollection, item);
|
@@ -113,12 +113,12 @@ class Model extends Base {
|
|
113
113
|
view.update();
|
114
114
|
|
115
115
|
me.fire('selectionChange', {
|
116
|
-
selection
|
117
|
-
})
|
116
|
+
selection: itemCollection
|
117
|
+
})
|
118
118
|
}
|
119
119
|
}
|
120
120
|
else if (!silent) {
|
121
|
-
this.fire('noChange')
|
121
|
+
this.fire('noChange')
|
122
122
|
}
|
123
123
|
}
|
124
124
|
|
@@ -126,48 +126,48 @@ class Model extends Base {
|
|
126
126
|
* @param {Boolean} [silent] true to prevent a vdom update
|
127
127
|
*/
|
128
128
|
deselectAll(silent) {
|
129
|
-
let me
|
130
|
-
items
|
131
|
-
view
|
129
|
+
let me = this,
|
130
|
+
items = [...me.items],
|
131
|
+
{view} = me;
|
132
132
|
|
133
133
|
if (items.length) {
|
134
134
|
items.forEach(item => {
|
135
|
-
me.deselect(item, true)
|
135
|
+
me.deselect(item, true)
|
136
136
|
});
|
137
137
|
|
138
138
|
if (!silent && items.length > 0) {
|
139
|
-
view.update()
|
139
|
+
view.update()
|
140
140
|
}
|
141
141
|
|
142
142
|
me.fire('selectionChange', {
|
143
|
-
selection
|
144
|
-
})
|
143
|
+
selection: this.items
|
144
|
+
})
|
145
145
|
}
|
146
146
|
else if (!silent) {
|
147
|
-
me.fire('noChange')
|
147
|
+
me.fire('noChange')
|
148
148
|
}
|
149
149
|
}
|
150
150
|
|
151
151
|
/**
|
152
152
|
*
|
153
153
|
*/
|
154
|
-
destroy() {
|
154
|
+
destroy(...args) {
|
155
155
|
this.unregister();
|
156
|
-
super.destroy()
|
156
|
+
super.destroy(...args)
|
157
157
|
}
|
158
158
|
|
159
159
|
/**
|
160
160
|
* @returns {Array} this.items
|
161
161
|
*/
|
162
162
|
getSelection() {
|
163
|
-
return this.items
|
163
|
+
return this.items
|
164
164
|
}
|
165
165
|
|
166
166
|
/**
|
167
167
|
* @returns {Boolean} true in case there is a selection
|
168
168
|
*/
|
169
169
|
hasSelection() {
|
170
|
-
return this.items.length > 0
|
170
|
+
return this.items.length > 0
|
171
171
|
}
|
172
172
|
|
173
173
|
/**
|
@@ -175,7 +175,7 @@ class Model extends Base {
|
|
175
175
|
* @returns {Boolean} true in case the item is selected
|
176
176
|
*/
|
177
177
|
isSelected(id) {
|
178
|
-
return this.items.includes(id)
|
178
|
+
return this.items.includes(id)
|
179
179
|
}
|
180
180
|
|
181
181
|
/**
|
@@ -187,11 +187,11 @@ class Model extends Base {
|
|
187
187
|
|
188
188
|
if (me.cls && !cls.includes(me.cls)) {
|
189
189
|
cls.push(me.cls);
|
190
|
-
component.cls = cls
|
190
|
+
component.cls = cls
|
191
191
|
}
|
192
192
|
|
193
193
|
me.view = component;
|
194
|
-
me.addDomListener()
|
194
|
+
me.addDomListener()
|
195
195
|
}
|
196
196
|
|
197
197
|
/**
|
@@ -204,11 +204,11 @@ class Model extends Base {
|
|
204
204
|
|
205
205
|
component.domListeners.forEach(listener => {
|
206
206
|
if (listener.scope === me) {
|
207
|
-
NeoArray.remove(domListeners, listener)
|
207
|
+
NeoArray.remove(domListeners, listener)
|
208
208
|
}
|
209
209
|
});
|
210
210
|
|
211
|
-
component.domListeners = domListeners
|
211
|
+
component.domListeners = domListeners
|
212
212
|
}
|
213
213
|
|
214
214
|
/**
|
@@ -222,7 +222,7 @@ class Model extends Base {
|
|
222
222
|
|
223
223
|
// We hold vdom ids for now, so all incoming selections must be converted.
|
224
224
|
items = (items = Array.isArray(items) ?
|
225
|
-
items
|
225
|
+
items: [items]).map(item => item.isRecord ? view.getItemId(item) : Neo.isObject(item) ? item.id : item);
|
226
226
|
|
227
227
|
if (!Neo.isEqual(itemCollection, items)) {
|
228
228
|
if (me.singleSelect) {
|
@@ -275,12 +275,12 @@ class Model extends Base {
|
|
275
275
|
|
276
276
|
if (me.cls && cls.includes(me.cls)) {
|
277
277
|
NeoArray.remove(cls, me.cls);
|
278
|
-
me.view.cls = cls
|
278
|
+
me.view.cls = cls
|
279
279
|
}
|
280
280
|
|
281
281
|
me.deselectAll();
|
282
282
|
|
283
|
-
me.removeDomListeners()
|
283
|
+
me.removeDomListeners()
|
284
284
|
}
|
285
285
|
}
|
286
286
|
|
@@ -25,18 +25,18 @@ class TreeAccordionModel extends TreeModel {
|
|
25
25
|
* @returns {Object|null}
|
26
26
|
*/
|
27
27
|
checkForChild(record) {
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
let {view} = this,
|
29
|
+
recordId = record[view.getKeyProperty()],
|
30
|
+
childRecord = null;
|
31
31
|
|
32
32
|
for (const item of view.store.items) {
|
33
33
|
if (item.parentId === recordId) {
|
34
34
|
childRecord = item;
|
35
|
-
break
|
35
|
+
break
|
36
36
|
}
|
37
37
|
}
|
38
38
|
|
39
|
-
return childRecord
|
39
|
+
return childRecord
|
40
40
|
}
|
41
41
|
|
42
42
|
/**
|
@@ -44,14 +44,8 @@ class TreeAccordionModel extends TreeModel {
|
|
44
44
|
* @param {Object} record
|
45
45
|
* @returns {Object|null}
|
46
46
|
*/
|
47
|
-
checkForParent(
|
48
|
-
|
49
|
-
const view = this.view;
|
50
|
-
|
51
|
-
return view.store.get(record.parentId);
|
52
|
-
} else {
|
53
|
-
return null;
|
54
|
-
}
|
47
|
+
checkForParent({parentId}) {
|
48
|
+
return parentId ? this.view.store.get(parentId) : null
|
55
49
|
}
|
56
50
|
|
57
51
|
/**
|
@@ -64,31 +58,31 @@ class TreeAccordionModel extends TreeModel {
|
|
64
58
|
* @returns {Object|null}
|
65
59
|
*/
|
66
60
|
checkForSibling(record, step) {
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
61
|
+
let {view} = this,
|
62
|
+
{store} = view,
|
63
|
+
parentRecordId = record.parentId,
|
64
|
+
recordId = record[view.getKeyProperty()],
|
65
|
+
hasFoundNext = false,
|
72
66
|
nextItemRecord = null,
|
73
67
|
previousItemRecord;
|
74
68
|
|
75
69
|
for (let item of store.items) {
|
76
70
|
if (hasFoundNext && item.parentId === parentRecordId) {
|
77
71
|
nextItemRecord = item;
|
78
|
-
break
|
72
|
+
break
|
79
73
|
}
|
80
74
|
|
81
75
|
if (!hasFoundNext && item.parentId === parentRecordId) {
|
82
76
|
if (!hasFoundNext && item[view.getKeyProperty()] === recordId) {
|
83
77
|
if (step === -1) break;
|
84
|
-
hasFoundNext = true
|
78
|
+
hasFoundNext = true
|
85
79
|
} else {
|
86
|
-
previousItemRecord = item
|
80
|
+
previousItemRecord = item
|
87
81
|
}
|
88
82
|
}
|
89
83
|
}
|
90
84
|
|
91
|
-
return step === 1 ? nextItemRecord : (previousItemRecord || store.get(parentRecordId))
|
85
|
+
return step === 1 ? nextItemRecord : (previousItemRecord || store.get(parentRecordId))
|
92
86
|
}
|
93
87
|
|
94
88
|
/**
|
@@ -97,12 +91,15 @@ class TreeAccordionModel extends TreeModel {
|
|
97
91
|
* @returns {Object|null}
|
98
92
|
*/
|
99
93
|
checkNextParentSibling(record) {
|
100
|
-
|
101
|
-
|
94
|
+
let me = this,
|
95
|
+
parent = me.view.store.get(record.parentId),
|
96
|
+
parentSibling = me.checkForSibling(parent, 1);
|
102
97
|
|
103
|
-
if (!parentSibling && parent.parentId)
|
98
|
+
if (!parentSibling && parent.parentId) {
|
99
|
+
me.checkNextParentSibling(parent)
|
100
|
+
}
|
104
101
|
|
105
|
-
return parentSibling
|
102
|
+
return parentSibling
|
106
103
|
}
|
107
104
|
|
108
105
|
/**
|
@@ -112,14 +109,14 @@ class TreeAccordionModel extends TreeModel {
|
|
112
109
|
*/
|
113
110
|
onKeyDownEnter(data) {
|
114
111
|
let me = this,
|
115
|
-
view
|
112
|
+
{view} = me,
|
116
113
|
itemId = me.getSelection()[0],
|
117
114
|
record = view.store.get(view.getItemRecordId(itemId));
|
118
115
|
|
119
116
|
if (record.isLeaf || record.collapsed) {
|
120
|
-
me.onKeyDownRight(data)
|
117
|
+
me.onKeyDownRight(data)
|
121
118
|
} else {
|
122
|
-
me.onKeyDownLeft(data)
|
119
|
+
me.onKeyDownLeft(data)
|
123
120
|
}
|
124
121
|
}
|
125
122
|
|
@@ -129,9 +126,7 @@ class TreeAccordionModel extends TreeModel {
|
|
129
126
|
* @param {Object} data
|
130
127
|
*/
|
131
128
|
onKeyDownEscape(data) {
|
132
|
-
|
133
|
-
|
134
|
-
me.deselectAll();
|
129
|
+
this.deselectAll()
|
135
130
|
}
|
136
131
|
|
137
132
|
/**
|
@@ -139,21 +134,22 @@ class TreeAccordionModel extends TreeModel {
|
|
139
134
|
* @param {Object} data
|
140
135
|
*/
|
141
136
|
onKeyDownLeft(data) {
|
142
|
-
|
143
|
-
|
144
|
-
|
137
|
+
let me = this,
|
138
|
+
{view} = me,
|
139
|
+
itemId = me.getSelection()[0],
|
140
|
+
record;
|
145
141
|
|
146
142
|
if (!itemId) {
|
147
143
|
me.selectRoot();
|
148
|
-
return
|
144
|
+
return
|
149
145
|
}
|
150
146
|
|
151
|
-
|
147
|
+
record = view.store.get(view.getItemRecordId(itemId));
|
152
148
|
|
153
149
|
if (record.isLeaf || record.collapsed || !view.rootParentsAreCollapsible) {
|
154
|
-
me.onNavKey(data, -1)
|
150
|
+
me.onNavKey(data, -1)
|
155
151
|
} else {
|
156
|
-
me.toggleCollapsed(record, itemId, true)
|
152
|
+
me.toggleCollapsed(record, itemId, true)
|
157
153
|
}
|
158
154
|
}
|
159
155
|
|
@@ -162,21 +158,22 @@ class TreeAccordionModel extends TreeModel {
|
|
162
158
|
* @param {Object} data
|
163
159
|
*/
|
164
160
|
onKeyDownRight(data) {
|
165
|
-
|
166
|
-
|
167
|
-
|
161
|
+
let me = this,
|
162
|
+
{view} = me,
|
163
|
+
itemId = me.getSelection()[0],
|
164
|
+
record;
|
168
165
|
|
169
166
|
if (!itemId) {
|
170
167
|
me.selectRoot();
|
171
|
-
return
|
168
|
+
return
|
172
169
|
}
|
173
170
|
|
174
|
-
|
171
|
+
record = view.store.get(view.getItemRecordId(itemId));
|
175
172
|
|
176
173
|
if (record.isLeaf || !record.collapsed) {
|
177
|
-
me.onNavKey(data, 1)
|
174
|
+
me.onNavKey(data, 1)
|
178
175
|
} else {
|
179
|
-
me.toggleCollapsed(record, itemId, false)
|
176
|
+
me.toggleCollapsed(record, itemId, false)
|
180
177
|
}
|
181
178
|
}
|
182
179
|
|
@@ -186,53 +183,53 @@ class TreeAccordionModel extends TreeModel {
|
|
186
183
|
* @param {Number} step
|
187
184
|
*/
|
188
185
|
onNavKey(data, step) {
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
186
|
+
let me = this,
|
187
|
+
{view} = me,
|
188
|
+
item = me.getSelection()[0],
|
189
|
+
newRecord, record, recordId;
|
193
190
|
|
194
191
|
if (item) {
|
195
|
-
|
196
|
-
|
192
|
+
recordId = view.getItemRecordId(item);
|
193
|
+
record = view.store.get(recordId);
|
197
194
|
|
198
195
|
if (step === 1) {
|
199
196
|
if (!record.isLeaf && !record.collapsed) {
|
200
197
|
// find first child
|
201
|
-
newRecord =
|
198
|
+
newRecord = me.checkForChild(record)
|
202
199
|
} else {
|
203
200
|
// find next sibling
|
204
|
-
newRecord =
|
201
|
+
newRecord = me.checkForSibling(record, step);
|
205
202
|
// no ==> loop through parent next siblings until no parent
|
206
203
|
if (!newRecord) {
|
207
|
-
newRecord =
|
204
|
+
newRecord = me.checkNextParentSibling(record)
|
208
205
|
}
|
209
206
|
}
|
210
207
|
// current item was the last item
|
211
208
|
if (!newRecord) {
|
212
209
|
me.deselectAll();
|
213
|
-
view.fire('selectPostLastItem')
|
210
|
+
view.fire('selectPostLastItem')
|
214
211
|
}
|
215
212
|
} else if (step === -1) {
|
216
213
|
// check previous sibling
|
217
|
-
newRecord =
|
214
|
+
newRecord = me.checkForSibling(record, step);
|
218
215
|
// no ==> get parent
|
219
216
|
if (!newRecord) {
|
220
|
-
newRecord =
|
217
|
+
newRecord = me.checkForParent(record)
|
221
218
|
}
|
222
219
|
// current item was the first item
|
223
220
|
if (!newRecord) {
|
224
221
|
me.deselectAll();
|
225
|
-
view.fire('selectPreFirstItem')
|
222
|
+
view.fire('selectPreFirstItem')
|
226
223
|
}
|
227
224
|
}
|
228
225
|
} else {
|
229
|
-
me.selectRoot()
|
226
|
+
me.selectRoot()
|
230
227
|
}
|
231
228
|
|
232
229
|
if (newRecord) {
|
233
230
|
const itemId = view.getItemId(newRecord[me.view.getKeyProperty()]);
|
234
231
|
|
235
|
-
me.selectAndScrollIntoView(itemId)
|
232
|
+
me.selectAndScrollIntoView(itemId)
|
236
233
|
}
|
237
234
|
}
|
238
235
|
|
@@ -241,33 +238,31 @@ class TreeAccordionModel extends TreeModel {
|
|
241
238
|
* @param {String} itemId
|
242
239
|
*/
|
243
240
|
selectAndScrollIntoView(itemId) {
|
244
|
-
|
245
|
-
|
246
|
-
me.select(itemId);
|
241
|
+
this.select(itemId);
|
247
242
|
|
248
243
|
Neo.main.DomAccess.scrollIntoView({
|
249
|
-
id
|
250
|
-
block: 'center'
|
251
|
-
|
244
|
+
id : itemId,
|
245
|
+
block : 'center',
|
246
|
+
windowId: this.view.windowId
|
247
|
+
})
|
252
248
|
}
|
253
249
|
|
254
250
|
/**
|
255
251
|
* Select the root item of the tree
|
256
252
|
*/
|
257
253
|
selectRoot() {
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
let rootItemId;
|
254
|
+
let {view} = this,
|
255
|
+
{store} = view,
|
256
|
+
record, rootItemId;
|
262
257
|
|
263
|
-
for (
|
258
|
+
for (record of store.items) {
|
264
259
|
if (!record.parentId) {
|
265
|
-
rootItemId = view.getItemId(record[
|
266
|
-
break
|
260
|
+
rootItemId = view.getItemId(record[view.getKeyProperty()]);
|
261
|
+
break
|
267
262
|
}
|
268
263
|
}
|
269
264
|
|
270
|
-
|
265
|
+
this.selectAndScrollIntoView(rootItemId)
|
271
266
|
}
|
272
267
|
|
273
268
|
/**
|
@@ -277,14 +272,13 @@ class TreeAccordionModel extends TreeModel {
|
|
277
272
|
* @param {Boolean} collapse
|
278
273
|
*/
|
279
274
|
toggleCollapsed(record, itemId, collapse) {
|
280
|
-
|
281
|
-
|
282
|
-
clsFn = collapse ? 'remove' : 'add';
|
275
|
+
let item = this.view.getVdomChild(itemId),
|
276
|
+
clsFn = collapse ? 'remove' : 'add';
|
283
277
|
|
284
278
|
NeoArray[clsFn](item.cls, 'neo-folder-open');
|
285
|
-
|
279
|
+
this.view.update();
|
286
280
|
|
287
|
-
record.collapsed = collapse
|
281
|
+
record.collapsed = collapse
|
288
282
|
}
|
289
283
|
}
|
290
284
|
|
@@ -41,7 +41,7 @@ class CellColumnModel extends CellModel {
|
|
41
41
|
construct(config) {
|
42
42
|
super.construct(config);
|
43
43
|
|
44
|
-
this.selectedColumnCellIds = []
|
44
|
+
this.selectedColumnCellIds = []
|
45
45
|
}
|
46
46
|
|
47
47
|
/**
|
@@ -50,13 +50,13 @@ class CellColumnModel extends CellModel {
|
|
50
50
|
deselectAllCells(silent) {
|
51
51
|
let me = this,
|
52
52
|
cellIds = [...me.selectedColumnCellIds],
|
53
|
-
view
|
53
|
+
{view} = me
|
54
54
|
|
55
55
|
cellIds.forEach(cellId => {
|
56
|
-
me.deselect(cellId, true, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
56
|
+
me.deselect(cellId, true, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
57
57
|
});
|
58
58
|
|
59
|
-
!silent && view.update()
|
59
|
+
!silent && view.update()
|
60
60
|
}
|
61
61
|
|
62
62
|
/**
|
@@ -73,10 +73,10 @@ class CellColumnModel extends CellModel {
|
|
73
73
|
columnNodeIds = VDomUtil.getColumnNodesIds(tbodyNode, index);
|
74
74
|
|
75
75
|
me.deselectAllCells(true);
|
76
|
-
me.select(columnNodeIds, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
76
|
+
me.select(columnNodeIds, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
77
77
|
}
|
78
78
|
|
79
|
-
super.onCellClick(data)
|
79
|
+
super.onCellClick(data)
|
80
80
|
}
|
81
81
|
|
82
82
|
/**
|
@@ -87,13 +87,13 @@ class CellColumnModel extends CellModel {
|
|
87
87
|
let me = this,
|
88
88
|
idArray = ColumnModel.getCellId(data.path).split('__'),
|
89
89
|
currentColumn = idArray[2],
|
90
|
-
view
|
90
|
+
{view} = me,
|
91
91
|
fields = view.columns.map(c => c.field),
|
92
92
|
newIndex = (fields.indexOf(currentColumn) + step) % fields.length,
|
93
93
|
columnNodeIds, tbodyNode;
|
94
94
|
|
95
95
|
while (newIndex < 0) {
|
96
|
-
newIndex += fields.length
|
96
|
+
newIndex += fields.length
|
97
97
|
}
|
98
98
|
|
99
99
|
tbodyNode = VDomUtil.findVdomChild(me.view.vdom, {cls: 'neo-grid-view'}).vdom;
|
@@ -102,7 +102,7 @@ class CellColumnModel extends CellModel {
|
|
102
102
|
me.deselectAllCells(true);
|
103
103
|
me.select(columnNodeIds, me.selectedColumnCellIds, me.selectedColumnCellCls);
|
104
104
|
|
105
|
-
super.onNavKeyColumn(data, step)
|
105
|
+
super.onNavKeyColumn(data, step)
|
106
106
|
}
|
107
107
|
|
108
108
|
/**
|
@@ -110,7 +110,7 @@ class CellColumnModel extends CellModel {
|
|
110
110
|
*/
|
111
111
|
unregister() {
|
112
112
|
this.deselectAllCells();
|
113
|
-
super.unregister()
|
113
|
+
super.unregister()
|
114
114
|
}
|
115
115
|
}
|
116
116
|
|
@@ -41,7 +41,7 @@ class CellColumnRowModel extends CellRowModel {
|
|
41
41
|
construct(config) {
|
42
42
|
super.construct(config);
|
43
43
|
|
44
|
-
this.selectedColumnCellIds = []
|
44
|
+
this.selectedColumnCellIds = []
|
45
45
|
}
|
46
46
|
|
47
47
|
/**
|
@@ -50,13 +50,13 @@ class CellColumnRowModel extends CellRowModel {
|
|
50
50
|
deselectAllCells(silent) {
|
51
51
|
let me = this,
|
52
52
|
cellIds = [...me.selectedColumnCellIds],
|
53
|
-
view
|
53
|
+
{view} = me;
|
54
54
|
|
55
55
|
cellIds.forEach(cellId => {
|
56
|
-
me.deselect(cellId, true, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
56
|
+
me.deselect(cellId, true, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
57
57
|
});
|
58
58
|
|
59
|
-
!silent && view.update()
|
59
|
+
!silent && view.update()
|
60
60
|
}
|
61
61
|
|
62
62
|
/**
|
@@ -73,10 +73,10 @@ class CellColumnRowModel extends CellRowModel {
|
|
73
73
|
columnNodeIds = VDomUtil.getColumnNodesIds(tbodyNode, index);
|
74
74
|
|
75
75
|
me.deselectAllCells(true);
|
76
|
-
me.select(columnNodeIds, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
76
|
+
me.select(columnNodeIds, me.selectedColumnCellIds, me.selectedColumnCellCls)
|
77
77
|
}
|
78
78
|
|
79
|
-
super.onCellClick(data)
|
79
|
+
super.onCellClick(data)
|
80
80
|
}
|
81
81
|
|
82
82
|
/**
|
@@ -87,13 +87,13 @@ class CellColumnRowModel extends CellRowModel {
|
|
87
87
|
let me = this,
|
88
88
|
idArray = ColumnModel.getCellId(data.path).split('__'),
|
89
89
|
currentColumn = idArray[2],
|
90
|
-
view
|
90
|
+
{view} = me,
|
91
91
|
fields = view.columns.map(c => c.field),
|
92
92
|
newIndex = (fields.indexOf(currentColumn) + step) % fields.length,
|
93
93
|
columnNodeIds, tbodyNode;
|
94
94
|
|
95
95
|
while (newIndex < 0) {
|
96
|
-
newIndex += fields.length
|
96
|
+
newIndex += fields.length
|
97
97
|
}
|
98
98
|
|
99
99
|
tbodyNode = VDomUtil.findVdomChild(me.view.vdom, {cls: 'neo-grid-view'}).vdom;
|
@@ -102,7 +102,7 @@ class CellColumnRowModel extends CellRowModel {
|
|
102
102
|
me.deselectAllCells(true);
|
103
103
|
me.select(columnNodeIds, me.selectedColumnCellIds, me.selectedColumnCellCls);
|
104
104
|
|
105
|
-
super.onNavKeyColumn(data, step)
|
105
|
+
super.onNavKeyColumn(data, step)
|
106
106
|
}
|
107
107
|
|
108
108
|
/**
|
@@ -110,7 +110,7 @@ class CellColumnRowModel extends CellRowModel {
|
|
110
110
|
*/
|
111
111
|
unregister() {
|
112
112
|
this.deselectAllCells();
|
113
|
-
super.unregister()
|
113
|
+
super.unregister()
|
114
114
|
}
|
115
115
|
}
|
116
116
|
|