tabulator-tables 5.2.7 → 5.3.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/.eslintignore +3 -0
- package/.eslintrc.js +28 -0
- package/.github/workflows/bad-files-check.yml +39 -0
- package/.github/workflows/lint-and-test.yml +31 -0
- package/README.md +3 -3
- package/bower.json +1 -1
- package/build/Bundler.js +77 -77
- package/dist/css/tabulator.css +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +37 -37
- package/dist/js/tabulator.js +1388 -683
- 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 +4135 -3470
- 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 +4 -1
- package/src/js/builds/jquery_wrapper.js +37 -37
- package/src/js/core/ColumnManager.js +259 -231
- package/src/js/core/CoreFeature.js +16 -2
- package/src/js/core/FooterManager.js +10 -10
- package/src/js/core/Module.js +8 -8
- package/src/js/core/RowManager.js +79 -88
- package/src/js/core/Tabulator.js +86 -72
- package/src/js/core/TabulatorFull.js +1 -1
- package/src/js/core/cell/Cell.js +15 -16
- package/src/js/core/cell/CellComponent.js +2 -2
- package/src/js/core/column/Column.js +55 -66
- package/src/js/core/column/ColumnComponent.js +4 -4
- package/src/js/core/column/defaults/options.js +1 -1
- package/src/js/core/defaults/options.js +4 -2
- package/src/js/core/rendering/Renderer.js +19 -19
- package/src/js/core/rendering/renderers/BasicHorizontal.js +1 -2
- package/src/js/core/rendering/renderers/BasicVertical.js +1 -1
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +42 -58
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +31 -22
- package/src/js/core/row/Row.js +32 -8
- package/src/js/core/row/RowComponent.js +8 -4
- package/src/js/core/tools/Alert.js +44 -45
- package/src/js/core/tools/ComponentFunctionBinder.js +4 -2
- package/src/js/core/tools/DataLoader.js +3 -3
- package/src/js/core/tools/DeprecationAdvisor.js +47 -0
- package/src/js/core/tools/ExternalEventBus.js +5 -5
- package/src/js/core/tools/InteractionMonitor.js +31 -32
- package/src/js/core/tools/InternalEventBus.js +5 -5
- package/src/js/core/tools/ModuleBinder.js +6 -6
- package/src/js/core/tools/OptionsList.js +4 -4
- package/src/js/core/tools/Popup.js +211 -202
- package/src/js/modules/Accessor/Accessor.js +16 -16
- package/src/js/modules/Accessor/defaults/accessors.js +1 -1
- package/src/js/modules/Ajax/Ajax.js +7 -7
- package/src/js/modules/Ajax/defaults/loaderPromise.js +19 -19
- package/src/js/modules/Ajax/defaults/urlGenerator.js +1 -1
- package/src/js/modules/Clipboard/Clipboard.js +23 -23
- package/src/js/modules/Clipboard/defaults/pasteParsers.js +0 -2
- package/src/js/modules/ColumnCalcs/CalcComponent.js +2 -2
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +54 -50
- package/src/js/modules/ColumnCalcs/defaults/calculations.js +1 -1
- package/src/js/modules/DataTree/DataTree.js +19 -14
- package/src/js/modules/Download/Download.js +15 -8
- package/src/js/modules/Download/defaults/downloaders/csv.js +28 -28
- package/src/js/modules/Download/defaults/downloaders/html.js +2 -2
- package/src/js/modules/Download/defaults/downloaders/json.js +14 -14
- package/src/js/modules/Download/defaults/downloaders/jsonLines.js +1 -1
- package/src/js/modules/Download/defaults/downloaders/pdf.js +17 -19
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +2 -2
- package/src/js/modules/Edit/Edit.js +219 -201
- package/src/js/modules/Edit/List.js +1026 -1006
- package/src/js/modules/Edit/defaults/editors/autocomplete.js +3 -3
- package/src/js/modules/Edit/defaults/editors/date.js +110 -0
- package/src/js/modules/Edit/defaults/editors/datetime.js +97 -0
- package/src/js/modules/Edit/defaults/editors/input.js +7 -7
- package/src/js/modules/Edit/defaults/editors/list.js +2 -2
- package/src/js/modules/Edit/defaults/editors/number.js +12 -12
- package/src/js/modules/Edit/defaults/editors/progress.js +11 -11
- package/src/js/modules/Edit/defaults/editors/range.js +5 -5
- package/src/js/modules/Edit/defaults/editors/select.js +3 -3
- package/src/js/modules/Edit/defaults/editors/star.js +9 -9
- package/src/js/modules/Edit/defaults/editors/textarea.js +97 -92
- package/src/js/modules/Edit/defaults/editors/tickCross.js +1 -3
- package/src/js/modules/Edit/defaults/editors/time.js +98 -0
- package/src/js/modules/Edit/defaults/editors.js +8 -2
- package/src/js/modules/Edit/inputMask.js +19 -26
- package/src/js/modules/Export/Export.js +69 -65
- package/src/js/modules/Filter/Filter.js +85 -95
- package/src/js/modules/Format/Format.js +24 -26
- package/src/js/modules/Format/defaults/formatters/buttonCross.js +1 -1
- package/src/js/modules/Format/defaults/formatters/buttonTick.js +1 -1
- package/src/js/modules/Format/defaults/formatters/color.js +1 -1
- package/src/js/modules/Format/defaults/formatters/datetime.js +7 -7
- package/src/js/modules/Format/defaults/formatters/datetimediff.js +7 -7
- package/src/js/modules/Format/defaults/formatters/handle.js +1 -1
- package/src/js/modules/Format/defaults/formatters/html.js +1 -1
- package/src/js/modules/Format/defaults/formatters/image.js +9 -9
- package/src/js/modules/Format/defaults/formatters/link.js +10 -10
- package/src/js/modules/Format/defaults/formatters/lookup.js +1 -1
- package/src/js/modules/Format/defaults/formatters/money.js +1 -1
- package/src/js/modules/Format/defaults/formatters/plaintext.js +1 -1
- package/src/js/modules/Format/defaults/formatters/progress.js +41 -42
- package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +3 -3
- package/src/js/modules/Format/defaults/formatters/rowSelection.js +1 -1
- package/src/js/modules/Format/defaults/formatters/rownum.js +9 -2
- package/src/js/modules/Format/defaults/formatters/star.js +1 -1
- package/src/js/modules/Format/defaults/formatters/textarea.js +1 -1
- package/src/js/modules/Format/defaults/formatters/tickCross.js +1 -1
- package/src/js/modules/Format/defaults/formatters/traffic.js +14 -14
- package/src/js/modules/FrozenColumns/FrozenColumns.js +6 -8
- package/src/js/modules/FrozenRows/FrozenRows.js +37 -7
- package/src/js/modules/GroupRows/Group.js +3 -3
- package/src/js/modules/GroupRows/GroupComponent.js +2 -2
- package/src/js/modules/GroupRows/GroupRows.js +12 -11
- package/src/js/modules/History/History.js +2 -2
- package/src/js/modules/HtmlTableImport/HtmlTableImport.js +3 -6
- package/src/js/modules/Import/Import.js +158 -159
- package/src/js/modules/Import/defaults/importers/array.js +5 -0
- package/src/js/modules/Import/defaults/importers/csv.js +49 -49
- package/src/js/modules/Import/defaults/importers/json.js +6 -6
- package/src/js/modules/Import/defaults/importers.js +2 -0
- package/src/js/modules/Interaction/Interaction.js +39 -40
- package/src/js/modules/Keybindings/Keybindings.js +14 -14
- package/src/js/modules/Keybindings/defaults/actions.js +1 -2
- package/src/js/modules/Layout/Layout.js +4 -5
- package/src/js/modules/Layout/defaults/modes/fitColumns.js +9 -10
- package/src/js/modules/Layout/defaults/modes/fitData.js +6 -4
- package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +2 -2
- package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +2 -2
- package/src/js/modules/Localize/Localize.js +7 -7
- package/src/js/modules/Menu/Menu.js +8 -11
- package/src/js/modules/MoveColumns/MoveColumns.js +3 -6
- package/src/js/modules/MoveRows/MoveRows.js +30 -36
- package/src/js/modules/Mutator/Mutator.js +9 -9
- package/src/js/modules/Page/Page.js +73 -80
- package/src/js/modules/Page/defaults/pageCounters/pages.js +2 -2
- package/src/js/modules/Page/defaults/pageCounters/rows.js +1 -1
- package/src/js/modules/Persistence/Persistence.js +40 -44
- package/src/js/modules/Persistence/defaults/readers.js +1 -1
- package/src/js/modules/Popup/Popup.js +4 -5
- package/src/js/modules/Print/Print.js +2 -2
- package/src/js/modules/ReactiveData/ReactiveData.js +178 -115
- package/src/js/modules/ResizeColumns/ResizeColumns.js +3 -3
- package/src/js/modules/ResizeRows/ResizeRows.js +1 -1
- package/src/js/modules/ResizeTable/ResizeTable.js +77 -46
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +0 -3
- package/src/js/modules/SelectRow/SelectRow.js +26 -28
- package/src/js/modules/Sort/Sort.js +110 -79
- package/src/js/modules/Sort/defaults/sorters/alphanum.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/array.js +24 -28
- package/src/js/modules/Sort/defaults/sorters/boolean.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/date.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/datetime.js +13 -13
- package/src/js/modules/Sort/defaults/sorters/exists.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/number.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/string.js +7 -7
- package/src/js/modules/Sort/defaults/sorters/time.js +1 -1
- package/src/js/modules/Tooltip/Tooltip.js +5 -7
- package/src/js/modules/Validate/Validate.js +10 -13
- package/src/js/modules/Validate/defaults/validators.js +8 -3
- package/src/scss/tabulator.scss +28 -17
- package/src/scss/themes/bootstrap/functions4.scss +1 -1
- package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +8 -8
- package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +8 -8
- package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +8 -8
- package/src/scss/themes/bulma/tabulator_bulma.scss +7 -7
- package/src/scss/themes/materialize/tabulator_materialize.scss +6 -6
- package/src/scss/themes/materialize/variables.scss +1 -1
- package/src/scss/themes/semanticui/tabulator_semanticui.scss +7 -7
- package/src/scss/themes/tabulator_midnight.scss +7 -7
- package/src/scss/themes/tabulator_modern.scss +14 -14
- package/src/scss/themes/tabulator_simple.scss +8 -8
- package/src/scss/themes/tabulator_site.scss +15 -15
|
@@ -194,10 +194,9 @@ class Filter extends Module{
|
|
|
194
194
|
//initialize column header filter
|
|
195
195
|
initializeColumn(column, value){
|
|
196
196
|
var self = this,
|
|
197
|
-
field = column.getField()
|
|
198
|
-
params;
|
|
197
|
+
field = column.getField();
|
|
199
198
|
|
|
200
|
-
//handle
|
|
199
|
+
//handle successfully value change
|
|
201
200
|
function success(value){
|
|
202
201
|
var filterType = (column.modules.filter.tagType == "input" && column.modules.filter.attrType == "text") || column.modules.filter.tagType == "textarea" ? "partial" : "match",
|
|
203
202
|
type = "",
|
|
@@ -213,59 +212,59 @@ class Filter extends Module{
|
|
|
213
212
|
|
|
214
213
|
switch(typeof column.definition.headerFilterFunc){
|
|
215
214
|
case "string":
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
if(Filter.filters[column.definition.headerFilterFunc]){
|
|
216
|
+
type = column.definition.headerFilterFunc;
|
|
217
|
+
filterFunc = function(data){
|
|
218
|
+
var params = column.definition.headerFilterFuncParams || {};
|
|
219
|
+
var fieldVal = column.getFieldValue(data);
|
|
220
|
+
|
|
221
|
+
params = typeof params === "function" ? params(value, fieldVal, data) : params;
|
|
222
|
+
|
|
223
|
+
return Filter.filters[column.definition.headerFilterFunc](value, fieldVal, data, params);
|
|
224
|
+
};
|
|
225
|
+
}else{
|
|
226
|
+
console.warn("Header Filter Error - Matching filter function not found: ", column.definition.headerFilterFunc);
|
|
227
|
+
}
|
|
228
|
+
break;
|
|
229
|
+
|
|
230
|
+
case "function":
|
|
218
231
|
filterFunc = function(data){
|
|
219
232
|
var params = column.definition.headerFilterFuncParams || {};
|
|
220
233
|
var fieldVal = column.getFieldValue(data);
|
|
221
234
|
|
|
222
235
|
params = typeof params === "function" ? params(value, fieldVal, data) : params;
|
|
223
236
|
|
|
224
|
-
return
|
|
237
|
+
return column.definition.headerFilterFunc(value, fieldVal, data, params);
|
|
225
238
|
};
|
|
226
|
-
}else{
|
|
227
|
-
console.warn("Header Filter Error - Matching filter function not found: ", column.definition.headerFilterFunc);
|
|
228
|
-
}
|
|
229
|
-
break;
|
|
230
239
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
var params = column.definition.headerFilterFuncParams || {};
|
|
234
|
-
var fieldVal = column.getFieldValue(data);
|
|
235
|
-
|
|
236
|
-
params = typeof params === "function" ? params(value, fieldVal, data) : params;
|
|
237
|
-
|
|
238
|
-
return column.definition.headerFilterFunc(value, fieldVal, data, params);
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
type = filterFunc;
|
|
242
|
-
break;
|
|
240
|
+
type = filterFunc;
|
|
241
|
+
break;
|
|
243
242
|
}
|
|
244
243
|
|
|
245
244
|
if(!filterFunc){
|
|
246
245
|
switch(filterType){
|
|
247
246
|
case "partial":
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
247
|
+
filterFunc = function(data){
|
|
248
|
+
var colVal = column.getFieldValue(data);
|
|
249
|
+
|
|
250
|
+
if(typeof colVal !== 'undefined' && colVal !== null){
|
|
251
|
+
return String(colVal).toLowerCase().indexOf(String(value).toLowerCase()) > -1;
|
|
252
|
+
}else{
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
type = "like";
|
|
257
|
+
break;
|
|
259
258
|
|
|
260
259
|
default:
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
260
|
+
filterFunc = function(data){
|
|
261
|
+
return column.getFieldValue(data) == value;
|
|
262
|
+
};
|
|
263
|
+
type = "=";
|
|
265
264
|
}
|
|
266
265
|
}
|
|
267
266
|
|
|
268
|
-
self.headerFilters[field] = {value:value, func:filterFunc, type:type
|
|
267
|
+
self.headerFilters[field] = {value:value, func:filterFunc, type:type};
|
|
269
268
|
}else{
|
|
270
269
|
delete self.headerFilters[field];
|
|
271
270
|
}
|
|
@@ -314,7 +313,7 @@ class Filter extends Module{
|
|
|
314
313
|
|
|
315
314
|
//set empty value function
|
|
316
315
|
column.modules.filter.emptyFunc = column.definition.headerFilterEmptyCheck || function(value){
|
|
317
|
-
return !value && value !==
|
|
316
|
+
return !value && value !== 0;
|
|
318
317
|
};
|
|
319
318
|
|
|
320
319
|
filterElement = document.createElement("div");
|
|
@@ -323,40 +322,40 @@ class Filter extends Module{
|
|
|
323
322
|
//set column editor
|
|
324
323
|
switch(typeof column.definition.headerFilter){
|
|
325
324
|
case "string":
|
|
326
|
-
|
|
327
|
-
|
|
325
|
+
if(self.table.modules.edit.editors[column.definition.headerFilter]){
|
|
326
|
+
editor = self.table.modules.edit.editors[column.definition.headerFilter];
|
|
328
327
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
328
|
+
if((column.definition.headerFilter === "tick" || column.definition.headerFilter === "tickCross") && !column.definition.headerFilterEmptyCheck){
|
|
329
|
+
column.modules.filter.emptyFunc = function(value){
|
|
330
|
+
return value !== true && value !== false;
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
}else{
|
|
334
|
+
console.warn("Filter Error - Cannot build header filter, No such editor found: ", column.definition.editor);
|
|
333
335
|
}
|
|
334
|
-
|
|
335
|
-
console.warn("Filter Error - Cannot build header filter, No such editor found: ", column.definition.editor);
|
|
336
|
-
}
|
|
337
|
-
break;
|
|
336
|
+
break;
|
|
338
337
|
|
|
339
338
|
case "function":
|
|
340
|
-
|
|
341
|
-
|
|
339
|
+
editor = column.definition.headerFilter;
|
|
340
|
+
break;
|
|
342
341
|
|
|
343
342
|
case "boolean":
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
343
|
+
if(column.modules.edit && column.modules.edit.editor){
|
|
344
|
+
editor = column.modules.edit.editor;
|
|
345
|
+
}else{
|
|
346
|
+
if(column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]){
|
|
347
|
+
editor = self.table.modules.edit.editors[column.definition.formatter];
|
|
349
348
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
349
|
+
if((column.definition.formatter === "tick" || column.definition.formatter === "tickCross") && !column.definition.headerFilterEmptyCheck){
|
|
350
|
+
column.modules.filter.emptyFunc = function(value){
|
|
351
|
+
return value !== true && value !== false;
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
}else{
|
|
355
|
+
editor = self.table.modules.edit.editors["input"];
|
|
354
356
|
}
|
|
355
|
-
}else{
|
|
356
|
-
editor = self.table.modules.edit.editors["input"];
|
|
357
357
|
}
|
|
358
|
-
|
|
359
|
-
break;
|
|
358
|
+
break;
|
|
360
359
|
}
|
|
361
360
|
|
|
362
361
|
if(editor){
|
|
@@ -400,15 +399,9 @@ class Filter extends Module{
|
|
|
400
399
|
}
|
|
401
400
|
|
|
402
401
|
//set Placeholder Text
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
});
|
|
407
|
-
}else{
|
|
408
|
-
self.langBind("headerFilters|default", function(value){
|
|
409
|
-
editorElement.setAttribute("placeholder", value);
|
|
410
|
-
});
|
|
411
|
-
}
|
|
402
|
+
self.langBind("headerFilters|columns|" + column.definition.field, function(value){
|
|
403
|
+
editorElement.setAttribute("placeholder", typeof value !== "undefined" && value ? value : self.langText("headerFilters|default"));
|
|
404
|
+
});
|
|
412
405
|
|
|
413
406
|
//focus on element on click
|
|
414
407
|
editorElement.addEventListener("click", function(e){
|
|
@@ -453,28 +446,28 @@ class Filter extends Module{
|
|
|
453
446
|
((column.definition.editor === 'autocomplete' ||
|
|
454
447
|
column.definition.editor === 'tickCross') &&
|
|
455
448
|
column.definition.headerFilter === true)
|
|
456
|
-
|
|
457
|
-
|
|
449
|
+
)
|
|
450
|
+
) {
|
|
458
451
|
editorElement.addEventListener("keyup", searchTrigger);
|
|
459
|
-
|
|
452
|
+
editorElement.addEventListener("search", searchTrigger);
|
|
460
453
|
|
|
461
454
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
455
|
+
//update number filtered columns on change
|
|
456
|
+
if(column.modules.filter.attrType == "number"){
|
|
457
|
+
editorElement.addEventListener("change", function(e){
|
|
458
|
+
success(editorElement.value);
|
|
459
|
+
});
|
|
460
|
+
}
|
|
468
461
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
462
|
+
//change text inputs to search inputs to allow for clearing of field
|
|
463
|
+
if(column.modules.filter.attrType == "text" && this.table.browser !== "ie"){
|
|
464
|
+
editorElement.setAttribute("type", "search");
|
|
472
465
|
// editorElement.off("change blur"); //prevent blur from triggering filter and preventing selection click
|
|
473
|
-
|
|
466
|
+
}
|
|
474
467
|
|
|
475
|
-
|
|
468
|
+
}
|
|
476
469
|
|
|
477
|
-
//prevent input and select elements from
|
|
470
|
+
//prevent input and select elements from propagating click to column sorters etc
|
|
478
471
|
if(column.modules.filter.tagType == "input" || column.modules.filter.tagType == "select" || column.modules.filter.tagType == "textarea"){
|
|
479
472
|
editorElement.addEventListener("mousedown",function(e){
|
|
480
473
|
e.stopPropagation();
|
|
@@ -513,7 +506,7 @@ class Filter extends Module{
|
|
|
513
506
|
});
|
|
514
507
|
}
|
|
515
508
|
|
|
516
|
-
//
|
|
509
|
+
//programmatically set focus of header filter
|
|
517
510
|
setHeaderFilterFocus(column){
|
|
518
511
|
if(column.modules.filter && column.modules.filter.headerElement){
|
|
519
512
|
column.modules.filter.headerElement.focus();
|
|
@@ -531,7 +524,7 @@ class Filter extends Module{
|
|
|
531
524
|
}
|
|
532
525
|
}
|
|
533
526
|
|
|
534
|
-
//
|
|
527
|
+
//programmatically set value of header filter
|
|
535
528
|
setHeaderFilterValue(column, value){
|
|
536
529
|
if (column){
|
|
537
530
|
if(column.modules.filter && column.modules.filter.headerElement){
|
|
@@ -624,7 +617,7 @@ class Filter extends Module{
|
|
|
624
617
|
|
|
625
618
|
if(typeof filter.field == "function"){
|
|
626
619
|
filterFunc = function(data){
|
|
627
|
-
return filter.field(data, filter.type || {})
|
|
620
|
+
return filter.field(data, filter.type || {});// pass params to custom filter function
|
|
628
621
|
};
|
|
629
622
|
}else{
|
|
630
623
|
|
|
@@ -698,7 +691,7 @@ class Filter extends Module{
|
|
|
698
691
|
if(Array.isArray(filter)){
|
|
699
692
|
output.push(this.filtersToArray(filter, ajax));
|
|
700
693
|
}else{
|
|
701
|
-
item = {field:filter.field, type:filter.type, value:filter.value}
|
|
694
|
+
item = {field:filter.field, type:filter.type, value:filter.value};
|
|
702
695
|
|
|
703
696
|
if(ajax){
|
|
704
697
|
if(typeof item.type == "function"){
|
|
@@ -726,8 +719,6 @@ class Filter extends Module{
|
|
|
726
719
|
|
|
727
720
|
//remove filter from array
|
|
728
721
|
removeFilter(field, type, value){
|
|
729
|
-
var changed = false;
|
|
730
|
-
|
|
731
722
|
if(!Array.isArray(field)){
|
|
732
723
|
field = [{field:field, type:type, value:value}];
|
|
733
724
|
}
|
|
@@ -747,7 +738,6 @@ class Filter extends Module{
|
|
|
747
738
|
|
|
748
739
|
if(index > -1){
|
|
749
740
|
this.filterList.splice(index, 1);
|
|
750
|
-
changed = true;
|
|
751
741
|
}else{
|
|
752
742
|
console.warn("Filter Error - No matching filter type found, ignoring: ", filter.type);
|
|
753
743
|
}
|
|
@@ -51,21 +51,21 @@ class Format extends Module{
|
|
|
51
51
|
//set column formatter
|
|
52
52
|
switch(typeof formatter){
|
|
53
53
|
case "string":
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
if(Format.formatters[formatter]){
|
|
55
|
+
config.formatter = Format.formatters[formatter];
|
|
56
|
+
}else{
|
|
57
|
+
console.warn("Formatter Error - No such formatter found: ", formatter);
|
|
58
|
+
config.formatter = Format.formatters.plaintext;
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
61
|
|
|
62
62
|
case "function":
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
config.formatter = formatter;
|
|
64
|
+
break;
|
|
65
65
|
|
|
66
66
|
default:
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
config.formatter = Format.formatters.plaintext;
|
|
68
|
+
break;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
return config;
|
|
@@ -131,7 +131,7 @@ class Format extends Module{
|
|
|
131
131
|
params;
|
|
132
132
|
|
|
133
133
|
if(formatter){
|
|
134
|
-
params = typeof formatter.params === "function" ? formatter.params(
|
|
134
|
+
params = typeof formatter.params === "function" ? formatter.params(cell.getComponent()) : formatter.params;
|
|
135
135
|
|
|
136
136
|
function onRendered(callback){
|
|
137
137
|
if(!cell.modules.format){
|
|
@@ -162,7 +162,7 @@ class Format extends Module{
|
|
|
162
162
|
'=': '='
|
|
163
163
|
};
|
|
164
164
|
|
|
165
|
-
return String(value).replace(/[&<>"'
|
|
165
|
+
return String(value).replace(/[&<>"'`=/]/g, function (s) {
|
|
166
166
|
return entityMap[s];
|
|
167
167
|
});
|
|
168
168
|
}else{
|
|
@@ -176,25 +176,23 @@ class Format extends Module{
|
|
|
176
176
|
|
|
177
177
|
//get formatter for cell
|
|
178
178
|
getFormatter(formatter){
|
|
179
|
-
var formatter;
|
|
180
|
-
|
|
181
179
|
switch(typeof formatter){
|
|
182
180
|
case "string":
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
if(Format.formatters[formatter]){
|
|
182
|
+
formatter = Format.formatters[formatter];
|
|
183
|
+
}else{
|
|
184
|
+
console.warn("Formatter Error - No such formatter found: ", formatter);
|
|
185
|
+
formatter = Format.formatters.plaintext;
|
|
186
|
+
}
|
|
187
|
+
break;
|
|
190
188
|
|
|
191
189
|
case "function":
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
//Custom formatter Function, do nothing
|
|
191
|
+
break;
|
|
194
192
|
|
|
195
193
|
default:
|
|
196
|
-
|
|
197
|
-
|
|
194
|
+
formatter = Format.formatters.plaintext;
|
|
195
|
+
break;
|
|
198
196
|
}
|
|
199
197
|
|
|
200
198
|
return formatter;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export default function(cell, formatterParams, onRendered){
|
|
2
2
|
return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
|
|
3
|
-
}
|
|
3
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export default function(cell, formatterParams, onRendered){
|
|
2
2
|
return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>';
|
|
3
|
-
}
|
|
3
|
+
}
|
|
@@ -9,12 +9,12 @@ export default function(cell, formatterParams, onRendered){
|
|
|
9
9
|
var newDatetime;
|
|
10
10
|
|
|
11
11
|
if(DT.isDateTime(value)){
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
newDatetime = value;
|
|
13
|
+
}else if(inputFormat === "iso"){
|
|
14
|
+
newDatetime = DT.fromISO(String(value));
|
|
15
|
+
}else{
|
|
16
|
+
newDatetime = DT.fromFormat(String(value), inputFormat);
|
|
17
|
+
}
|
|
18
18
|
|
|
19
19
|
if(newDatetime.isValid){
|
|
20
20
|
if(formatterParams.timezone){
|
|
@@ -34,4 +34,4 @@ export default function(cell, formatterParams, onRendered){
|
|
|
34
34
|
}else{
|
|
35
35
|
console.error("Format Error - 'datetime' formatter is dependant on luxon.js");
|
|
36
36
|
}
|
|
37
|
-
}
|
|
37
|
+
}
|
|
@@ -12,12 +12,12 @@ export default function (cell, formatterParams, onRendered) {
|
|
|
12
12
|
var newDatetime;
|
|
13
13
|
|
|
14
14
|
if(DT.isDateTime(value)){
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
newDatetime = value;
|
|
16
|
+
}else if(inputFormat === "iso"){
|
|
17
|
+
newDatetime = DT.fromISO(String(value));
|
|
18
|
+
}else{
|
|
19
|
+
newDatetime = DT.fromFormat(String(value), inputFormat);
|
|
20
|
+
}
|
|
21
21
|
|
|
22
22
|
if (newDatetime.isValid){
|
|
23
23
|
if(humanize){
|
|
@@ -38,4 +38,4 @@ export default function (cell, formatterParams, onRendered) {
|
|
|
38
38
|
}else{
|
|
39
39
|
console.error("Format Error - 'datetimediff' formatter is dependant on luxon.js");
|
|
40
40
|
}
|
|
41
|
-
}
|
|
41
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export default function(cell, formatterParams, onRendered){
|
|
2
2
|
cell.getElement().classList.add("tabulator-row-handle");
|
|
3
3
|
return "<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>";
|
|
4
|
-
}
|
|
4
|
+
}
|
|
@@ -14,22 +14,22 @@ export default function(cell, formatterParams, onRendered){
|
|
|
14
14
|
|
|
15
15
|
switch(typeof formatterParams.height){
|
|
16
16
|
case "number":
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
el.style.height = formatterParams.height + "px";
|
|
18
|
+
break;
|
|
19
19
|
|
|
20
20
|
case "string":
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
el.style.height = formatterParams.height;
|
|
22
|
+
break;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
switch(typeof formatterParams.width){
|
|
26
26
|
case "number":
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
el.style.width = formatterParams.width + "px";
|
|
28
|
+
break;
|
|
29
29
|
|
|
30
30
|
case "string":
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
el.style.width = formatterParams.width;
|
|
32
|
+
break;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
el.addEventListener("load", function(){
|
|
@@ -37,4 +37,4 @@ export default function(cell, formatterParams, onRendered){
|
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
return el;
|
|
40
|
-
}
|
|
40
|
+
}
|
|
@@ -15,7 +15,7 @@ export default function(cell, formatterParams, onRendered){
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
return value;
|
|
18
|
-
}
|
|
18
|
+
}
|
|
19
19
|
|
|
20
20
|
if(formatterParams.labelField){
|
|
21
21
|
data = cell.getData();
|
|
@@ -25,12 +25,12 @@ export default function(cell, formatterParams, onRendered){
|
|
|
25
25
|
if(formatterParams.label){
|
|
26
26
|
switch(typeof formatterParams.label){
|
|
27
27
|
case "string":
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
label = formatterParams.label;
|
|
29
|
+
break;
|
|
30
30
|
|
|
31
31
|
case "function":
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
label = formatterParams.label(cell);
|
|
33
|
+
break;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -43,12 +43,12 @@ export default function(cell, formatterParams, onRendered){
|
|
|
43
43
|
if(formatterParams.url){
|
|
44
44
|
switch(typeof formatterParams.url){
|
|
45
45
|
case "string":
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
value = formatterParams.url;
|
|
47
|
+
break;
|
|
48
48
|
|
|
49
49
|
case "function":
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
value = formatterParams.url(cell);
|
|
51
|
+
break;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -75,4 +75,4 @@ export default function(cell, formatterParams, onRendered){
|
|
|
75
75
|
}else{
|
|
76
76
|
return " ";
|
|
77
77
|
}
|
|
78
|
-
}
|
|
78
|
+
}
|