1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | import { extend } from 'tinper-sparrow/src/extend';
|
8 |
|
9 | import { copyRowFunObj } from './copyRow';
|
10 |
|
11 | import { dataFunObj } from './data';
|
12 |
|
13 | import { enableFunObj } from './enable';
|
14 |
|
15 | import { getCurrentFunObj } from './getCurrent';
|
16 |
|
17 | import { getDataFunObj } from './getData';
|
18 |
|
19 | import { getFocusFunObj } from './getFocus';
|
20 |
|
21 | import { getMetaFunObj } from './getMeta';
|
22 |
|
23 | import { getPageFunObj } from './getPage';
|
24 |
|
25 | import { getParamFunObj } from './getParam';
|
26 |
|
27 | import { getSelectFunObj } from './getSelect';
|
28 |
|
29 | import { getSimpleDataFunObj } from './getSimpleData';
|
30 |
|
31 | import { metaFunObj } from './meta';
|
32 |
|
33 | import { pageFunObj } from './page';
|
34 |
|
35 | import { paramFunObj } from './param';
|
36 |
|
37 | import { refFunObj } from './ref';
|
38 |
|
39 | import { removeRowFunObj } from './removeRow';
|
40 |
|
41 | import { rowFunObj } from './row';
|
42 |
|
43 | import { rowCurrentFunObj } from './rowCurrent';
|
44 |
|
45 | import { rowDeleteFunObj } from './rowDelete';
|
46 |
|
47 | import { rowSelectFunObj } from './rowSelect';
|
48 |
|
49 | import { rowFocusFunObj } from './rowFocus';
|
50 |
|
51 | import { simpleDataFunObj } from './simpleData';
|
52 |
|
53 | import { utilFunObj } from './util';
|
54 |
|
55 | import { eventsFunObj } from './events';
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 | var DataTable = function DataTable(options) {
|
64 | babelHelpers.classCallCheck(this, DataTable);
|
65 |
|
66 | options = options || {};
|
67 | |
68 |
|
69 |
|
70 |
|
71 | this.id = options['id'];
|
72 | |
73 |
|
74 |
|
75 |
|
76 |
|
77 | this.strict = options['strict'] || false;
|
78 | |
79 |
|
80 |
|
81 |
|
82 | this.meta = DataTable.createMetaItems(options['meta']);
|
83 | |
84 |
|
85 |
|
86 |
|
87 |
|
88 | this.enable = options['enable'] || DataTable.DEFAULTS.enable;
|
89 | |
90 |
|
91 |
|
92 |
|
93 |
|
94 | this.pageSize = ko.observable(options['pageSize'] || DataTable.DEFAULTS.pageSize);
|
95 | |
96 |
|
97 |
|
98 |
|
99 |
|
100 | this.pageIndex = ko.observable(options['pageIndex'] || DataTable.DEFAULTS.pageIndex);
|
101 | |
102 |
|
103 |
|
104 |
|
105 |
|
106 | this.totalPages = ko.observable(options['totalPages'] || DataTable.DEFAULTS.totalPages);
|
107 |
|
108 | this.totalRow = ko.observable();
|
109 | |
110 |
|
111 |
|
112 |
|
113 |
|
114 | this.pageCache = options['pageCache'] === undefined ? DataTable.DEFAULTS.pageCache : options['pageCache'];
|
115 | |
116 |
|
117 |
|
118 |
|
119 |
|
120 | this.forceDel = options['forceDel'] === undefined ? DataTable.DEFAULTS.forceDel : options['forceDel'];
|
121 |
|
122 | this.rows = ko.observableArray([]);
|
123 |
|
124 | this.selectedIndices = ko.observableArray([]);
|
125 |
|
126 | this._oldCurrentIndex = -1;
|
127 |
|
128 | this.focusIndex = ko.observable(-1);
|
129 |
|
130 | this.cachedPages = [];
|
131 |
|
132 | this.metaChange = {};
|
133 |
|
134 | this.valueChange = {};
|
135 |
|
136 | this.currentRowChange = ko.observable(1);
|
137 |
|
138 | this.enableChange = ko.observable(1);
|
139 | |
140 |
|
141 |
|
142 |
|
143 | this.params = options['params'] || {};
|
144 | |
145 |
|
146 |
|
147 |
|
148 | this.master = options['master'] || '';
|
149 |
|
150 | this.allSelected = ko.observable(false);
|
151 | |
152 |
|
153 |
|
154 |
|
155 |
|
156 | this.dateNoConvert = options['dateNoConvert'] || false;
|
157 |
|
158 | if (options['root']) {
|
159 | this.root = options['root'];
|
160 | } else {
|
161 | this.root = this;
|
162 | }
|
163 |
|
164 | if (options['ns']) {
|
165 | this.ns = options['ns'];
|
166 | } else {
|
167 | this.ns = '';
|
168 | }
|
169 |
|
170 | this.newCount = 0;
|
171 | };
|
172 |
|
173 | var DataTableProto = DataTable.prototype;
|
174 | Object.assign(DataTableProto, copyRowFunObj);
|
175 | Object.assign(DataTableProto, dataFunObj);
|
176 | Object.assign(DataTableProto, enableFunObj);
|
177 | Object.assign(DataTableProto, getCurrentFunObj);
|
178 | Object.assign(DataTableProto, getDataFunObj);
|
179 | Object.assign(DataTableProto, getFocusFunObj);
|
180 | Object.assign(DataTableProto, getMetaFunObj);
|
181 | Object.assign(DataTableProto, getPageFunObj);
|
182 | Object.assign(DataTableProto, getParamFunObj);
|
183 | Object.assign(DataTableProto, getSelectFunObj);
|
184 | Object.assign(DataTableProto, getSimpleDataFunObj);
|
185 | Object.assign(DataTableProto, pageFunObj);
|
186 | Object.assign(DataTableProto, metaFunObj);
|
187 | Object.assign(DataTableProto, refFunObj);
|
188 | Object.assign(DataTableProto, paramFunObj);
|
189 | Object.assign(DataTableProto, rowFunObj);
|
190 | Object.assign(DataTableProto, removeRowFunObj);
|
191 | Object.assign(DataTableProto, rowCurrentFunObj);
|
192 | Object.assign(DataTableProto, simpleDataFunObj);
|
193 | Object.assign(DataTableProto, rowFocusFunObj);
|
194 | Object.assign(DataTableProto, eventsFunObj);
|
195 | Object.assign(DataTableProto, utilFunObj);
|
196 | Object.assign(DataTableProto, rowSelectFunObj);
|
197 | Object.assign(DataTableProto, rowDeleteFunObj);
|
198 |
|
199 | DataTable.DEFAULTS = {
|
200 | pageSize: 20,
|
201 | pageIndex: 0,
|
202 | totalPages: 0,
|
203 | pageCache: false,
|
204 | enable: true,
|
205 | forceDel: false
|
206 | };
|
207 |
|
208 | DataTable.META_DEFAULTS = {
|
209 | enable: true,
|
210 | required: false,
|
211 | descs: {}
|
212 |
|
213 |
|
214 | };DataTable.ON_ROW_SELECT = 'select';
|
215 | DataTable.ON_ROW_UNSELECT = 'unSelect';
|
216 | DataTable.ON_ROW_ALLSELECT = 'allSelect';
|
217 | DataTable.ON_ROW_ALLUNSELECT = 'allUnselect';
|
218 | DataTable.ON_VALUE_CHANGE = 'valueChange';
|
219 | DataTable.ON_BEFORE_VALUE_CHANGE = 'beforeValueChange';
|
220 | DataTable.ON_CURRENT_VALUE_CHANGE = 'currentValueChange';
|
221 |
|
222 |
|
223 | DataTable.ON_INSERT = 'insert';
|
224 | DataTable.ON_UPDATE = 'update';
|
225 | DataTable.ON_CURRENT_UPDATE = 'currentUpdate';
|
226 | DataTable.ON_DELETE = 'delete';
|
227 | DataTable.ON_DELETE_ALL = 'deleteAll';
|
228 | DataTable.ON_ROW_FOCUS = 'focus';
|
229 | DataTable.ON_ROW_UNFOCUS = 'unFocus';
|
230 | DataTable.ON_LOAD = 'load';
|
231 | DataTable.ON_ENABLE_CHANGE = 'enableChange';
|
232 | DataTable.ON_META_CHANGE = 'metaChange';
|
233 | DataTable.ON_ROW_META_CHANGE = 'rowMetaChange';
|
234 | DataTable.ON_CURRENT_META_CHANGE = 'currentMetaChange';
|
235 | DataTable.ON_CURRENT_ROW_CHANGE = 'currentRowChange';
|
236 |
|
237 | DataTable.SUBMIT = {
|
238 | current: 'current',
|
239 | focus: 'focus',
|
240 | all: 'all',
|
241 | select: 'select',
|
242 | change: 'change',
|
243 | empty: 'empty',
|
244 | allSelect: 'allSelect',
|
245 | allPages: 'allPages'
|
246 | };
|
247 |
|
248 | DataTable.createMetaItems = function (metas) {
|
249 | var newMetas = {};
|
250 | for (var key in metas) {
|
251 | var meta = metas[key];
|
252 | if (typeof meta == 'string') meta = {};
|
253 | newMetas[key] = extend({}, DataTable.META_DEFAULTS, meta);
|
254 | }
|
255 | return newMetas;
|
256 | };
|
257 |
|
258 | export { DataTable }; |
\ | No newline at end of file |