tabulator-tables 5.4.3 → 5.4.4
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/.babelrc.json +3 -3
- package/.editorconfig +6 -6
- package/.eslintignore +3 -3
- package/.eslintrc.js +28 -28
- package/.github/ISSUE_TEMPLATE/bug_report.md +58 -58
- package/.github/ISSUE_TEMPLATE/documentation.md +14 -14
- package/.github/ISSUE_TEMPLATE/feature_request.md +24 -24
- package/.github/ISSUE_TEMPLATE/question.md +12 -12
- package/.github/workflows/bad-files-check.yml +39 -39
- package/.github/workflows/lint-and-test.yml +30 -30
- package/CODE_OF_CONDUCT.md +46 -46
- package/CONTRIBUTING.md +22 -22
- package/LICENSE +20 -20
- package/README.md +76 -76
- package/bower.json +40 -40
- package/build/Bundler.js +185 -185
- package/build/rollup.js +6 -6
- package/dist/css/tabulator.css +0 -5
- package/dist/css/tabulator.css.map +1 -1
- package/dist/css/tabulator.min.css +1 -1
- package/dist/css/tabulator.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.css +0 -5
- package/dist/css/tabulator_bootstrap3.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.min.css +1 -1
- package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.css +0 -5
- package/dist/css/tabulator_bootstrap4.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.min.css +1 -1
- package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap5.css +0 -5
- package/dist/css/tabulator_bootstrap5.css.map +1 -1
- package/dist/css/tabulator_bootstrap5.min.css +1 -1
- package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
- package/dist/css/tabulator_bulma.css +0 -5
- package/dist/css/tabulator_bulma.css.map +1 -1
- package/dist/css/tabulator_bulma.min.css +1 -1
- package/dist/css/tabulator_bulma.min.css.map +1 -1
- package/dist/css/tabulator_materialize.css +0 -5
- package/dist/css/tabulator_materialize.css.map +1 -1
- package/dist/css/tabulator_materialize.min.css +1 -1
- package/dist/css/tabulator_materialize.min.css.map +1 -1
- package/dist/css/tabulator_midnight.css +0 -5
- package/dist/css/tabulator_midnight.css.map +1 -1
- package/dist/css/tabulator_midnight.min.css +1 -1
- package/dist/css/tabulator_midnight.min.css.map +1 -1
- package/dist/css/tabulator_modern.css +0 -5
- package/dist/css/tabulator_modern.css.map +1 -1
- package/dist/css/tabulator_modern.min.css +1 -1
- package/dist/css/tabulator_modern.min.css.map +1 -1
- package/dist/css/tabulator_semanticui.css +102 -107
- package/dist/css/tabulator_semanticui.css.map +1 -1
- package/dist/css/tabulator_semanticui.min.css +1 -1
- package/dist/css/tabulator_semanticui.min.css.map +1 -1
- package/dist/css/tabulator_simple.css +0 -5
- package/dist/css/tabulator_simple.css.map +1 -1
- package/dist/css/tabulator_simple.min.css +1 -1
- package/dist/css/tabulator_simple.min.css.map +1 -1
- package/dist/css/tabulator_site.css +0 -5
- package/dist/css/tabulator_site.css.map +1 -1
- package/dist/css/tabulator_site.min.css +1 -1
- package/dist/css/tabulator_site.min.css.map +1 -1
- package/dist/js/jquery_wrapper.js +55 -55
- package/dist/js/tabulator.js +25847 -25711
- package/dist/js/tabulator.js.map +1 -1
- package/dist/js/tabulator.min.js +2 -2
- package/dist/js/tabulator.min.js.map +1 -1
- package/dist/js/tabulator_esm.js +25926 -25790
- package/dist/js/tabulator_esm.js.map +1 -1
- package/dist/js/tabulator_esm.min.js +2 -2
- package/dist/js/tabulator_esm.min.js.map +1 -1
- package/package.json +65 -65
- package/src/js/builds/esm.js +14 -14
- package/src/js/builds/jquery_wrapper.js +55 -55
- package/src/js/core/ColumnManager.js +730 -730
- package/src/js/core/CoreFeature.js +138 -138
- package/src/js/core/FooterManager.js +101 -101
- package/src/js/core/Module.js +141 -141
- package/src/js/core/RowManager.js +1112 -1101
- package/src/js/core/Tabulator.js +895 -892
- package/src/js/core/TabulatorFull.js +10 -10
- package/src/js/core/cell/Cell.js +295 -295
- package/src/js/core/cell/CellComponent.js +76 -76
- package/src/js/core/column/Column.js +949 -949
- package/src/js/core/column/ColumnComponent.js +152 -152
- package/src/js/core/column/defaults/options.js +17 -17
- package/src/js/core/defaults/options.js +65 -65
- package/src/js/core/modules/core.js +2 -2
- package/src/js/core/modules/optional.js +34 -34
- package/src/js/core/rendering/Renderer.js +203 -203
- package/src/js/core/rendering/renderers/BasicHorizontal.js +19 -19
- package/src/js/core/rendering/renderers/BasicVertical.js +79 -78
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +577 -577
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +579 -579
- package/src/js/core/row/PseudoRow.js +44 -44
- package/src/js/core/row/Row.js +457 -457
- package/src/js/core/row/RowComponent.js +93 -93
- package/src/js/core/tools/Alert.js +61 -61
- package/src/js/core/tools/ComponentFunctionBinder.js +32 -32
- package/src/js/core/tools/DataLoader.js +119 -119
- package/src/js/core/tools/DeprecationAdvisor.js +46 -46
- package/src/js/core/tools/ExternalEventBus.js +104 -104
- package/src/js/core/tools/Helpers.js +46 -46
- package/src/js/core/tools/InteractionMonitor.js +321 -321
- package/src/js/core/tools/InternalEventBus.js +161 -161
- package/src/js/core/tools/ModuleBinder.js +104 -104
- package/src/js/core/tools/OptionsList.js +44 -40
- package/src/js/core/tools/Popup.js +304 -304
- package/src/js/core/tools/TableRegistry.js +61 -61
- package/src/js/modules/Accessor/Accessor.js +115 -115
- package/src/js/modules/Ajax/Ajax.js +143 -143
- package/src/js/modules/Ajax/defaults/config.js +2 -2
- package/src/js/modules/Ajax/defaults/contentTypeFormatters.js +44 -44
- package/src/js/modules/Ajax/defaults/loaderPromise.js +86 -86
- package/src/js/modules/Ajax/defaults/urlGenerator.js +43 -43
- package/src/js/modules/Clipboard/Clipboard.js +279 -279
- package/src/js/modules/Clipboard/defaults/pasteActions.js +10 -10
- package/src/js/modules/Clipboard/defaults/pasteParsers.js +74 -74
- package/src/js/modules/ColumnCalcs/CalcComponent.js +47 -47
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +581 -568
- package/src/js/modules/ColumnCalcs/defaults/calculations.js +85 -85
- package/src/js/modules/Comms/Comms.js +51 -51
- package/src/js/modules/DataTree/DataTree.js +603 -603
- package/src/js/modules/Download/Download.js +148 -148
- package/src/js/modules/Download/defaults/downloaders/csv.js +61 -61
- package/src/js/modules/Download/defaults/downloaders/html.js +4 -4
- package/src/js/modules/Download/defaults/downloaders/json.js +33 -33
- package/src/js/modules/Download/defaults/downloaders/jsonLines.js +31 -31
- package/src/js/modules/Download/defaults/downloaders/pdf.js +111 -111
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +98 -98
- package/src/js/modules/Download/defaults/downloaders.js +14 -14
- package/src/js/modules/Edit/Edit.js +735 -736
- package/src/js/modules/Edit/List.js +1037 -1033
- package/src/js/modules/Edit/defaults/editors/autocomplete.js +11 -11
- package/src/js/modules/Edit/defaults/editors/date.js +138 -110
- package/src/js/modules/Edit/defaults/editors/datetime.js +125 -97
- package/src/js/modules/Edit/defaults/editors/input.js +76 -74
- package/src/js/modules/Edit/defaults/editors/list.js +6 -6
- package/src/js/modules/Edit/defaults/editors/number.js +109 -107
- package/src/js/modules/Edit/defaults/editors/progress.js +126 -126
- package/src/js/modules/Edit/defaults/editors/range.js +80 -78
- package/src/js/modules/Edit/defaults/editors/select.js +9 -9
- package/src/js/modules/Edit/defaults/editors/star.js +145 -145
- package/src/js/modules/Edit/defaults/editors/textarea.js +122 -120
- package/src/js/modules/Edit/defaults/editors/tickCross.js +94 -96
- package/src/js/modules/Edit/defaults/editors/time.js +126 -98
- package/src/js/modules/Edit/defaults/editors.js +28 -28
- package/src/js/modules/Edit/inputMask.js +73 -73
- package/src/js/modules/Export/Export.js +623 -623
- package/src/js/modules/Export/ExportColumn.js +10 -10
- package/src/js/modules/Export/ExportRow.js +9 -9
- package/src/js/modules/Filter/Filter.js +892 -892
- package/src/js/modules/Filter/defaults/filters.js +107 -107
- package/src/js/modules/Format/Format.js +212 -212
- package/src/js/modules/Format/defaults/formatters/buttonCross.js +2 -2
- package/src/js/modules/Format/defaults/formatters/buttonTick.js +2 -2
- package/src/js/modules/Format/defaults/formatters/color.js +3 -3
- package/src/js/modules/Format/defaults/formatters/datetime.js +36 -36
- package/src/js/modules/Format/defaults/formatters/datetimediff.js +40 -40
- package/src/js/modules/Format/defaults/formatters/handle.js +3 -3
- package/src/js/modules/Format/defaults/formatters/html.js +2 -2
- package/src/js/modules/Format/defaults/formatters/image.js +39 -39
- package/src/js/modules/Format/defaults/formatters/link.js +77 -77
- package/src/js/modules/Format/defaults/formatters/lookup.js +9 -9
- package/src/js/modules/Format/defaults/formatters/money.js +36 -36
- package/src/js/modules/Format/defaults/formatters/plaintext.js +2 -2
- package/src/js/modules/Format/defaults/formatters/progress.js +132 -132
- package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +43 -43
- package/src/js/modules/Format/defaults/formatters/rowSelection.js +59 -59
- package/src/js/modules/Format/defaults/formatters/rownum.js +9 -9
- package/src/js/modules/Format/defaults/formatters/star.js +37 -37
- package/src/js/modules/Format/defaults/formatters/textarea.js +3 -3
- package/src/js/modules/Format/defaults/formatters/tickCross.js +21 -21
- package/src/js/modules/Format/defaults/formatters/traffic.js +46 -46
- package/src/js/modules/Format/defaults/formatters.js +42 -42
- package/src/js/modules/FrozenColumns/FrozenColumns.js +299 -299
- package/src/js/modules/FrozenRows/FrozenRows.js +169 -159
- package/src/js/modules/GroupRows/Group.js +597 -598
- package/src/js/modules/GroupRows/GroupComponent.js +66 -66
- package/src/js/modules/GroupRows/GroupRows.js +639 -639
- package/src/js/modules/History/History.js +171 -171
- package/src/js/modules/History/defaults/redoers.js +24 -24
- package/src/js/modules/History/defaults/undoers.js +24 -24
- package/src/js/modules/HtmlTableImport/HtmlTableImport.js +181 -181
- package/src/js/modules/Import/Import.js +193 -193
- package/src/js/modules/Import/defaults/importers/array.js +4 -4
- package/src/js/modules/Import/defaults/importers/csv.js +62 -62
- package/src/js/modules/Import/defaults/importers/json.js +7 -7
- package/src/js/modules/Import/defaults/importers.js +8 -8
- package/src/js/modules/Interaction/Interaction.js +325 -325
- package/src/js/modules/Keybindings/Keybindings.js +172 -172
- package/src/js/modules/Keybindings/defaults/actions.js +118 -118
- package/src/js/modules/Keybindings/defaults/bindings.js +12 -12
- package/src/js/modules/Layout/Layout.js +49 -49
- package/src/js/modules/Layout/defaults/modes/fitColumns.js +171 -171
- package/src/js/modules/Layout/defaults/modes/fitData.js +9 -9
- package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +9 -9
- package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +39 -39
- package/src/js/modules/Layout/defaults/modes.js +11 -11
- package/src/js/modules/Localize/Localize.js +185 -185
- package/src/js/modules/Localize/defaults/langs.js +36 -36
- package/src/js/modules/Menu/Menu.js +302 -302
- package/src/js/modules/MoveColumns/MoveColumns.js +299 -299
- package/src/js/modules/MoveRows/MoveRows.js +635 -635
- package/src/js/modules/Mutator/Mutator.js +161 -161
- package/src/js/modules/Page/Page.js +881 -881
- package/src/js/modules/Page/defaults/pageCounters/pages.js +32 -32
- package/src/js/modules/Page/defaults/pageCounters/rows.js +39 -39
- package/src/js/modules/Page/defaults/pageCounters.js +7 -7
- package/src/js/modules/Persistence/Persistence.js +458 -458
- package/src/js/modules/Persistence/defaults/readers.js +29 -29
- package/src/js/modules/Persistence/defaults/writers.js +12 -12
- package/src/js/modules/Popup/Popup.js +231 -231
- package/src/js/modules/Print/Print.js +137 -137
- package/src/js/modules/ReactiveData/ReactiveData.js +408 -408
- package/src/js/modules/ResizeColumns/ResizeColumns.js +309 -309
- package/src/js/modules/ResizeRows/ResizeRows.js +111 -111
- package/src/js/modules/ResizeTable/ResizeTable.js +159 -159
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +345 -345
- package/src/js/modules/SelectRow/SelectRow.js +446 -444
- package/src/js/modules/Sort/Sort.js +470 -470
- package/src/js/modules/Sort/defaults/sorters/alphanum.js +43 -43
- package/src/js/modules/Sort/defaults/sorters/array.js +53 -53
- package/src/js/modules/Sort/defaults/sorters/boolean.js +6 -6
- package/src/js/modules/Sort/defaults/sorters/date.js +9 -9
- package/src/js/modules/Sort/defaults/sorters/datetime.js +43 -43
- package/src/js/modules/Sort/defaults/sorters/exists.js +6 -6
- package/src/js/modules/Sort/defaults/sorters/number.js +39 -39
- package/src/js/modules/Sort/defaults/sorters/string.js +33 -33
- package/src/js/modules/Sort/defaults/sorters/time.js +9 -9
- package/src/js/modules/Sort/defaults/sorters.js +20 -20
- package/src/js/modules/Tooltip/Tooltip.js +130 -130
- package/src/js/modules/Validate/Validate.js +305 -305
- package/src/js/modules/Validate/defaults/validators.js +138 -138
- package/src/scss/tabulator.scss +1464 -1467
- package/src/scss/themes/bootstrap/functions4.scss +118 -118
- package/src/scss/themes/bootstrap/functions5.scss +302 -302
- package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +284 -284
- package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +544 -544
- package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +574 -574
- package/src/scss/themes/bootstrap/variables3.scss +870 -870
- package/src/scss/themes/bootstrap/variables4.scss +930 -930
- package/src/scss/themes/bootstrap/variables5.scss +1641 -1641
- package/src/scss/themes/bulma/tabulator_bulma.scss +252 -252
- package/src/scss/themes/bulma/variables.scss +197 -197
- package/src/scss/themes/materialize/tabulator_materialize.scss +265 -265
- package/src/scss/themes/materialize/variables.scss +70 -70
- package/src/scss/themes/semanticui/tabulator_semanticui.scss +561 -561
- package/src/scss/themes/semanticui/variables.scss +839 -839
- package/src/scss/themes/semanticui/variables_table.scss +247 -247
- package/src/scss/themes/tabulator_midnight.scss +158 -158
- package/src/scss/themes/tabulator_modern.scss +231 -231
- package/src/scss/themes/tabulator_simple.scss +102 -102
- package/src/scss/themes/tabulator_site.scss +189 -189
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
//sort alpha numeric strings
|
|
2
|
-
export default function(as, bs, aRow, bRow, column, dir, params){
|
|
3
|
-
var a, b, a1, b1, i= 0, L, rx = /(\d+)|(\D+)/g, rd = /\d/;
|
|
4
|
-
var alignEmptyValues = params.alignEmptyValues;
|
|
5
|
-
var emptyAlign = 0;
|
|
6
|
-
|
|
7
|
-
//handle empty values
|
|
8
|
-
if(!as && as!== 0){
|
|
9
|
-
emptyAlign = !bs && bs!== 0 ? 0 : -1;
|
|
10
|
-
}else if(!bs && bs!== 0){
|
|
11
|
-
emptyAlign = 1;
|
|
12
|
-
}else{
|
|
13
|
-
|
|
14
|
-
if(isFinite(as) && isFinite(bs)) return as - bs;
|
|
15
|
-
a = String(as).toLowerCase();
|
|
16
|
-
b = String(bs).toLowerCase();
|
|
17
|
-
if(a === b) return 0;
|
|
18
|
-
if(!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;
|
|
19
|
-
a = a.match(rx);
|
|
20
|
-
b = b.match(rx);
|
|
21
|
-
L = a.length > b.length ? b.length : a.length;
|
|
22
|
-
while(i < L){
|
|
23
|
-
a1= a[i];
|
|
24
|
-
b1= b[i++];
|
|
25
|
-
if(a1 !== b1){
|
|
26
|
-
if(isFinite(a1) && isFinite(b1)){
|
|
27
|
-
if(a1.charAt(0) === "0") a1 = "." + a1;
|
|
28
|
-
if(b1.charAt(0) === "0") b1 = "." + b1;
|
|
29
|
-
return a1 - b1;
|
|
30
|
-
}
|
|
31
|
-
else return a1 > b1 ? 1 : -1;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return a.length > b.length;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
//fix empty values in position
|
|
39
|
-
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
40
|
-
emptyAlign *= -1;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return emptyAlign;
|
|
1
|
+
//sort alpha numeric strings
|
|
2
|
+
export default function(as, bs, aRow, bRow, column, dir, params){
|
|
3
|
+
var a, b, a1, b1, i= 0, L, rx = /(\d+)|(\D+)/g, rd = /\d/;
|
|
4
|
+
var alignEmptyValues = params.alignEmptyValues;
|
|
5
|
+
var emptyAlign = 0;
|
|
6
|
+
|
|
7
|
+
//handle empty values
|
|
8
|
+
if(!as && as!== 0){
|
|
9
|
+
emptyAlign = !bs && bs!== 0 ? 0 : -1;
|
|
10
|
+
}else if(!bs && bs!== 0){
|
|
11
|
+
emptyAlign = 1;
|
|
12
|
+
}else{
|
|
13
|
+
|
|
14
|
+
if(isFinite(as) && isFinite(bs)) return as - bs;
|
|
15
|
+
a = String(as).toLowerCase();
|
|
16
|
+
b = String(bs).toLowerCase();
|
|
17
|
+
if(a === b) return 0;
|
|
18
|
+
if(!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;
|
|
19
|
+
a = a.match(rx);
|
|
20
|
+
b = b.match(rx);
|
|
21
|
+
L = a.length > b.length ? b.length : a.length;
|
|
22
|
+
while(i < L){
|
|
23
|
+
a1= a[i];
|
|
24
|
+
b1= b[i++];
|
|
25
|
+
if(a1 !== b1){
|
|
26
|
+
if(isFinite(a1) && isFinite(b1)){
|
|
27
|
+
if(a1.charAt(0) === "0") a1 = "." + a1;
|
|
28
|
+
if(b1.charAt(0) === "0") b1 = "." + b1;
|
|
29
|
+
return a1 - b1;
|
|
30
|
+
}
|
|
31
|
+
else return a1 > b1 ? 1 : -1;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return a.length > b.length;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//fix empty values in position
|
|
39
|
+
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
40
|
+
emptyAlign *= -1;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return emptyAlign;
|
|
44
44
|
}
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
//sort if element contains any data
|
|
2
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
-
var type = params.type || "length",
|
|
4
|
-
alignEmptyValues = params.alignEmptyValues,
|
|
5
|
-
emptyAlign = 0;
|
|
6
|
-
|
|
7
|
-
function calc(value){
|
|
8
|
-
var result;
|
|
9
|
-
|
|
10
|
-
switch(type){
|
|
11
|
-
case "length":
|
|
12
|
-
result = value.length;
|
|
13
|
-
break;
|
|
14
|
-
|
|
15
|
-
case "sum":
|
|
16
|
-
result = value.reduce(function(c, d){
|
|
17
|
-
return c + d;
|
|
18
|
-
});
|
|
19
|
-
break;
|
|
20
|
-
|
|
21
|
-
case "max":
|
|
22
|
-
result = Math.max.apply(null, value) ;
|
|
23
|
-
break;
|
|
24
|
-
|
|
25
|
-
case "min":
|
|
26
|
-
result = Math.min.apply(null, value) ;
|
|
27
|
-
break;
|
|
28
|
-
|
|
29
|
-
case "avg":
|
|
30
|
-
result = value.reduce(function(c, d){
|
|
31
|
-
return c + d;
|
|
32
|
-
}) / value.length;
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
//handle non array values
|
|
40
|
-
if(!Array.isArray(a)){
|
|
41
|
-
emptyAlign = !Array.isArray(b) ? 0 : -1;
|
|
42
|
-
}else if(!Array.isArray(b)){
|
|
43
|
-
emptyAlign = 1;
|
|
44
|
-
}else{
|
|
45
|
-
return calc(b) - calc(a);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
//fix empty values in position
|
|
49
|
-
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
50
|
-
emptyAlign *= -1;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return emptyAlign;
|
|
1
|
+
//sort if element contains any data
|
|
2
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
+
var type = params.type || "length",
|
|
4
|
+
alignEmptyValues = params.alignEmptyValues,
|
|
5
|
+
emptyAlign = 0;
|
|
6
|
+
|
|
7
|
+
function calc(value){
|
|
8
|
+
var result;
|
|
9
|
+
|
|
10
|
+
switch(type){
|
|
11
|
+
case "length":
|
|
12
|
+
result = value.length;
|
|
13
|
+
break;
|
|
14
|
+
|
|
15
|
+
case "sum":
|
|
16
|
+
result = value.reduce(function(c, d){
|
|
17
|
+
return c + d;
|
|
18
|
+
});
|
|
19
|
+
break;
|
|
20
|
+
|
|
21
|
+
case "max":
|
|
22
|
+
result = Math.max.apply(null, value) ;
|
|
23
|
+
break;
|
|
24
|
+
|
|
25
|
+
case "min":
|
|
26
|
+
result = Math.min.apply(null, value) ;
|
|
27
|
+
break;
|
|
28
|
+
|
|
29
|
+
case "avg":
|
|
30
|
+
result = value.reduce(function(c, d){
|
|
31
|
+
return c + d;
|
|
32
|
+
}) / value.length;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//handle non array values
|
|
40
|
+
if(!Array.isArray(a)){
|
|
41
|
+
emptyAlign = !Array.isArray(b) ? 0 : -1;
|
|
42
|
+
}else if(!Array.isArray(b)){
|
|
43
|
+
emptyAlign = 1;
|
|
44
|
+
}else{
|
|
45
|
+
return calc(b) - calc(a);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//fix empty values in position
|
|
49
|
+
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
50
|
+
emptyAlign *= -1;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return emptyAlign;
|
|
54
54
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
//sort booleans
|
|
2
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
-
var el1 = a === true || a === "true" || a === "True" || a === 1 ? 1 : 0;
|
|
4
|
-
var el2 = b === true || b === "true" || b === "True" || b === 1 ? 1 : 0;
|
|
5
|
-
|
|
6
|
-
return el1 - el2;
|
|
1
|
+
//sort booleans
|
|
2
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
+
var el1 = a === true || a === "true" || a === "True" || a === 1 ? 1 : 0;
|
|
4
|
+
var el2 = b === true || b === "true" || b === "True" || b === 1 ? 1 : 0;
|
|
5
|
+
|
|
6
|
+
return el1 - el2;
|
|
7
7
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import datetime from './datetime.js';
|
|
2
|
-
|
|
3
|
-
//sort date
|
|
4
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
5
|
-
if(!params.format){
|
|
6
|
-
params.format = "dd/MM/yyyy";
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
return datetime.call(this, a, b, aRow, bRow, column, dir, params);
|
|
1
|
+
import datetime from './datetime.js';
|
|
2
|
+
|
|
3
|
+
//sort date
|
|
4
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
5
|
+
if(!params.format){
|
|
6
|
+
params.format = "dd/MM/yyyy";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
return datetime.call(this, a, b, aRow, bRow, column, dir, params);
|
|
10
10
|
}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
//sort datetime
|
|
2
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
-
var DT = window.DateTime || luxon.DateTime;
|
|
4
|
-
var format = params.format || "dd/MM/yyyy HH:mm:ss",
|
|
5
|
-
alignEmptyValues = params.alignEmptyValues,
|
|
6
|
-
emptyAlign = 0;
|
|
7
|
-
|
|
8
|
-
if(typeof DT != "undefined"){
|
|
9
|
-
if(!DT.isDateTime(a)){
|
|
10
|
-
if(format === "iso"){
|
|
11
|
-
a = DT.fromISO(String(a));
|
|
12
|
-
}else{
|
|
13
|
-
a = DT.fromFormat(String(a), format);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
if(!DT.isDateTime(b)){
|
|
18
|
-
if(format === "iso"){
|
|
19
|
-
b = DT.fromISO(String(b));
|
|
20
|
-
}else{
|
|
21
|
-
b = DT.fromFormat(String(b), format);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if(!a.isValid){
|
|
26
|
-
emptyAlign = !b.isValid ? 0 : -1;
|
|
27
|
-
}else if(!b.isValid){
|
|
28
|
-
emptyAlign = 1;
|
|
29
|
-
}else{
|
|
30
|
-
//compare valid values
|
|
31
|
-
return a - b;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
//fix empty values in position
|
|
35
|
-
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
36
|
-
emptyAlign *= -1;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return emptyAlign;
|
|
40
|
-
|
|
41
|
-
}else{
|
|
42
|
-
console.error("Sort Error - 'datetime' sorter is dependant on luxon.js");
|
|
43
|
-
}
|
|
1
|
+
//sort datetime
|
|
2
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
+
var DT = window.DateTime || luxon.DateTime;
|
|
4
|
+
var format = params.format || "dd/MM/yyyy HH:mm:ss",
|
|
5
|
+
alignEmptyValues = params.alignEmptyValues,
|
|
6
|
+
emptyAlign = 0;
|
|
7
|
+
|
|
8
|
+
if(typeof DT != "undefined"){
|
|
9
|
+
if(!DT.isDateTime(a)){
|
|
10
|
+
if(format === "iso"){
|
|
11
|
+
a = DT.fromISO(String(a));
|
|
12
|
+
}else{
|
|
13
|
+
a = DT.fromFormat(String(a), format);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if(!DT.isDateTime(b)){
|
|
18
|
+
if(format === "iso"){
|
|
19
|
+
b = DT.fromISO(String(b));
|
|
20
|
+
}else{
|
|
21
|
+
b = DT.fromFormat(String(b), format);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if(!a.isValid){
|
|
26
|
+
emptyAlign = !b.isValid ? 0 : -1;
|
|
27
|
+
}else if(!b.isValid){
|
|
28
|
+
emptyAlign = 1;
|
|
29
|
+
}else{
|
|
30
|
+
//compare valid values
|
|
31
|
+
return a - b;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//fix empty values in position
|
|
35
|
+
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
36
|
+
emptyAlign *= -1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return emptyAlign;
|
|
40
|
+
|
|
41
|
+
}else{
|
|
42
|
+
console.error("Sort Error - 'datetime' sorter is dependant on luxon.js");
|
|
43
|
+
}
|
|
44
44
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
//sort if element contains any data
|
|
2
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
-
var el1 = typeof a == "undefined" ? 0 : 1;
|
|
4
|
-
var el2 = typeof b == "undefined" ? 0 : 1;
|
|
5
|
-
|
|
6
|
-
return el1 - el2;
|
|
1
|
+
//sort if element contains any data
|
|
2
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
+
var el1 = typeof a == "undefined" ? 0 : 1;
|
|
4
|
+
var el2 = typeof b == "undefined" ? 0 : 1;
|
|
5
|
+
|
|
6
|
+
return el1 - el2;
|
|
7
7
|
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
//sort numbers
|
|
2
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
-
var alignEmptyValues = params.alignEmptyValues;
|
|
4
|
-
var decimal = params.decimalSeparator;
|
|
5
|
-
var thousand = params.thousandSeparator;
|
|
6
|
-
var emptyAlign = 0;
|
|
7
|
-
|
|
8
|
-
a = String(a);
|
|
9
|
-
b = String(b);
|
|
10
|
-
|
|
11
|
-
if(thousand){
|
|
12
|
-
a = a.split(thousand).join("");
|
|
13
|
-
b = b.split(thousand).join("");
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
if(decimal){
|
|
17
|
-
a = a.split(decimal).join(".");
|
|
18
|
-
b = b.split(decimal).join(".");
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
a = parseFloat(a);
|
|
22
|
-
b = parseFloat(b);
|
|
23
|
-
|
|
24
|
-
//handle non numeric values
|
|
25
|
-
if(isNaN(a)){
|
|
26
|
-
emptyAlign = isNaN(b) ? 0 : -1;
|
|
27
|
-
}else if(isNaN(b)){
|
|
28
|
-
emptyAlign = 1;
|
|
29
|
-
}else{
|
|
30
|
-
//compare valid values
|
|
31
|
-
return a - b;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
//fix empty values in position
|
|
35
|
-
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
36
|
-
emptyAlign *= -1;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return emptyAlign;
|
|
1
|
+
//sort numbers
|
|
2
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
+
var alignEmptyValues = params.alignEmptyValues;
|
|
4
|
+
var decimal = params.decimalSeparator;
|
|
5
|
+
var thousand = params.thousandSeparator;
|
|
6
|
+
var emptyAlign = 0;
|
|
7
|
+
|
|
8
|
+
a = String(a);
|
|
9
|
+
b = String(b);
|
|
10
|
+
|
|
11
|
+
if(thousand){
|
|
12
|
+
a = a.split(thousand).join("");
|
|
13
|
+
b = b.split(thousand).join("");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if(decimal){
|
|
17
|
+
a = a.split(decimal).join(".");
|
|
18
|
+
b = b.split(decimal).join(".");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
a = parseFloat(a);
|
|
22
|
+
b = parseFloat(b);
|
|
23
|
+
|
|
24
|
+
//handle non numeric values
|
|
25
|
+
if(isNaN(a)){
|
|
26
|
+
emptyAlign = isNaN(b) ? 0 : -1;
|
|
27
|
+
}else if(isNaN(b)){
|
|
28
|
+
emptyAlign = 1;
|
|
29
|
+
}else{
|
|
30
|
+
//compare valid values
|
|
31
|
+
return a - b;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//fix empty values in position
|
|
35
|
+
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
36
|
+
emptyAlign *= -1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return emptyAlign;
|
|
40
40
|
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
//sort strings
|
|
2
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
-
var alignEmptyValues = params.alignEmptyValues;
|
|
4
|
-
var emptyAlign = 0;
|
|
5
|
-
var locale;
|
|
6
|
-
|
|
7
|
-
//handle empty values
|
|
8
|
-
if(!a){
|
|
9
|
-
emptyAlign = !b ? 0 : -1;
|
|
10
|
-
}else if(!b){
|
|
11
|
-
emptyAlign = 1;
|
|
12
|
-
}else{
|
|
13
|
-
//compare valid values
|
|
14
|
-
switch(typeof params.locale){
|
|
15
|
-
case "boolean":
|
|
16
|
-
if(params.locale){
|
|
17
|
-
locale = this.langLocale();
|
|
18
|
-
}
|
|
19
|
-
break;
|
|
20
|
-
case "string":
|
|
21
|
-
locale = params.locale;
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
//fix empty values in position
|
|
29
|
-
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
30
|
-
emptyAlign *= -1;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return emptyAlign;
|
|
1
|
+
//sort strings
|
|
2
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
3
|
+
var alignEmptyValues = params.alignEmptyValues;
|
|
4
|
+
var emptyAlign = 0;
|
|
5
|
+
var locale;
|
|
6
|
+
|
|
7
|
+
//handle empty values
|
|
8
|
+
if(!a){
|
|
9
|
+
emptyAlign = !b ? 0 : -1;
|
|
10
|
+
}else if(!b){
|
|
11
|
+
emptyAlign = 1;
|
|
12
|
+
}else{
|
|
13
|
+
//compare valid values
|
|
14
|
+
switch(typeof params.locale){
|
|
15
|
+
case "boolean":
|
|
16
|
+
if(params.locale){
|
|
17
|
+
locale = this.langLocale();
|
|
18
|
+
}
|
|
19
|
+
break;
|
|
20
|
+
case "string":
|
|
21
|
+
locale = params.locale;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//fix empty values in position
|
|
29
|
+
if((alignEmptyValues === "top" && dir === "desc") || (alignEmptyValues === "bottom" && dir === "asc")){
|
|
30
|
+
emptyAlign *= -1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return emptyAlign;
|
|
34
34
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import datetime from './datetime.js';
|
|
2
|
-
|
|
3
|
-
//sort times
|
|
4
|
-
export default function(a, b, aRow, bRow, column, dir, params){
|
|
5
|
-
if(!params.format){
|
|
6
|
-
params.format = "HH:mm";
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
return datetime.call(this, a, b, aRow, bRow, column, dir, params);
|
|
1
|
+
import datetime from './datetime.js';
|
|
2
|
+
|
|
3
|
+
//sort times
|
|
4
|
+
export default function(a, b, aRow, bRow, column, dir, params){
|
|
5
|
+
if(!params.format){
|
|
6
|
+
params.format = "HH:mm";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
return datetime.call(this, a, b, aRow, bRow, column, dir, params);
|
|
10
10
|
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import number from './sorters/number.js';
|
|
2
|
-
import string from './sorters/string.js';
|
|
3
|
-
import date from './sorters/date.js';
|
|
4
|
-
import time from './sorters/time.js';
|
|
5
|
-
import datetime from './sorters/datetime.js';
|
|
6
|
-
import boolean from './sorters/boolean.js';
|
|
7
|
-
import array from './sorters/array.js';
|
|
8
|
-
import exists from './sorters/exists.js';
|
|
9
|
-
import alphanum from './sorters/alphanum.js';
|
|
10
|
-
|
|
11
|
-
export default {
|
|
12
|
-
number:number,
|
|
13
|
-
string:string,
|
|
14
|
-
date:date,
|
|
15
|
-
time:time,
|
|
16
|
-
datetime:datetime,
|
|
17
|
-
boolean:boolean,
|
|
18
|
-
array:array,
|
|
19
|
-
exists:exists,
|
|
20
|
-
alphanum:alphanum
|
|
1
|
+
import number from './sorters/number.js';
|
|
2
|
+
import string from './sorters/string.js';
|
|
3
|
+
import date from './sorters/date.js';
|
|
4
|
+
import time from './sorters/time.js';
|
|
5
|
+
import datetime from './sorters/datetime.js';
|
|
6
|
+
import boolean from './sorters/boolean.js';
|
|
7
|
+
import array from './sorters/array.js';
|
|
8
|
+
import exists from './sorters/exists.js';
|
|
9
|
+
import alphanum from './sorters/alphanum.js';
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
number:number,
|
|
13
|
+
string:string,
|
|
14
|
+
date:date,
|
|
15
|
+
time:time,
|
|
16
|
+
datetime:datetime,
|
|
17
|
+
boolean:boolean,
|
|
18
|
+
array:array,
|
|
19
|
+
exists:exists,
|
|
20
|
+
alphanum:alphanum
|
|
21
21
|
};
|