handsontable 0.0.0-next-0d1b629-20240507 → 0.0.0-next-7cf23cf-20240507
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +765 -731
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +54 -54
- package/dist/handsontable.js +765 -731
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +12 -12
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/columnSorting/sortFunction/date.js +2 -46
- package/plugins/columnSorting/sortFunction/date.mjs +2 -45
- package/plugins/columnSorting/sortFunction/time.js +17 -0
- package/plugins/columnSorting/sortFunction/time.mjs +13 -0
- package/plugins/columnSorting/sortService/registry.js +4 -2
- package/plugins/columnSorting/sortService/registry.mjs +3 -1
- package/plugins/columnSorting/utils.js +57 -0
- package/plugins/columnSorting/utils.mjs +55 -0
- package/validators/dateValidator/dateValidator.js +1 -3
- package/validators/dateValidator/dateValidator.mjs +1 -3
- package/validators/timeValidator/timeValidator.js +1 -3
- package/validators/timeValidator/timeValidator.mjs +1 -3
package/helpers/mixed.js
CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
|
|
134
134
|
function _injectProductInfo(key, element) {
|
135
135
|
const hasValidType = !isEmpty(key);
|
136
136
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
137
|
-
const hotVersion = "0.0.0-next-
|
137
|
+
const hotVersion = "0.0.0-next-7cf23cf-20240507";
|
138
138
|
let keyValidityDate;
|
139
139
|
let consoleMessageState = 'invalid';
|
140
140
|
let domMessageState = 'invalid';
|
package/helpers/mixed.mjs
CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
|
|
124
124
|
export function _injectProductInfo(key, element) {
|
125
125
|
const hasValidType = !isEmpty(key);
|
126
126
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
127
|
-
const hotVersion = "0.0.0-next-
|
127
|
+
const hotVersion = "0.0.0-next-7cf23cf-20240507";
|
128
128
|
let keyValidityDate;
|
129
129
|
let consoleMessageState = 'invalid';
|
130
130
|
let domMessageState = 'invalid';
|
package/package.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
"url": "https://github.com/handsontable/handsontable/issues"
|
11
11
|
},
|
12
12
|
"author": "Handsoncode <hello@handsontable.com>",
|
13
|
-
"version": "0.0.0-next-
|
13
|
+
"version": "0.0.0-next-7cf23cf-20240507",
|
14
14
|
"main": "index",
|
15
15
|
"module": "index.mjs",
|
16
16
|
"jsnext:main": "index.mjs",
|
@@ -2,10 +2,7 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.compareFunctionFactory = compareFunctionFactory;
|
5
|
-
var
|
6
|
-
var _mixed = require("../../../helpers/mixed");
|
7
|
-
var _sortService = require("../sortService");
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
5
|
+
var _utils = require("../utils");
|
9
6
|
/**
|
10
7
|
* Date sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.
|
11
8
|
*
|
@@ -15,47 +12,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
15
12
|
* @returns {Function} The compare function.
|
16
13
|
*/
|
17
14
|
function compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {
|
18
|
-
return
|
19
|
-
const {
|
20
|
-
sortEmptyCells
|
21
|
-
} = columnPluginSettings;
|
22
|
-
if (value === nextValue) {
|
23
|
-
return _sortService.DO_NOT_SWAP;
|
24
|
-
}
|
25
|
-
if ((0, _mixed.isEmpty)(value)) {
|
26
|
-
if ((0, _mixed.isEmpty)(nextValue)) {
|
27
|
-
return _sortService.DO_NOT_SWAP;
|
28
|
-
}
|
29
|
-
|
30
|
-
// Just fist value is empty and `sortEmptyCells` option was set
|
31
|
-
if (sortEmptyCells) {
|
32
|
-
return sortOrder === 'asc' ? _sortService.FIRST_BEFORE_SECOND : _sortService.FIRST_AFTER_SECOND;
|
33
|
-
}
|
34
|
-
return _sortService.FIRST_AFTER_SECOND;
|
35
|
-
}
|
36
|
-
if ((0, _mixed.isEmpty)(nextValue)) {
|
37
|
-
// Just second value is empty and `sortEmptyCells` option was set
|
38
|
-
if (sortEmptyCells) {
|
39
|
-
return sortOrder === 'asc' ? _sortService.FIRST_AFTER_SECOND : _sortService.FIRST_BEFORE_SECOND;
|
40
|
-
}
|
41
|
-
return _sortService.FIRST_BEFORE_SECOND;
|
42
|
-
}
|
43
|
-
const dateFormat = columnMeta.dateFormat;
|
44
|
-
const firstDate = (0, _moment.default)(value, dateFormat);
|
45
|
-
const nextDate = (0, _moment.default)(nextValue, dateFormat);
|
46
|
-
if (!firstDate.isValid()) {
|
47
|
-
return _sortService.FIRST_AFTER_SECOND;
|
48
|
-
}
|
49
|
-
if (!nextDate.isValid()) {
|
50
|
-
return _sortService.FIRST_BEFORE_SECOND;
|
51
|
-
}
|
52
|
-
if (nextDate.isAfter(firstDate)) {
|
53
|
-
return sortOrder === 'asc' ? _sortService.FIRST_BEFORE_SECOND : _sortService.FIRST_AFTER_SECOND;
|
54
|
-
}
|
55
|
-
if (nextDate.isBefore(firstDate)) {
|
56
|
-
return sortOrder === 'asc' ? _sortService.FIRST_AFTER_SECOND : _sortService.FIRST_BEFORE_SECOND;
|
57
|
-
}
|
58
|
-
return _sortService.DO_NOT_SWAP;
|
59
|
-
};
|
15
|
+
return (0, _utils.createDateTimeCompareFunction)(sortOrder, columnMeta.dateFormat, columnPluginSettings);
|
60
16
|
}
|
61
17
|
const COLUMN_DATA_TYPE = exports.COLUMN_DATA_TYPE = 'date';
|
@@ -1,6 +1,4 @@
|
|
1
|
-
import
|
2
|
-
import { isEmpty } from "../../../helpers/mixed.mjs";
|
3
|
-
import { DO_NOT_SWAP, FIRST_BEFORE_SECOND, FIRST_AFTER_SECOND } from "../sortService/index.mjs";
|
1
|
+
import { createDateTimeCompareFunction } from "../utils.mjs";
|
4
2
|
/**
|
5
3
|
* Date sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.
|
6
4
|
*
|
@@ -10,47 +8,6 @@ import { DO_NOT_SWAP, FIRST_BEFORE_SECOND, FIRST_AFTER_SECOND } from "../sortSer
|
|
10
8
|
* @returns {Function} The compare function.
|
11
9
|
*/
|
12
10
|
export function compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {
|
13
|
-
return
|
14
|
-
const {
|
15
|
-
sortEmptyCells
|
16
|
-
} = columnPluginSettings;
|
17
|
-
if (value === nextValue) {
|
18
|
-
return DO_NOT_SWAP;
|
19
|
-
}
|
20
|
-
if (isEmpty(value)) {
|
21
|
-
if (isEmpty(nextValue)) {
|
22
|
-
return DO_NOT_SWAP;
|
23
|
-
}
|
24
|
-
|
25
|
-
// Just fist value is empty and `sortEmptyCells` option was set
|
26
|
-
if (sortEmptyCells) {
|
27
|
-
return sortOrder === 'asc' ? FIRST_BEFORE_SECOND : FIRST_AFTER_SECOND;
|
28
|
-
}
|
29
|
-
return FIRST_AFTER_SECOND;
|
30
|
-
}
|
31
|
-
if (isEmpty(nextValue)) {
|
32
|
-
// Just second value is empty and `sortEmptyCells` option was set
|
33
|
-
if (sortEmptyCells) {
|
34
|
-
return sortOrder === 'asc' ? FIRST_AFTER_SECOND : FIRST_BEFORE_SECOND;
|
35
|
-
}
|
36
|
-
return FIRST_BEFORE_SECOND;
|
37
|
-
}
|
38
|
-
const dateFormat = columnMeta.dateFormat;
|
39
|
-
const firstDate = moment(value, dateFormat);
|
40
|
-
const nextDate = moment(nextValue, dateFormat);
|
41
|
-
if (!firstDate.isValid()) {
|
42
|
-
return FIRST_AFTER_SECOND;
|
43
|
-
}
|
44
|
-
if (!nextDate.isValid()) {
|
45
|
-
return FIRST_BEFORE_SECOND;
|
46
|
-
}
|
47
|
-
if (nextDate.isAfter(firstDate)) {
|
48
|
-
return sortOrder === 'asc' ? FIRST_BEFORE_SECOND : FIRST_AFTER_SECOND;
|
49
|
-
}
|
50
|
-
if (nextDate.isBefore(firstDate)) {
|
51
|
-
return sortOrder === 'asc' ? FIRST_AFTER_SECOND : FIRST_BEFORE_SECOND;
|
52
|
-
}
|
53
|
-
return DO_NOT_SWAP;
|
54
|
-
};
|
11
|
+
return createDateTimeCompareFunction(sortOrder, columnMeta.dateFormat, columnPluginSettings);
|
55
12
|
}
|
56
13
|
export const COLUMN_DATA_TYPE = 'date';
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.compareFunctionFactory = compareFunctionFactory;
|
5
|
+
var _utils = require("../utils");
|
6
|
+
/**
|
7
|
+
* Date sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.
|
8
|
+
*
|
9
|
+
* @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).
|
10
|
+
* @param {object} columnMeta Column meta object.
|
11
|
+
* @param {object} columnPluginSettings Plugin settings for the column.
|
12
|
+
* @returns {Function} The compare function.
|
13
|
+
*/
|
14
|
+
function compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {
|
15
|
+
return (0, _utils.createDateTimeCompareFunction)(sortOrder, columnMeta.timeFormat, columnPluginSettings);
|
16
|
+
}
|
17
|
+
const COLUMN_DATA_TYPE = exports.COLUMN_DATA_TYPE = 'time';
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { createDateTimeCompareFunction } from "../utils.mjs";
|
2
|
+
/**
|
3
|
+
* Date sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.
|
4
|
+
*
|
5
|
+
* @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).
|
6
|
+
* @param {object} columnMeta Column meta object.
|
7
|
+
* @param {object} columnPluginSettings Plugin settings for the column.
|
8
|
+
* @returns {Function} The compare function.
|
9
|
+
*/
|
10
|
+
export function compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {
|
11
|
+
return createDateTimeCompareFunction(sortOrder, columnMeta.timeFormat, columnPluginSettings);
|
12
|
+
}
|
13
|
+
export const COLUMN_DATA_TYPE = 'time';
|
@@ -6,6 +6,7 @@ var _default = require("../sortFunction/default");
|
|
6
6
|
var _numeric = require("../sortFunction/numeric");
|
7
7
|
var _checkbox = require("../sortFunction/checkbox");
|
8
8
|
var _date = require("../sortFunction/date");
|
9
|
+
var _time = require("../sortFunction/time");
|
9
10
|
var _staticRegister = _interopRequireDefault(require("../../../utils/staticRegister"));
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
12
|
const {
|
@@ -32,7 +33,8 @@ function getCompareFunctionFactory(type) {
|
|
32
33
|
}
|
33
34
|
return getGloballyCompareFunctionFactory(_default.COLUMN_DATA_TYPE);
|
34
35
|
}
|
35
|
-
registerCompareFunctionFactory(_numeric.COLUMN_DATA_TYPE, _numeric.compareFunctionFactory);
|
36
36
|
registerCompareFunctionFactory(_checkbox.COLUMN_DATA_TYPE, _checkbox.compareFunctionFactory);
|
37
37
|
registerCompareFunctionFactory(_date.COLUMN_DATA_TYPE, _date.compareFunctionFactory);
|
38
|
-
registerCompareFunctionFactory(_default.COLUMN_DATA_TYPE, _default.compareFunctionFactory);
|
38
|
+
registerCompareFunctionFactory(_default.COLUMN_DATA_TYPE, _default.compareFunctionFactory);
|
39
|
+
registerCompareFunctionFactory(_numeric.COLUMN_DATA_TYPE, _numeric.compareFunctionFactory);
|
40
|
+
registerCompareFunctionFactory(_time.COLUMN_DATA_TYPE, _time.compareFunctionFactory);
|
@@ -2,6 +2,7 @@ import { compareFunctionFactory as defaultSort, COLUMN_DATA_TYPE as DEFAULT_DATA
|
|
2
2
|
import { compareFunctionFactory as numericSort, COLUMN_DATA_TYPE as NUMERIC_DATA_TYPE } from "../sortFunction/numeric.mjs";
|
3
3
|
import { compareFunctionFactory as checkboxSort, COLUMN_DATA_TYPE as CHECKBOX_DATA_TYPE } from "../sortFunction/checkbox.mjs";
|
4
4
|
import { compareFunctionFactory as dateSort, COLUMN_DATA_TYPE as DATE_DATA_TYPE } from "../sortFunction/date.mjs";
|
5
|
+
import { compareFunctionFactory as timeSort, COLUMN_DATA_TYPE as TIME_DATA_TYPE } from "../sortFunction/time.mjs";
|
5
6
|
import staticRegister from "../../../utils/staticRegister.mjs";
|
6
7
|
const {
|
7
8
|
register: registerCompareFunctionFactory,
|
@@ -25,8 +26,9 @@ export function getCompareFunctionFactory(type) {
|
|
25
26
|
}
|
26
27
|
return getGloballyCompareFunctionFactory(DEFAULT_DATA_TYPE);
|
27
28
|
}
|
28
|
-
registerCompareFunctionFactory(NUMERIC_DATA_TYPE, numericSort);
|
29
29
|
registerCompareFunctionFactory(CHECKBOX_DATA_TYPE, checkboxSort);
|
30
30
|
registerCompareFunctionFactory(DATE_DATA_TYPE, dateSort);
|
31
31
|
registerCompareFunctionFactory(DEFAULT_DATA_TYPE, defaultSort);
|
32
|
+
registerCompareFunctionFactory(NUMERIC_DATA_TYPE, numericSort);
|
33
|
+
registerCompareFunctionFactory(TIME_DATA_TYPE, timeSort);
|
32
34
|
export { registerRootComparator, getRootComparator };
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.areValidSortStates = areValidSortStates;
|
5
|
+
exports.createDateTimeCompareFunction = createDateTimeCompareFunction;
|
5
6
|
exports.getHeaderSpanElement = getHeaderSpanElement;
|
6
7
|
exports.getNextSortOrder = getNextSortOrder;
|
7
8
|
exports.isFirstLevelColumnHeader = isFirstLevelColumnHeader;
|
@@ -13,8 +14,12 @@ require("core-js/modules/esnext.set.is-subset-of.v2.js");
|
|
13
14
|
require("core-js/modules/esnext.set.is-superset-of.v2.js");
|
14
15
|
require("core-js/modules/esnext.set.symmetric-difference.v2.js");
|
15
16
|
require("core-js/modules/esnext.set.union.v2.js");
|
17
|
+
var _moment = _interopRequireDefault(require("moment"));
|
16
18
|
var _object = require("../../helpers/object");
|
17
19
|
var _event = require("../../helpers/dom/event");
|
20
|
+
var _mixed = require("../../helpers/mixed");
|
21
|
+
var _sortService = require("./sortService");
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18
23
|
const ASC_SORT_STATE = exports.ASC_SORT_STATE = 'asc';
|
19
24
|
const DESC_SORT_STATE = exports.DESC_SORT_STATE = 'desc';
|
20
25
|
const HEADER_SPAN_CLASS = exports.HEADER_SPAN_CLASS = 'colHeader';
|
@@ -113,4 +118,56 @@ function isFirstLevelColumnHeader(column, TH) {
|
|
113
118
|
*/
|
114
119
|
function wasHeaderClickedProperly(row, column, clickEvent) {
|
115
120
|
return row === -1 && column >= 0 && (0, _event.isRightClick)(clickEvent) === false;
|
121
|
+
}
|
122
|
+
|
123
|
+
/**
|
124
|
+
* Creates date or time sorting compare function.
|
125
|
+
*
|
126
|
+
* @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).
|
127
|
+
* @param {string} format Date or time format.
|
128
|
+
* @param {object} columnPluginSettings Plugin settings for the column.
|
129
|
+
* @returns {Function} The compare function.
|
130
|
+
*/
|
131
|
+
function createDateTimeCompareFunction(sortOrder, format, columnPluginSettings) {
|
132
|
+
return function (value, nextValue) {
|
133
|
+
const {
|
134
|
+
sortEmptyCells
|
135
|
+
} = columnPluginSettings;
|
136
|
+
if (value === nextValue) {
|
137
|
+
return _sortService.DO_NOT_SWAP;
|
138
|
+
}
|
139
|
+
if ((0, _mixed.isEmpty)(value)) {
|
140
|
+
if ((0, _mixed.isEmpty)(nextValue)) {
|
141
|
+
return _sortService.DO_NOT_SWAP;
|
142
|
+
}
|
143
|
+
|
144
|
+
// Just fist value is empty and `sortEmptyCells` option was set
|
145
|
+
if (sortEmptyCells) {
|
146
|
+
return sortOrder === 'asc' ? _sortService.FIRST_BEFORE_SECOND : _sortService.FIRST_AFTER_SECOND;
|
147
|
+
}
|
148
|
+
return _sortService.FIRST_AFTER_SECOND;
|
149
|
+
}
|
150
|
+
if ((0, _mixed.isEmpty)(nextValue)) {
|
151
|
+
// Just second value is empty and `sortEmptyCells` option was set
|
152
|
+
if (sortEmptyCells) {
|
153
|
+
return sortOrder === 'asc' ? _sortService.FIRST_AFTER_SECOND : _sortService.FIRST_BEFORE_SECOND;
|
154
|
+
}
|
155
|
+
return _sortService.FIRST_BEFORE_SECOND;
|
156
|
+
}
|
157
|
+
const firstDate = (0, _moment.default)(value, format);
|
158
|
+
const nextDate = (0, _moment.default)(nextValue, format);
|
159
|
+
if (!firstDate.isValid()) {
|
160
|
+
return _sortService.FIRST_AFTER_SECOND;
|
161
|
+
}
|
162
|
+
if (!nextDate.isValid()) {
|
163
|
+
return _sortService.FIRST_BEFORE_SECOND;
|
164
|
+
}
|
165
|
+
if (nextDate.isAfter(firstDate)) {
|
166
|
+
return sortOrder === 'asc' ? _sortService.FIRST_BEFORE_SECOND : _sortService.FIRST_AFTER_SECOND;
|
167
|
+
}
|
168
|
+
if (nextDate.isBefore(firstDate)) {
|
169
|
+
return sortOrder === 'asc' ? _sortService.FIRST_AFTER_SECOND : _sortService.FIRST_BEFORE_SECOND;
|
170
|
+
}
|
171
|
+
return _sortService.DO_NOT_SWAP;
|
172
|
+
};
|
116
173
|
}
|
@@ -5,8 +5,11 @@ import "core-js/modules/esnext.set.is-subset-of.v2.js";
|
|
5
5
|
import "core-js/modules/esnext.set.is-superset-of.v2.js";
|
6
6
|
import "core-js/modules/esnext.set.symmetric-difference.v2.js";
|
7
7
|
import "core-js/modules/esnext.set.union.v2.js";
|
8
|
+
import moment from 'moment';
|
8
9
|
import { isObject } from "../../helpers/object.mjs";
|
9
10
|
import { isRightClick } from "../../helpers/dom/event.mjs";
|
11
|
+
import { isEmpty } from "../../helpers/mixed.mjs";
|
12
|
+
import { DO_NOT_SWAP, FIRST_BEFORE_SECOND, FIRST_AFTER_SECOND } from "./sortService/index.mjs";
|
10
13
|
export const ASC_SORT_STATE = 'asc';
|
11
14
|
export const DESC_SORT_STATE = 'desc';
|
12
15
|
export const HEADER_SPAN_CLASS = 'colHeader';
|
@@ -105,4 +108,56 @@ export function isFirstLevelColumnHeader(column, TH) {
|
|
105
108
|
*/
|
106
109
|
export function wasHeaderClickedProperly(row, column, clickEvent) {
|
107
110
|
return row === -1 && column >= 0 && isRightClick(clickEvent) === false;
|
111
|
+
}
|
112
|
+
|
113
|
+
/**
|
114
|
+
* Creates date or time sorting compare function.
|
115
|
+
*
|
116
|
+
* @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).
|
117
|
+
* @param {string} format Date or time format.
|
118
|
+
* @param {object} columnPluginSettings Plugin settings for the column.
|
119
|
+
* @returns {Function} The compare function.
|
120
|
+
*/
|
121
|
+
export function createDateTimeCompareFunction(sortOrder, format, columnPluginSettings) {
|
122
|
+
return function (value, nextValue) {
|
123
|
+
const {
|
124
|
+
sortEmptyCells
|
125
|
+
} = columnPluginSettings;
|
126
|
+
if (value === nextValue) {
|
127
|
+
return DO_NOT_SWAP;
|
128
|
+
}
|
129
|
+
if (isEmpty(value)) {
|
130
|
+
if (isEmpty(nextValue)) {
|
131
|
+
return DO_NOT_SWAP;
|
132
|
+
}
|
133
|
+
|
134
|
+
// Just fist value is empty and `sortEmptyCells` option was set
|
135
|
+
if (sortEmptyCells) {
|
136
|
+
return sortOrder === 'asc' ? FIRST_BEFORE_SECOND : FIRST_AFTER_SECOND;
|
137
|
+
}
|
138
|
+
return FIRST_AFTER_SECOND;
|
139
|
+
}
|
140
|
+
if (isEmpty(nextValue)) {
|
141
|
+
// Just second value is empty and `sortEmptyCells` option was set
|
142
|
+
if (sortEmptyCells) {
|
143
|
+
return sortOrder === 'asc' ? FIRST_AFTER_SECOND : FIRST_BEFORE_SECOND;
|
144
|
+
}
|
145
|
+
return FIRST_BEFORE_SECOND;
|
146
|
+
}
|
147
|
+
const firstDate = moment(value, format);
|
148
|
+
const nextDate = moment(nextValue, format);
|
149
|
+
if (!firstDate.isValid()) {
|
150
|
+
return FIRST_AFTER_SECOND;
|
151
|
+
}
|
152
|
+
if (!nextDate.isValid()) {
|
153
|
+
return FIRST_BEFORE_SECOND;
|
154
|
+
}
|
155
|
+
if (nextDate.isAfter(firstDate)) {
|
156
|
+
return sortOrder === 'asc' ? FIRST_BEFORE_SECOND : FIRST_AFTER_SECOND;
|
157
|
+
}
|
158
|
+
if (nextDate.isBefore(firstDate)) {
|
159
|
+
return sortOrder === 'asc' ? FIRST_AFTER_SECOND : FIRST_BEFORE_SECOND;
|
160
|
+
}
|
161
|
+
return DO_NOT_SWAP;
|
162
|
+
};
|
108
163
|
}
|
@@ -40,9 +40,7 @@ function dateValidator(value, callback) {
|
|
40
40
|
if (this.correctFormat === true) {
|
41
41
|
// if format correction is enabled
|
42
42
|
const correctedValue = correctFormat(valueToValidate, this.dateFormat);
|
43
|
-
|
44
|
-
const column = this.instance.toVisualColumn(this.col);
|
45
|
-
this.instance.setDataAtCell(row, column, correctedValue, 'dateValidator');
|
43
|
+
this.instance.setDataAtCell(this.visualRow, this.visualCol, correctedValue, 'dateValidator');
|
46
44
|
valid = true;
|
47
45
|
} else {
|
48
46
|
valid = false;
|
@@ -34,9 +34,7 @@ export function dateValidator(value, callback) {
|
|
34
34
|
if (this.correctFormat === true) {
|
35
35
|
// if format correction is enabled
|
36
36
|
const correctedValue = correctFormat(valueToValidate, this.dateFormat);
|
37
|
-
|
38
|
-
const column = this.instance.toVisualColumn(this.col);
|
39
|
-
this.instance.setDataAtCell(row, column, correctedValue, 'dateValidator');
|
37
|
+
this.instance.setDataAtCell(this.visualRow, this.visualCol, correctedValue, 'dateValidator');
|
40
38
|
valid = true;
|
41
39
|
} else {
|
42
40
|
valid = false;
|
@@ -49,9 +49,7 @@ function timeValidator(value, callback) {
|
|
49
49
|
if (this.correctFormat === true) {
|
50
50
|
// if format correction is enabled
|
51
51
|
const correctedValue = date.format(timeFormat);
|
52
|
-
|
53
|
-
const column = this.instance.toVisualColumn(this.col);
|
54
|
-
this.instance.setDataAtCell(row, column, correctedValue, 'timeValidator');
|
52
|
+
this.instance.setDataAtCell(this.visualRow, this.visualCol, correctedValue, 'timeValidator');
|
55
53
|
valid = true;
|
56
54
|
} else {
|
57
55
|
valid = false;
|
@@ -45,9 +45,7 @@ export function timeValidator(value, callback) {
|
|
45
45
|
if (this.correctFormat === true) {
|
46
46
|
// if format correction is enabled
|
47
47
|
const correctedValue = date.format(timeFormat);
|
48
|
-
|
49
|
-
const column = this.instance.toVisualColumn(this.col);
|
50
|
-
this.instance.setDataAtCell(row, column, correctedValue, 'timeValidator');
|
48
|
+
this.instance.setDataAtCell(this.visualRow, this.visualCol, correctedValue, 'timeValidator');
|
51
49
|
valid = true;
|
52
50
|
} else {
|
53
51
|
valid = false;
|