@holoviz/panel 0.13.0-a.21 → 0.13.0-a.26
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/dist/bundled/css/ajax/libs/font-awesome/5.15.1/css/all.min.css +5 -0
- package/dist/bundled/css/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css +7 -0
- package/dist/bundled/datatabulator/npm/@holoviz/panel/dist/bundled/{tabulator-tables@5.0.7 → tabulator-tables@4.9.3}/dist/css/fast/tabulator_fast.min.css +1 -1
- package/dist/bundled/datatabulator/npm/luxon/build/global/luxon.min.js +1 -1
- package/dist/bundled/datatabulator/npm/luxon/build/global/luxon.min.js.map +1 -1
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/bootstrap/tabulator_bootstrap.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/bootstrap/tabulator_bootstrap4.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/bulma/tabulator_bulma.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/materialize/tabulator_materialize.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/semantic-ui/tabulator_semantic-ui.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/tabulator.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/tabulator_midnight.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/tabulator_modern.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/tabulator_simple.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/css/tabulator_site.min.css +3 -0
- package/dist/bundled/datatabulator/tabulator-tables@4.9.3/dist/js/tabulator.js +26546 -0
- package/dist/bundled/fastbasetemplate/fast_bokeh.css +23 -3
- package/dist/bundled/js/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js +7 -0
- package/dist/bundled/js/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js.map +1 -0
- package/dist/bundled/js/{jquery-3.5.1.slim.min.js → npm/jquery@3.5.1/dist/jquery.slim.min.js} +0 -0
- package/dist/bundled/plotlyplot/npm/jquery@3.5.1/dist/jquery.slim.min.js +2 -0
- package/dist/lib/models/audio.d.ts +4 -0
- package/dist/lib/models/audio.js +12 -0
- package/dist/lib/models/audio.js.map +1 -1
- package/dist/lib/models/customselect.d.ts +22 -0
- package/dist/lib/models/customselect.js +45 -0
- package/dist/lib/models/customselect.js.map +1 -0
- package/dist/lib/models/index.d.ts +1 -0
- package/dist/lib/models/index.js +1 -0
- package/dist/lib/models/index.js.map +1 -1
- package/dist/lib/models/layout.js +1 -1
- package/dist/lib/models/layout.js.map +1 -1
- package/dist/lib/models/progress.js +7 -8
- package/dist/lib/models/progress.js.map +1 -1
- package/dist/lib/models/singleselect.d.ts +2 -1
- package/dist/lib/models/singleselect.js +6 -3
- package/dist/lib/models/singleselect.js.map +1 -1
- package/dist/lib/models/speech_to_text.js +20 -21
- package/dist/lib/models/speech_to_text.js.map +1 -1
- package/dist/lib/models/tabulator.d.ts +3 -3
- package/dist/lib/models/tabulator.js +148 -60
- package/dist/lib/models/tabulator.js.map +1 -1
- package/dist/lib/models/video.d.ts +4 -0
- package/dist/lib/models/video.js +12 -0
- package/dist/lib/models/video.js.map +1 -1
- package/dist/lib/models/vtk/vtkaxes.js +11 -12
- package/dist/lib/models/vtk/vtkaxes.js.map +1 -1
- package/dist/panel.js +296 -145
- package/dist/panel.js.map +1 -1
- package/dist/panel.json +1 -1
- package/dist/panel.min.js +28 -27
- package/package.json +1 -1
- package/dist/bundled/css/bootstrap/3.3.7/css/bootstrap.min.css +0 -6
- package/dist/bundled/css/bootstrap/4.4.1/css/bootstrap.min.css +0 -7
- package/dist/bundled/css/font-awesome/4.7.0/css/font-awesome.min.css +0 -4
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/bootstrap/tabulator_bootstrap.min.css +0 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/bootstrap/tabulator_bootstrap4.min.css +0 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/bulma/tabulator_bulma.min.css +0 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/materialize/tabulator_materialize.min.css +0 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/semantic-ui/tabulator_semantic-ui.min.css +0 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/tabulator.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/tabulator_midnight.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/tabulator_modern.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/tabulator_simple.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/css/tabulator_site.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/js/tabulator.js +0 -24961
- package/dist/bundled/datatabulator/tabulator-tables@5.0.7/dist/js/tabulator.js.map +0 -1
- package/dist/bundled/js/bootstrap/4.4.1/js/bootstrap.min.js +0 -7
- package/dist/bundled/js/bootstrap/4.4.1/js/bootstrap.min.js.map +0 -1
- package/dist/bundled/js/jquery-3.5.1.min.js +0 -2
- package/dist/bundled/plotlyplot/jquery-3.5.1.min.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabulator.js","sources":["../../src/js/core/defaults/options.js","../../src/js/core/CoreFeature.js","../../src/js/core/column/ColumnComponent.js","../../src/js/core/column/defaults/options.js","../../src/js/core/cell/CellComponent.js","../../src/js/core/cell/Cell.js","../../src/js/core/column/Column.js","../../src/js/core/tools/Helpers.js","../../src/js/core/tools/OptionsList.js","../../src/js/core/rendering/Renderer.js","../../src/js/core/rendering/renderers/BasicHorizontal.js","../../src/js/core/rendering/renderers/VirtualDomHorizontal.js","../../src/js/core/ColumnManager.js","../../src/js/core/row/RowComponent.js","../../src/js/core/row/Row.js","../../src/js/core/rendering/renderers/BasicVertical.js","../../src/js/core/rendering/renderers/VirtualDomVertical.js","../../src/js/core/RowManager.js","../../src/js/core/FooterManager.js","../../src/js/core/tools/InteractionMonitor.js","../../src/js/core/tools/ComponentFuctionBinder.js","../../src/js/core/tools/DataLoader.js","../../src/js/core/tools/ExternalEventBus.js","../../src/js/core/tools/InternalEventBus.js","../../src/js/core/tools/TableRegistry.js","../../src/js/core/Module.js","../../src/js/modules/Layout/defaults/modes/fitData.js","../../src/js/modules/Layout/defaults/modes/fitDataGeneral.js","../../src/js/modules/Layout/defaults/modes/fitDataStretch.js","../../src/js/modules/Layout/defaults/modes/fitColumns.js","../../src/js/modules/Layout/defaults/modes.js","../../src/js/modules/Layout/Layout.js","../../src/js/modules/Localize/defaults/langs.js","../../src/js/modules/Localize/Localize.js","../../src/js/modules/Comms/Comms.js","../../src/js/core/tools/ModuleBinder.js","../../src/js/core/Tabulator.js","../../src/js/modules/Accessor/defaults/accessors.js","../../src/js/modules/Accessor/Accessor.js","../../src/js/modules/Ajax/defaults/config.js","../../src/js/modules/Ajax/defaults/urlGenerator.js","../../src/js/modules/Ajax/defaults/loaderPromise.js","../../src/js/modules/Ajax/defaults/contentTypeFormatters.js","../../src/js/modules/Ajax/Ajax.js","../../src/js/modules/Clipboard/defaults/pasteActions.js","../../src/js/modules/Clipboard/defaults/pasteParsers.js","../../src/js/modules/Clipboard/Clipboard.js","../../src/js/modules/ColumnCalcs/CalcComponent.js","../../src/js/modules/ColumnCalcs/defaults/calculations.js","../../src/js/modules/ColumnCalcs/ColumnCalcs.js","../../src/js/modules/DataTree/DataTree.js","../../src/js/modules/Download/defaults/downloaders/csv.js","../../src/js/modules/Download/defaults/downloaders/json.js","../../src/js/modules/Download/defaults/downloaders/pdf.js","../../src/js/modules/Download/defaults/downloaders/xlsx.js","../../src/js/modules/Download/defaults/downloaders/html.js","../../src/js/modules/Download/defaults/downloaders.js","../../src/js/modules/Download/Download.js","../../src/js/modules/Edit/inputMask.js","../../src/js/modules/Edit/defaults/editors/input.js","../../src/js/modules/Edit/defaults/editors/textarea.js","../../src/js/modules/Edit/defaults/editors/number.js","../../src/js/modules/Edit/defaults/editors/range.js","../../src/js/modules/Edit/defaults/editors/select.js","../../src/js/modules/Edit/defaults/editors/autocomplete.js","../../src/js/modules/Edit/defaults/editors/star.js","../../src/js/modules/Edit/defaults/editors/progress.js","../../src/js/modules/Edit/defaults/editors/tickCross.js","../../src/js/modules/Edit/defaults/editors.js","../../src/js/modules/Edit/Edit.js","../../src/js/modules/Export/ExportRow.js","../../src/js/modules/Export/ExportColumn.js","../../src/js/modules/Export/Export.js","../../src/js/modules/Filter/defaults/filters.js","../../src/js/modules/Filter/Filter.js","../../src/js/modules/Format/defaults/formatters/plaintext.js","../../src/js/modules/Format/defaults/formatters/html.js","../../src/js/modules/Format/defaults/formatters/textarea.js","../../src/js/modules/Format/defaults/formatters/money.js","../../src/js/modules/Format/defaults/formatters/link.js","../../src/js/modules/Format/defaults/formatters/image.js","../../src/js/modules/Format/defaults/formatters/tickCross.js","../../src/js/modules/Format/defaults/formatters/datetime.js","../../src/js/modules/Format/defaults/formatters/datetimediff.js","../../src/js/modules/Format/defaults/formatters/lookup.js","../../src/js/modules/Format/defaults/formatters/star.js","../../src/js/modules/Format/defaults/formatters/traffic.js","../../src/js/modules/Format/defaults/formatters/progress.js","../../src/js/modules/Format/defaults/formatters/color.js","../../src/js/modules/Format/defaults/formatters/buttonTick.js","../../src/js/modules/Format/defaults/formatters/buttonCross.js","../../src/js/modules/Format/defaults/formatters/rownum.js","../../src/js/modules/Format/defaults/formatters/handle.js","../../src/js/modules/Format/defaults/formatters/responsiveCollapse.js","../../src/js/modules/Format/defaults/formatters/rowSelection.js","../../src/js/modules/Format/defaults/formatters.js","../../src/js/modules/Format/Format.js","../../src/js/modules/FrozenColumns/FrozenColumns.js","../../src/js/modules/FrozenRows/FrozenRows.js","../../src/js/modules/GroupRows/GroupComponent.js","../../src/js/modules/GroupRows/Group.js","../../src/js/modules/GroupRows/GroupRows.js","../../src/js/modules/History/defaults/undoers.js","../../src/js/modules/History/defaults/redoers.js","../../src/js/modules/History/History.js","../../src/js/modules/HtmlTableImport/HtmlTableImport.js","../../src/js/modules/Interaction/Interaction.js","../../src/js/modules/Keybindings/defaults/bindings.js","../../src/js/modules/Keybindings/defaults/actions.js","../../src/js/modules/Keybindings/Keybindings.js","../../src/js/modules/Menu/Menu.js","../../src/js/modules/MoveColumns/MoveColumns.js","../../src/js/modules/MoveRows/MoveRows.js","../../src/js/modules/Mutator/defaults/mutators.js","../../src/js/modules/Mutator/Mutator.js","../../src/js/modules/Page/Page.js","../../src/js/modules/Persistence/defaults/readers.js","../../src/js/modules/Persistence/defaults/writers.js","../../src/js/modules/Persistence/Persistence.js","../../src/js/modules/Print/Print.js","../../src/js/modules/ReactiveData/ReactiveData.js","../../src/js/modules/ResizeColumns/ResizeColumns.js","../../src/js/modules/ResizeRows/ResizeRows.js","../../src/js/modules/ResizeTable/ResizeTable.js","../../src/js/modules/ResponsiveLayout/ResponsiveLayout.js","../../src/js/modules/SelectRow/SelectRow.js","../../src/js/modules/Sort/defaults/sorters/number.js","../../src/js/modules/Sort/defaults/sorters/string.js","../../src/js/modules/Sort/defaults/sorters/datetime.js","../../src/js/modules/Sort/defaults/sorters/date.js","../../src/js/modules/Sort/defaults/sorters/time.js","../../src/js/modules/Sort/defaults/sorters/boolean.js","../../src/js/modules/Sort/defaults/sorters/array.js","../../src/js/modules/Sort/defaults/sorters/exists.js","../../src/js/modules/Sort/defaults/sorters/alphanum.js","../../src/js/modules/Sort/defaults/sorters.js","../../src/js/modules/Sort/Sort.js","../../src/js/modules/Validate/defaults/validators.js","../../src/js/modules/Validate/Validate.js","../../src/js/core/TabulatorFull.js"],"sourcesContent":["export default {\r\n\r\n\tdebugEventsExternal:false, //flag to console log events\r\n\tdebugEventsInternal:false, //flag to console log events\r\n\tdebugInvalidOptions:true, //allow toggling of invalid option warnings\r\n\r\n\theight:false, //height of tabulator\r\n\tminHeight:false, //minimum height of tabulator\r\n\tmaxHeight:false, //maximum height of tabulator\r\n\r\n\tcolumnMaxWidth:false, //minimum global width for a column\r\n\tcolumnHeaderVertAlign:\"top\", //vertical alignment of column headers\r\n\r\n\tcolumns:[],//store for colum header info\r\n\tcolumnDefaults:{}, //store column default props\r\n\r\n\tdata:false, //default starting data\r\n\r\n\tautoColumns:false, //build columns from data row structure\r\n\tautoColumnsDefinitions:false,\r\n\r\n\tnestedFieldSeparator:\".\", //seperatpr for nested data\r\n\r\n\ttooltipGenerationMode:\"load\", //when to generate tooltips\r\n\r\n\tfooterElement:false, //hold footer element\r\n\r\n\tindex:\"id\", //filed for row index\r\n\r\n\ttextDirection:\"auto\",\r\n\r\n\taddRowPos:\"bottom\", //position to insert blank rows, top|bottom\r\n\r\n\theaderVisible:true, //hide header\r\n\r\n\trenderVertical:\"virtual\",\r\n\trenderHorizontal:\"basic\",\r\n\trenderVerticalBuffer:0, // set virtual DOM buffer size\r\n\r\n\tscrollToRowPosition:\"top\",\r\n\tscrollToRowIfVisible:true,\r\n\r\n\tscrollToColumnPosition:\"left\",\r\n\tscrollToColumnIfVisible:true,\r\n\r\n\trowFormatter:false,\r\n\trowFormatterPrint:null,\r\n\trowFormatterClipboard:null,\r\n\trowFormatterHtmlOutput:null,\r\n\r\n\tplaceholder:false,\r\n\r\n\tdataLoader:true,\r\n\tdataLoaderLoading:false,\r\n\tdataLoaderError:false,\r\n\r\n\tdataSendParams:{},\r\n\r\n\tdataReceiveParams:{},\r\n}","export default class CoreFeature{\r\n\r\n\tconstructor(table){\r\n\t\tthis.table = table;\r\n\t}\r\n\r\n\t//////////////////////////////////////////\r\n\t/////////////// DataLoad /////////////////\r\n\t//////////////////////////////////////////\r\n\r\n\treloadData(data, silent){\r\n\t\treturn this.table.dataLoader.load(data, undefined, undefined, undefined, silent);\r\n\t}\r\n\r\n\t//////////////////////////////////////////\r\n\t///////////// Localization ///////////////\r\n\t//////////////////////////////////////////\r\n\r\n\tlangText(){\r\n\t\treturn this.table.modules.localize.getText(...arguments);\r\n\t}\r\n\r\n\tlangBind(){\r\n\t\treturn this.table.modules.localize.bind(...arguments);\r\n\t}\r\n\r\n\tlangLocale(){\r\n\t\treturn this.table.modules.localize.getLocale(...arguments);\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t////////// Inter Table Comms /////////////\r\n\t//////////////////////////////////////////\r\n\r\n\tcommsConnections(){\r\n\t\treturn this.table.modules.comms.getConnections(...arguments);\r\n\t}\r\n\r\n\tcommsSend(){\r\n\t\treturn this.table.modules.comms.send(...arguments);\r\n\t}\r\n\r\n\t//////////////////////////////////////////\r\n\t//////////////// Layout /////////////////\r\n\t//////////////////////////////////////////\r\n\r\n\tlayoutMode(){\r\n\t\treturn this.table.modules.layout.getMode();\r\n\t}\r\n\r\n\tlayoutRefresh(){\r\n\t\treturn this.table.modules.layout.layout();\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t/////////////// Event Bus ////////////////\r\n\t//////////////////////////////////////////\r\n\r\n\tsubscribe(){\r\n\t\treturn this.table.eventBus.subscribe(...arguments);\r\n\t}\r\n\r\n\tunsubscribe(){\r\n\t\treturn this.table.eventBus.unsubscribe(...arguments);\r\n\t}\r\n\r\n\tsubscribed(key){\r\n\t\treturn this.table.eventBus.subscribed(key);\r\n\t}\r\n\r\n\tsubscriptionChange(){\r\n\t\treturn this.table.eventBus.subscriptionChange(...arguments);\r\n\t}\r\n\r\n\tdispatch(){\r\n\t\treturn this.table.eventBus.dispatch(...arguments);\r\n\t}\r\n\r\n\tchain(){\r\n\t\treturn this.table.eventBus.chain(...arguments);\r\n\t}\r\n\r\n\tconfirm(){\r\n\t\treturn this.table.eventBus.confirm(...arguments);\r\n\t}\r\n\r\n\tdispatchExternal(){\r\n\t\treturn this.table.externalEvents.dispatch(...arguments);\r\n\t}\r\n\r\n\tsubscribedExternal(key){\r\n\t\treturn this.table.externalEvents.subscribed(key);\r\n\t}\r\n\r\n\tsubscriptionChangeExternal(){\r\n\t\treturn this.table.externalEvents.subscriptionChange(...arguments);\r\n\t}\r\n\r\n\t//////////////////////////////////////////\r\n\t//////////////// Options /////////////////\r\n\t//////////////////////////////////////////\r\n\r\n\toptions(key, value){\r\n\t\tif(typeof value !== \"undefined\"){\r\n\t\t\tthis.table.options[key] = value;\r\n\t\t}\r\n\r\n\t\treturn this.table.options[key];\r\n\t}\r\n\r\n\tsetOption(key, value){\r\n\t\tif(typeof value !== \"undefined\"){\r\n\t\t\tthis.table.options[key] = value;\r\n\t\t}\r\n\r\n\t\treturn this.table.options[key];\r\n\t}\r\n\r\n\r\n\t//////////////////////////////////////////\r\n\t//////////////// Modules /////////////////\r\n\t//////////////////////////////////////////\r\n\r\n\tmodule(key){\r\n\t\treturn this.table.module(key);\r\n\t}\r\n}","//public column object\r\nexport default class ColumnComponent {\r\n\tconstructor (column){\r\n\t\tthis._column = column;\r\n\t\tthis.type = \"ColumnComponent\";\r\n\r\n\t\treturn new Proxy(this, {\r\n\t\t\tget: function(target, name, receiver) {\r\n\t\t\t\tif (typeof target[name] !== \"undefined\") {\r\n\t\t\t\t\treturn target[name];\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn target._column.table.componentFunctionBinder.handle(\"column\", target._column, name)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tgetElement(){\r\n\t\treturn this._column.getElement();\r\n\t}\r\n\r\n\tgetDefinition(){\r\n\t\treturn this._column.getDefinition();\r\n\t}\r\n\r\n\tgetField(){\r\n\t\treturn this._column.getField();\r\n\t}\r\n\r\n\tgetCells(){\r\n\t\tvar cells = [];\r\n\r\n\t\tthis._column.cells.forEach(function(cell){\r\n\t\t\tcells.push(cell.getComponent());\r\n\t\t});\r\n\r\n\t\treturn cells;\r\n\t}\r\n\r\n\tisVisible(){\r\n\t\treturn this._column.visible;\r\n\t}\r\n\r\n\tshow(){\r\n\t\tif(this._column.isGroup){\r\n\t\t\tthis._column.columns.forEach(function(column){\r\n\t\t\t\tcolumn.show();\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tthis._column.show();\r\n\t\t}\r\n\t}\r\n\r\n\thide(){\r\n\t\tif(this._column.isGroup){\r\n\t\t\tthis._column.columns.forEach(function(column){\r\n\t\t\t\tcolumn.hide();\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tthis._column.hide();\r\n\t\t}\r\n\t}\r\n\r\n\ttoggle(){\r\n\t\tif(this._column.visible){\r\n\t\t\tthis.hide();\r\n\t\t}else{\r\n\t\t\tthis.show();\r\n\t\t}\r\n\t}\r\n\r\n\tdelete(){\r\n\t\treturn this._column.delete();\r\n\t}\r\n\r\n\tgetSubColumns(){\r\n\t\tvar output = [];\r\n\r\n\t\tif(this._column.columns.length){\r\n\t\t\tthis._column.columns.forEach(function(column){\r\n\t\t\t\toutput.push(column.getComponent());\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetParentColumn(){\r\n\t\treturn this._column.parent instanceof Column ? this._column.parent.getComponent() : false;\r\n\t}\r\n\r\n\t_getSelf(){\r\n\t\treturn this._column;\r\n\t}\r\n\r\n\tscrollTo(){\r\n\t\treturn this._column.table.columnManager.scrollToColumn(this._column);\r\n\t}\r\n\r\n\tgetTable(){\r\n\t\treturn this._column.table;\r\n\t}\r\n\r\n\tmove(to, after){\r\n\t\tvar toColumn = this._column.table.columnManager.findColumn(to);\r\n\r\n\t\tif(toColumn){\r\n\t\t\tthis._column.table.columnManager.moveColumn(this._column, toColumn, after)\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Move Error - No matching column found:\", toColumn);\r\n\t\t}\r\n\t}\r\n\r\n\tgetNextColumn(){\r\n\t\tvar nextCol = this._column.nextColumn();\r\n\r\n\t\treturn nextCol ? nextCol.getComponent() : false;\r\n\t}\r\n\r\n\tgetPrevColumn(){\r\n\t\tvar prevCol = this._column.prevColumn();\r\n\r\n\t\treturn prevCol ? prevCol.getComponent() : false;\r\n\t}\r\n\r\n\tupdateDefinition(updates){\r\n\t\treturn this._column.updateDefinition(updates);\r\n\t}\r\n\r\n\tgetWidth(){\r\n\t\treturn this._column.getWidth();\r\n\t}\r\n\r\n\tsetWidth(width){\r\n\t\tvar result;\r\n\r\n\t\tif(width === true){\r\n\t\t\tresult = this._column.reinitializeWidth(true);\r\n\t\t}else{\r\n\t\t\tresult = this._column.setWidth(width);\r\n\t\t}\r\n\r\n\t\tthis._column.table.columnManager.renderer.rerenderColumns(true);\r\n\r\n\t\treturn result;\r\n\t}\r\n}","export default {\r\n\t\"title\": undefined,\r\n\t\"field\": undefined,\r\n\t\"columns\": undefined,\r\n\t\"visible\": undefined,\r\n\t\"hozAlign\": undefined,\r\n\t\"vertAlign\": undefined,\r\n\t\"width\": undefined,\r\n\t\"minWidth\": 40,\r\n\t\"maxWidth\": undefined,\r\n\t\"tooltip\": undefined,\r\n\t\"cssClass\": undefined,\r\n\t\"variableHeight\": undefined,\r\n\t\"headerTooltip\": undefined,\r\n\t\"headerVertical\": undefined,\r\n\t\"headerHozAlign\": undefined,\r\n\t\"editableTitle\": undefined,\r\n}","//public cell object\r\nexport default class CellComponent {\r\n\r\n\tconstructor (cell){\r\n\t\tthis._cell = cell;\r\n\r\n\t\treturn new Proxy(this, {\r\n\t\t\tget: function(target, name, receiver) {\r\n\t\t\t\tif (typeof target[name] !== \"undefined\") {\r\n\t\t\t\t\treturn target[name];\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn target._cell.table.componentFunctionBinder.handle(\"cell\", target._cell, name)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tgetValue(){\r\n\t\treturn this._cell.getValue();\r\n\t}\r\n\r\n\tgetOldValue(){\r\n\t\treturn this._cell.getOldValue();\r\n\t}\r\n\r\n\tgetInitialValue(){\r\n\t\treturn this._cell.initialValue;\r\n\t}\r\n\r\n\tgetElement(){\r\n\t\treturn this._cell.getElement();\r\n\t}\r\n\r\n\tgetRow(){\r\n\t\treturn this._cell.row.getComponent();\r\n\t}\r\n\r\n\tgetData(){\r\n\t\treturn this._cell.row.getData();\r\n\t}\r\n\r\n\tgetField(){\r\n\t\treturn this._cell.column.getField();\r\n\t}\r\n\r\n\tgetColumn(){\r\n\t\treturn this._cell.column.getComponent();\r\n\t}\r\n\r\n\tsetValue(value, mutate){\r\n\t\tif(typeof mutate == \"undefined\"){\r\n\t\t\tmutate = true;\r\n\t\t}\r\n\r\n\t\tthis._cell.setValue(value, mutate);\r\n\t}\r\n\r\n\trestoreOldValue(){\r\n\t\tthis._cell.setValueActual(this._cell.getOldValue());\r\n\t}\r\n\r\n\trestoreInitialValue(){\r\n\t\tthis._cell.setValueActual(this._cell.initialValue);\r\n\t}\r\n\r\n\tcheckHeight(){\r\n\t\tthis._cell.checkHeight();\r\n\t}\r\n\r\n\tgetTable(){\r\n\t\treturn this._cell.table;\r\n\t}\r\n\r\n\t_getSelf(){\r\n\t\treturn this._cell;\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\nimport CellComponent from './CellComponent.js';\r\n\r\nexport default class Cell extends CoreFeature{\r\n\tconstructor(column, row){\r\n\t\tsuper(column.table);\r\n\r\n\t\tthis.table = column.table;\r\n\t\tthis.column = column;\r\n\t\tthis.row = row;\r\n\t\tthis.element = null;\r\n\t\tthis.value = null;\r\n\t\tthis.initialValue;\r\n\t\tthis.oldValue = null;\r\n\t\tthis.modules = {};\r\n\r\n\t\tthis.height = null;\r\n\t\tthis.width = null;\r\n\t\tthis.minWidth = null;\r\n\r\n\t\tthis.component = null;\r\n\r\n\t\tthis.loaded = false; //track if the cell has been added to the DOM yet\r\n\r\n\t\tthis.build();\r\n\t}\r\n\r\n\t//////////////// Setup Functions /////////////////\r\n\t//generate element\r\n\tbuild(){\r\n\t\tthis.generateElement();\r\n\r\n\t\tthis.setWidth();\r\n\r\n\t\tthis._configureCell();\r\n\r\n\t\tthis.setValueActual(this.column.getFieldValue(this.row.data));\r\n\r\n\t\tthis.initialValue = this.value;\r\n\t}\r\n\r\n\tgenerateElement(){\r\n\t\tthis.element = document.createElement('div');\r\n\t\tthis.element.className = \"tabulator-cell\";\r\n\t\tthis.element.setAttribute(\"role\", \"gridcell\");\r\n\t\tthis.element = this.element;\r\n\t}\r\n\r\n\t_configureCell(){\r\n\t\tvar element = this.element,\r\n\t\tfield = this.column.getField(),\r\n\t\tvertAligns = {\r\n\t\t\ttop:\"flex-start\",\r\n\t\t\tbottom:\"flex-end\",\r\n\t\t\tmiddle:\"center\",\r\n\t\t},\r\n\t\thozAligns = {\r\n\t\t\tleft:\"flex-start\",\r\n\t\t\tright:\"flex-end\",\r\n\t\t\tcenter:\"center\",\r\n\t\t};\r\n\r\n\t\t//set text alignment\r\n\t\telement.style.textAlign = this.column.hozAlign;\r\n\r\n\t\tif(this.column.vertAlign){\r\n\t\t\telement.style.display = \"inline-flex\";\r\n\r\n\t\t\telement.style.alignItems = vertAligns[this.column.vertAlign] || \"\";\r\n\r\n\t\t\tif(this.column.hozAlign){\r\n\t\t\t\telement.style.justifyContent = hozAligns[this.column.hozAlign] || \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(field){\r\n\t\t\telement.setAttribute(\"tabulator-field\", field);\r\n\t\t}\r\n\r\n\t\t//add class to cell if needed\r\n\t\tif(this.column.definition.cssClass){\r\n\t\t\tvar classNames = this.column.definition.cssClass.split(\" \")\r\n\t\t\tclassNames.forEach((className) => {\r\n\t\t\t\telement.classList.add(className)\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//update tooltip on mouse enter\r\n\t\tif (this.table.options.tooltipGenerationMode === \"hover\"){\r\n\t\t\telement.addEventListener(\"mouseenter\", (e) => {\r\n\t\t\t\tthis._generateTooltip();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.dispatch(\"cell-init\", this);\r\n\r\n\t\t//hide cell if not visible\r\n\t\tif(!this.column.visible){\r\n\t\t\tthis.hide();\r\n\t\t}\r\n\t}\r\n\r\n\t//generate cell contents\r\n\t_generateContents(){\r\n\t\tvar val;\r\n\r\n\t\tval = this.chain(\"cell-format\", this, null, () => {\r\n\t\t\treturn this.element.innerHTML = this.value;\r\n\t\t});\r\n\r\n\t\tswitch(typeof val){\r\n\t\t\tcase \"object\":\r\n\t\t\tif(val instanceof Node){\r\n\r\n\t\t\t\t//clear previous cell contents\r\n\t\t\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\r\n\t\t\t\tthis.element.appendChild(val);\r\n\t\t\t}else{\r\n\t\t\t\tthis.element.innerHTML = \"\";\r\n\r\n\t\t\t\tif(val != null){\r\n\t\t\t\t\tconsole.warn(\"Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:\", val);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\tcase \"undefined\":\r\n\t\t\tcase \"null\":\r\n\t\t\tthis.element.innerHTML = \"\";\r\n\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\tthis.element.innerHTML = val;\r\n\t\t}\r\n\t}\r\n\r\n\tcellRendered(){\r\n\t\tthis.dispatch(\"cell-rendered\", this);\r\n\t}\r\n\r\n\t//generate tooltip text\r\n\t_generateTooltip(){\r\n\t\tvar tooltip = this.column.tooltip;\r\n\r\n\t\tif(tooltip){\r\n\t\t\tif(tooltip === true){\r\n\t\t\t\ttooltip = this.value;\r\n\t\t\t}else if(typeof(tooltip) == \"function\"){\r\n\t\t\t\ttooltip = tooltip(this.getComponent());\r\n\r\n\t\t\t\tif(tooltip === false){\r\n\t\t\t\t\ttooltip = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof tooltip === \"undefined\"){\r\n\t\t\t\ttooltip = \"\";\r\n\t\t\t}\r\n\r\n\t\t\tthis.element.setAttribute(\"title\", tooltip);\r\n\t\t}else{\r\n\t\t\tthis.element.setAttribute(\"title\", \"\");\r\n\t\t}\r\n\t}\r\n\r\n\t//////////////////// Getters ////////////////////\r\n\tgetElement(containerOnly){\r\n\t\tif(!this.loaded){\r\n\t\t\tthis.loaded = true;\r\n\t\t\tif(!containerOnly){\r\n\t\t\t\tthis.layoutElement();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.element;\r\n\t}\r\n\r\n\tgetValue(){\r\n\t\treturn this.value;\r\n\t}\r\n\r\n\tgetOldValue(){\r\n\t\treturn this.oldValue;\r\n\t}\r\n\r\n\t//////////////////// Actions ////////////////////\r\n\tsetValue(value, mutate){\r\n\t\tvar changed = this.setValueProcessData(value, mutate);\r\n\r\n\t\tif(changed){\r\n\t\t\tthis.dispatch(\"cell-value-updated\", this);\r\n\r\n\t\t\tthis.cellRendered();\r\n\r\n\t\t\tthis.dispatchExternal(\"cellEdited\", this.getComponent());\r\n\r\n\t\t\tif(this.subscribedExternal(\"dataChanged\")){\r\n\t\t\t\tthis.dispatchExternal(\"dataChanged\", this.table.rowManager.getData());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetValueProcessData(value, mutate){\r\n\t\tvar changed = false;\r\n\r\n\t\tif(this.value != value){\r\n\r\n\t\t\tchanged = true;\r\n\r\n\t\t\tif(mutate){\r\n\t\t\t\tvalue = this.chain(\"cell-value-changing\", [this, value], null, value);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setValueActual(value);\r\n\r\n\t\tif(changed){\r\n\t\t\tthis.dispatch(\"cell-value-changed\", this);\r\n\t\t}\r\n\r\n\t\treturn changed;\r\n\t}\r\n\r\n\tsetValueActual(value){\r\n\t\tthis.oldValue = this.value;\r\n\r\n\t\tthis.value = value;\r\n\r\n\t\tthis.dispatch(\"cell-value-save-before\", this);\r\n\r\n\t\tthis.column.setFieldValue(this.row.data, value);\r\n\r\n\t\tthis.dispatch(\"cell-value-save-after\", this);\r\n\r\n\t\tif(this.loaded){\r\n\t\t\tthis.layoutElement();\r\n\t\t}\r\n\t}\r\n\r\n\tlayoutElement(){\r\n\t\tthis._generateContents();\r\n\t\tthis._generateTooltip();\r\n\r\n\t\tthis.dispatch(\"cell-layout\", this);\r\n\t}\r\n\r\n\tsetWidth(){\r\n\t\tthis.width = this.column.width;\r\n\t\tthis.element.style.width = this.column.widthStyled;\r\n\t}\r\n\r\n\tclearWidth(){\r\n\t\tthis.width = \"\";\r\n\t\tthis.element.style.width = \"\";\r\n\t}\r\n\r\n\tgetWidth(){\r\n\t\treturn this.width || this.element.offsetWidth;\r\n\t}\r\n\r\n\tsetMinWidth(){\r\n\t\tthis.minWidth = this.column.minWidth;\r\n\t\tthis.element.style.minWidth = this.column.minWidthStyled;\r\n\t}\r\n\r\n\tsetMaxWidth(){\r\n\t\tthis.maxWidth = this.column.maxWidth;\r\n\t\tthis.element.style.maxWidth = this.column.maxWidthStyled;\r\n\t}\r\n\r\n\tcheckHeight(){\r\n\t\t// var height = this.element.css(\"height\");\r\n\t\tthis.row.reinitializeHeight();\r\n\t}\r\n\r\n\tclearHeight(){\r\n\t\tthis.element.style.height = \"\";\r\n\t\tthis.height = null;\r\n\t}\r\n\r\n\tsetHeight(){\r\n\t\tthis.height = this.row.height;\r\n\t\tthis.element.style.height = this.row.heightStyled;\r\n\t}\r\n\r\n\tgetHeight(){\r\n\t\treturn this.height || this.element.offsetHeight;\r\n\t}\r\n\r\n\tshow(){\r\n\t\tthis.element.style.display = this.column.vertAlign ? \"inline-flex\" : \"\";\r\n\t}\r\n\r\n\thide(){\r\n\t\tthis.element.style.display = \"none\";\r\n\t}\r\n\r\n\tdelete(){\r\n\t\tthis.dispatch(\"cell-delete\", this);\r\n\r\n\t\tif(!this.table.rowManager.redrawBlock && this.element.parentNode){\r\n\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t}\r\n\r\n\t\tthis.element = false;\r\n\t\tthis.column.deleteCell(this);\r\n\t\tthis.row.deleteCell(this);\r\n\t\tthis.calcs = {};\r\n\t}\r\n\r\n\tgetIndex(){\r\n\t\treturn this.row.getCellIndex(this);\r\n\t}\r\n\r\n\t//////////////// Object Generation /////////////////\r\n\tgetComponent(){\r\n\t\tif(!this.component){\r\n\t\t\tthis.component = new CellComponent(this);\r\n\t\t}\r\n\r\n\t\treturn this.component;\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\nimport ColumnComponent from './ColumnComponent.js';\r\nimport defaultOptions from './defaults/options.js';\r\n\r\nimport Cell from '../cell/Cell.js';\r\n\r\nclass Column extends CoreFeature{\r\n\r\n\tconstructor(def, parent){\r\n\t\tsuper(parent.table);\r\n\r\n\t\tthis.definition = def; //column definition\r\n\t\tthis.parent = parent; //hold parent object\r\n\t\tthis.type = \"column\"; //type of element\r\n\t\tthis.columns = []; //child columns\r\n\t\tthis.cells = []; //cells bound to this column\r\n\t\tthis.element = this.createElement(); //column header element\r\n\t\tthis.contentElement = false;\r\n\t\tthis.titleHolderElement = false;\r\n\t\tthis.titleElement = false;\r\n\t\tthis.groupElement = this.createGroupElement(); //column group holder element\r\n\t\tthis.isGroup = false;\r\n\t\tthis.tooltip = false; //hold column tooltip\r\n\t\tthis.hozAlign = \"\"; //horizontal text alignment\r\n\t\tthis.vertAlign = \"\"; //vert text alignment\r\n\r\n\t\t//multi dimensional filed handling\r\n\t\tthis.field =\"\";\r\n\t\tthis.fieldStructure = \"\";\r\n\t\tthis.getFieldValue = \"\";\r\n\t\tthis.setFieldValue = \"\";\r\n\r\n\t\tthis.titleFormatterRendered = false;\r\n\r\n\t\tthis.mapDefinitions();\r\n\r\n\t\tthis.setField(this.definition.field);\r\n\r\n\t\tthis.modules = {}; //hold module variables;\r\n\r\n\t\tthis.width = null; //column width\r\n\t\tthis.widthStyled = \"\"; //column width prestyled to improve render efficiency\r\n\t\tthis.maxWidth = null; //column maximum width\r\n\t\tthis.maxWidthStyled = \"\"; //column maximum prestyled to improve render efficiency\r\n\t\tthis.minWidth = null; //column minimum width\r\n\t\tthis.minWidthStyled = \"\"; //column minimum prestyled to improve render efficiency\r\n\t\tthis.widthFixed = false; //user has specified a width for this column\r\n\r\n\t\tthis.visible = true; //default visible state\r\n\r\n\t\tthis.component = null;\r\n\r\n\t\t//initialize column\r\n\t\tif(this.definition.columns){\r\n\r\n\t\t\tthis.isGroup = true;\r\n\r\n\t\t\tthis.definition.columns.forEach((def, i) => {\r\n\t\t\t\tvar newCol = new Column(def, this);\r\n\t\t\t\tthis.attachColumn(newCol);\r\n\t\t\t});\r\n\r\n\t\t\tthis.checkColumnVisibility();\r\n\t\t}else{\r\n\t\t\tparent.registerColumnField(this);\r\n\t\t}\r\n\r\n\t\tthis._initialize();\r\n\r\n\t\tthis.bindModuleColumns();\r\n\t}\r\n\r\n\tcreateElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-col\");\r\n\t\tel.setAttribute(\"role\", \"columnheader\");\r\n\t\tel.setAttribute(\"aria-sort\", \"none\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tcreateGroupElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-col-group-cols\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tmapDefinitions(){\r\n\t\tvar defaults = this.table.options.columnDefaults;\r\n\r\n\t\t//map columnDefaults onto column definitions\r\n\t\tif(defaults){\r\n\t\t\tfor(let key in defaults){\r\n\t\t\t\tif(typeof this.definition[key] === \"undefined\"){\r\n\t\t\t\t\tthis.definition[key] = defaults[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.definition = this.table.columnManager.optionsList.generate(Column.defaultOptionList, this.definition)\r\n\t}\r\n\r\n\tcheckDefinition(){\r\n\t\tObject.keys(this.definition).forEach((key) => {\r\n\t\t\tif(Column.defaultOptionList.indexOf(key) === -1){\r\n\t\t\t\tconsole.warn(\"Invalid column definition option in '\" + (this.field || this.definition.title) + \"' column:\", key)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsetField(field){\r\n\t\tthis.field = field;\r\n\t\tthis.fieldStructure = field ? (this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator) : [field]) : [];\r\n\t\tthis.getFieldValue = this.fieldStructure.length > 1 ? this._getNestedData : this._getFlatData;\r\n\t\tthis.setFieldValue = this.fieldStructure.length > 1 ? this._setNestedData : this._setFlatData;\r\n\t}\r\n\r\n\t//register column position with column manager\r\n\tregisterColumnPosition(column){\r\n\t\tthis.parent.registerColumnPosition(column);\r\n\t}\r\n\r\n\t//register column position with column manager\r\n\tregisterColumnField(column){\r\n\t\tthis.parent.registerColumnField(column);\r\n\t}\r\n\r\n\t//trigger position registration\r\n\treRegisterPosition(){\r\n\t\tif(this.isGroup){\r\n\t\t\tthis.columns.forEach(function(column){\r\n\t\t\t\tcolumn.reRegisterPosition();\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tthis.registerColumnPosition(this);\r\n\t\t}\r\n\t}\r\n\r\n\t_mapDepricatedFunctionality(){\r\n\t\t//all previously deprecated functionality removed in the 5.0 release\r\n\t}\r\n\r\n\tsetTooltip(){\r\n\t\tvar def = this.definition;\r\n\r\n\t\t//set header tooltips\r\n\t\tvar tooltip = typeof def.headerTooltip === \"undefined\" ? def.tooltip : def.headerTooltip;\r\n\r\n\t\tif(tooltip){\r\n\t\t\tif(tooltip === true){\r\n\t\t\t\tif(def.field){\r\n\t\t\t\t\tthis.langBind(\"columns|\" + def.field, (value) => {\r\n\t\t\t\t\t\tthis.element.setAttribute(\"title\", value || def.title);\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.element.setAttribute(\"title\", def.title);\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\t\t\t\tif(typeof(tooltip) == \"function\"){\r\n\t\t\t\t\ttooltip = tooltip(this.getComponent());\r\n\r\n\t\t\t\t\tif(tooltip === false){\r\n\t\t\t\t\t\ttooltip = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.element.setAttribute(\"title\", tooltip);\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\t\t\tthis.element.setAttribute(\"title\", \"\");\r\n\t\t}\r\n\t}\r\n\r\n\t//build header element\r\n\t_initialize(){\r\n\t\tvar def = this.definition;\r\n\r\n\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\r\n\t\tif(def.headerVertical){\r\n\t\t\tthis.element.classList.add(\"tabulator-col-vertical\");\r\n\r\n\t\t\tif(def.headerVertical === \"flip\"){\r\n\t\t\t\tthis.element.classList.add(\"tabulator-col-vertical-flip\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.contentElement = this._bindEvents();\r\n\r\n\t\tthis.contentElement = this._buildColumnHeaderContent();\r\n\r\n\t\tthis.element.appendChild(this.contentElement);\r\n\r\n\t\tif(this.isGroup){\r\n\t\t\tthis._buildGroupHeader();\r\n\t\t}else{\r\n\t\t\tthis._buildColumnHeader();\r\n\t\t}\r\n\r\n\t\tthis.setTooltip();\r\n\r\n\t\tthis.dispatch(\"column-init\", this);\r\n\r\n\t\t//update header tooltip on mouse enter\r\n\t\tthis.element.addEventListener(\"mouseenter\", (e) => {\r\n\t\t\tthis.setTooltip();\r\n\t\t});\r\n\t}\r\n\r\n\t_bindEvents(){\r\n\t\tvar def = this.definition,\r\n\t\tdblTap,\ttapHold, tap;\r\n\r\n\t\t//setup header click event bindings\r\n\t\tif(typeof(def.headerClick) == \"function\"){\r\n\t\t\tthis.element.addEventListener(\"click\", (e) => {def.headerClick(e, this.getComponent());});\r\n\t\t}\r\n\r\n\t\tif(typeof(def.headerDblClick) == \"function\"){\r\n\t\t\tthis.element.addEventListener(\"dblclick\", (e) => {def.headerDblClick(e, this.getComponent());});\r\n\t\t}\r\n\r\n\t\tif(typeof(def.headerContext) == \"function\"){\r\n\t\t\tthis.element.addEventListener(\"contextmenu\", (e) => {def.headerContext(e, this.getComponent());});\r\n\t\t}\r\n\r\n\t\t//setup header tap event bindings\r\n\t\tif(typeof(def.headerTap) == \"function\"){\r\n\t\t\ttap = false;\r\n\r\n\t\t\tthis.element.addEventListener(\"touchstart\", (e) => {\r\n\t\t\t\ttap = true;\r\n\t\t\t}, {passive: true});\r\n\r\n\t\t\tthis.element.addEventListener(\"touchend\", (e) => {\r\n\t\t\t\tif(tap){\r\n\t\t\t\t\tdef.headerTap(e, this.getComponent());\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttap = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(typeof(def.headerDblTap) == \"function\"){\r\n\t\t\tdblTap = null;\r\n\r\n\t\t\tthis.element.addEventListener(\"touchend\", (e) => {\r\n\r\n\t\t\t\tif(dblTap){\r\n\t\t\t\t\tclearTimeout(dblTap);\r\n\t\t\t\t\tdblTap = null;\r\n\r\n\t\t\t\t\tdef.headerDblTap(e, this.getComponent());\r\n\t\t\t\t}else{\r\n\r\n\t\t\t\t\tdblTap = setTimeout(() => {\r\n\t\t\t\t\t\tclearTimeout(dblTap);\r\n\t\t\t\t\t\tdblTap = null;\r\n\t\t\t\t\t}, 300);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(typeof(def.headerTapHold) == \"function\"){\r\n\t\t\ttapHold = null;\r\n\r\n\t\t\tthis.element.addEventListener(\"touchstart\", (e) => {\r\n\t\t\t\tclearTimeout(tapHold);\r\n\r\n\t\t\t\ttapHold = setTimeout(function(){\r\n\t\t\t\t\tclearTimeout(tapHold);\r\n\t\t\t\t\ttapHold = null;\r\n\t\t\t\t\ttap = false;\r\n\t\t\t\t\tdef.headerTapHold(e, this.getComponent());\r\n\t\t\t\t}, 1000);\r\n\r\n\t\t\t}, {passive: true});\r\n\r\n\t\t\tthis.element.addEventListener(\"touchend\", (e) => {\r\n\t\t\t\tclearTimeout(tapHold);\r\n\t\t\t\ttapHold = null;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t//build header element for header\r\n\t_buildColumnHeader(){\r\n\t\tvar def = this.definition,\r\n\t\ttable = this.table;\r\n\r\n\t\tthis.dispatch(\"column-layout\", this);\r\n\r\n\t\t//set column visibility\r\n\t\tif(typeof def.visible != \"undefined\"){\r\n\t\t\tif(def.visible){\r\n\t\t\t\tthis.show(true);\r\n\t\t\t}else{\r\n\t\t\t\tthis.hide(true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//asign additional css classes to column header\r\n\t\tif(def.cssClass){\r\n\t\t\tvar classeNames = def.cssClass.split(\" \");\r\n\t\t\tclasseNames.forEach((className) => {\r\n\t\t\t\tthis.element.classList.add(className);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(def.field){\r\n\t\t\tthis.element.setAttribute(\"tabulator-field\", def.field);\r\n\t\t}\r\n\r\n\t\t//set min width if present\r\n\t\tthis.setMinWidth(parseInt(def.minWidth));\r\n\r\n\t\tif(def.maxWidth){\r\n\t\t\tthis.setMaxWidth(parseInt(def.maxWidth));\r\n\t\t}\r\n\r\n\t\tthis.reinitializeWidth();\r\n\r\n\t\t//set tooltip if present\r\n\t\tthis.tooltip = this.definition.tooltip;\r\n\r\n\t\t//set orizontal text alignment\r\n\t\tthis.hozAlign = this.definition.hozAlign;\r\n\t\tthis.vertAlign = this.definition.vertAlign;\r\n\r\n\t\tthis.titleElement.style.textAlign = this.definition.headerHozAlign;\r\n\t}\r\n\r\n\t_buildColumnHeaderContent(){\r\n\t\tvar def = this.definition,\r\n\t\ttable = this.table;\r\n\r\n\t\tvar contentElement = document.createElement(\"div\");\r\n\t\tcontentElement.classList.add(\"tabulator-col-content\");\r\n\r\n\t\tthis.titleHolderElement = document.createElement(\"div\");\r\n\t\tthis.titleHolderElement.classList.add(\"tabulator-col-title-holder\");\r\n\r\n\t\tcontentElement.appendChild(this.titleHolderElement);\r\n\r\n\t\tthis.titleElement = this._buildColumnHeaderTitle();\r\n\r\n\t\tthis.titleHolderElement.appendChild(this.titleElement);\r\n\r\n\t\treturn contentElement;\r\n\t}\r\n\r\n\t//build title element of column\r\n\t_buildColumnHeaderTitle(){\r\n\t\tvar def = this.definition,\r\n\t\ttitle;\r\n\r\n\t\tvar titleHolderElement = document.createElement(\"div\");\r\n\t\ttitleHolderElement.classList.add(\"tabulator-col-title\");\r\n\r\n\t\tif(def.editableTitle){\r\n\t\t\tvar titleElement = document.createElement(\"input\");\r\n\t\t\ttitleElement.classList.add(\"tabulator-title-editor\");\r\n\r\n\t\t\ttitleElement.addEventListener(\"click\", (e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\ttitleElement.focus();\r\n\t\t\t});\r\n\r\n\t\t\ttitleElement.addEventListener(\"change\", () => {\r\n\t\t\t\tdef.title = titleElement.value;\r\n\t\t\t\tthis.dispatchExternal(\"columnTitleChanged\", this.getComponent());\r\n\t\t\t});\r\n\r\n\t\t\ttitleHolderElement.appendChild(titleElement);\r\n\r\n\t\t\tif(def.field){\r\n\t\t\t\tthis.langBind(\"columns|\" + def.field, (text) => {\r\n\t\t\t\t\ttitleElement.value = text || (def.title || \" \");\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\ttitleElement.value = def.title || \" \";\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\t\t\tif(def.field){\r\n\t\t\t\tthis.langBind(\"columns|\" + def.field, (text) => {\r\n\t\t\t\t\tthis._formatColumnHeaderTitle(titleHolderElement, text || (def.title || \" \"));\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tthis._formatColumnHeaderTitle(titleHolderElement, def.title || \" \");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn titleHolderElement;\r\n\t}\r\n\r\n\t_formatColumnHeaderTitle(el, title){\r\n\t\tvar contents = this.chain(\"column-format\", [this, title, el], null, () => {\r\n\t\t\treturn title;\r\n\t\t});\r\n\r\n\t\tswitch(typeof contents){\r\n\t\t\tcase \"object\":\r\n\t\t\tif(contents instanceof Node){\r\n\t\t\t\tel.appendChild(contents);\r\n\t\t\t}else{\r\n\t\t\t\tel.innerHTML = \"\";\r\n\t\t\t\tconsole.warn(\"Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:\", contents);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\tcase \"undefined\":\r\n\t\t\tcase \"null\":\r\n\t\t\tel.innerHTML = \"\";\r\n\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\tel.innerHTML = contents;\r\n\t\t}\r\n\t}\r\n\r\n\t//build header element for column group\r\n\t_buildGroupHeader(){\r\n\t\tthis.element.classList.add(\"tabulator-col-group\");\r\n\t\tthis.element.setAttribute(\"role\", \"columngroup\");\r\n\t\tthis.element.setAttribute(\"aria-title\", this.definition.title);\r\n\r\n\t\t//asign additional css classes to column header\r\n\t\tif(this.definition.cssClass){\r\n\t\t\tvar classeNames = this.definition.cssClass.split(\" \");\r\n\t\t\tclasseNames.forEach((className) => {\r\n\t\t\t\tthis.element.classList.add(className);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.titleElement.style.textAlign = this.definition.headerHozAlign;\r\n\r\n\t\tthis.element.appendChild(this.groupElement);\r\n\t}\r\n\r\n\t//flat field lookup\r\n\t_getFlatData(data){\r\n\t\treturn data[this.field];\r\n\t}\r\n\r\n\t//nested field lookup\r\n\t_getNestedData(data){\r\n\t\tvar dataObj = data,\r\n\t\tstructure = this.fieldStructure,\r\n\t\tlength = structure.length,\r\n\t\toutput;\r\n\r\n\t\tfor(let i = 0; i < length; i++){\r\n\r\n\t\t\tdataObj = dataObj[structure[i]];\r\n\r\n\t\t\toutput = dataObj;\r\n\r\n\t\t\tif(!dataObj){\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\t//flat field set\r\n\t_setFlatData(data, value){\r\n\t\tif(this.field){\r\n\t\t\tdata[this.field] = value;\r\n\t\t}\r\n\t}\r\n\r\n\t//nested field set\r\n\t_setNestedData(data, value){\r\n\t\tvar dataObj = data,\r\n\t\tstructure = this.fieldStructure,\r\n\t\tlength = structure.length;\r\n\r\n\t\tfor(let i = 0; i < length; i++){\r\n\r\n\t\t\tif(i == length -1){\r\n\t\t\t\tdataObj[structure[i]] = value;\r\n\t\t\t}else{\r\n\t\t\t\tif(!dataObj[structure[i]]){\r\n\t\t\t\t\tif(typeof value !== \"undefined\"){\r\n\t\t\t\t\t\tdataObj[structure[i]] = {};\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdataObj = dataObj[structure[i]];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//attach column to this group\r\n\tattachColumn(column){\r\n\t\tif(this.groupElement){\r\n\t\t\tthis.columns.push(column);\r\n\t\t\tthis.groupElement.appendChild(column.getElement());\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Warning - Column being attached to another column instead of column group\");\r\n\t\t}\r\n\t}\r\n\r\n\t//vertically align header in column\r\n\tverticalAlign(alignment, height){\r\n\r\n\t\t//calculate height of column header and group holder element\r\n\t\tvar parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : (height || this.parent.getHeadersElement().clientHeight);\r\n\t\t// var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : this.parent.getHeadersElement().clientHeight;\r\n\r\n\t\tthis.element.style.height = parentHeight + \"px\";\r\n\r\n\t\tif(this.isGroup){\r\n\t\t\tthis.groupElement.style.minHeight = (parentHeight - this.contentElement.offsetHeight) + \"px\";\r\n\t\t}\r\n\r\n\t\t//vertically align cell contents\r\n\t\tif(!this.isGroup && alignment !== \"top\"){\r\n\t\t\tif(alignment === \"bottom\"){\r\n\t\t\t\tthis.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) + \"px\";\r\n\t\t\t}else{\r\n\t\t\t\tthis.element.style.paddingTop = ((this.element.clientHeight - this.contentElement.offsetHeight) / 2) + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.columns.forEach(function(column){\r\n\t\t\tcolumn.verticalAlign(alignment);\r\n\t\t});\r\n\t}\r\n\r\n\t//clear vertical alignmenet\r\n\tclearVerticalAlign(){\r\n\t\tthis.element.style.paddingTop = \"\";\r\n\t\tthis.element.style.height = \"\";\r\n\t\tthis.element.style.minHeight = \"\";\r\n\t\tthis.groupElement.style.minHeight = \"\";\r\n\r\n\t\tthis.columns.forEach(function(column){\r\n\t\t\tcolumn.clearVerticalAlign();\r\n\t\t});\r\n\t}\r\n\r\n\tbindModuleColumns (){\r\n\t\t//check if rownum formatter is being used on a column\r\n\t\tif(this.definition.formatter == \"rownum\"){\r\n\t\t\tthis.table.rowManager.rowNumColumn = this;\r\n\t\t}\r\n\t}\r\n\r\n\t//// Retreive Column Information ////\r\n\t//return column header element\r\n\tgetElement(){\r\n\t\treturn this.element;\r\n\t}\r\n\r\n\t//return colunm group element\r\n\tgetGroupElement(){\r\n\t\treturn this.groupElement;\r\n\t}\r\n\r\n\t//return field name\r\n\tgetField(){\r\n\t\treturn this.field;\r\n\t}\r\n\r\n\t//return the first column in a group\r\n\tgetFirstColumn(){\r\n\t\tif(!this.isGroup){\r\n\t\t\treturn this;\r\n\t\t}else{\r\n\t\t\tif(this.columns.length){\r\n\t\t\t\treturn this.columns[0].getFirstColumn();\r\n\t\t\t}else{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//return the last column in a group\r\n\tgetLastColumn(){\r\n\t\tif(!this.isGroup){\r\n\t\t\treturn this;\r\n\t\t}else{\r\n\t\t\tif(this.columns.length){\r\n\t\t\t\treturn this.columns[this.columns.length -1].getLastColumn();\r\n\t\t\t}else{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//return all columns in a group\r\n\tgetColumns(){\r\n\t\treturn this.columns;\r\n\t}\r\n\r\n\t//return all columns in a group\r\n\tgetCells(){\r\n\t\treturn this.cells;\r\n\t}\r\n\r\n\t//retreive the top column in a group of columns\r\n\tgetTopColumn(){\r\n\t\tif(this.parent.isGroup){\r\n\t\t\treturn this.parent.getTopColumn();\r\n\t\t}else{\r\n\t\t\treturn this;\r\n\t\t}\r\n\t}\r\n\r\n\t//return column definition object\r\n\tgetDefinition(updateBranches){\r\n\t\tvar colDefs = [];\r\n\r\n\t\tif(this.isGroup && updateBranches){\r\n\t\t\tthis.columns.forEach(function(column){\r\n\t\t\t\tcolDefs.push(column.getDefinition(true));\r\n\t\t\t});\r\n\r\n\t\t\tthis.definition.columns = colDefs;\r\n\t\t}\r\n\r\n\t\treturn this.definition;\r\n\t}\r\n\r\n\t//////////////////// Actions ////////////////////\r\n\tcheckColumnVisibility(){\r\n\t\tvar visible = false;\r\n\r\n\t\tthis.columns.forEach(function(column){\r\n\t\t\tif(column.visible){\r\n\t\t\t\tvisible = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(visible){\r\n\t\t\tthis.show();\r\n\t\t\tthis.dispatchExternal(\"columnVisibilityChanged\", this.getComponent(), false);\r\n\t\t}else{\r\n\t\t\tthis.hide();\r\n\t\t}\r\n\t}\r\n\r\n\t//show column\r\n\tshow(silent, responsiveToggle){\r\n\t\tif(!this.visible){\r\n\t\t\tthis.visible = true;\r\n\r\n\t\t\tthis.element.style.display = \"\";\r\n\r\n\t\t\tif(this.parent.isGroup){\r\n\t\t\t\tthis.parent.checkColumnVisibility();\r\n\t\t\t}\r\n\r\n\t\t\tthis.cells.forEach(function(cell){\r\n\t\t\t\tcell.show();\r\n\t\t\t});\r\n\r\n\t\t\tif(!this.isGroup && this.width === null){\r\n\t\t\t\tthis.reinitializeWidth();\r\n\t\t\t}\r\n\r\n\t\t\tthis.table.columnManager.verticalAlignHeaders();\r\n\r\n\t\t\tthis.dispatch(\"column-show\", this, responsiveToggle);\r\n\r\n\t\t\tif(!silent){\r\n\t\t\t\tthis.dispatchExternal(\"columnVisibilityChanged\", this.getComponent(), true);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.parent.isGroup){\r\n\t\t\t\tthis.parent.matchChildWidths();\r\n\t\t\t}\r\n\r\n\t\t\tif(!this.silent){\r\n\t\t\t\tthis.table.columnManager.renderer.rerenderColumns();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//hide column\r\n\thide(silent, responsiveToggle){\r\n\t\tif(this.visible){\r\n\t\t\tthis.visible = false;\r\n\r\n\t\t\tthis.element.style.display = \"none\";\r\n\r\n\t\t\tthis.table.columnManager.verticalAlignHeaders();\r\n\r\n\t\t\tif(this.parent.isGroup){\r\n\t\t\t\tthis.parent.checkColumnVisibility();\r\n\t\t\t}\r\n\r\n\t\t\tthis.cells.forEach(function(cell){\r\n\t\t\t\tcell.hide();\r\n\t\t\t});\r\n\r\n\t\t\tthis.dispatch(\"column-hide\", this);\r\n\r\n\t\t\tif(!silent){\r\n\t\t\t\tthis.dispatchExternal(\"columnVisibilityChanged\", this.getComponent(), false);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.parent.isGroup){\r\n\t\t\t\tthis.parent.matchChildWidths();\r\n\t\t\t}\r\n\r\n\t\t\tif(!this.silent){\r\n\t\t\t\tthis.table.columnManager.renderer.rerenderColumns();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tmatchChildWidths(){\r\n\t\tvar childWidth = 0;\r\n\r\n\t\tif(this.contentElement && this.columns.length){\r\n\t\t\tthis.columns.forEach(function(column){\r\n\t\t\t\tif(column.visible){\r\n\t\t\t\t\tchildWidth += column.getWidth();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.contentElement.style.maxWidth = (childWidth - 1) + \"px\";\r\n\r\n\t\t\tif(this.parent.isGroup){\r\n\t\t\t\tthis.parent.matchChildWidths();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tremoveChild(child){\r\n\t\tvar index = this.columns.indexOf(child);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis.columns.splice(index, 1);\r\n\t\t}\r\n\r\n\t\tif(!this.columns.length){\r\n\t\t\tthis.delete();\r\n\t\t}\r\n\t}\r\n\r\n\tsetWidth(width){\r\n\t\tthis.widthFixed = true;\r\n\t\tthis.setWidthActual(width);\r\n\t}\r\n\r\n\tsetWidthActual(width){\r\n\t\tif(isNaN(width)){\r\n\t\t\twidth = Math.floor((this.table.element.clientWidth/100) * parseInt(width));\r\n\t\t}\r\n\r\n\t\twidth = Math.max(this.minWidth, width);\r\n\r\n\t\tif(this.maxWidth){\r\n\t\t\twidth = Math.min(this.maxWidth, width);\r\n\t\t}\r\n\r\n\t\tthis.width = width;\r\n\t\tthis.widthStyled = width ? width + \"px\" : \"\";\r\n\r\n\t\tthis.element.style.width = this.widthStyled;\r\n\r\n\t\tif(!this.isGroup){\r\n\t\t\tthis.cells.forEach(function(cell){\r\n\t\t\t\tcell.setWidth();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(this.parent.isGroup){\r\n\t\t\tthis.parent.matchChildWidths();\r\n\t\t}\r\n\r\n\t\tthis.dispatch(\"column-width\", this);\r\n\t}\r\n\r\n\tcheckCellHeights(){\r\n\t\tvar rows = [];\r\n\r\n\t\tthis.cells.forEach(function(cell){\r\n\t\t\tif(cell.row.heightInitialized){\r\n\t\t\t\tif(cell.row.getElement().offsetParent !== null){\r\n\t\t\t\t\trows.push(cell.row);\r\n\t\t\t\t\tcell.row.clearCellHeight();\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcell.row.heightInitialized = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\trows.forEach(function(row){\r\n\t\t\trow.calcHeight();\r\n\t\t});\r\n\r\n\t\trows.forEach(function(row){\r\n\t\t\trow.setCellHeight();\r\n\t\t});\r\n\t}\r\n\r\n\tgetWidth(){\r\n\t\tvar width = 0;\r\n\r\n\t\tif(this.isGroup){\r\n\t\t\tthis.columns.forEach(function(column){\r\n\t\t\t\tif(column.visible){\r\n\t\t\t\t\twidth += column.getWidth();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\twidth = this.width;\r\n\t\t}\r\n\r\n\t\treturn width;\r\n\t}\r\n\r\n\tgetHeight(){\r\n\t\treturn this.element.offsetHeight;\r\n\t}\r\n\r\n\tsetMinWidth(minWidth){\r\n\t\tthis.minWidth = minWidth;\r\n\t\tthis.minWidthStyled = minWidth ? minWidth + \"px\" : \"\";\r\n\r\n\t\tthis.element.style.minWidth = this.minWidthStyled;\r\n\r\n\t\tthis.cells.forEach(function(cell){\r\n\t\t\tcell.setMinWidth();\r\n\t\t});\r\n\t}\r\n\r\n\tsetMaxWidth(maxWidth){\r\n\t\tthis.maxWidth = maxWidth;\r\n\t\tthis.maxWidthStyled = maxWidth ? maxWidth + \"px\" : \"\";\r\n\r\n\t\tthis.element.style.maxWidth = this.maxWidthStyled;\r\n\r\n\t\tthis.cells.forEach(function(cell){\r\n\t\t\tcell.setMaxWidth();\r\n\t\t});\r\n\t}\r\n\r\n\tdelete(){\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tvar index;\r\n\r\n\t\t\tif(this.isGroup){\r\n\t\t\t\tthis.columns.forEach(function(column){\r\n\t\t\t\t\tcolumn.delete();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatch(\"column-delete\", this);\r\n\r\n\t\t\tvar cellCount = this.cells.length;\r\n\r\n\t\t\tfor(let i = 0; i < cellCount; i++){\r\n\t\t\t\tthis.cells[0].delete();\r\n\t\t\t}\r\n\r\n\t\t\tif(this.element.parentNode){\r\n\t\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t\t}\r\n\r\n\t\t\tthis.element = false;\r\n\t\t\tthis.contentElement = false;\r\n\t\t\tthis.titleElement = false;\r\n\t\t\tthis.groupElement = false;\r\n\r\n\t\t\tif(this.parent.isGroup){\r\n\t\t\t\tthis.parent.removeChild(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis.table.columnManager.deregisterColumn(this);\r\n\r\n\t\t\tthis.table.columnManager.renderer.rerenderColumns(true);\r\n\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\r\n\tcolumnRendered(){\r\n\t\tif(this.titleFormatterRendered){\r\n\t\t\tthis.titleFormatterRendered();\r\n\t\t}\r\n\t}\r\n\r\n\t//////////////// Cell Management /////////////////\r\n\t//generate cell for this column\r\n\tgenerateCell(row){\r\n\t\tvar cell = new Cell(this, row);\r\n\r\n\t\tthis.cells.push(cell);\r\n\r\n\t\treturn cell;\r\n\t}\r\n\r\n\tnextColumn(){\r\n\t\tvar index = this.table.columnManager.findColumnIndex(this);\r\n\t\treturn index > -1 ? this._nextVisibleColumn(index + 1) : false;\r\n\t}\r\n\r\n\t_nextVisibleColumn(index){\r\n\t\tvar column = this.table.columnManager.getColumnByIndex(index);\r\n\t\treturn !column || column.visible ? column : this._nextVisibleColumn(index + 1);\r\n\t}\r\n\r\n\tprevColumn(){\r\n\t\tvar index = this.table.columnManager.findColumnIndex(this);\r\n\t\treturn index > -1 ? this._prevVisibleColumn(index - 1) : false;\r\n\t}\r\n\r\n\t_prevVisibleColumn(index){\r\n\t\tvar column = this.table.columnManager.getColumnByIndex(index);\r\n\t\treturn !column || column.visible ? column : this._prevVisibleColumn(index - 1);\r\n\t}\r\n\r\n\treinitializeWidth(force){\r\n\t\tthis.widthFixed = false;\r\n\r\n\t\t//set width if present\r\n\t\tif(typeof this.definition.width !== \"undefined\" && !force){\r\n\t\t\tthis.setWidth(this.definition.width);\r\n\t\t}\r\n\r\n\t\tthis.dispatch(\"column-width-fit-before\", this);\r\n\r\n\t\tthis.fitToData();\r\n\r\n\t\tthis.dispatch(\"column-width-fit-after\", this);\r\n\t}\r\n\r\n\t//set column width to maximum cell width for non group columns\r\n\tfitToData(){\r\n\t\tif(this.isGroup){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(!this.widthFixed){\r\n\t\t\tthis.element.style.width = \"\";\r\n\r\n\t\t\tthis.cells.forEach((cell) => {\r\n\t\t\t\tcell.clearWidth();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar maxWidth = this.element.offsetWidth;\r\n\r\n\t\tif(!this.width || !this.widthFixed){\r\n\t\t\tthis.cells.forEach((cell) => {\r\n\t\t\t\tvar width = cell.getWidth();\r\n\r\n\t\t\t\tif(width > maxWidth){\r\n\t\t\t\t\tmaxWidth = width;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(maxWidth){\r\n\t\t\t\tthis.setWidthActual(maxWidth + 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tupdateDefinition(updates){\r\n\t\tvar definition;\r\n\r\n\t\tif(!this.isGroup){\r\n\t\t\tif(!this.parent.isGroup){\r\n\t\t\t\tdefinition = Object.assign({}, this.getDefinition());\r\n\t\t\t\tdefinition = Object.assign(definition, updates);\r\n\r\n\t\t\t\treturn this.table.columnManager.addColumn(definition, false, this)\r\n\t\t\t\t.then((column) => {\r\n\r\n\t\t\t\t\tif(definition.field == this.field){\r\n\t\t\t\t\t\tthis.field = false; //cleair field name to prevent deletion of duplicate column from arrays\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.delete()\r\n\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\treturn column.getComponent();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tconsole.error(\"Column Update Error - The updateDefinition function is only available on ungrouped columns\");\r\n\t\t\t\treturn Promise.reject(\"Column Update Error - The updateDefinition function is only available on columns, not column groups\");\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Column Update Error - The updateDefinition function is only available on ungrouped columns\");\r\n\t\t\treturn Promise.reject(\"Column Update Error - The updateDefinition function is only available on columns, not column groups\");\r\n\t\t}\r\n\t}\r\n\r\n\tdeleteCell(cell){\r\n\t\tvar index = this.cells.indexOf(cell);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis.cells.splice(index, 1);\r\n\t\t}\r\n\t}\r\n\r\n\t//////////////// Object Generation /////////////////\r\n\tgetComponent(){\r\n\t\tif(!this.component){\r\n\t\t\tthis.component = new ColumnComponent(this);\r\n\t\t}\r\n\r\n\t\treturn this.component;\r\n\t}\r\n}\r\n\r\nColumn.defaultOptionList = defaultOptions;\r\n\r\nexport default Column;","export default class Helpers{\r\n\r\n\tstatic elVisible(el){\r\n\t\treturn !(el.offsetWidth <= 0 && el.offsetHeight <= 0);\r\n\t}\r\n\r\n\tstatic elOffset(el){\r\n\t\tvar box = el.getBoundingClientRect();\r\n\r\n\t\treturn {\r\n\t\t\ttop: box.top + window.pageYOffset - document.documentElement.clientTop,\r\n\t\t\tleft: box.left + window.pageXOffset - document.documentElement.clientLeft\r\n\t\t};\r\n\t}\r\n\r\n\tstatic deepClone(obj, clone, list = []){\r\n\t\tvar objectProto = {}.__proto__,\r\n\t\tarrayProto = [].__proto__;\r\n\r\n\t\tif (!clone){\r\n\t\t\tclone = Object.assign(Array.isArray(obj) ? [] : {}, obj);\r\n\t\t}\r\n\r\n\t\tfor(var i in obj) {\r\n\t\t\tlet subject = obj[i],\r\n\t\t\tmatch, copy;\r\n\r\n\t\t\tif(subject != null && typeof subject === \"object\" && (subject.__proto__ === objectProto || subject.__proto__ === arrayProto)){\r\n\t\t\t\tmatch = list.findIndex((item) => {\r\n\t\t\t\t\treturn item.subject === subject;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(match > -1){\r\n\t\t\t\t\tclone[i] = list[match].copy;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcopy = Object.assign(Array.isArray(subject) ? [] : {}, subject);\r\n\r\n\t\t\t\t\tlist.unshift({subject, copy});\r\n\r\n\t\t\t\t\tclone[i] = this.deepClone(subject, copy, list);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn clone;\r\n\t}\r\n}","export default class OptionsList {\r\n\tconstructor(table, msgType){\r\n\t\tthis.table = table;\r\n\t\tthis.msgType = msgType;\r\n\t\tthis.registeredDefaults = {};\r\n\t}\r\n\r\n\tregister(option, value){\r\n\t\tthis.registeredDefaults[option] = value;\r\n\t}\r\n\r\n\tgenerate(defaultOptions, userOptions = {}){\r\n\t\tvar output = Object.assign({}, this.registeredDefaults);\r\n\r\n\t\tObject.assign(output, defaultOptions);\r\n\r\n\t\tif(userOptions.debugInvalidOptions !== false || this.table.options.debugInvalidOptions){\r\n\t\t\tfor (var key in userOptions){\r\n\t\t\t\tif(!output.hasOwnProperty(key)){\r\n\t\t\t\t\tconsole.warn(\"Invalid \" + this.msgType + \" option:\", key)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (var key in output){\r\n\t\t\tif(key in userOptions){\r\n\t\t\t\toutput[key] = userOptions[key];\r\n\t\t\t}else{\r\n\t\t\t\tif(Array.isArray(output[key])){\r\n\t\t\t\t\toutput[key] = Object.assign([], output[key]);\r\n\t\t\t\t}else if(typeof output[key] === \"object\" && output[key] !== null){\r\n\t\t\t\t\toutput[key] = Object.assign({}, output[key]);\r\n\t\t\t\t}else if (typeof output[key] === \"undefined\"){\r\n\t\t\t\t\tdelete output[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\nimport Helpers from '../tools/Helpers.js';\r\n\r\nexport default class Renderer extends CoreFeature{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.elementVertical = table.rowManager.element;\r\n\t\tthis.elementHorizontal = table.columnManager.element;\r\n\t\tthis.tableElement = table.rowManager.tableElement;\r\n\r\n\t\tthis.verticalFillMode = \"fit\"; // used by row manager to determin how to size the render area (\"fit\" - fits container to the contents, \"fill\" - fills the contianer without resizing it)\r\n\t}\r\n\r\n\r\n\t///////////////////////////////////\r\n\t/////// Internal Bindings /////////\r\n\t///////////////////////////////////\r\n\r\n\tinitialize(){\r\n\t\t//initialize core functionality\r\n\t}\r\n\r\n\tclearRows(){\r\n\t\t//clear down existing rows layout\r\n\t}\r\n\r\n\tclearColumns(){\r\n\t\t//clear down existing columns layout\r\n\t}\r\n\r\n\r\n\treinitializeColumnWidths(columns){\r\n\t\t//resize columns to fit data\r\n\t}\r\n\r\n\r\n\trenderRows(){\r\n\t\t//render rows from a clean slate\r\n\t}\r\n\r\n\trenderColumns(){\r\n\t\t//render columns from a clean slate\r\n\t}\r\n\r\n\trerenderRows(callback){\r\n\t\t// rerender rows and keep position\r\n\t\tif(callback){\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\r\n\trerenderColumns(update, blockRedraw){\r\n\t\t//rerender columns\r\n\t}\r\n\r\n\trenderRowCells(row){\r\n\t\t//render the cells in a row\r\n\t}\r\n\r\n\trerenderRowCells(row, force){\r\n\t\t//rerender the cells in a row\r\n\t}\r\n\r\n\tscrollColumns(left, dir){\r\n\t\t//handle horizontal scrolling\r\n\t}\r\n\r\n\tscrollRows(top, dir){\r\n\t\t//handle vertical scolling\r\n\t}\r\n\r\n\tresize(){\r\n\t\t//container has rezied, carry out any needed recalculations (DO NOT RERENDER IN THIS FUNCTION)\r\n\t}\r\n\r\n\tscrollToRow(row){\r\n\t\t//scroll to a specific row\r\n\t}\r\n\r\n\tscrollToRowNearestTop(row){\r\n\t\t//determin weather the row is nearest the top or bottom of the table, retur true for top or false for bottom\r\n\t}\r\n\r\n\tvisibleRows(includingBuffer){\r\n\t\t//return the visible rows\r\n\t\treturn [];\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t//////// Helper Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\trows(){\r\n\t\treturn this.table.rowManager.getDisplayRows();\r\n\t}\r\n\r\n\tstyleRow(row, index){\r\n\t\tvar rowEl = row.getElement();\r\n\r\n\t\tif(index % 2){\r\n\t\t\trowEl.classList.add(\"tabulator-row-even\");\r\n\t\t\trowEl.classList.remove(\"tabulator-row-odd\");\r\n\t\t}else{\r\n\t\t\trowEl.classList.add(\"tabulator-row-odd\");\r\n\t\t\trowEl.classList.remove(\"tabulator-row-even\");\r\n\t\t}\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t/////// External Triggers /////////\r\n\t/////// (DO NOT OVERRIDE) /////////\r\n\t///////////////////////////////////\r\n\r\n\tclear(){\r\n\t\t//clear down existing layout\r\n\t\tthis.clearRows();\r\n\t\tthis.clearColumns();\r\n\t}\r\n\r\n\trender(){\r\n\t\t//render from a clean slate\r\n\t\tthis.renderRows();\r\n\t\tthis.renderColumns();\r\n\t}\r\n\r\n\trerender(callback){\r\n\t\t// rerender and keep position\r\n\t\tthis.rerenderRows();\r\n\t\tthis.rerenderColumns();\r\n\t}\r\n\r\n\tscrollToRowPosition(row, position, ifVisible){\r\n\t\tvar rowIndex = this.rows().indexOf(row),\r\n\t\trowEl = row.getElement(),\r\n\t\toffset = 0;\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif(rowIndex > -1){\r\n\r\n\t\t\t\tif(typeof ifVisible === \"undefined\"){\r\n\t\t\t\t\tifVisible = this.table.options.scrollToRowIfVisible;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//check row visibility\r\n\t\t\t\tif(!ifVisible){\r\n\t\t\t\t\tif(Helpers.elVisible(rowEl)){\r\n\t\t\t\t\t\toffset = Helpers.elOffset(rowEl).top - Helpers.elOffset(this.elementVertical).top;\r\n\r\n\t\t\t\t\t\tif(offset > 0 && offset < this.elementVertical.clientHeight - rowEl.offsetHeight){\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof position === \"undefined\"){\r\n\t\t\t\t\tposition = this.table.options.scrollToRowPosition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(position === \"nearest\"){\r\n\t\t\t\t\tposition = this.scrollToRowNearestTop(row) ? \"top\" : \"bottom\"\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//scroll to row\r\n\t\t\t\tthis.scrollToRow(row);\r\n\r\n\t\t\t\t//align to correct position\r\n\t\t\t\tswitch(position){\r\n\t\t\t\t\tcase \"middle\":\r\n\t\t\t\t\tcase \"center\":\r\n\r\n\t\t\t\t\tif(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){\r\n\t\t\t\t\t\tthis.elementVertical.scrollTop = this.elementVertical.scrollTop + (rowEl.offsetTop - this.elementVertical.scrollTop) - ((this.elementVertical.scrollHeight - rowEl.offsetTop) / 2);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.clientHeight / 2);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"bottom\":\r\n\r\n\t\t\t\t\tif(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){\r\n\t\t\t\t\t\tthis.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.elementVertical.scrollTop = this.elementVertical.scrollTop - this.elementVertical.clientHeight + rowEl.offsetHeight;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresolve();\r\n\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Scroll Error - Row not visible\");\r\n\t\t\t\treject(\"Scroll Error - Row not visible\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}","import Renderer from '../Renderer.js';\r\nimport Helpers from '../../tools/Helpers.js';\r\n\r\nexport default class BaiscHorizontal extends Renderer{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t}\r\n\r\n\trenderRowCells(row){\r\n\t\trow.cells.forEach((cell) => {\r\n\t\t\trow.element.appendChild(cell.getElement());\r\n\t\t\tcell.cellRendered();\r\n\t\t});\r\n\t}\r\n\r\n\treinitializeColumnWidths(columns){\r\n\t\tcolumns.forEach(function(column){\r\n\t\t\tcolumn.reinitializeWidth();\r\n\t\t});\r\n\t}\r\n}","import Renderer from '../Renderer.js';\r\nimport Helpers from '../../tools/Helpers.js';\r\n\r\nexport default class VirtualDomHorizontal extends Renderer{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.leftCol = 0;\r\n\t\tthis.rightCol = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\r\n\t\tthis.vDomScrollPosLeft = 0;\r\n\t\tthis.vDomScrollPosRight = 0;\r\n\r\n\t\tthis.vDomPadLeft = 0;\r\n\t\tthis.vDomPadRight = 0;\r\n\r\n\t\tthis.fitDataColAvg = 0;\r\n\r\n\t\tthis.window = 200; //pixel margin to make column visible before it is shown on screen\r\n\r\n\t\tthis.initialized = false;\r\n\r\n\t\tthis.columns = [];\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.compatabilityCheck();\r\n\t}\r\n\r\n\tcompatabilityCheck(){\r\n\t\tvar columns = this.options(\"columns\"),\r\n\t\tfrozen = false,\r\n\t\tok = true;\r\n\r\n\t\tif(this.options(\"layout\") == \"fitDataTable\"){\r\n\t\t\tconsole.warn(\"Horizontal Vitrual DOM is not compatible with fitDataTable layout mode\");\r\n\t\t\tok = false;\r\n\t\t}\r\n\r\n\t\tif(this.options(\"responsiveLayout\")){\r\n\t\t\tconsole.warn(\"Horizontal Vitrual DOM is not compatible with responsive columns\");\r\n\t\t\tok = false;\r\n\t\t}\r\n\r\n\t\tif(this.options(\"rtl\")){\r\n\t\t\tconsole.warn(\"Horizontal Vitrual DOM is not currently compatible with RTL text direction\");\r\n\t\t\tok = false;\r\n\t\t}\r\n\r\n\t\tif(columns){\r\n\t\t\tfrozen = columns.find((col) => {\r\n\t\t\t\treturn col.frozen;\r\n\t\t\t});\r\n\r\n\t\t\tif(frozen){\r\n\t\t\t\tconsole.warn(\"Horizontal Vitrual DOM is not compatible with frozen columns\");\r\n\t\t\t\tok = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if(!ok){\r\n\t\t// \toptions.virtualDomHoz = false;\r\n\t\t// }\r\n\r\n\t\treturn ok;\r\n\t}\r\n\r\n\t//////////////////////////////////////\r\n\t///////// Public Functions ///////////\r\n\t//////////////////////////////////////\r\n\r\n\trenderColumns(row, force){\r\n\t\tthis.dataChange();\r\n\t}\r\n\r\n\tscrollColumns(left, dir){\r\n\t\tif(this.scrollLeft != left){\r\n\t\t\tthis.scrollLeft = left;\r\n\r\n\t\t\tthis.scroll(left - (this.vDomScrollPosLeft + this.window));\r\n\t\t}\r\n\t}\r\n\r\n\trerenderColumns(update, blockRedraw){\r\n\t\tvar old = {\r\n\t\t\tcols:this.columns,\r\n\t\t\tleftCol:this.leftCol,\r\n\t\t\trightCol:this.rightCol,\r\n\t\t};\r\n\r\n\t\tif(update && !this.initialized){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.clear();\r\n\r\n\t\tthis.scrollLeft = this.elementVertical.scrollLeft;\r\n\r\n\t\tthis.vDomScrollPosLeft = this.scrollLeft - this.window;\r\n\t\tthis.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.window;\r\n\r\n\t\tvar colPos = 0;\r\n\r\n\t\tthis.table.columnManager.columnsByIndex.forEach((column) => {\r\n\t\t\tvar config = {};\r\n\r\n\t\t\tif(column.visible){\r\n\t\t\t\tvar width = column.getWidth();\r\n\r\n\t\t\t\tconfig.leftPos = colPos;\r\n\t\t\t\tconfig.rightPos = colPos + width;\r\n\r\n\t\t\t\tconfig.width = width;\r\n\r\n\t\t\t\tif (this.options(\"layout\") === \"fitData\") {\r\n\t\t\t\t\tconfig.fitDataCheck = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif((colPos + width > this.vDomScrollPosLeft) && (colPos < this.vDomScrollPosRight)){\r\n\t \t\t//column is visible\r\n\r\n\t \t\tif(this.leftCol == -1){\r\n\t \t\t\tthis.leftCol = this.columns.length;\r\n\t \t\t\tthis.vDomPadLeft = colPos;\r\n\t \t\t}\r\n\r\n\t \t\tthis.rightCol = this.columns.length;\r\n\t \t}else{\r\n\t \t\t// column is hidden\r\n\t \t\tif(this.leftCol !== -1){\r\n\t \t\t\tthis.vDomPadRight += width;\r\n\t \t\t}\r\n\t \t}\r\n\r\n\t \tthis.columns.push(column);\r\n\r\n\t \tcolumn.modules.vdomHoz = config;\r\n\r\n\t \tcolPos += width;\r\n\t }\r\n\t });\r\n\r\n\t\tthis.tableElement.style.paddingLeft = this.vDomPadLeft + \"px\";\r\n\t\tthis.tableElement.style.paddingRight = this.vDomPadRight + \"px\";\r\n\r\n\t\tthis.initialized = true;\r\n\r\n\t\tif(!blockRedraw){\r\n\t\t\tif(!update || this.reinitChanged(old)){\r\n\t\t\t\tthis.renitializeRows();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.elementVertical.scrollLeft = this.scrollLeft;\r\n\t}\r\n\r\n\trenderRowCells(row){\r\n\t\tif(this.initialized){\r\n\t\t\tthis.initializeRow(row);\r\n\t\t}else{\r\n\t\t\trow.cells.forEach((cell) => {\r\n\t\t\t\trow.element.appendChild(cell.getElement());\r\n\t\t\t\tcell.cellRendered();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\trerenderRowCells(row, force){\r\n\t\tthis.reinitializeRow(row, force);\r\n\t}\r\n\r\n\treinitializeColumnWidths(columns){\r\n\t\tfor(let i = this.leftCol; i <= this.rightCol; i++){\r\n\t\t\tthis.columns[i].reinitializeWidth();\r\n\t\t}\r\n\t}\r\n\r\n\t//////////////////////////////////////\r\n\t//////// Internal Rendering //////////\r\n\t//////////////////////////////////////\r\n\r\n\tdeinitialize(){\r\n\t\tthis.initialized = false;\r\n\t}\r\n\r\n\tclear(){\r\n\t\tthis.columns = [];\r\n\r\n\t\tthis.leftCol = -1;\r\n\t\tthis.rightCol = 0;\r\n\r\n\t\tthis.vDomScrollPosLeft = 0;\r\n\t\tthis.vDomScrollPosRight = 0;\r\n\t\tthis.vDomPadLeft = 0;\r\n\t\tthis.vDomPadRight = 0;\r\n\t}\r\n\r\n\tdataChange(){\r\n\t\tvar change = false,\r\n\t\tcollsWidth = 0,\r\n\t\tcolEnd = 0,\r\n\t\tgroup, row, rowEl;\r\n\r\n\t\tif(this.options(\"layout\") === \"fitData\"){\r\n\t\t\tthis.table.columnManager.columnsByIndex.forEach((column) => {\r\n\t\t\t\tif(!column.definition.width && column.visible){\r\n\t\t\t\t\tchange = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(change){\r\n\t\t\t\tif(change && this.table.rowManager.getDisplayRows().length){\r\n\r\n\t\t\t\t\tthis.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.window;\r\n\r\n\t\t\t\t\tvar row = this.chain(\"rows-sample\", [1], [], () => {\r\n\t\t\t\t\t\treturn this.table.rowManager.getDisplayRows()[0];\r\n\t\t\t\t\t})[0];\r\n\r\n\t\t\t\t\tif(row){\r\n\r\n\t\t\t\t\t\trowEl = row.getElement();\r\n\r\n\t\t\t\t\t\trow.generateCells();\r\n\r\n\t\t\t\t\t\tthis.tableElement.appendChild(rowEl);\r\n\r\n\t\t\t\t\t\tfor(var colEnd = 0; colEnd < row.cells.length; colEnd++){\r\n\t\t\t\t\t\t\tlet cell = row.cells[colEnd];\r\n\t\t\t\t\t\t\trowEl.appendChild(cell.getElement());\r\n\r\n\t\t\t\t\t\t\tcell.column.reinitializeWidth();\r\n\r\n\t\t\t\t\t\t\tcollsWidth += cell.column.getWidth();\r\n\r\n\t\t\t\t\t\t\tif(collsWidth > this.vDomScrollPosRight){\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trowEl.parentNode.removeChild(rowEl);\r\n\r\n\t\t\t\t\t\tthis.fitDataColAvg = Math.floor(collsWidth / (colEnd + 1));\r\n\r\n\t\t\t\t\t\tfor(colEnd; colEnd < this.table.columnManager.columnsByIndex.length; colEnd++){\r\n\t\t\t\t\t\t\tthis.table.columnManager.columnsByIndex[colEnd].setWidth(this.fitDataColAvg);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.rerenderColumns(false, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(this.options(\"layout\") === \"fitColumns\"){\r\n\t\t\t\tthis.layoutRefresh();\r\n\t\t\t\tthis.rerenderColumns(false, true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treinitChanged(old){\r\n\t\tvar match = true;\r\n\r\n\t\tif(old.cols.length !== this.columns.length || old.leftCol !== this.leftCol || old.rightCol !== this.rightCol){\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\told.cols.forEach((col, i) => {\r\n\t\t\tif(col !== this.columns[i]){\r\n\t\t\t\tmatch = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn !match;\r\n\t}\r\n\r\n\trenitializeRows(){\r\n\t\tvar rows = this.table.rowManager.getVisibleRows();\r\n\t\trows.forEach((row) => {\r\n\t\t\tthis.reinitializeRow(row, true);\r\n\t\t});\r\n\t}\r\n\r\n\tscroll(diff){\r\n\t\tthis.vDomScrollPosLeft += diff;\r\n\t\tthis.vDomScrollPosRight += diff;\r\n\r\n\t\tif(diff > (this.elementVertical.clientWidth * .8)){\r\n\t\t\tthis.rerenderColumns();\r\n\t\t}else{\r\n\t\t\tif(diff > 0){\r\n\t\t\t\t//scroll right\r\n\t\t\t\tthis.addColRight();\r\n\t\t\t\tthis.removeColLeft();\r\n\t\t\t}else{\r\n\t\t\t\t//scroll left\r\n\t\t\t\tthis.addColLeft();\r\n\t\t\t\tthis.removeColRight();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcolPositionAdjust (start, end, diff){\r\n\t\tfor(let i = start; i < end; i++){\r\n\t\t\tlet column = this.columns[i];\r\n\r\n\t\t\tcolumn.modules.vdomHoz.leftPos += diff;\r\n\t\t\tcolumn.modules.vdomHoz.rightPos += diff;\r\n\t\t}\r\n\t}\r\n\r\n\taddColRight(){\r\n\t\tvar column = this.columns[this.rightCol + 1],\r\n\t\trows, newWidth, widthDiff;\r\n\r\n\t\tif(column && column.modules.vdomHoz.leftPos <= this.vDomScrollPosRight){\r\n\r\n\t\t\trows = this.table.rowManager.getVisibleRows();\r\n\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\trow.getElement().appendChild(cell.getElement());\r\n\t\t\t\t\tcell.cellRendered();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.fitDataColActualWidthCheck(column);\r\n\r\n\t\t\tthis.rightCol++;\r\n\r\n\t\t\tif(this.rightCol >= (this.columns.length - 1)){\r\n\t\t\t\tthis.vDomPadRight = 0;\r\n\t\t\t}else{\r\n\t\t\t\tthis.vDomPadRight -= column.getWidth();\r\n\t\t\t}\r\n\r\n\t\t\tthis.tableElement.style.paddingRight = this.vDomPadRight + \"px\";\r\n\r\n\t\t\tthis.addColRight();\r\n\t\t}\r\n\t}\r\n\r\n\taddColLeft(){\r\n\t\tvar column = this.columns[this.leftCol - 1],\r\n\t\trows;\r\n\r\n\t\tif(column && column.modules.vdomHoz.rightPos >= this.vDomScrollPosLeft){\r\n\t\t\tvar rows = this.table.rowManager.getVisibleRows();\r\n\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\trow.getElement().prepend(cell.getElement());\r\n\t\t\t\t\tcell.cellRendered();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.fitDataColActualWidthCheck(column);\r\n\r\n\t\t\tif(!this.leftCol){\r\n\t\t\t\tthis.vDomPadLeft = 0;\r\n\t\t\t}else{\r\n\t\t\t\tthis.vDomPadLeft -= column.getWidth();\r\n\t\t\t}\r\n\r\n\t\t\tthis.tableElement.style.paddingLeft = this.vDomPadLeft + \"px\";\r\n\r\n\t\t\tthis.leftCol--;\r\n\r\n\t\t\tthis.addColLeft();\r\n\t\t}\r\n\t}\r\n\r\n\tremoveColRight(column){\r\n\t\tvar column = this.columns[this.rightCol],\r\n\t\trows;\r\n\r\n\t\tif(column && column.modules.vdomHoz.leftPos > this.vDomScrollPosRight){\r\n\t\t\trows = this.table.rowManager.getVisibleRows();\r\n\r\n\t\t\tcolumn.modules.vdomHoz.visible = false;\r\n\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\trow.getElement().removeChild(cell.getElement());\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.vDomPadRight += column.getWidth();\r\n\t\t\tthis.tableElement.style.paddingRight = this.vDomPadRight + \"px\";\r\n\r\n\t\t\tthis.rightCol --;\r\n\r\n\t\t\tthis.removeColRight();\r\n\t\t}\r\n\t}\r\n\r\n\tremoveColLeft(){\r\n\t\tvar column = this.columns[this.leftCol],\r\n\t\trows;\r\n\r\n\t\tif(column && column.modules.vdomHoz.rightPos < this.vDomScrollPosLeft){\r\n\r\n\t\t\trows = this.table.rowManager.getVisibleRows();\r\n\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\tif(cell.parentNode){\r\n\t\t\t\t\t\trow.getElement().removeChild(cell.getElement());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.vDomPadLeft += column.getWidth();\r\n\t\t\tthis.tableElement.style.paddingLeft = this.vDomPadLeft + \"px\";\r\n\r\n\t\t\tthis.leftCol ++;\r\n\r\n\t\t\tthis.removeColLeft();\r\n\t\t}\r\n\t}\r\n\r\n\tfitDataColActualWidthCheck(column){\r\n\t\tvar newWidth, widthDiff;\r\n\r\n\t\tif(column.modules.vdomHoz.fitDataCheck){\r\n\t\t\tcolumn.reinitializeWidth();\r\n\r\n\t\t\tnewWidth = column.getWidth();\r\n\t\t\twidthDiff = newWidth - column.modules.vdomHoz.width;\r\n\r\n\t\t\tif(widthDiff){\r\n\t\t\t\tcolumn.modules.vdomHoz.rightPos += widthDiff;\r\n\t\t\t\tcolumn.modules.vdomHoz.width = newWidth;\r\n\t\t\t\tthis.colPositionAdjust(this.rightCol + 2, this.columns.length, widthDiff);\r\n\t\t\t}\r\n\r\n\t\t\tcolumn.modules.vdomHoz.fitDataCheck = false;\r\n\t\t}\r\n\t};\r\n\r\n\tinitializeRow(row){\r\n\t\tif(row.type !== \"group\"){\r\n\t\t\trow.modules.vdomHoz = {\r\n\t\t\t\tleftCol:this.leftCol,\r\n\t\t\t\trightCol:this.rightCol,\r\n\t\t\t};\r\n\r\n\t\t\tfor(let i = this.leftCol; i <= this.rightCol; i++){\r\n\t\t\t\tlet column = this.columns[i];\r\n\r\n\t\t\t\tif(column && column.visible){\r\n\t\t\t\t\tlet cell = row.getCell(column);\r\n\r\n\t\t\t\t\trow.getElement().appendChild(cell.getElement());\r\n\t\t\t\t\tcell.cellRendered();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treinitializeRow(row, force){\r\n\t\tif(row.type !== \"group\"){\r\n\t\t\tif(force || !row.modules.vdomHoz || row.modules.vdomHoz.leftCol !== this.leftCol || row.modules.vdomHoz.rightCol !== this.rightCol){\r\n\t\t\t\tvar rowEl = row.getElement();\r\n\t\t\t\twhile(rowEl.firstChild) rowEl.removeChild(rowEl.firstChild);\r\n\r\n\t\t\t\tthis.initializeRow(row);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import CoreFeature from './CoreFeature.js';\r\nimport Column from './column/Column.js';\r\nimport ColumnComponent from './column/ColumnComponent.js';\r\nimport Helpers from './tools/Helpers.js';\r\nimport OptionsList from './tools/OptionsList.js';\r\n\r\nimport RendererBasicHorizontal from './rendering/renderers/BasicHorizontal.js';\r\nimport RendererVirtualDomHorizontal from './rendering/renderers/VirtualDomHorizontal.js';\r\n\r\nexport default class ColumnManager extends CoreFeature {\r\n\r\n\tconstructor (table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.blockHozScrollEvent = false;\r\n\t\tthis.headersElement = null;\r\n\t\tthis.element = null ; //containing element\r\n\t\tthis.columns = []; // column definition object\r\n\t\tthis.columnsByIndex = []; //columns by index\r\n\t\tthis.columnsByField = {}; //columns by field\r\n\t\tthis.scrollLeft = 0;\r\n\t\tthis.optionsList = new OptionsList(this.table, \"column definition\");\r\n\r\n\t\tthis.renderer = null;\r\n\t}\r\n\r\n\t////////////// Setup Functions /////////////////\r\n\r\n\tinitialize(){\r\n\t\tthis.initializeRenderer();\r\n\r\n\t\tthis.headersElement = this.createHeadersElement();\r\n\t\tthis.element = this.createHeaderElement();\r\n\r\n\t\tthis.element.insertBefore(this.headersElement, this.element.firstChild);\r\n\r\n\t\tthis.subscribe(\"scroll-horizontal\", this.scrollHorizontal.bind(this));\r\n\t}\r\n\r\n\tinitializeRenderer(){\r\n\t\tvar renderClass;\r\n\r\n\t\tvar renderers = {\r\n\t\t\t\"virtual\": RendererVirtualDomHorizontal,\r\n\t\t\t\"basic\": RendererBasicHorizontal,\r\n\t\t};\r\n\r\n\t\tif(typeof this.table.options.renderHorizontal === \"string\"){\r\n\t\t\trenderClass = renderers[this.table.options.renderHorizontal];\r\n\t\t}else{\r\n\t\t\trenderClass = this.table.options.renderHorizontal;\r\n\t\t}\r\n\r\n\t\tif(renderClass){\r\n\t\t\tthis.renderer = new renderClass(this.table, this.element, this.tableElement);\r\n\t\t\tthis.renderer.initialize();\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Unable to find matching renderer:\", table.options.renderHorizontal);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tcreateHeadersElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-headers\");\r\n\t\tel.setAttribute(\"role\", \"row\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tcreateHeaderElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-header\");\r\n\t\tel.setAttribute(\"role\", \"rowgroup\");\r\n\r\n\t\tif(!this.table.options.headerVisible){\r\n\t\t\tel.classList.add(\"tabulator-header-hidden\");\r\n\t\t}\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\t//return containing element\r\n\tgetElement(){\r\n\t\treturn this.element;\r\n\t}\r\n\r\n\t//return header containing element\r\n\tgetHeadersElement(){\r\n\t\treturn this.headersElement;\r\n\t}\r\n\r\n\t//scroll horizontally to match table body\r\n\tscrollHorizontal(left){\r\n\t\tvar hozAdjust = 0,\r\n\t\tscrollWidth = this.element.scrollWidth - this.table.element.clientWidth;\r\n\r\n\t\t// this.tempScrollBlock();\r\n\t\tthis.element.scrollLeft = left;\r\n\r\n\t\t//adjust for vertical scrollbar moving table when present\r\n\t\tif(left > scrollWidth){\r\n\t\t\thozAdjust = left - scrollWidth;\r\n\t\t\tthis.element.style.marginLeft = (-(hozAdjust)) + \"px\";\r\n\t\t}else{\r\n\t\t\tthis.element.style.marginLeft = 0;\r\n\t\t}\r\n\r\n\t\tthis.scrollLeft = left;\r\n\r\n\t\tthis.renderer.scrollColumns(left);\r\n\t}\r\n\r\n\t///////////// Column Setup Functions /////////////\r\n\tgenerateColumnsFromRowData(data){\r\n\t\tvar cols = [],\r\n\t\tdefinitions = this.table.options.autoColumnsDefinitions,\r\n\t\trow, sorter;\r\n\r\n\t\tif(data && data.length){\r\n\r\n\t\t\trow = data[0];\r\n\r\n\t\t\tfor(var key in row){\r\n\t\t\t\tlet col = {\r\n\t\t\t\t\tfield:key,\r\n\t\t\t\t\ttitle:key,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlet value = row[key];\r\n\r\n\t\t\t\tswitch(typeof value){\r\n\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\tsorter = \"string\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"boolean\":\r\n\t\t\t\t\tsorter = \"boolean\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\tif(Array.isArray(value)){\r\n\t\t\t\t\t\tsorter = \"array\";\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tsorter = \"string\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\tif(!isNaN(value) && value !== \"\"){\r\n\t\t\t\t\t\tsorter = \"number\";\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)){\r\n\t\t\t\t\t\t\tsorter = \"alphanum\";\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tsorter = \"string\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcol.sorter = sorter;\r\n\r\n\t\t\t\tcols.push(col);\r\n\t\t\t}\r\n\r\n\t\t\tif(definitions){\r\n\r\n\t\t\t\tswitch(typeof definitions){\r\n\t\t\t\t\tcase \"function\":\r\n\t\t\t\t\tthis.table.options.columns = definitions.call(this.table, cols);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\tif(Array.isArray(definitions)){\r\n\t\t\t\t\t\tcols.forEach((col) => {\r\n\t\t\t\t\t\t\tvar match = definitions.find((def) => {\r\n\t\t\t\t\t\t\t\treturn def.field === col.field;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif(match){\r\n\t\t\t\t\t\t\t\tObject.assign(col, match);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tcols.forEach((col) => {\r\n\t\t\t\t\t\t\tif(definitions[col.field]){\r\n\t\t\t\t\t\t\t\tObject.assign(col, definitions[col.field]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.table.options.columns = cols;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.table.options.columns = cols;\r\n\t\t\t}\r\n\r\n\t\t\tthis.setColumns(this.table.options.columns);\r\n\t\t}\r\n\t}\r\n\r\n\tsetColumns(cols, row){\r\n\t\twhile(this.headersElement.firstChild) this.headersElement.removeChild(this.headersElement.firstChild);\r\n\r\n\t\tthis.columns = [];\r\n\t\tthis.columnsByIndex = [];\r\n\t\tthis.columnsByField = {};\r\n\r\n\t\tthis.dispatch(\"columns-loading\");\r\n\r\n\t\tcols.forEach((def, i) => {\r\n\t\t\tthis._addColumn(def);\r\n\t\t});\r\n\r\n\t\tthis._reIndexColumns();\r\n\r\n\t\tthis.dispatch(\"columns-loaded\");\r\n\r\n\t\tthis.renderer.rerenderColumns(false, true);\r\n\r\n\t\tthis.redraw(true);\r\n\t}\r\n\r\n\t_addColumn(definition, before, nextToColumn){\r\n\t\tvar column = new Column(definition, this),\r\n\t\tcolEl = column.getElement(),\r\n\t\tindex = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;\r\n\r\n\t\tif(nextToColumn && index > -1){\r\n\t\t\tvar topColumn = nextToColumn.getTopColumn()\r\n\t\t\tvar parentIndex = this.columns.indexOf(topColumn);\r\n\t\t\tvar nextEl = topColumn.getElement();\r\n\r\n\t\t\tif(before){\r\n\t\t\t\tthis.columns.splice(parentIndex, 0, column);\r\n\t\t\t\tnextEl.parentNode.insertBefore(colEl, nextEl);\r\n\t\t\t}else{\r\n\t\t\t\tthis.columns.splice(parentIndex + 1, 0, column);\r\n\t\t\t\tnextEl.parentNode.insertBefore(colEl, nextEl.nextSibling);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(before){\r\n\t\t\t\tthis.columns.unshift(column);\r\n\t\t\t\tthis.headersElement.insertBefore(column.getElement(), this.headersElement.firstChild);\r\n\t\t\t}else{\r\n\t\t\t\tthis.columns.push(column);\r\n\t\t\t\tthis.headersElement.appendChild(column.getElement());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcolumn.columnRendered();\r\n\r\n\t\treturn column;\r\n\t}\r\n\r\n\tregisterColumnField(col){\r\n\t\tif(col.definition.field){\r\n\t\t\tthis.columnsByField[col.definition.field] = col;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterColumnPosition(col){\r\n\t\tthis.columnsByIndex.push(col);\r\n\t}\r\n\r\n\t_reIndexColumns(){\r\n\t\tthis.columnsByIndex = [];\r\n\r\n\t\tthis.columns.forEach(function(column){\r\n\t\t\tcolumn.reRegisterPosition();\r\n\t\t});\r\n\t}\r\n\r\n\t//ensure column headers take up the correct amount of space in column groups\r\n\tverticalAlignHeaders(){\r\n\t\tvar minHeight = 0;\r\n\r\n\t\tthis.columns.forEach((column) => {\r\n\t\t\tvar height;\r\n\r\n\t\t\tcolumn.clearVerticalAlign();\r\n\r\n\t\t\theight = column.getHeight();\r\n\r\n\t\t\tif(height > minHeight){\r\n\t\t\t\tminHeight = height;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.columns.forEach((column) => {\r\n\t\t\tcolumn.verticalAlign(this.table.options.columnHeaderVertAlign, minHeight);\r\n\t\t});\r\n\r\n\t\tthis.table.rowManager.adjustTableSize();\r\n\t}\r\n\r\n\t//////////////// Column Details /////////////////\r\n\tfindColumn(subject){\r\n\t\tif(typeof subject == \"object\"){\r\n\r\n\t\t\tif(subject instanceof Column){\r\n\t\t\t\t//subject is column element\r\n\t\t\t\treturn subject;\r\n\t\t\t}else if(subject instanceof ColumnComponent){\r\n\t\t\t\t//subject is public column component\r\n\t\t\t\treturn subject._getSelf() || false;\r\n\t\t\t}else if(typeof HTMLElement !== \"undefined\" && subject instanceof HTMLElement){\r\n\t\t\t\t//subject is a HTML element of the column header\r\n\t\t\t\tlet match = this.columns.find((column) => {\r\n\t\t\t\t\treturn column.element === subject;\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn match || false;\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\t\t\t//subject should be treated as the field name of the column\r\n\t\t\treturn this.columnsByField[subject] || false;\r\n\t\t}\r\n\r\n\t\t//catch all for any other type of input\r\n\t\treturn false;\r\n\t}\r\n\r\n\tgetColumnByField(field){\r\n\t\treturn this.columnsByField[field];\r\n\t}\r\n\r\n\tgetColumnsByFieldRoot(root){\r\n\t\tvar matches = [];\r\n\r\n\t\tObject.keys(this.columnsByField).forEach((field) => {\r\n\t\t\tvar fieldRoot = field.split(\".\")[0];\r\n\t\t\tif(fieldRoot === root){\r\n\t\t\t\tmatches.push(this.columnsByField[field]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn matches;\r\n\t}\r\n\r\n\tgetColumnByIndex(index){\r\n\t\treturn this.columnsByIndex[index];\r\n\t}\r\n\r\n\tgetFirstVisibileColumn(index){\r\n\t\tvar index = this.columnsByIndex.findIndex((col) => {\r\n\t\t\treturn col.visible;\r\n\t\t});\r\n\r\n\t\treturn index > -1 ? this.columnsByIndex[index] : false;\r\n\t}\r\n\r\n\tgetColumns(){\r\n\t\treturn this.columns;\r\n\t}\r\n\r\n\tfindColumnIndex(column){\r\n\t\treturn this.columnsByIndex.findIndex((col) => {\r\n\t\t\treturn column === col;\r\n\t\t});\r\n\t}\r\n\r\n\t//return all columns that are not groups\r\n\tgetRealColumns(){\r\n\t\treturn this.columnsByIndex;\r\n\t}\r\n\r\n\t//travers across columns and call action\r\n\ttraverse(callback){\r\n\t\tthis.columnsByIndex.forEach((column,i) =>{\r\n\t\t\tcallback(column, i);\r\n\t\t});\r\n\t}\r\n\r\n\t//get defintions of actual columns\r\n\tgetDefinitions(active){\r\n\t\tvar output = [];\r\n\r\n\t\tthis.columnsByIndex.forEach((column) => {\r\n\t\t\tif(!active || (active && column.visible)){\r\n\t\t\t\toutput.push(column.getDefinition());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\t//get full nested definition tree\r\n\tgetDefinitionTree(){\r\n\t\tvar output = [];\r\n\r\n\t\tthis.columns.forEach((column) => {\r\n\t\t\toutput.push(column.getDefinition(true));\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetComponents(structured){\r\n\t\tvar output = [],\r\n\t\tcolumns = structured ? this.columns : this.columnsByIndex;\r\n\r\n\t\tcolumns.forEach((column) => {\r\n\t\t\toutput.push(column.getComponent());\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetWidth(){\r\n\t\tvar width = 0;\r\n\r\n\t\tthis.columnsByIndex.forEach((column) => {\r\n\t\t\tif(column.visible){\r\n\t\t\t\twidth += column.getWidth();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn width;\r\n\t}\r\n\r\n\tmoveColumn(from, to, after){\r\n\t\tthis.moveColumnActual(from, to, after);\r\n\r\n\t\tto.element.parentNode.insertBefore(from.element, to.element);\r\n\r\n\t\tif(after){\r\n\t\t\tto.element.parentNode.insertBefore(to.element, from.element);\r\n\t\t}\r\n\r\n\t\tthis.verticalAlignHeaders();\r\n\r\n\t\tthis.table.rowManager.reinitialize();\r\n\t}\r\n\r\n\tmoveColumnActual(from, to, after){\r\n\t\tif(from.parent.isGroup){\r\n\t\t\tthis._moveColumnInArray(from.parent.columns, from, to, after);\r\n\t\t}else{\r\n\t\t\tthis._moveColumnInArray(this.columns, from, to, after);\r\n\t\t}\r\n\r\n\t\tthis._moveColumnInArray(this.columnsByIndex, from, to, after, true);\r\n\r\n\t\tthis.renderer.rerenderColumns(true);\r\n\r\n\t\tthis.dispatch(\"column-moved\", from, to, after);\r\n\r\n\t\tif(this.subscribedExternal(\"columnMoved\")){\r\n\t\t\tthis.dispatchExternal(\"columnMoved\", from.getComponent(), this.table.columnManager.getComponents());\r\n\t\t}\r\n\t}\r\n\r\n\t_moveColumnInArray(columns, from, to, after, updateRows){\r\n\t\tvar\tfromIndex = columns.indexOf(from),\r\n\t\ttoIndex, rows = [];\r\n\r\n\t\tif (fromIndex > -1) {\r\n\r\n\t\t\tcolumns.splice(fromIndex, 1);\r\n\r\n\t\t\ttoIndex = columns.indexOf(to);\r\n\r\n\t\t\tif (toIndex > -1) {\r\n\r\n\t\t\t\tif(after){\r\n\t\t\t\t\ttoIndex = toIndex+1;\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\t\t\t\ttoIndex = fromIndex;\r\n\t\t\t}\r\n\r\n\t\t\tcolumns.splice(toIndex, 0, from);\r\n\r\n\t\t\tif(updateRows){\r\n\r\n\t\t\t\trows = this.chain(\"column-moving-rows\", [from, to, after], null, []) || [];\r\n\r\n\t\t\t\trows = rows.concat(this.table.rowManager.rows);\r\n\r\n\t\t\t\trows.forEach(function(row){\r\n\t\t\t\t\tif(row.cells.length){\r\n\t\t\t\t\t\tvar cell = row.cells.splice(fromIndex, 1)[0];\r\n\t\t\t\t\t\trow.cells.splice(toIndex, 0, cell);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tscrollToColumn(column, position, ifVisible){\r\n\t\tvar left = 0,\r\n\t\toffset = 0,\r\n\t\tadjust = 0,\r\n\t\tcolEl = column.getElement();\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\r\n\t\t\tif(typeof position === \"undefined\"){\r\n\t\t\t\tposition = this.table.options.scrollToColumnPosition;\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof ifVisible === \"undefined\"){\r\n\t\t\t\tifVisible = this.table.options.scrollToColumnIfVisible;\r\n\t\t\t}\r\n\r\n\t\t\tif(column.visible){\r\n\r\n\t\t\t\t//align to correct position\r\n\t\t\t\tswitch(position){\r\n\t\t\t\t\tcase \"middle\":\r\n\t\t\t\t\tcase \"center\":\r\n\t\t\t\t\tadjust = -this.element.clientWidth / 2;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"right\":\r\n\t\t\t\t\tadjust = colEl.clientWidth - this.headersElement.clientWidth;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//check column visibility\r\n\t\t\t\tif(!ifVisible){\r\n\r\n\t\t\t\t\toffset = colEl.offsetLeft;\r\n\r\n\t\t\t\t\tif(offset > 0 && offset + colEl.offsetWidth < this.element.clientWidth){\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//calculate scroll position\r\n\t\t\t\tleft = colEl.offsetLeft + adjust;\r\n\r\n\t\t\t\tleft = Math.max(Math.min(left, this.table.rowManager.element.scrollWidth - this.table.rowManager.element.clientWidth),0);\r\n\r\n\t\t\t\tthis.table.rowManager.scrollHorizontal(left);\r\n\t\t\t\tthis.scrollHorizontal(left);\r\n\r\n\t\t\t\tresolve();\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Scroll Error - Column not visible\");\r\n\t\t\t\treject(\"Scroll Error - Column not visible\");\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t//////////////// Cell Management /////////////////\r\n\tgenerateCells(row){\r\n\t\tvar cells = [];\r\n\r\n\t\tthis.columnsByIndex.forEach((column) => {\r\n\t\t\tcells.push(column.generateCell(row));\r\n\t\t});\r\n\r\n\t\treturn cells;\r\n\t}\r\n\r\n\t//////////////// Column Management /////////////////\r\n\tgetFlexBaseWidth(){\r\n\t\tvar totalWidth = this.table.element.clientWidth, //table element width\r\n\t\tfixedWidth = 0;\r\n\r\n\t\t//adjust for vertical scrollbar if present\r\n\t\tif(this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight){\r\n\t\t\ttotalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth;\r\n\t\t}\r\n\r\n\t\tthis.columnsByIndex.forEach(function(column){\r\n\t\t\tvar width, minWidth, colWidth;\r\n\r\n\t\t\tif(column.visible){\r\n\r\n\t\t\t\twidth = column.definition.width || 0;\r\n\r\n\t\t\t\tminWidth = parseInt(column.minWidth);\r\n\r\n\t\t\t\tif(typeof(width) == \"string\"){\r\n\t\t\t\t\tif(width.indexOf(\"%\") > -1){\r\n\t\t\t\t\t\tcolWidth = (totalWidth / 100) * parseInt(width) ;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tcolWidth = parseInt(width);\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcolWidth = width;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfixedWidth += colWidth > minWidth ? colWidth : minWidth;\r\n\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn fixedWidth;\r\n\t}\r\n\r\n\taddColumn(definition, before, nextToColumn){\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tvar column = this._addColumn(definition, before, nextToColumn);\r\n\r\n\t\t\tthis._reIndexColumns();\r\n\r\n\t\t\tthis.dispatch(\"column-add\", definition, before, nextToColumn);\r\n\r\n\t\t\tif(this.layoutMode() != \"fitColumns\"){\r\n\t\t\t\tcolumn.reinitializeWidth();\r\n\t\t\t}\r\n\r\n\t\t\tthis.redraw(true);\r\n\r\n\t\t\tthis.table.rowManager.reinitialize();\r\n\r\n\t\t\tthis.renderer.rerenderColumns();\r\n\r\n\t\t\tresolve(column);\r\n\t\t});\r\n\t}\r\n\r\n\t//remove column from system\r\n\tderegisterColumn(column){\r\n\t\tvar field = column.getField(),\r\n\t\tindex;\r\n\r\n\t\t//remove from field list\r\n\t\tif(field){\r\n\t\t\tdelete this.columnsByField[field];\r\n\t\t}\r\n\r\n\t\t//remove from index list\r\n\t\tindex = this.columnsByIndex.indexOf(column);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis.columnsByIndex.splice(index, 1);\r\n\t\t}\r\n\r\n\t\t//remove from column list\r\n\t\tindex = this.columns.indexOf(column);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis.columns.splice(index, 1);\r\n\t\t}\r\n\r\n\t\tthis.verticalAlignHeaders();\r\n\r\n\t\tthis.redraw();\r\n\t}\r\n\r\n\t//redraw columns\r\n\tredraw(force){\r\n\t\tif(Helpers.elVisible(this.element)){\r\n\t\t\tthis.verticalAlignHeaders();\r\n\t\t}\r\n\r\n\t\tif(force){\r\n\t\t\tthis.table.rowManager.resetScroll();\r\n\t\t\tthis.table.rowManager.reinitialize();\r\n\t\t}\r\n\r\n\t\tif(!this.confirm(\"table-redrawing\", force)){\r\n\t\t\tthis.layoutRefresh();\r\n\t\t}\r\n\r\n\t\tthis.dispatch(\"table-redraw\", force);\r\n\r\n\t\tthis.table.footerManager.redraw();\r\n\t}\r\n}","//public row object\r\nexport default class RowComponent {\r\n\r\n\tconstructor (row){\r\n\t\tthis._row = row;\r\n\r\n\t\treturn new Proxy(this, {\r\n\t\t\tget: function(target, name, receiver) {\r\n\t\t\t\tif (typeof target[name] !== \"undefined\") {\r\n\t\t\t\t\treturn target[name];\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn target._row.table.componentFunctionBinder.handle(\"row\", target._row, name)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tgetData(transform){\r\n\t\treturn this._row.getData(transform);\r\n\t}\r\n\r\n\tgetElement(){\r\n\t\treturn this._row.getElement();\r\n\t}\r\n\r\n\tgetCells(){\r\n\t\tvar cells = [];\r\n\r\n\t\tthis._row.getCells().forEach(function(cell){\r\n\t\t\tcells.push(cell.getComponent());\r\n\t\t});\r\n\r\n\t\treturn cells;\r\n\t}\r\n\r\n\tgetCell(column){\r\n\t\tvar cell = this._row.getCell(column);\r\n\t\treturn cell ? cell.getComponent() : false;\r\n\t}\r\n\r\n\tgetIndex(){\r\n\t\treturn this._row.getData(\"data\")[this._row.table.options.index];\r\n\t}\r\n\r\n\tgetPosition(active){\r\n\t\treturn this._row.table.rowManager.getRowPosition(this._row, active);\r\n\t}\r\n\r\n\tdelete(){\r\n\t\treturn this._row.delete();\r\n\t}\r\n\r\n\tscrollTo(){\r\n\t\treturn this._row.table.rowManager.scrollToRow(this._row);\r\n\t}\r\n\r\n\tmove(to, after){\r\n\t\tthis._row.moveToRow(to, after);\r\n\t}\r\n\r\n\tupdate(data){\r\n\t\treturn this._row.updateData(data);\r\n\t}\r\n\r\n\tnormalizeHeight(){\r\n\t\tthis._row.normalizeHeight(true);\r\n\t}\r\n\r\n\t_getSelf(){\r\n\t\treturn this._row;\r\n\t}\r\n\r\n\treformat(){\r\n\t\treturn this._row.reinitialize();\r\n\t}\r\n\r\n\tgetTable(){\r\n\t\treturn this._row.table;\r\n\t}\r\n\r\n\tgetNextRow(){\r\n\t\tvar row = this._row.nextRow();\r\n\t\treturn row ? row.getComponent() : row;\r\n\t}\r\n\r\n\tgetPrevRow(){\r\n\t\tvar row = this._row.prevRow();\r\n\t\treturn row ? row.getComponent() : row;\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\nimport RowComponent from './RowComponent.js';\r\nimport Helpers from '../tools/Helpers.js';\r\n\r\nexport default class Row extends CoreFeature{\r\n\tconstructor (data, parent, type = \"row\"){\r\n\t\tsuper(parent.table);\r\n\r\n\t\tthis.parent = parent;\r\n\t\tthis.data = {};\r\n\t\tthis.type = type; //type of element\r\n\t\tthis.element = false;\r\n\t\tthis.modules = {}; //hold module variables;\r\n\t\tthis.cells = [];\r\n\t\tthis.height = 0; //hold element height\r\n\t\tthis.heightStyled = \"\"; //hold element height prestyled to improve render efficiency\r\n\t\tthis.manualHeight = false; //user has manually set row height\r\n\t\tthis.outerHeight = 0; //holde lements outer height\r\n\t\tthis.initialized = false; //element has been rendered\r\n\t\tthis.heightInitialized = false; //element has resized cells to fit\r\n\r\n\t\tthis.component = null;\r\n\r\n\t\tthis.created = false;\r\n\r\n\t\tthis.setData(data);\r\n\t}\r\n\r\n\tcreate(){\r\n\t\tif(!this.created){\r\n\t\t\tthis.created = true;\r\n\t\t\tthis.generateElement();\r\n\t\t}\r\n\t}\r\n\r\n\tcreateElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-row\");\r\n\t\tel.setAttribute(\"role\", \"row\");\r\n\r\n\t\tthis.element = el;\r\n\t}\r\n\r\n\tgetElement(){\r\n\t\tthis.create();\r\n\t\treturn this.element;\r\n\t}\r\n\r\n\tdetachElement(){\r\n\t\tif (this.element && this.element.parentNode){\r\n\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t}\r\n\t}\r\n\r\n\tgenerateElement(){\r\n\t\tthis.createElement();\r\n\t\tthis.dispatch(\"row-init\", this);\r\n\t}\r\n\r\n\tgenerateCells(){\r\n\t\tthis.cells = this.table.columnManager.generateCells(this);\r\n\t}\r\n\r\n\t//functions to setup on first render\r\n\tinitialize(force){\r\n\t\tthis.create();\r\n\r\n\t\tif(!this.initialized || force){\r\n\r\n\t\t\tthis.deleteCells();\r\n\r\n\t\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\r\n\t\t\tthis.dispatch(\"row-layout-before\", this);\r\n\r\n\t\t\tthis.generateCells();\r\n\r\n\t\t\tthis.table.columnManager.renderer.renderRowCells(this);\r\n\r\n\t\t\tif(force){\r\n\t\t\t\tthis.normalizeHeight();\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatch(\"row-layout\", this);\r\n\r\n\t\t\tif(this.table.options.rowFormatter){\r\n\t\t\t\tthis.table.options.rowFormatter(this.getComponent());\r\n\t\t\t}\r\n\r\n\t\t\tthis.initialized = true;\r\n\r\n\t\t\tthis.dispatch(\"row-layout-after\", this);\r\n\t\t}else{\r\n\t\t\tthis.table.columnManager.renderer.rerenderRowCells(this);\r\n\t\t}\r\n\t}\r\n\r\n\treinitializeHeight(){\r\n\t\tthis.heightInitialized = false;\r\n\r\n\t\tif(this.element && this.element.offsetParent !== null){\r\n\t\t\tthis.normalizeHeight(true);\r\n\t\t}\r\n\t}\r\n\r\n\tdeinitializeHeight(){\r\n\t\tthis.heightInitialized = false;\r\n\t}\r\n\r\n\treinitialize(children){\r\n\t\tthis.initialized = false;\r\n\t\tthis.heightInitialized = false;\r\n\r\n\t\tif(!this.manualHeight){\r\n\t\t\tthis.height = 0;\r\n\t\t\tthis.heightStyled = \"\";\r\n\t\t}\r\n\r\n\t\tif(this.element && this.element.offsetParent !== null){\r\n\t\t\tthis.initialize(true);\r\n\t\t}\r\n\r\n\t\tthis.dispatch(\"row-relayout\", this);\r\n\t}\r\n\r\n\t//get heights when doing bulk row style calcs in virtual DOM\r\n\tcalcHeight(force){\r\n\r\n\t\tvar maxHeight = 0,\r\n\t\tminHeight = this.table.options.resizableRows ? this.element.clientHeight : 0;\r\n\r\n\t\tthis.cells.forEach(function(cell){\r\n\t\t\tvar height = cell.getHeight();\r\n\t\t\tif(height > maxHeight){\r\n\t\t\t\tmaxHeight = height;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(force){\r\n\t\t\tthis.height = Math.max(maxHeight, minHeight);\r\n\t\t}else{\r\n\t\t\tthis.height = this.manualHeight ? this.height : Math.max(maxHeight, minHeight);\r\n\t\t}\r\n\r\n\t\tthis.heightStyled = this.height ? this.height + \"px\" : \"\";\r\n\t\tthis.outerHeight = this.element.offsetHeight;\r\n\t}\r\n\r\n\t//set of cells\r\n\tsetCellHeight(){\r\n\t\tthis.cells.forEach(function(cell){\r\n\t\t\tcell.setHeight();\r\n\t\t});\r\n\r\n\t\tthis.heightInitialized = true;\r\n\t}\r\n\r\n\tclearCellHeight(){\r\n\t\tthis.cells.forEach(function(cell){\r\n\t\t\tcell.clearHeight();\r\n\t\t});\r\n\t}\r\n\r\n\t//normalize the height of elements in the row\r\n\tnormalizeHeight(force){\r\n\t\tif(force){\r\n\t\t\tthis.clearCellHeight();\r\n\t\t}\r\n\r\n\t\tthis.calcHeight(force);\r\n\r\n\t\tthis.setCellHeight();\r\n\t}\r\n\r\n\t//set height of rows\r\n\tsetHeight(height, force){\r\n\t\tif(this.height != height || force){\r\n\r\n\t\t\tthis.manualHeight = true;\r\n\r\n\t\t\tthis.height = height;\r\n\t\t\tthis.heightStyled = height ? height + \"px\" : \"\";\r\n\r\n\t\t\tthis.setCellHeight();\r\n\r\n\t\t\t// this.outerHeight = this.element.outerHeight();\r\n\t\t\tthis.outerHeight = this.element.offsetHeight;\r\n\t\t}\r\n\t}\r\n\r\n\t//return rows outer height\r\n\tgetHeight(){\r\n\t\treturn this.outerHeight;\r\n\t}\r\n\r\n\t//return rows outer Width\r\n\tgetWidth(){\r\n\t\treturn this.element.offsetWidth;\r\n\t}\r\n\r\n\t//////////////// Cell Management /////////////////\r\n\tdeleteCell(cell){\r\n\t\tvar index = this.cells.indexOf(cell);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis.cells.splice(index, 1);\r\n\t\t}\r\n\t}\r\n\r\n\t//////////////// Data Management /////////////////\r\n\tsetData(data){\r\n\t\tthis.data = this.chain(\"row-data-init-before\", [this, data], undefined, data);\r\n\r\n\t\tthis.dispatch(\"row-data-init-after\", this);\r\n\t}\r\n\r\n\t//update the rows data\r\n\tupdateData(updatedData){\r\n\t\tvar visible = this.element && Helpers.elVisible(this.element),\r\n\t\ttempData = {},\r\n\t\tnewRowData;\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\r\n\t\t\tif(typeof updatedData === \"string\"){\r\n\t\t\t\tupdatedData = JSON.parse(updatedData);\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatch(\"row-data-save-before\", this);\r\n\r\n\t\t\tif(this.subscribed(\"row-data-changing\")){\r\n\t\t\t\ttempData = Object.assign(tempData, this.data);\r\n\t\t\t\ttempData = Object.assign(tempData, updatedData);\r\n\t\t\t}\r\n\r\n\t\t\tnewRowData = this.chain(\"row-data-changing\", [this, tempData, updatedData], null, updatedData);\r\n\r\n\t\t\t//set data\r\n\t\t\tfor (var attrname in newRowData) {\r\n\t\t\t\tthis.data[attrname] = newRowData[attrname];\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatch(\"row-data-save-after\", this);\r\n\r\n\t\t\t//update affected cells only\r\n\t\t\tfor (var attrname in updatedData) {\r\n\r\n\t\t\t\tlet columns = this.table.columnManager.getColumnsByFieldRoot(attrname);\r\n\r\n\t\t\t\tcolumns.forEach((column) => {\r\n\t\t\t\t\tlet cell = this.getCell(column.getField());\r\n\r\n\t\t\t\t\tif(cell){\r\n\t\t\t\t\t\tlet value = column.getFieldValue(newRowData);\r\n\t\t\t\t\t\tif(cell.getValue() != value){\r\n\t\t\t\t\t\t\tcell.setValueProcessData(value);\r\n\r\n\t\t\t\t\t\t\tif(visible){\r\n\t\t\t\t\t\t\t\tcell.cellRendered();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t//Partial reinitialization if visible\r\n\t\t\tif(visible){\r\n\t\t\t\tthis.normalizeHeight(true);\r\n\r\n\t\t\t\tif(this.table.options.rowFormatter){\r\n\t\t\t\t\tthis.table.options.rowFormatter(this.getComponent());\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.initialized = false;\r\n\t\t\t\tthis.height = 0;\r\n\t\t\t\tthis.heightStyled = \"\";\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatch(\"row-data-changed\", this, visible, updatedData);\r\n\r\n\t\t\t//this.reinitialize();\r\n\r\n\t\t\tthis.dispatchExternal(\"rowUpdated\", this.getComponent());\r\n\r\n\t\t\tif(this.subscribedExternal(\"dataChanged\")){\r\n\t\t\t\tthis.dispatchExternal(\"dataChanged\", this.table.rowManager.getData());\r\n\t\t\t}\r\n\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\r\n\tgetData(transform){\r\n\t\tif(transform){\r\n\t\t\treturn this.chain(\"row-data-retrieve\", [this, transform], null, this.data);\r\n\t\t}\r\n\r\n\t\treturn this.data;\r\n\t}\r\n\r\n\tgetCell(column){\r\n\t\tvar match = false;\r\n\r\n\t\tcolumn = this.table.columnManager.findColumn(column);\r\n\r\n\t\tif(!this.initialized){\r\n\t\t\tthis.generateCells();\r\n\t\t}\r\n\r\n\t\tmatch = this.cells.find(function(cell){\r\n\t\t\treturn cell.column === column;\r\n\t\t});\r\n\r\n\t\treturn match;\r\n\t}\r\n\r\n\tgetCellIndex(findCell){\r\n\t\treturn this.cells.findIndex(function(cell){\r\n\t\t\treturn cell === findCell;\r\n\t\t});\r\n\t}\r\n\r\n\tfindCell(subject){\r\n\t\treturn this.cells.find((cell) => {\r\n\t\t\treturn cell.element === subject;\r\n\t\t});\r\n\t}\r\n\r\n\tgetCells(){\r\n\t\tif(!this.initialized){\r\n\t\t\tthis.generateCells();\r\n\t\t}\r\n\r\n\t\treturn this.cells;\r\n\t}\r\n\r\n\tnextRow(){\r\n\t\tvar row = this.table.rowManager.nextDisplayRow(this, true);\r\n\t\treturn row || false;\r\n\t}\r\n\r\n\tprevRow(){\r\n\t\tvar row = this.table.rowManager.prevDisplayRow(this, true);\r\n\t\treturn row || false;\r\n\t}\r\n\r\n\tmoveToRow(to, before){\r\n\t\tvar toRow = this.table.rowManager.findRow(to);\r\n\r\n\t\tif(toRow){\r\n\t\t\tthis.table.rowManager.moveRowActual(this, toRow, !before);\r\n\t\t\tthis.table.rowManager.refreshActiveData(\"display\", false, true);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Move Error - No matching row found:\", to);\r\n\t\t}\r\n\t}\r\n\r\n\t///////////////////// Actions /////////////////////\r\n\tdelete(){\r\n\t\tthis.dispatch(\"row-delete\", this);\r\n\r\n\t\tthis.deleteActual();\r\n\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\r\n\tdeleteActual(blockRedraw){\r\n\t\tvar index = this.table.rowManager.getRowIndex(this);\r\n\r\n\t\tthis.detatchModules();\r\n\r\n\t\tthis.table.rowManager.deleteRow(this, blockRedraw);\r\n\r\n\t\tthis.deleteCells();\r\n\r\n\t\tthis.initialized = false;\r\n\t\tthis.heightInitialized = false;\r\n\t\tthis.element = false;\r\n\r\n\t\tthis.dispatch(\"row-deleted\", this);\r\n\t}\r\n\r\n\tdetatchModules(){\r\n\t\tthis.dispatch(\"row-deleting\", this);\r\n\t}\r\n\r\n\tdeleteCells(){\r\n\t\tvar cellCount = this.cells.length;\r\n\r\n\t\tfor(let i = 0; i < cellCount; i++){\r\n\t\t\tthis.cells[0].delete();\r\n\t\t}\r\n\t}\r\n\r\n\twipe(){\r\n\t\tthis.detatchModules();\r\n\t\tthis.deleteCells();\r\n\r\n\t\tif(this.element){\r\n\t\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\r\n\t\t\tif(this.element.parentNode){\r\n\t\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.element = false;\r\n\t\tthis.modules = {};\r\n\t}\r\n\r\n\tgetGroup(){\r\n\t\treturn this.modules.group || false;\r\n\t}\r\n\r\n\t//////////////// Object Generation /////////////////\r\n\tgetComponent(){\r\n\t\tif(!this.component){\r\n\t\t\tthis.component = new RowComponent(this);\r\n\t\t}\r\n\r\n\t\treturn this.component;\r\n\t}\r\n}","import Renderer from '../Renderer.js';\r\nimport Helpers from '../../tools/Helpers.js';\r\n\r\nexport default class BaiscVertical extends Renderer{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.verticalFillMode = \"fill\";\r\n\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\t}\r\n\r\n\tclearRows(){\r\n\t\tvar element = this.tableElement;\r\n\r\n\t\t// element.children.detach();\r\n\t\twhile(element.firstChild) element.removeChild(element.firstChild);\r\n\r\n\t\telement.scrollTop = 0;\r\n\t\telement.scrollLeft = 0;\r\n\r\n\t\telement.style.minWidth = \"\";\r\n\t\telement.style.minHeight = \"\";\r\n\t\telement.style.display = \"\";\r\n\t\telement.style.visibility = \"\";\r\n\t}\r\n\r\n\trenderRows(){\r\n\t\tvar element = this.tableElement,\r\n\t\tonlyGroupHeaders = true;\r\n\r\n\t\tthis.rows().forEach((row, index) => {\r\n\t\t\tthis.styleRow(row, index);\r\n\t\t\telement.appendChild(row.getElement());\r\n\t\t\trow.initialize(true);\r\n\r\n\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\tonlyGroupHeaders = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(onlyGroupHeaders){\r\n\t\t\telement.style.minWidth = this.table.columnManager.getWidth() + \"px\";\r\n\t\t}else{\r\n\t\t\telement.style.minWidth = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\r\n\trerenderRows(callback){\r\n\t\tthis.render();\r\n\r\n\t\tif(callback){\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\r\n\tscrollToRowNearestTop(row){\r\n\t\tvar rowTop = Helpers.elOffset(row.getElement()).top;\r\n\r\n\t\treturn !(Math.abs(this.elementVertical.scrollTop - rowTop) > Math.abs(this.elementVertical.scrollTop + this.elementVertical.clientHeight - rowTop));\r\n\t}\r\n\r\n\tscrollToRow(row){\r\n\t\tvar rowEl = row.getElement();\r\n\r\n\t\tthis.elementVertical.scrollTop = Helpers.elOffset(rowEl).top - Helpers.elOffset(this.elementVertical).top + this.elementVertical.scrollTop;\r\n\t}\r\n\r\n\tvisibleRows(includingBuffer){\r\n\t\treturn this.rows();\r\n\t}\r\n\r\n}","import Renderer from '../Renderer.js';\r\nimport Helpers from '../../tools/Helpers.js';\r\n\r\nexport default class VirtualDomVertical extends Renderer{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.verticalFillMode = \"fill\";\r\n\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\r\n\t\tthis.vDomRowHeight = 20; //approximation of row heights for padding\r\n\r\n\t\tthis.vDomTop = 0; //hold position for first rendered row in the virtual DOM\r\n\t\tthis.vDomBottom = 0; //hold possition for last rendered row in the virtual DOM\r\n\r\n\t\tthis.vDomScrollPosTop = 0; //last scroll position of the vDom top;\r\n\t\tthis.vDomScrollPosBottom = 0; //last scroll position of the vDom bottom;\r\n\r\n\t\tthis.vDomTopPad = 0; //hold value of padding for top of virtual DOM\r\n\t\tthis.vDomBottomPad = 0; //hold value of padding for bottom of virtual DOM\r\n\r\n\t\tthis.vDomMaxRenderChain = 90; //the maximum number of dom elements that can be rendered in 1 go\r\n\r\n\t\tthis.vDomWindowBuffer = 0; //window row buffer before removing elements, to smooth scrolling\r\n\r\n\t\tthis.vDomWindowMinTotalRows = 20; //minimum number of rows to be generated in virtual dom (prevent buffering issues on tables with tall rows)\r\n\t\tthis.vDomWindowMinMarginRows = 5; //minimum number of rows to be generated in virtual dom margin\r\n\r\n\t\tthis.vDomTopNewRows = []; //rows to normalize after appending to optimize render speed\r\n\t\tthis.vDomBottomNewRows = []; //rows to normalize after appending to optimize render speed\r\n\t}\r\n\r\n\t//////////////////////////////////////\r\n\t///////// Public Functions ///////////\r\n\t//////////////////////////////////////\r\n\r\n\tclearRows(){\r\n\t\tvar element = this.tableElement;\r\n\r\n\t\t// element.children.detach();\r\n\t\twhile(element.firstChild) element.removeChild(element.firstChild);\r\n\r\n\t\telement.style.paddingTop = \"\";\r\n\t\telement.style.paddingBottom = \"\";\r\n\t\telement.style.minWidth = \"\";\r\n\t\telement.style.minHeight = \"\";\r\n\t\telement.style.display = \"\";\r\n\t\telement.style.visibility = \"\";\r\n\r\n\t\tthis.elementVertical.scrollTop = 0;\r\n\t\tthis.elementVertical.scrollLeft = 0;\r\n\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\r\n\t\tthis.vDomTop = 0;\r\n\t\tthis.vDomBottom = 0;\r\n\t\tthis.vDomTopPad = 0;\r\n\t\tthis.vDomBottomPad = 0;\r\n\t\tthis.vDomScrollPosTop = 0;\r\n\t\tthis.vDomScrollPosBottom = 0;\r\n\t}\r\n\r\n\trenderRows(){\r\n\t\tthis._virtualRenderFill();\r\n\t}\r\n\r\n\trerenderRows(callback){\r\n\t\tvar scrollTop = this.elementVertical.scrollTop;\r\n\t\tvar topRow = false;\r\n\t\tvar topOffset = false;\r\n\r\n\t\tvar left = this.table.rowManager.scrollLeft;\r\n\r\n\t\tvar rows = this.rows();\r\n\r\n\t\tfor(var i = this.vDomTop; i <= this.vDomBottom; i++){\r\n\r\n\t\t\tif(rows[i]){\r\n\t\t\t\tvar diff = scrollTop - rows[i].getElement().offsetTop;\r\n\r\n\t\t\t\tif(topOffset === false || Math.abs(diff) < topOffset){\r\n\t\t\t\t\ttopOffset = diff;\r\n\t\t\t\t\ttopRow = i;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\trows.forEach((row) => {\r\n\t\t\trow.deinitializeHeight();\r\n\t\t});\r\n\r\n\t\tif(callback){\r\n\t\t\tcallback();\r\n\t\t}\r\n\r\n\t\tthis._virtualRenderFill((topRow === false ? this.rows.length - 1 : topRow), true, topOffset || 0);\r\n\r\n\t\tthis.scrollColumns(left);\r\n\t}\r\n\r\n\tscrollColumns(left){\r\n\t\tthis.table.rowManager.scrollHorizontal(left);\r\n\t}\r\n\r\n\tscrollRows(top, dir){\r\n\t\tvar topDiff = top - this.vDomScrollPosTop;\r\n\t\tvar bottomDiff = top - this.vDomScrollPosBottom;\r\n\t\tvar margin = this.vDomWindowBuffer * 2;\r\n\t\tvar rows = this.rows();\r\n\r\n\t\tthis.scrollTop = top;\r\n\r\n\t\tif(-topDiff > margin || bottomDiff > margin){\r\n\t\t\t//if big scroll redraw table;\r\n\t\t\tvar left = this.table.rowManager.scrollLeft;\r\n\t\t\tthis._virtualRenderFill(Math.floor((this.elementVertical.scrollTop / this.elementVertical.scrollHeight) * rows.length));\r\n\t\t\tthis.scrollColumns(left);\r\n\t\t}else{\r\n\r\n\t\t\tif(dir){\r\n\t\t\t\t//scrolling up\r\n\t\t\t\tif(topDiff < 0){\r\n\t\t\t\t\tthis._addTopRow(rows, -topDiff);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(bottomDiff < 0){\r\n\t\t\t\t\t//hide bottom row if needed\r\n\t\t\t\t\tif(this.vDomScrollHeight - this.scrollTop > this.vDomWindowBuffer){\r\n\t\t\t\t\t\tthis._removeBottomRow(rows, -bottomDiff);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.vDomScrollPosBottom = this.scrollTop;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\r\n\t\t\t\tif(bottomDiff >= 0){\r\n\t\t\t\t\tthis._addBottomRow(rows, bottomDiff);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//scrolling down\r\n\t\t\t\tif(topDiff >= 0){\r\n\t\t\t\t\t//hide top row if needed\r\n\t\t\t\t\tif(this.scrollTop > this.vDomWindowBuffer){\r\n\t\t\t\t\t\tthis._removeTopRow(rows, topDiff);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.vDomScrollPosTop = this.scrollTop;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tresize(){\r\n\t\tthis.vDomWindowBuffer = this.table.options.renderVerticalBuffer || this.elementVertical.clientHeight;\r\n\t}\r\n\r\n\tscrollToRowNearestTop(row){\r\n\t\tvar rowIndex = this.rows().indexOf(row);\r\n\r\n\t\treturn !(Math.abs(this.vDomTop - rowIndex) > Math.abs(this.vDomBottom - rowIndex));\r\n\t}\r\n\r\n\tscrollToRow(row){\r\n\t\tvar index = this.rows().indexOf(row);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis._virtualRenderFill(index, true);\r\n\t\t}\r\n\t}\r\n\r\n\tvisibleRows(includingBuffer){\r\n\t\tvar topEdge = this.elementVertical.scrollTop,\r\n\t\tbottomEdge = this.elementVertical.clientHeight + topEdge,\r\n\t\ttopFound = false,\r\n\t\ttopRow = 0,\r\n\t\tbottomRow = 0,\r\n\t\trows = this.rows();\r\n\r\n\t\tif(includingBuffer){\r\n\t\t\ttopRow = this.vDomTop;\r\n\t\t\tbottomRow = this.vDomBottom;\r\n\t\t}else{\r\n\t\t\tfor(var i = this.vDomTop; i <= this.vDomBottom; i++){\r\n\t\t\t\tif(rows[i]){\r\n\t\t\t\t\tif(!topFound){\r\n\t\t\t\t\t\tif((topEdge - rows[i].getElement().offsetTop) >= 0){\r\n\t\t\t\t\t\t\ttopRow = i;\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\ttopFound = true;\r\n\r\n\t\t\t\t\t\t\tif(bottomEdge - rows[i].getElement().offsetTop >= 0){\r\n\t\t\t\t\t\t\t\tbottomRow = i;\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(bottomEdge - rows[i].getElement().offsetTop >= 0){\r\n\t\t\t\t\t\t\tbottomRow = i;\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn rows.slice(topRow, bottomRow + 1);\r\n\t}\r\n\r\n\t//////////////////////////////////////\r\n\t//////// Internal Rendering //////////\r\n\t//////////////////////////////////////\r\n\r\n\t//full virtual render\r\n\t_virtualRenderFill(position, forceMove, offset){\r\n\t\tvar\telement = this.tableElement,\r\n\t\tholder = this.elementVertical,\r\n\t\ttopPad = 0,\r\n\t\trowsHeight = 0,\r\n\t\theightOccupied = 0,\r\n\t\ttopPadHeight = 0,\r\n\t\ti = 0,\r\n\t\trows = this.rows(),\r\n\t\trowsCount = rows.length,\r\n\t\tcontainerHeight = this.elementVertical.clientHeight;\r\n\r\n\t\tposition = position || 0;\r\n\r\n\t\toffset = offset || 0;\r\n\r\n\t\tif(!position){\r\n\t\t\tthis.clear();\r\n\t\t}else{\r\n\t\t\twhile(element.firstChild) element.removeChild(element.firstChild);\r\n\r\n\t\t\t//check if position is too close to bottom of table\r\n\t\t\theightOccupied = (rowsCount - position + 1) * this.vDomRowHeight;\r\n\r\n\t\t\tif(heightOccupied < containerHeight){\r\n\t\t\t\tposition -= Math.ceil((containerHeight - heightOccupied) / this.vDomRowHeight);\r\n\t\t\t\tif(position < 0){\r\n\t\t\t\t\tposition = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//calculate initial pad\r\n\t\t\ttopPad = Math.min(Math.max(Math.floor(this.vDomWindowBuffer / this.vDomRowHeight), this.vDomWindowMinMarginRows), position);\r\n\t\t\tposition -= topPad;\r\n\t\t}\r\n\r\n\t\tif(rowsCount && Helpers.elVisible(this.elementVertical)){\r\n\t\t\tthis.vDomTop = position;\r\n\r\n\t\t\tthis.vDomBottom = position -1;\r\n\r\n\t\t\twhile ((rowsHeight <= containerHeight + this.vDomWindowBuffer || i < this.vDomWindowMinTotalRows) && this.vDomBottom < rowsCount -1){\r\n\t\t\t\tvar index = this.vDomBottom + 1,\r\n\t\t\t\trow = rows[index],\r\n\t\t\t\trowHeight = 0;\r\n\r\n\t\t\t\tthis.styleRow(row, index);\r\n\r\n\t\t\t\telement.appendChild(row.getElement());\r\n\r\n\t\t\t\trow.initialize();\r\n\r\n\t\t\t\tif(!row.heightInitialized){\r\n\t\t\t\t\trow.normalizeHeight(true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\trowHeight = row.getHeight();\r\n\r\n\t\t\t\tif(i < topPad){\r\n\t\t\t\t\ttopPadHeight += rowHeight;\r\n\t\t\t\t}else{\r\n\t\t\t\t\trowsHeight += rowHeight;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(rowHeight > this.vDomWindowBuffer){\r\n\t\t\t\t\tthis.vDomWindowBuffer = rowHeight * 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.vDomBottom ++;\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\r\n\t\t\tif(!position){\r\n\t\t\t\tthis.vDomTopPad = 0;\r\n\t\t\t\t//adjust rowheight to match average of rendered elements\r\n\t\t\t\tthis.vDomRowHeight = Math.floor((rowsHeight + topPadHeight) / i);\r\n\t\t\t\tthis.vDomBottomPad = this.vDomRowHeight * (rowsCount - this.vDomBottom -1);\r\n\r\n\t\t\t\tthis.vDomScrollHeight = topPadHeight + rowsHeight + this.vDomBottomPad - containerHeight;\r\n\t\t\t}else{\r\n\t\t\t\tthis.vDomTopPad = !forceMove ? this.scrollTop - topPadHeight : (this.vDomRowHeight * this.vDomTop) + offset;\r\n\t\t\t\tthis.vDomBottomPad = this.vDomBottom == rowsCount-1 ? 0 : Math.max(this.vDomScrollHeight - this.vDomTopPad - rowsHeight - topPadHeight, 0);\r\n\t\t\t}\r\n\r\n\t\t\telement.style.paddingTop = this.vDomTopPad + \"px\";\r\n\t\t\telement.style.paddingBottom = this.vDomBottomPad + \"px\";\r\n\r\n\t\t\tif(forceMove){\r\n\t\t\t\tthis.scrollTop = this.vDomTopPad + (topPadHeight) + offset - (this.elementVertical.scrollWidth > this.elementVertical.clientWidth ? this.elementVertical.offsetHeight - containerHeight : 0);\r\n\t\t\t}\r\n\r\n\t\t\tthis.scrollTop = Math.min(this.scrollTop, this.elementVertical.scrollHeight - containerHeight);\r\n\r\n\t\t\t//adjust for horizontal scrollbar if present (and not at top of table)\r\n\t\t\tif(this.elementVertical.scrollWidth > this.elementVertical.offsetWidth && forceMove){\r\n\t\t\t\tthis.scrollTop += this.elementVertical.offsetHeight - containerHeight;\r\n\t\t\t}\r\n\r\n\t\t\tthis.vDomScrollPosTop = this.scrollTop;\r\n\t\t\tthis.vDomScrollPosBottom = this.scrollTop;\r\n\r\n\t\t\tholder.scrollTop = this.scrollTop;\r\n\r\n\t\t\tthis.dispatch(\"render-virtual-fill\");\r\n\t\t}\r\n\t}\r\n\r\n\t_addTopRow(rows, fillableSpace){\r\n\t\tvar table = this.tableElement,\r\n\t\taddedRows = [],\r\n\t\tpaddingAdjust = 0,\r\n\t\tindex = this.vDomTop -1,\r\n\t\ti = 0;\r\n\r\n\t\twhile(true){\r\n\t\t\tif(this.vDomTop){\r\n\t\t\t\tlet row = rows[index],\r\n\t\t\t\trowHeight, initialized;\r\n\r\n\t\t\t\tif(row && i < this.vDomMaxRenderChain){\r\n\t\t\t\t\trowHeight = row.getHeight() || this.vDomRowHeight;\r\n\t\t\t\t\tinitialized = row.initialized;\r\n\r\n\t\t\t\t\tif(fillableSpace >= rowHeight){\r\n\r\n\t\t\t\t\t\tthis.styleRow(row, index);\r\n\t\t\t\t\t\ttable.insertBefore(row.getElement(), table.firstChild);\r\n\r\n\t\t\t\t\t\tif(!row.initialized || !row.heightInitialized){\r\n\t\t\t\t\t\t\taddedRows.push(row);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trow.initialize();\r\n\r\n\t\t\t\t\t\tif(!initialized){\r\n\t\t\t\t\t\t\trowHeight = row.getElement().offsetHeight;\r\n\r\n\t\t\t\t\t\t\tif(rowHeight > this.vDomWindowBuffer){\r\n\t\t\t\t\t\t\t\tthis.vDomWindowBuffer = rowHeight * 2;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfillableSpace -= rowHeight;\r\n\t\t\t\t\t\tpaddingAdjust += rowHeight;\r\n\r\n\t\t\t\t\t\tthis.vDomTop--;\r\n\t\t\t\t\t\tindex--;\r\n\t\t\t\t\t\ti++;\r\n\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}else{\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let row of addedRows){\r\n\t\t\trow.clearCellHeight();\r\n\t\t}\r\n\r\n\t\tthis._quickNormalizeRowHeight(addedRows);\r\n\r\n\t\tif(paddingAdjust){\r\n\t\t\tthis.vDomTopPad -= paddingAdjust;\r\n\r\n\t\t\tif(this.vDomTopPad < 0){\r\n\t\t\t\tthis.vDomTopPad = index * this.vDomRowHeight;\r\n\t\t\t}\r\n\r\n\t\t\tif(index < 1){\r\n\t\t\t\tthis.vDomTopPad = 0;\r\n\t\t\t}\r\n\r\n\t\t\ttable.style.paddingTop = this.vDomTopPad + \"px\";\r\n\t\t\tthis.vDomScrollPosTop -= paddingAdjust;\r\n\t\t}\r\n\t}\r\n\r\n\t_removeTopRow(rows, fillableSpace){\r\n\t\tvar removableRows = [],\r\n\t\tpaddingAdjust = 0,\r\n\t\ti = 0;\r\n\r\n\t\twhile(true){\r\n\t\t\tlet row = rows[this.vDomTop],\r\n\t\t\trowHeight, diff;\r\n\r\n\t\t\tif(row && i < this.vDomMaxRenderChain){\r\n\t\t\t\trowHeight = row.getHeight() || this.vDomRowHeight;\r\n\r\n\t\t\t\tif(fillableSpace >= rowHeight){\r\n\t\t\t\t\tthis.vDomTop++;\r\n\r\n\t\t\t\t\tfillableSpace -= rowHeight;\r\n\t\t\t\t\tpaddingAdjust += rowHeight;\r\n\r\n\t\t\t\t\tremovableRows.push(row);\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let row of removableRows){\r\n\t\t\tlet rowEl = row.getElement();\r\n\r\n\t\t\tif(rowEl.parentNode){\r\n\t\t\t\trowEl.parentNode.removeChild(rowEl);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(paddingAdjust){\r\n\t\t\tthis.vDomTopPad += paddingAdjust;\r\n\t\t\tthis.tableElement.style.paddingTop = this.vDomTopPad + \"px\";\r\n\t\t\tthis.vDomScrollPosTop += this.vDomTop ? paddingAdjust : paddingAdjust + this.vDomWindowBuffer;\r\n\t\t}\r\n\t}\r\n\r\n\t_addBottomRow(rows, fillableSpace){\r\n\t\tvar table = this.tableElement,\r\n\t\taddedRows = [],\r\n\t\tpaddingAdjust = 0,\r\n\t\tindex = this.vDomBottom + 1,\r\n\t\ti = 0;\r\n\r\n\t\twhile(true){\r\n\t\t\tlet row = rows[index],\r\n\t\t\trowHeight, initialized;\r\n\r\n\t\t\tif(row && i < this.vDomMaxRenderChain){\r\n\t\t\t\trowHeight = row.getHeight() || this.vDomRowHeight;\r\n\t\t\t\tinitialized = row.initialized;\r\n\r\n\t\t\t\tif(fillableSpace >= rowHeight){\r\n\r\n\t\t\t\t\tthis.styleRow(row, index);\r\n\t\t\t\t\ttable.appendChild(row.getElement());\r\n\r\n\t\t\t\t\tif(!row.initialized || !row.heightInitialized){\r\n\t\t\t\t\t\taddedRows.push(row);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trow.initialize();\r\n\r\n\t\t\t\t\tif(!initialized){\r\n\t\t\t\t\t\trowHeight = row.getElement().offsetHeight;\r\n\r\n\t\t\t\t\t\tif(rowHeight > this.vDomWindowBuffer){\r\n\t\t\t\t\t\t\tthis.vDomWindowBuffer = rowHeight * 2;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfillableSpace -= rowHeight;\r\n\t\t\t\t\tpaddingAdjust += rowHeight;\r\n\r\n\t\t\t\t\tthis.vDomBottom++;\r\n\t\t\t\t\tindex++;\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let row of addedRows){\r\n\t\t\trow.clearCellHeight();\r\n\t\t}\r\n\r\n\t\tthis._quickNormalizeRowHeight(addedRows);\r\n\r\n\t\tif(paddingAdjust){\r\n\t\t\tthis.vDomBottomPad -= paddingAdjust;\r\n\r\n\t\t\tif(this.vDomBottomPad < 0 || index == rows.length -1){\r\n\t\t\t\tthis.vDomBottomPad = 0;\r\n\t\t\t}\r\n\r\n\t\t\ttable.style.paddingBottom = this.vDomBottomPad + \"px\";\r\n\t\t\tthis.vDomScrollPosBottom += paddingAdjust;\r\n\t\t}\r\n\t}\r\n\r\n\t_removeBottomRow(rows, fillableSpace){\r\n\t\tvar removableRows = [],\r\n\t\tpaddingAdjust = 0,\r\n\t\ti = 0;\r\n\r\n\t\twhile(true){\r\n\t\t\tlet row = rows[this.vDomBottom],\r\n\t\t\trowHeight, diff;\r\n\r\n\t\t\tif(row && i < this.vDomMaxRenderChain){\r\n\t\t\t\trowHeight = row.getHeight() || this.vDomRowHeight;\r\n\r\n\t\t\t\tif(fillableSpace >= rowHeight){\r\n\t\t\t\t\tthis.vDomBottom --;\r\n\r\n\t\t\t\t\tfillableSpace -= rowHeight;\r\n\t\t\t\t\tpaddingAdjust += rowHeight;\r\n\r\n\t\t\t\t\tremovableRows.push(row);\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let row of removableRows){\r\n\t\t\tlet rowEl = row.getElement();\r\n\r\n\t\t\tif(rowEl.parentNode){\r\n\t\t\t\trowEl.parentNode.removeChild(rowEl);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(paddingAdjust){\r\n\t\t\tthis.vDomBottomPad += paddingAdjust;\r\n\r\n\t\t\tif(this.vDomBottomPad < 0){\r\n\t\t\t\tthis.vDomBottomPad = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.tableElement.style.paddingBottom = this.vDomBottomPad + \"px\";\r\n\t\t\tthis.vDomScrollPosBottom -= paddingAdjust;\r\n\t\t}\r\n\t}\r\n\r\n\t_quickNormalizeRowHeight(rows){\r\n\t\tfor(let row of rows){\r\n\t\t\trow.calcHeight();\r\n\t\t}\r\n\r\n\t\tfor(let row of rows){\r\n\t\t\trow.setCellHeight();\r\n\t\t}\r\n\t}\r\n}","import CoreFeature from './CoreFeature.js';\r\nimport Row from './row/Row.js';\r\nimport RowComponent from './row/RowComponent.js';\r\nimport Helpers from './tools/Helpers.js';\r\n\r\nimport RendererBasicVertical from './rendering/renderers/BasicVertical.js';\r\nimport RendererVirtualDomVertical from './rendering/renderers/VirtualDomVertical.js';\r\n\r\nexport default class RowManager extends CoreFeature{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.element = this.createHolderElement(); //containing element\r\n\t\tthis.tableElement = this.createTableElement(); //table element\r\n\t\tthis.heightFixer = this.createTableElement(); //table element\r\n\r\n\t\tthis.firstRender = false; //handle first render\r\n\t\tthis.renderMode = \"virtual\"; //current rendering mode\r\n\t\tthis.fixedHeight = false; //current rendering mode\r\n\r\n\t\tthis.rows = []; //hold row data objects\r\n\t\tthis.activeRowsPipeline = []; //hold caluclation of active rows\r\n\t\tthis.activeRows = []; //rows currently available to on display in the table\r\n\t\tthis.activeRowsCount = 0; //count of active rows\r\n\r\n\t\tthis.displayRows = []; //rows currently on display in the table\r\n\t\tthis.displayRowsCount = 0; //count of display rows\r\n\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\r\n\t\tthis.rowNumColumn = false; //hold column component for row number column\r\n\r\n\t\tthis.redrawBlock = false; //prevent redraws to allow multiple data manipulations becore continuing\r\n\t\tthis.redrawBlockRestoreConfig = false; //store latest redraw function calls for when redraw is needed\r\n\t\tthis.redrawBlockRederInPosition = false; //store latest redraw function calls for when redraw is needed\r\n\r\n\t\tthis.dataPipeline = []; //hold data pipeline tasks\r\n\t\tthis.displayPipeline = []; //hold data display pipeline tasks\r\n\r\n\t\tthis.renderer = null;\r\n\t}\r\n\r\n\t//////////////// Setup Functions /////////////////\r\n\r\n\tcreateHolderElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-tableholder\");\r\n\t\tel.setAttribute(\"tabindex\", 0);\r\n\t\tel.setAttribute(\"role\", \"rowgroup\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tcreateTableElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-table\");\r\n\t\tel.setAttribute(\"role\", \"rowgroup\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\t//return containing element\r\n\tgetElement(){\r\n\t\treturn this.element;\r\n\t}\r\n\r\n\t//return table element\r\n\tgetTableElement(){\r\n\t\treturn this.tableElement;\r\n\t}\r\n\r\n\t//return position of row in table\r\n\tgetRowPosition(row, active){\r\n\t\tif(active){\r\n\t\t\treturn this.activeRows.indexOf(row);\r\n\t\t}else{\r\n\t\t\treturn this.rows.indexOf(row);\r\n\t\t}\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.initializeRenderer();\r\n\r\n\t\t//initialize manager\r\n\t\tthis.element.appendChild(this.tableElement);\r\n\r\n\t\tthis.firstRender = true;\r\n\r\n\t\t//scroll header along with table body\r\n\t\tthis.element.addEventListener(\"scroll\", () => {\r\n\t\t\tvar left = this.element.scrollLeft,\r\n\t\t\tleftDir = this.scrollLeft > left,\r\n\t\t\ttop = this.element.scrollTop,\r\n\t\t\ttopDir = this.scrollTop > top;\r\n\r\n\t\t\t//handle horizontal scrolling\r\n\t\t\tif(this.scrollLeft != left){\r\n\t\t\t\tthis.scrollLeft = left;\r\n\r\n\t\t\t\tthis.dispatch(\"scroll-horizontal\", left, leftDir);\r\n\t\t\t\tthis.dispatchExternal(\"scrollHorizontal\", left, leftDir);\r\n\t\t\t}\r\n\r\n\t\t\t//handle verical scrolling\r\n\t\t\tif(this.scrollTop != top){\r\n\t\t\t\tthis.scrollTop = top;\r\n\r\n\t\t\t\tthis.renderer.scrollRows(top, topDir);\r\n\r\n\t\t\t\tthis.dispatch(\"scroll-vertical\", top, topDir);\r\n\t\t\t\tthis.dispatchExternal(\"scrollVertical\", top, topDir);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t////////////////// Row Manipulation //////////////////\r\n\tfindRow(subject){\r\n\t\tif(typeof subject == \"object\"){\r\n\t\t\tif(subject instanceof Row){\r\n\t\t\t\t//subject is row element\r\n\t\t\t\treturn subject;\r\n\t\t\t}else if(subject instanceof RowComponent){\r\n\t\t\t\t//subject is public row component\r\n\t\t\t\treturn subject._getSelf() || false;\r\n\t\t\t}else if(typeof HTMLElement !== \"undefined\" && subject instanceof HTMLElement){\r\n\t\t\t\t//subject is a HTML element of the row\r\n\t\t\t\tlet match = this.rows.find((row) => {\r\n\t\t\t\t\treturn row.getElement() === subject;\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn match || false;\r\n\t\t\t}\r\n\t\t}else if(typeof subject == \"undefined\" || subject === null){\r\n\t\t\treturn false;\r\n\t\t}else{\r\n\t\t\t//subject should be treated as the index of the row\r\n\t\t\tlet match = this.rows.find((row) => {\r\n\t\t\t\treturn row.data[this.table.options.index] == subject;\r\n\t\t\t});\r\n\r\n\t\t\treturn match || false;\r\n\t\t}\r\n\r\n\t\t//catch all for any other type of input\r\n\t\treturn false;\r\n\t}\r\n\r\n\tgetRowFromDataObject(data){\r\n\t\tvar match = this.rows.find((row) => {\r\n\t\t\treturn row.data === data;\r\n\t\t});\r\n\r\n\t\treturn match || false;\r\n\t}\r\n\r\n\tgetRowFromPosition(position, active){\r\n\t\tif(active){\r\n\t\t\treturn this.activeRows[position];\r\n\t\t}else{\r\n\t\t\treturn this.rows[position];\r\n\t\t}\r\n\t}\r\n\r\n\tscrollToRow(row, position, ifVisible){\r\n\t\treturn this.renderer.scrollToRowPosition(row, position, ifVisible);\r\n\t}\r\n\r\n\t////////////////// Data Handling //////////////////\r\n\tsetData(data, renderInPosition, columnsChanged){\r\n\t\treturn new Promise((resolve, reject)=>{\r\n\t\t\tif(renderInPosition && this.getDisplayRows().length){\r\n\t\t\t\tif(this.table.options.pagination){\r\n\t\t\t\t\tthis._setDataActual(data, true);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.reRenderInPosition(() => {\r\n\t\t\t\t\t\tthis._setDataActual(data);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(this.table.options.autoColumns && columnsChanged && this.table.initialized){\r\n\t\t\t\t\tthis.table.columnManager.generateColumnsFromRowData(data);\r\n\t\t\t\t}\r\n\t\t\t\tthis.resetScroll();\r\n\r\n\t\t\t\tthis._setDataActual(data);\r\n\t\t\t}\r\n\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\r\n\t_setDataActual(data, renderInPosition){\r\n\t\tthis.dispatchExternal(\"dataProcessing\", data);\r\n\r\n\t\tthis._wipeElements();\r\n\r\n\t\tif(Array.isArray(data)){\r\n\t\t\tthis.dispatch(\"data-processing\", data);\r\n\r\n\t\t\tdata.forEach((def, i) => {\r\n\t\t\t\tif(def && typeof def === \"object\"){\r\n\t\t\t\t\tvar row = new Row(def, this);\r\n\t\t\t\t\tthis.rows.push(row);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Data Loading Warning - Invalid row data detected and ignored, expecting object but received:\", def);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.refreshActiveData(false, false, renderInPosition);\r\n\r\n\t\t\tthis.dispatch(\"data-processed\", data);\r\n\t\t\tthis.dispatchExternal(\"dataProcessed\", data);\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Data Loading Error - Unable to process data due to invalid data type \\nExpecting: array \\nReceived: \", typeof data, \"\\nData: \", data);\r\n\t\t}\r\n\t}\r\n\r\n\t_wipeElements(){\r\n\t\tthis.dispatch(\"rows-wipe\");\r\n\r\n\t\tthis.rows.forEach((row) => {\r\n\t\t\trow.wipe();\r\n\t\t});\r\n\r\n\t\tthis.rows = [];\r\n\t\tthis.activeRows = [];\r\n\t\tthis.activeRowsPipeline = [];\r\n\t\tthis.activeRowsCount = 0;\r\n\t\tthis.displayRows = [];\r\n\t\tthis.displayRowsCount = 0;\r\n\r\n\t\tthis.adjustTableSize();\r\n\t}\r\n\r\n\tdeleteRow(row, blockRedraw){\r\n\t\tvar allIndex = this.rows.indexOf(row),\r\n\t\tactiveIndex = this.activeRows.indexOf(row);\r\n\r\n\t\tif(activeIndex > -1){\r\n\t\t\tthis.activeRows.splice(activeIndex, 1);\r\n\t\t}\r\n\r\n\t\tif(allIndex > -1){\r\n\t\t\tthis.rows.splice(allIndex, 1);\r\n\t\t}\r\n\r\n\t\tthis.setActiveRows(this.activeRows);\r\n\r\n\t\tthis.displayRowIterator((rows) => {\r\n\t\t\tvar displayIndex = rows.indexOf(row);\r\n\r\n\t\t\tif(displayIndex > -1){\r\n\t\t\t\trows.splice(displayIndex, 1);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(!blockRedraw){\r\n\t\t\tthis.reRenderInPosition();\r\n\t\t}\r\n\r\n\t\tthis.regenerateRowNumbers();\r\n\r\n\t\tthis.dispatchExternal(\"rowDeleted\", row.getComponent());\r\n\r\n\t\tif(!this.displayRowsCount){\r\n\t\t\tthis._showPlaceholder();\r\n\t\t}\r\n\r\n\t\tif(this.subscribedExternal(\"dataChanged\")){\r\n\t\t\tthis.dispatchExternal(\"dataChanged\", this.getData());\r\n\t\t}\r\n\t}\r\n\r\n\taddRow(data, pos, index, blockRedraw){\r\n\t\tvar row = this.addRowActual(data, pos, index, blockRedraw);\r\n\r\n\t\tthis.dispatch(\"row-added\", row, data, pos, index);\r\n\r\n\t\treturn row;\r\n\t}\r\n\r\n\t//add multiple rows\r\n\taddRows(data, pos, index){\r\n\t\tvar length = 0,\r\n\t\trows = [];\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tpos = this.findAddRowPos(pos);\r\n\r\n\t\t\tif(!Array.isArray(data)){\r\n\t\t\t\tdata = [data];\r\n\t\t\t}\r\n\r\n\t\t\tlength = data.length - 1;\r\n\r\n\t\t\tif((typeof index == \"undefined\" && pos) || (typeof index !== \"undefined\" && !pos)){\r\n\t\t\t\tdata.reverse();\r\n\t\t\t}\r\n\r\n\t\t\tdata.forEach((item, i) => {\r\n\t\t\t\tvar row = this.addRow(item, pos, index, true);\r\n\t\t\t\trows.push(row);\r\n\t\t\t\tthis.dispatch(\"row-added\", row, data, pos, index);\r\n\t\t\t});\r\n\r\n\t\t\tthis.refreshActiveData(false, false, true);\r\n\r\n\t\t\tthis.regenerateRowNumbers();\r\n\r\n\t\t\tif(rows.length){\r\n\t\t\t\tthis._clearPlaceholder();\r\n\t\t\t}\r\n\r\n\t\t\tresolve(rows);\r\n\t\t});\r\n\t}\r\n\r\n\tfindAddRowPos(pos){\r\n\t\tif(typeof pos === \"undefined\"){\r\n\t\t\tpos = this.table.options.addRowPos;\r\n\t\t}\r\n\r\n\t\tif(pos === \"pos\"){\r\n\t\t\tpos = true;\r\n\t\t}\r\n\r\n\t\tif(pos === \"bottom\"){\r\n\t\t\tpos = false;\r\n\t\t}\r\n\r\n\t\treturn pos;\r\n\t}\r\n\r\n\taddRowActual(data, pos, index, blockRedraw){\r\n\t\tvar row = data instanceof Row ? data : new Row(data || {}, this),\r\n\t\ttop = this.findAddRowPos(pos),\r\n\t\tallIndex = -1,\r\n\t\tactiveIndex, chainResult;\r\n\r\n\t\tif(!index){\r\n\t\t\tchainResult = this.chain(\"row-adding-position\", [row, top], null, {index, top});\r\n\r\n\t\t\tindex = chainResult.index;\r\n\t\t\ttop = chainResult.top;\r\n\t\t}\r\n\r\n\t\tif(typeof index !== \"undefined\"){\r\n\t\t\tindex = this.findRow(index);\r\n\t\t}\r\n\r\n\t\tindex = this.chain(\"row-adding-index\", [row, index, top], null, index);\r\n\r\n\t\tif(index){\r\n\t\t\tallIndex = this.rows.indexOf(index);\r\n\t\t}\r\n\r\n\t\tif(index && allIndex > -1){\r\n\t\t\tactiveIndex = this.activeRows.indexOf(index);\r\n\r\n\t\t\tthis.displayRowIterator(function(rows){\r\n\t\t\t\tvar displayIndex = rows.indexOf(index);\r\n\r\n\t\t\t\tif(displayIndex > -1){\r\n\t\t\t\t\trows.splice((top ? displayIndex : displayIndex + 1), 0, row);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(activeIndex > -1){\r\n\t\t\t\tthis.activeRows.splice((top ? activeIndex : activeIndex + 1), 0, row);\r\n\t\t\t}\r\n\r\n\t\t\tthis.rows.splice((top ? allIndex : allIndex + 1), 0, row);\r\n\r\n\t\t}else{\r\n\r\n\t\t\tif(top){\r\n\r\n\t\t\t\tthis.displayRowIterator(function(rows){\r\n\t\t\t\t\trows.unshift(row);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.activeRows.unshift(row);\r\n\t\t\t\tthis.rows.unshift(row);\r\n\t\t\t}else{\r\n\t\t\t\tthis.displayRowIterator(function(rows){\r\n\t\t\t\t\trows.push(row);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.activeRows.push(row);\r\n\t\t\t\tthis.rows.push(row);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setActiveRows(this.activeRows);\r\n\r\n\t\tthis.dispatchExternal(\"rowAdded\", row.getComponent());\r\n\r\n\t\tif(this.subscribedExternal(\"dataChanged\")){\r\n\t\t\tthis.dispatchExternal(\"dataChanged\", this.table.rowManager.getData());\r\n\t\t}\r\n\r\n\t\tif(!blockRedraw){\r\n\t\t\tthis.reRenderInPosition();\r\n\t\t}\r\n\r\n\t\treturn row;\r\n\t}\r\n\r\n\tmoveRow(from, to, after){\r\n\t\tthis.dispatch(\"row-move\", from, to, after);\r\n\r\n\t\tthis.moveRowActual(from, to, after);\r\n\r\n\t\tthis.regenerateRowNumbers();\r\n\r\n\t\tthis.dispatch(\"row-moved\", from, to, after);\r\n\t\tthis.dispatchExternal(\"rowMoved\", from.getComponent());\r\n\t}\r\n\r\n\tmoveRowActual(from, to, after){\r\n\t\tthis.moveRowInArray(this.rows, from, to, after);\r\n\t\tthis.moveRowInArray(this.activeRows, from, to, after);\r\n\r\n\t\tthis.displayRowIterator((rows) => {\r\n\t\t\tthis.moveRowInArray(rows, from, to, after);\r\n\t\t});\r\n\r\n\t\tthis.dispatch(\"row-moving\", from, to, after);\r\n\t}\r\n\r\n\tmoveRowInArray(rows, from, to, after){\r\n\t\tvar\tfromIndex, toIndex, start, end;\r\n\r\n\t\tif(from !== to){\r\n\r\n\t\t\tfromIndex = rows.indexOf(from);\r\n\r\n\t\t\tif (fromIndex > -1) {\r\n\r\n\t\t\t\trows.splice(fromIndex, 1);\r\n\r\n\t\t\t\ttoIndex = rows.indexOf(to);\r\n\r\n\t\t\t\tif (toIndex > -1) {\r\n\r\n\t\t\t\t\tif(after){\r\n\t\t\t\t\t\trows.splice(toIndex+1, 0, from);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\trows.splice(toIndex, 0, from);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}else{\r\n\t\t\t\t\trows.splice(fromIndex, 0, from);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//restyle rows\r\n\t\t\tif(rows === this.getDisplayRows()){\r\n\r\n\t\t\t\tstart = fromIndex < toIndex ? fromIndex : toIndex;\r\n\t\t\t\tend = toIndex > fromIndex ? toIndex : fromIndex +1;\r\n\r\n\t\t\t\tfor(let i = start; i <= end; i++){\r\n\t\t\t\t\tif(rows[i]){\r\n\t\t\t\t\t\tthis.styleRow(rows[i], i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tclearData(){\r\n\t\tthis.setData([]);\r\n\t}\r\n\r\n\tgetRowIndex(row){\r\n\t\treturn this.findRowIndex(row, this.rows);\r\n\t}\r\n\r\n\tgetDisplayRowIndex(row){\r\n\t\tvar index = this.getDisplayRows().indexOf(row);\r\n\t\treturn index > -1 ? index : false;\r\n\t}\r\n\r\n\tnextDisplayRow(row, rowOnly){\r\n\t\tvar index = this.getDisplayRowIndex(row),\r\n\t\tnextRow = false;\r\n\r\n\r\n\t\tif(index !== false && index < this.displayRowsCount -1){\r\n\t\t\tnextRow = this.getDisplayRows()[index+1];\r\n\t\t}\r\n\r\n\t\tif(nextRow && (!(nextRow instanceof Row) || nextRow.type != \"row\")){\r\n\t\t\treturn this.nextDisplayRow(nextRow, rowOnly);\r\n\t\t}\r\n\r\n\t\treturn nextRow;\r\n\t}\r\n\r\n\tprevDisplayRow(row, rowOnly){\r\n\t\tvar index = this.getDisplayRowIndex(row),\r\n\t\tprevRow = false;\r\n\r\n\t\tif(index){\r\n\t\t\tprevRow = this.getDisplayRows()[index-1];\r\n\t\t}\r\n\r\n\t\tif(rowOnly && prevRow && (!(prevRow instanceof Row) || prevRow.type != \"row\")){\r\n\t\t\treturn this.prevDisplayRow(prevRow, rowOnly);\r\n\t\t}\r\n\r\n\t\treturn prevRow;\r\n\t}\r\n\r\n\tfindRowIndex(row, list){\r\n\t\tvar rowIndex;\r\n\r\n\t\trow = this.findRow(row);\r\n\r\n\t\tif(row){\r\n\t\t\trowIndex = list.indexOf(row);\r\n\r\n\t\t\tif(rowIndex > -1){\r\n\t\t\t\treturn rowIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tgetData(active, transform){\r\n\t\tvar output = [],\r\n\t\trows = this.getRows(active);\r\n\r\n\t\trows.forEach(function(row){\r\n\t\t\tif(row.type == \"row\"){\r\n\t\t\t\toutput.push(row.getData(transform || \"data\"));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetComponents(active){\r\n\t\tvar\toutput = [],\r\n\t\trows = this.getRows(active);\r\n\r\n\t\trows.forEach(function(row){\r\n\t\t\toutput.push(row.getComponent());\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetDataCount(active){\r\n\t\tvar rows = this.getRows(active);\r\n\r\n\t\treturn rows.length;\r\n\t}\r\n\r\n\tscrollHorizontal(left){\r\n\t\tthis.scrollLeft = left;\r\n\t\tthis.element.scrollLeft = left;\r\n\r\n\t\tthis.dispatch(\"scroll-horizontal\", left);\r\n\t}\r\n\r\n\tregisterDataPipelineHandler(handler, priority){\r\n\t\tif(typeof priority !== \"undefined\"){\r\n\t\t\tthis.dataPipeline.push({handler, priority})\r\n\t\t\tthis.dataPipeline.sort((a, b) => {\r\n\t\t\t\treturn a.priority - b.priority;\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Data pipeline handlers must have a priority in order to be registered\")\r\n\t\t}\r\n\t}\r\n\r\n\tregisterDisplayPipelineHandler(handler, priority){\r\n\t\tif(typeof priority !== \"undefined\"){\r\n\t\t\tthis.displayPipeline.push({handler, priority})\r\n\t\t\tthis.displayPipeline.sort((a, b) => {\r\n\t\t\t\treturn a.priority - b.priority;\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Display pipeline handlers must have a priority in order to be registered\")\r\n\t\t}\r\n\t}\r\n\r\n\t//set active data set\r\n\trefreshActiveData(handler, skipStage, renderInPosition){\r\n\t\tvar table = this.table,\r\n\t\tstage = \"\",\r\n\t\tindex = 0,\r\n\t\tcascadeOrder = [\"all\", \"dataPipeline\", \"display\", \"displayPipeline\", \"end\"],\r\n\t\tdisplayIndex;\r\n\r\n\r\n\t\tif(typeof handler === \"function\"){\r\n\t\t\tindex = this.dataPipeline.findIndex((item) => {\r\n\t\t\t\treturn item.handler === handler;\r\n\t\t\t});\r\n\r\n\t\t\tif(index > -1){\r\n\t\t\t\tstage = \"dataPipeline\";\r\n\r\n\t\t\t\tif(skipStage){\r\n\t\t\t\t\tif(index == this.dataPipeline.length - 1){\r\n\t\t\t\t\t\tstage = \"display\";\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tindex++;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tindex = this.displayPipeline.findIndex((item) => {\r\n\t\t\t\t\treturn item.handler === handler;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\tstage = \"displayPipeline\";\r\n\r\n\t\t\t\t\tif(skipStage){\r\n\t\t\t\t\t\tif(index == this.displayPipeline.length - 1){\r\n\t\t\t\t\t\t\tstage = \"end\";\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tindex++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.error(\"Unable to refresh data, invalid handler provided\", handler)\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tstage = handler || \"all\";\r\n\t\t\tindex = 0;\r\n\t\t}\r\n\r\n\t\tif(this.redrawBlock){\r\n\t\t\tif(!this.redrawBlockRestoreConfig || (this.redrawBlockRestoreConfig && ((this.redrawBlockRestoreConfig.stage === stage && index < this.redrawBlockRestoreConfig.index) || (cascadeOrder.indexOf(stage) < cascadeOrder.indexOf(this.redrawBlockRestoreConfig.stage))))){\r\n\t\t\t\tthis.redrawBlockRestoreConfig = {\r\n\t\t\t\t\thandler: handler,\r\n\t\t\t\t\tskipStage: skipStage,\r\n\t\t\t\t\trenderInPosition: renderInPosition,\r\n\t\t\t\t\tstage:stage,\r\n\t\t\t\t\tindex:index,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}else{\r\n\t\t\tthis.dispatch(\"data-refeshing\");\r\n\r\n\t\t\tif(!handler){\r\n\t\t\t\tthis.activeRowsPipeline[0] = this.rows.slice(0);\r\n\t\t\t}\r\n\r\n\t\t\t//cascade through data refresh stages\r\n\t\t\tswitch(stage){\r\n\t\t\t\tcase \"all\":\r\n\t\t\t\t//handle case where alldata needs refreshing\r\n\r\n\t\t\t\tcase \"dataPipeline\":\r\n\r\n\t\t\t\tfor(let i = index; i < this.dataPipeline.length; i++){\r\n\t\t\t\t\tlet result = this.dataPipeline[i].handler(this.activeRowsPipeline[i].slice(0));\r\n\r\n\t\t\t\t\tthis.activeRowsPipeline[i + 1] = result || this.activeRowsPipeline[i].slice(0);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);\r\n\r\n\t\t\t\tthis.regenerateRowNumbers();\r\n\r\n\t\t\t\tcase \"display\":\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tthis.resetDisplayRows();\r\n\r\n\t\t\t\tcase \"displayPipeline\":\r\n\t\t\t\tfor(let i = index; i < this.displayPipeline.length; i++){\r\n\t\t\t\t\tlet result = this.displayPipeline[i].handler((i ? this.getDisplayRows(i - 1) : this.activeRows).slice(0), renderInPosition);\r\n\r\n\t\t\t\t\tthis.setDisplayRows(result || this.getDisplayRows(i - 1).slice(0), i);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcase \"end\":\r\n\t\t\t\t//case to handle scenario when trying to skip past end stage\r\n\t\t\t}\r\n\r\n\t\t\tif(Helpers.elVisible(this.element)){\r\n\t\t\t\tif(renderInPosition){\r\n\t\t\t\t\tthis.reRenderInPosition();\r\n\t\t\t\t}else{\r\n\r\n\t\t\t\t\tif(!handler){\r\n\t\t\t\t\t\tthis.table.columnManager.renderer.renderColumns();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.renderTable();\r\n\r\n\t\t\t\t\tif(table.options.layoutColumnsOnNewData){\r\n\t\t\t\t\t\tthis.table.columnManager.redraw(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatch(\"data-refeshed\");\r\n\t\t}\r\n\t}\r\n\r\n\t//regenerate row numbers for row number formatter if in use\r\n\tregenerateRowNumbers(){\r\n\t\tif(this.rowNumColumn){\r\n\t\t\tthis.activeRows.forEach((row) => {\r\n\t\t\t\tvar cell = row.getCell(this.rowNumColumn);\r\n\r\n\t\t\t\tif(cell){\r\n\t\t\t\t\tcell._generateContents();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsetActiveRows(activeRows){\r\n\t\tthis.activeRows = activeRows;\r\n\t\tthis.activeRowsCount = this.activeRows.length;\r\n\t}\r\n\r\n\t//reset display rows array\r\n\tresetDisplayRows(){\r\n\t\tthis.displayRows = [];\r\n\r\n\t\tthis.displayRows.push(this.activeRows.slice(0));\r\n\r\n\t\tthis.displayRowsCount = this.displayRows[0].length;\r\n\t}\r\n\r\n\tgetNextDisplayIndex(){\r\n\t\treturn this.displayRows.length;\r\n\t}\r\n\r\n\t//set display row pipeline data\r\n\tsetDisplayRows(displayRows, index){\r\n\r\n\t\tvar output = true;\r\n\r\n\t\tif(index && typeof this.displayRows[index] != \"undefined\"){\r\n\t\t\tthis.displayRows[index] = displayRows;\r\n\t\t\toutput = true;\r\n\t\t}else{\r\n\t\t\tthis.displayRows.push(displayRows)\r\n\t\t\toutput = index = this.displayRows.length -1;\r\n\t\t}\r\n\r\n\t\tif(index == this.displayRows.length -1){\r\n\t\t\tthis.displayRowsCount = this.displayRows[this.displayRows.length -1].length;\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetDisplayRows(index){\r\n\t\tif(typeof index == \"undefined\"){\r\n\t\t\treturn this.displayRows.length ? this.displayRows[this.displayRows.length -1] : [];\r\n\t\t}else{\r\n\t\t\treturn this.displayRows[index] || [];\r\n\t\t}\r\n\t}\r\n\r\n\tgetVisibleRows(viewable){\r\n\t\treturn this.renderer.visibleRows(!viewable);\r\n\t}\r\n\r\n\t//repeat action accross display rows\r\n\tdisplayRowIterator(callback){\r\n\t\tthis.activeRowsPipeline.forEach(callback);\r\n\t\tthis.displayRows.forEach(callback);\r\n\r\n\t\tthis.displayRowsCount = this.displayRows[this.displayRows.length -1].length;\r\n\t}\r\n\r\n\t//return only actual rows (not group headers etc)\r\n\tgetRows(type){\r\n\t\tvar rows;\r\n\r\n\t\tswitch(type){\r\n\t\t\tcase \"active\":\r\n\t\t\trows = this.activeRows;\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"display\":\r\n\t\t\trows = this.table.rowManager.getDisplayRows();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"visible\":\r\n\t\t\trows = this.getVisibleRows(true);\r\n\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\trows = this.chain(\"rows-retrieve\", type, null, this.rows) || this.rows;\r\n\t\t}\r\n\r\n\t\treturn rows;\r\n\t}\r\n\r\n\t///////////////// Table Rendering /////////////////\r\n\t//trigger rerender of table in current position\r\n\treRenderInPosition(callback){\r\n\t\tif(this.redrawBlock){\r\n\t\t\tif(callback){\r\n\t\t\t\tcallback();\r\n\t\t\t}else{\r\n\t\t\t\tthis.redrawBlockRederInPosition = true;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.renderer.rerenderRows(callback);\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeRenderer(){\r\n\t\tvar renderClass;\r\n\r\n\t\tvar renderers = {\r\n\t\t\t\"virtual\": RendererVirtualDomVertical,\r\n\t\t\t\"basic\": RendererBasicVertical,\r\n\t\t};\r\n\r\n\t\tif(typeof this.table.options.renderVertical === \"string\"){\r\n\t\t\trenderClass = renderers[this.table.options.renderVertical];\r\n\t\t}else{\r\n\t\t\trenderClass = this.table.options.renderVertical;\r\n\t\t}\r\n\r\n\t\tif(renderClass){\r\n\t\t\tthis.renderer = new renderClass(this.table, this.element, this.tableElement);\r\n\t\t\tthis.renderer.initialize();\r\n\r\n\t\t\tif((this.table.element.clientHeight || this.table.options.height)){\r\n\t\t\t\tthis.fixedHeight = true;\r\n\t\t\t}else{\r\n\t\t\t\tthis.fixedHeight = false;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Unable to find matching renderer:\", table.options.renderVertical);\r\n\t\t}\r\n\t}\r\n\r\n\tgetRenderMode(){\r\n\t\treturn this.renderMode;\r\n\t}\r\n\r\n\trenderTable(){\r\n\t\tthis.dispatchExternal(\"renderStarted\");\r\n\r\n\t\tthis.element.scrollTop = 0;\r\n\r\n\t\tthis._clearTable();\r\n\r\n\t\tif(this.displayRowsCount){\r\n\t\t\tthis.renderer.renderRows();\r\n\r\n\t\t\tif(this.firstRender){\r\n\t\t\t\tthis.firstRender = false;\r\n\t\t\t\tthis.layoutRefresh();\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.renderEmptyScroll();\r\n\t\t}\r\n\r\n\t\tif(!this.fixedHeight){\r\n\t\t\tthis.adjustTableSize();\r\n\t\t}\r\n\r\n\t\tthis.dispatch(\"table-layout\");\r\n\r\n\t\tif(!this.displayRowsCount){\r\n\t\t\tthis._showPlaceholder();\r\n\t\t}\r\n\r\n\t\tthis.dispatchExternal(\"renderComplete\");\r\n\t}\r\n\r\n\t//show scrollbars on empty table div\r\n\trenderEmptyScroll(){\r\n\t\tif(this.table.options.placeholder){\r\n\t\t\tthis.tableElement.style.display = \"none\";\r\n\t\t}else{\r\n\t\t\tthis.tableElement.style.minWidth = this.table.columnManager.getWidth() + \"px\";\r\n\t\t\t// this.tableElement.style.minHeight = \"1px\";\r\n\t\t\t// this.tableElement.style.visibility = \"hidden\";\r\n\t\t}\r\n\t}\r\n\r\n\t_clearTable(){\r\n\t\tvar element = this.tableElement;\r\n\r\n\t\tthis._clearPlaceholder();\r\n\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\r\n\t\tthis.renderer.clearRows();\r\n\t}\r\n\r\n\t_showPlaceholder(){\r\n\t\tif(this.table.options.placeholder){\r\n\r\n\t\t\tthis.table.options.placeholder.setAttribute(\"tabulator-render-mode\", this.renderMode);\r\n\r\n\t\t\tthis.getElement().appendChild(this.table.options.placeholder);\r\n\t\t\tthis.table.options.placeholder.style.width = this.table.columnManager.getWidth() + \"px\";\r\n\t\t}\r\n\t}\r\n\r\n\t_clearPlaceholder(){\r\n\t\tif(this.table.options.placeholder && this.table.options.placeholder.parentNode){\r\n\t\t\tthis.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);\r\n\t\t}\r\n\t}\r\n\r\n\tstyleRow(row, index){\r\n\t\tvar rowEl = row.getElement();\r\n\r\n\t\tif(index % 2){\r\n\t\t\trowEl.classList.add(\"tabulator-row-even\");\r\n\t\t\trowEl.classList.remove(\"tabulator-row-odd\");\r\n\t\t}else{\r\n\t\t\trowEl.classList.add(\"tabulator-row-odd\");\r\n\t\t\trowEl.classList.remove(\"tabulator-row-even\");\r\n\t\t}\r\n\t}\r\n\r\n\t//normalize height of active rows\r\n\tnormalizeHeight(){\r\n\t\tthis.activeRows.forEach(function(row){\r\n\t\t\trow.normalizeHeight();\r\n\t\t});\r\n\t}\r\n\r\n\t//adjust the height of the table holder to fit in the Tabulator element\r\n\tadjustTableSize(){\r\n\t\tvar initialHeight = this.element.clientHeight,\r\n\t\tmodExists;\r\n\r\n\t\tif(this.renderer.verticalFillMode === \"fill\"){\r\n\t\t\tlet otherHeight = Math.floor(this.table.columnManager.getElement().getBoundingClientRect().height + (this.table.footerManager && this.table.footerManager.active && !this.table.footerManager.external ? this.table.footerManager.getElement().getBoundingClientRect().height : 0));\r\n\r\n\t\t\tif(this.fixedHeight){\r\n\t\t\t\tthis.element.style.minHeight = \"calc(100% - \" + otherHeight + \"px)\";\r\n\t\t\t\tthis.element.style.height = \"calc(100% - \" + otherHeight + \"px)\";\r\n\t\t\t\tthis.element.style.maxHeight = \"calc(100% - \" + otherHeight + \"px)\";\r\n\t\t\t}else{\r\n\t\t\t\tthis.element.style.height = \"\";\r\n\t\t\t\tthis.element.style.height = (this.table.element.clientHeight - otherHeight) + \"px\";\r\n\t\t\t\tthis.element.scrollTop = this.scrollTop;\r\n\t\t\t}\r\n\r\n\t\t\tthis.renderer.resize();\r\n\r\n\t\t\t//check if the table has changed size when dealing with variable height tables\r\n\t\t\tif(!this.fixedHeight && initialHeight != this.element.clientHeight){\r\n\t\t\t\tif(this.subscribed(\"table-resize\")){\r\n\t\t\t\t\tthis.dispatch(\"table-resize\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//renitialize all rows\r\n\treinitialize(){\r\n\t\tthis.rows.forEach(function(row){\r\n\t\t\trow.reinitialize(true);\r\n\t\t});\r\n\t}\r\n\r\n\t//prevent table from being redrawn\r\n\tblockRedraw (){\r\n\t\tthis.redrawBlock = true;\r\n\t\tthis.redrawBlockRestoreConfig = false;\r\n\t}\r\n\r\n\t//restore table redrawing\r\n\trestoreRedraw (){\r\n\t\tthis.redrawBlock = false;\r\n\r\n\t\tif(this.redrawBlockRestoreConfig){\r\n\t\t\tthis.refreshActiveData(this.redrawBlockRestoreConfig.handler, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition)\r\n\r\n\t\t\tthis.redrawBlockRestoreConfig = false;\r\n\t\t}else{\r\n\t\t\tif(this.redrawBlockRederInPosition){\r\n\t\t\t\tthis.reRenderInPosition();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.redrawBlockRederInPosition = false;\r\n\t}\r\n\r\n\t//redraw table\r\n\tredraw (force){\r\n\t\tvar pos = 0,\r\n\t\tleft = this.scrollLeft;\r\n\r\n\t\tthis.adjustTableSize();\r\n\r\n\t\tthis.table.tableWidth = this.table.element.clientWidth;\r\n\r\n\t\tif(!force){\r\n\t\t\tthis.reRenderInPosition();\r\n\t\t\tthis.scrollHorizontal(left);\r\n\r\n\t\t\tif(!this.displayRowsCount){\r\n\t\t\t\tif(this.table.options.placeholder){\r\n\t\t\t\t\tthis.getElement().appendChild(this.table.options.placeholder);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.renderTable();\r\n\t\t}\r\n\t}\r\n\r\n\tresetScroll(){\r\n\t\tthis.element.scrollLeft = 0;\r\n\t\tthis.element.scrollTop = 0;\r\n\r\n\t\tif(this.table.browser === \"ie\"){\r\n\t\t\tvar event = document.createEvent(\"Event\");\r\n\t\t\tevent.initEvent(\"scroll\", false, true);\r\n\t\t\tthis.element.dispatchEvent(event);\r\n\t\t}else{\r\n\t\t\tthis.element.dispatchEvent(new Event('scroll'));\r\n\t\t}\r\n\t}\r\n}","import CoreFeature from './CoreFeature.js';\r\n\r\nexport default class FooterManager extends CoreFeature{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.active = false;\r\n\t\tthis.element = this.createElement(); //containing element\r\n\t\tthis.external = false;\r\n\t\tthis.links = [];\r\n\r\n\t\tthis.initializeElement();\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.initializeElement();\r\n\t}\r\n\r\n\tcreateElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-footer\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tinitializeElement(){\r\n\t\tif(this.table.options.footerElement){\r\n\r\n\t\t\tswitch(typeof this.table.options.footerElement){\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\tif(this.table.options.footerElement[0] === \"<\"){\r\n\t\t\t\t\tthis.element.innerHTML = this.table.options.footerElement;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.external = true;\r\n\t\t\t\t\tthis.element = document.querySelector(this.table.options.footerElement);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\tthis.element = this.table.options.footerElement;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetElement(){\r\n\t\treturn this.element;\r\n\t}\r\n\r\n\tappend(element, parent){\r\n\t\tthis.activate(parent);\r\n\r\n\t\tthis.element.appendChild(element);\r\n\t\tthis.table.rowManager.adjustTableSize();\r\n\t}\r\n\r\n\tprepend(element, parent){\r\n\t\tthis.activate(parent);\r\n\r\n\t\tthis.element.insertBefore(element, this.element.firstChild);\r\n\t\tthis.table.rowManager.adjustTableSize();\r\n\t}\r\n\r\n\tremove(element){\r\n\t\telement.parentNode.removeChild(element);\r\n\t\tthis.deactivate();\r\n\t}\r\n\r\n\tdeactivate(force){\r\n\t\tif(!this.element.firstChild || force){\r\n\t\t\tif(!this.external){\r\n\t\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t\t}\r\n\t\t\tthis.active = false;\r\n\t\t}\r\n\t}\r\n\r\n\tactivate(parent){\r\n\t\tif(!this.active){\r\n\t\t\tthis.active = true;\r\n\t\t\tif(!this.external){\r\n\t\t\t\tthis.table.element.appendChild(this.getElement());\r\n\t\t\t\tthis.table.element.style.display = '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(parent){\r\n\t\t\tthis.links.push(parent);\r\n\t\t}\r\n\t}\r\n\r\n\tredraw(){\r\n\t\tthis.links.forEach(function(link){\r\n\t\t\tlink.footerRedraw();\r\n\t\t});\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\nimport Helpers from './Helpers.js';\r\n\r\nexport default class InteractionManager extends CoreFeature {\r\n\r\n\tconstructor (table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.el = this.table.element;\r\n\r\n\t\tthis.abortClasses = [\"tabulator-headers\", \"tabulator-table\"];\r\n\r\n\t\tthis.previousTargets = {};\r\n\r\n\t\tthis.listeners = [\r\n\t\t\"click\",\r\n\t\t\"dblclick\",\r\n\t\t\"contextmenu\",\r\n\t\t\"mouseenter\",\r\n\t\t\"mouseleave\",\r\n\t\t\"mouseover\",\r\n\t\t\"mouseout\",\r\n\t\t\"mousemove\",\r\n\t\t\"touchstart\",\r\n\t\t\"touchend\",\r\n\t\t];\r\n\r\n\t\tthis.componentMap = {\r\n\t\t\t\"tabulator-cell\":\"cell\",\r\n\t\t\t\"tabulator-row\":\"row\",\r\n\t\t\t\"tabulator-group\":\"group\",\r\n\t\t\t\"tabulator-col\":\"column\",\r\n\t\t};\r\n\r\n\t\tthis.buildListenerMap();\r\n\t\tthis.bindSubscriptionWatchers();\r\n\t}\r\n\r\n\tbuildListenerMap(){\r\n\t\tvar listenerMap = {};\r\n\r\n\t\tthis.listeners.forEach((listener) => {\r\n\t\t\tlistenerMap[listener] = {\r\n\t\t\t\thandler:null,\r\n\t\t\t\tcomponents:[],\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.listeners = listenerMap;\r\n\t}\r\n\r\n\tbindSubscriptionWatchers(){\r\n\t\tvar listeners = Object.keys(this.listeners),\r\n\t\tcomponents = Object.values(this.componentMap);\r\n\r\n\t\tfor(let comp of components){\r\n\t\t\tfor(let listener of listeners){\r\n\t\t\t\tlet key = comp + \"-\" + listener;\r\n\r\n\t\t\t\tthis.subscriptionChange(key, this.subscriptionChanged.bind(this, comp, listener));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsubscriptionChanged(component, key, added){\r\n\t\tvar listener = this.listeners[key].components,\r\n\t\tindex = listener.indexOf(component),\r\n\t\tchanged = false;\r\n\r\n\t\tif(added){\r\n\t\t\tif(index === -1){\r\n\t\t\t\tlistener.push(component);\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(!this.subscribed(component + \"-\" + key)){\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\tlistener.splice(index, 1);\r\n\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(changed){\r\n\t\t\tthis.updateEventListeners();\r\n\t\t}\r\n\t}\r\n\r\n\tupdateEventListeners(){\r\n\t\tfor(let key in this.listeners){\r\n\t\t\tlet listener = this.listeners[key];\r\n\r\n\t\t\tif(listener.components.length){\r\n\t\t\t\tif(!listener.handler){\r\n\t\t\t\t\tlistener.handler = this.track.bind(this, key);\r\n\t\t\t\t\tthis.el.addEventListener(key, listener.handler)\r\n\t\t\t\t\t// this.el.addEventListener(key, listener.handler, {passive: true})\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(listener.handler){\r\n\t\t\t\t\tthis.el.removeEventListener(key, listener.handler)\r\n\t\t\t\t\tlistener.handler = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\ttrack(type, e){\r\n\t\tvar path = (e.composedPath && e.composedPath()) || e.path;\r\n\t\tvar targets = this.findTargets(path);\r\n\t\ttargets = this.bindComponents(type, targets);\r\n\t\tthis.triggerEvents(type, e, targets);\r\n\t}\r\n\r\n\tfindTargets(path){\r\n\t\tvar targets = {};\r\n\r\n\t\tlet componentMap = Object.keys(this.componentMap);\r\n\r\n\t\tfor (let el of path) {\r\n\t\t\tlet classList = el.classList ? [...el.classList] : [];\r\n\r\n\t\t\tlet abort = classList.filter((item) => {\r\n\t\t\t\treturn this.abortClasses.includes(item);\r\n\t\t\t})\r\n\r\n\t\t\tif(abort.length){\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tlet elTargets = classList.filter((item) => {\r\n\t\t\t\treturn componentMap.includes(item);\r\n\t\t\t})\r\n\r\n\t\t\tfor (let target of elTargets) {\r\n\t\t\t\ttargets[this.componentMap[target]] = el;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(targets.group && targets.group === targets.row){\r\n\t\t\tdelete targets.row;\r\n\t\t}\r\n\r\n\t\treturn targets;\r\n\t}\r\n\r\n\tbindComponents(type, targets){\r\n\t\t//ensure row component is looked up before cell\r\n\t\tvar keys = Object.keys(targets).reverse(),\r\n\t\tlistener = this.listeners[type],\r\n\t\ttargetMatches = {};\r\n\r\n\t\tfor(let key of keys){\r\n\t\t\tlet component;\r\n\t\t\tlet target = targets[key];\r\n\t\t\tlet previousTarget = this.previousTargets[key];\r\n\r\n\t\t\tif(previousTarget && previousTarget.target === target){\r\n\t\t\t\tcomponent = previousTarget.component;\r\n\t\t\t}else{\r\n\t\t\t\tswitch(key){\r\n\t\t\t\t\tcase \"row\":\r\n\t\t\t\t\tcase \"group\":\r\n\t\t\t\t\tif(listener.components.includes(\"row\") || listener.components.includes(\"cell\")){\r\n\t\t\t\t\t\tlet rows = this.table.rowManager.getVisibleRows();\r\n\r\n\t\t\t\t\t\tcomponent = rows.find((row) => {\r\n\t\t\t\t\t\t\treturn row.getElement() === target;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"column\":\r\n\t\t\t\t\tif(listener.components.includes(\"column\")){\r\n\t\t\t\t\t\tcomponent = this.table.columnManager.findColumn(target);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\r\n\t\t\t\t\tcase \"cell\":\r\n\t\t\t\t\tif(listener.components.includes(\"cell\")){\r\n\t\t\t\t\t\tcomponent = targets[\"row\"].findCell(target);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(component){\r\n\t\t\t\ttargets[key] = component;\r\n\t\t\t\ttargetMatches[key] = {\r\n\t\t\t\t\ttarget:target,\r\n\t\t\t\t\tcomponent:component,\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.previousTargets = targetMatches;\r\n\r\n\t\treturn targets;\r\n\t}\r\n\r\n\ttriggerEvents(type, e, targets){\r\n\t\tvar listener = this.listeners[type];\r\n\r\n\t\tfor(let key in targets){\r\n\t\t\tif(targets[key] && listener.components.includes(key)){\r\n\t\t\t\tthis.dispatch(key + \"-\" + type, e, targets[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","export default class ComponentFuctionBinder{\r\n\r\n\tconstructor(table){\r\n\t\tthis.table = table;\r\n\r\n\t\tthis.bindings = {};\r\n\t}\r\n\r\n\tbind(type, funcName, handler){\r\n\t\tif(!this.bindings[type]){\r\n\t\t\tthis.bindings[type] = {};\r\n\t\t}\r\n\r\n\t\tif(this.bindings[type][funcName]){\r\n\t\t\tconsole.warn(\"Unable to bind component handler, a matching function name is already bound\", type, funcName, hanlder)\r\n\t\t}else{\r\n\t\t\tthis.bindings[type][funcName] = handler;\r\n\t\t}\r\n\t}\r\n\r\n\thandle(type, component, name){\r\n\t\tif(this.bindings[type] && this.bindings[type][name]){\r\n\t\t\treturn this.bindings[type][name].bind(null, component);\r\n\t\t}else{\r\n\t\t\tif(name !== \"then\" && typeof name === \"string\" && !name.startsWith(\"_\")){\r\n\t\t\t\t\tconsole.error(\"The \" + type + \" component does not have a \" + name + \" function, have you checked that you have the correct Tabulator module installed?\")\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\n\r\nexport default class DataLoader extends CoreFeature{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.loaderElement = this.createLoaderElement(); //loader message div\r\n\t\tthis.msgElement = this.createMsgElement(); //message element\r\n\t\tthis.loadingElement = null;\r\n\t\tthis.errorElement = null;\r\n\r\n\t\tthis.requestOrder = 0; //prevent requests comming out of sequence if overridden by another load request\r\n\t\tthis.loading = false;\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tvar template;\r\n\r\n\t\tthis.loaderElement.appendChild(this.msgElement);\r\n\r\n\t\tif(this.table.options.dataLoaderLoading){\r\n\t\t\tif(typeof this.table.options.dataLoaderLoading == \"string\"){\r\n\t\t\t\ttemplate = document.createElement('template');\r\n\t\t\t\ttemplate.innerHTML = this.table.options.dataLoaderLoading.trim();\r\n\t\t\t\tthis.loadingElement = template.firstElementChild;\r\n\t\t\t}else{\r\n\t\t\t\tthis.loadingElement = this.table.options.dataLoaderLoading;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(this.table.options.dataLoaderError){\r\n\t\t\tif(typeof this.table.options.dataLoaderError == \"string\"){\r\n\t\t\t\ttemplate = document.createElement('template');\r\n\t\t\t\ttemplate.innerHTML = this.table.options.dataLoaderError.trim();\r\n\t\t\t\tthis.errorElement = template.firstElementChild;\r\n\t\t\t}else{\r\n\t\t\t\tthis.errorElement = this.table.options.dataLoaderError;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcreateLoaderElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\tel.classList.add(\"tabulator-loader\");\r\n\t\treturn el;\r\n\t}\r\n\r\n\tcreateMsgElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-loader-msg\");\r\n\t\tel.setAttribute(\"role\", \"alert\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tload(data, params, config, replace, silent){\r\n\t\tvar requestNo = ++this.requestOrder;\r\n\r\n\t\tthis.dispatchExternal(\"dataLoading\", data);\r\n\r\n\t\t//parse json data to array\r\n\t\tif (data && (data.indexOf(\"{\") == 0 || data.indexOf(\"[\") == 0)){\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\r\n\t\tif(this.confirm(\"data-loading\", data, params, config, silent)){\r\n\t\t\tthis.loading = true;\r\n\r\n\t\t\tif(!silent){\r\n\t\t\t\tthis.showLoader();\r\n\t\t\t}\r\n\r\n\t\t\t//get params for request\r\n\t\t\tvar params = this.chain(\"data-params\", [data, config, silent], params || {}, {});\r\n\r\n\t\t\tparams = this.mapParams(params, this.table.options.dataSendParams);\r\n\r\n\t\t\tvar result = this.chain(\"data-load\", [data, params, config, silent], Promise.resolve([]));\r\n\r\n\t\t\treturn result.then((response) => {\r\n\t\t\t\tif(!Array.isArray(response) && typeof response == \"object\"){\r\n\t\t\t\t\tresponse = this.mapParams(response, this.objectInvert(this.table.options.dataReceiveParams));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar rowData = this.chain(\"data-loaded\", response, null, response);\r\n\r\n\t\t\t\tif(requestNo == this.requestOrder){\r\n\t\t\t\t\tthis.hideLoader();\r\n\r\n\t\t\t\t\tif(rowData !== false){\r\n\t\t\t\t\t\tthis.dispatchExternal(\"dataLoaded\", rowData);\r\n\t\t\t\t\t\tthis.table.rowManager.setData(rowData, replace, !replace);\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Data Load Response Blocked - An active data load request was blocked by an attempt to change table data while the request was being made\");\r\n\t\t\t\t}\r\n\t\t\t}).catch((error) => {\r\n\t\t\t\tconsole.error(\"Data Load Error: \", error);\r\n\t\t\t\tthis.dispatchExternal(\"dataLoadError\", error);\r\n\r\n\t\t\t\tif(!silent){\r\n\t\t\t\t\tthis.showError();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.hideLoader();\r\n\t\t\t\t}, 3000);\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\tthis.dispatchExternal(\"dataLoaded\", data);\r\n\r\n\t\t\tif(!data){\r\n\t\t\t\tdata = [];\r\n\t\t\t}\r\n\r\n\t\t\tthis.table.rowManager.setData(data, replace, !replace);\r\n\t\t\treturn Promise.resolve();\r\n\t\t}\r\n\t}\r\n\r\n\tmapParams(params, map){\r\n\t\tvar output = {};\r\n\r\n\t\tfor(let key in params){\r\n\t\t\toutput[map.hasOwnProperty(key) ? map[key] : key] = params[key];\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tobjectInvert(obj){\r\n\t\tvar output = {};\r\n\r\n\t\tfor(let key in obj){\r\n\t\t\toutput[obj[key]] = key;\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tblockActiveLoad(){\r\n\t\tthis.requestOrder++;\r\n\t}\r\n\r\n\tshowLoader(){\r\n\t\tvar shouldLoad = typeof this.table.options.dataLoader === \"function\" ? this.table.options.dataLoader() : this.table.options.dataLoader;\r\n\r\n\t\tif(shouldLoad){\r\n\t\t\tthis.hideLoader();\r\n\r\n\t\t\twhile(this.msgElement.firstChild) this.msgElement.removeChild(this.msgElement.firstChild);\r\n\r\n\t\t\tthis.msgElement.classList.remove(\"tabulator-error\");\r\n\t\t\tthis.msgElement.classList.add(\"tabulator-loading\");\r\n\r\n\t\t\tif(this.loadingElement){\r\n\t\t\t\tthis.msgElement.appendChild(this.loadingElement);\r\n\t\t\t}else{\r\n\t\t\t\tthis.msgElement.innerHTML = this.langText(\"data|loading\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.table.element.appendChild(this.loaderElement);\r\n\t\t}\r\n\t}\r\n\r\n\tshowError(){\r\n\t\tthis.hideLoader();\r\n\r\n\t\twhile(this.msgElement.firstChild) this.msgElement.removeChild(this.msgElement.firstChild);\r\n\t\tthis.msgElement.classList.remove(\"tabulator-loading\");\r\n\t\tthis.msgElement.classList.add(\"tabulator-error\");\r\n\r\n\t\tif(this.errorElement){\r\n\t\t\tthis.msgElement.appendChild(this.errorElement);\r\n\t\t}else{\r\n\t\t\tthis.msgElement.innerHTML = this.langText(\"data|error\");\r\n\t\t}\r\n\r\n\t\tthis.table.element.appendChild(this.loaderElement);\r\n\t}\r\n\r\n\r\n\thideLoader(){\r\n\t\tif(this.loaderElement.parentNode){\r\n\t\t\tthis.loaderElement.parentNode.removeChild(this.loaderElement);\r\n\t\t}\r\n\t}\r\n}","export default class ExternalEventBus {\r\n\r\n\tconstructor(table, optionsList, debug){\r\n\t\tthis.table = table;\r\n\t\tthis.events = {};\r\n\t\tthis.optionsList = optionsList || {};\r\n\t\tthis.subscriptionNotifiers = {};\r\n\r\n\t\tthis.dispatch = debug ? this._debugDispatch.bind(this) : this._dispatch.bind(this);\r\n\t\tthis.debug = debug;\r\n\t}\r\n\r\n\tsubscriptionChange(key, callback){\r\n\t\tif(!this.subscriptionNotifiers[key]){\r\n\t\t\tthis.subscriptionNotifiers[key] = [];\r\n\t\t}\r\n\r\n\t\tthis.subscriptionNotifiers[key].push(callback);\r\n\r\n\t\tif(this.subscribed(key)){\r\n\t\t\tthis._notifiySubscriptionChange(key, true);\r\n\t\t}\r\n\t}\r\n\r\n\tsubscribe(key, callback){\r\n\t\tif(!this.events[key]){\r\n\t\t\tthis.events[key] = [];\r\n\t\t}\r\n\r\n\t\tthis.events[key].push(callback);\r\n\r\n\t\tthis._notifiySubscriptionChange(key, true);\r\n\t}\r\n\r\n\tunsubscribe(key, callback){\r\n\t\tvar index;\r\n\r\n\t\tif(this.events[key]){\r\n\t\t\tif(callback){\r\n\t\t\t\tindex = this.events[key].findIndex((item) => {\r\n\t\t\t\t\treturn item === callback;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\tthis.events[key].splice(index, 1);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Cannot remove event, no matching event found:\", key, callback);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tdelete this.events[key];\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Cannot remove event, no events set on:\", key);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._notifiySubscriptionChange(key, false);\r\n\t}\r\n\r\n\tsubscribed(key){\r\n\t\treturn this.events[key] && this.events[key].length;\r\n\t}\r\n\r\n\t_notifiySubscriptionChange(key, subscribed){\r\n\t\tvar notifiers = this.subscriptionNotifiers[key];\r\n\r\n\t\tif(notifiers){\r\n\t\t\tnotifiers.forEach((callback)=>{\r\n\t\t\t\tcallback(subscribed);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t_dispatch(){\r\n\t\tvar args = Array.from(arguments),\r\n\t\tkey = args.shift(),\r\n\t\tresult;\r\n\r\n\t\tif(this.events[key]){\r\n\t\t\tthis.events[key].forEach((callback, i) => {\r\n\t\t\t\tlet callResult = callback.apply(this.table, args);\r\n\r\n\t\t\t\tif(!i){\r\n\t\t\t\t\tresult = callResult;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t_debugDispatch(){\r\n\t\tvar args = Array.from(arguments),\r\n\t\tkey = args[0];\r\n\r\n\t\targs[0] = \"ExternalEvent:\" + args[0];\r\n\r\n\t\tif(this.debug === true || this.debug.includes(key)){\r\n\t\t\tconsole.log(...args);\r\n\t\t}\r\n\r\n\t\treturn this._dispatch(...arguments)\r\n\t}\r\n}","export default class InternalEventBus {\r\n\r\n\tconstructor(debug){\r\n\t\tthis.events = {};\r\n\t\tthis.subscriptionNotifiers = {};\r\n\r\n\t\tthis.dispatch = debug ? this._debugDispatch.bind(this) : this._dispatch.bind(this);\r\n\t\tthis.chain = debug ? this._debugChain.bind(this) : this._chain.bind(this);\r\n\t\tthis.confirm = debug ? this._debugConfirm.bind(this) : this._confirm.bind(this);\r\n\t\tthis.debug = debug;\r\n\t}\r\n\r\n\tsubscriptionChange(key, callback){\r\n\t\tif(!this.subscriptionNotifiers[key]){\r\n\t\t\tthis.subscriptionNotifiers[key] = [];\r\n\t\t}\r\n\r\n\t\tthis.subscriptionNotifiers[key].push(callback);\r\n\r\n\t\tif(this.subscribed(key)){\r\n\t\t\tthis._notifiySubscriptionChange(key, true);\r\n\t\t}\r\n\t}\r\n\r\n\tsubscribe(key, callback, priority = 10000){\r\n\t\tif(!this.events[key]){\r\n\t\t\tthis.events[key] = [];\r\n\t\t}\r\n\r\n\t\tthis.events[key].push({callback, priority});\r\n\r\n\t\tthis.events[key].sort((a, b) => {\r\n\t\t\treturn a.priority - b.priority;\r\n\t\t});\r\n\r\n\t\tthis._notifiySubscriptionChange(key, true);\r\n\t}\r\n\r\n\tunsubscribe(key, callback){\r\n\t\tvar index;\r\n\r\n\t\tif(this.events[key]){\r\n\t\t\tif(callback){\r\n\t\t\t\tindex = this.events[key].findIndex((item) => {\r\n\t\t\t\t\treturn item.callback === callback;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\tthis.events[key].splice(index, 1);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Cannot remove event, no matching event found:\", key, callback);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Cannot remove event, no events set on:\", key);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._notifiySubscriptionChange(key, false);\r\n\t}\r\n\r\n\tsubscribed(key){\r\n\t\treturn this.events[key] && this.events[key].length;\r\n\t}\r\n\r\n\t_chain(key, args, initialValue, fallback){\r\n\t\tvar value = initialValue;\r\n\r\n\t\tif(!Array.isArray(args)){\r\n\t\t\targs = [args];\r\n\t\t}\r\n\r\n\t\tif(this.subscribed(key)){\r\n\t\t\tthis.events[key].forEach((subscriber, i) => {\r\n\t\t\t\tvalue = subscriber.callback.apply(this, args.concat([value]));\r\n\t\t\t});\r\n\r\n\t\t\treturn value;\r\n\t\t}else{\r\n\t\t\treturn typeof fallback === \"function\" ? fallback() : fallback;\r\n\t\t}\r\n\t}\r\n\r\n\t_confirm(key, args){\r\n\t\tvar confirmed = false;\r\n\r\n\t\tif(!Array.isArray(args)){\r\n\t\t\targs = [args];\r\n\t\t}\r\n\r\n\t\tif(this.subscribed(key)){\r\n\t\t\tthis.events[key].forEach((subscriber, i) => {\r\n\t\t\t\tif(subscriber.callback.apply(this, args)){\r\n\t\t\t\t\tconfirmed = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn confirmed;\r\n\t}\r\n\r\n\t_notifiySubscriptionChange(key, subscribed){\r\n\t\tvar notifiers = this.subscriptionNotifiers[key];\r\n\r\n\t\tif(notifiers){\r\n\t\t\tnotifiers.forEach((callback)=>{\r\n\t\t\t\tcallback(subscribed);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t_dispatch(){\r\n\t\tvar args = Array.from(arguments),\r\n\t\tkey = args.shift();\r\n\r\n\t\tif(this.events[key]){\r\n\t\t\tthis.events[key].forEach((subscriber) => {\r\n\t\t\t\tlet callResult = subscriber.callback.apply(this, args);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t_debugDispatch(){\r\n\t\tvar args = Array.from(arguments),\r\n\t\tkey = args[0];\r\n\r\n\t\targs[0] = \"InternalEvent:\" + key;\r\n\r\n\t\tif(this.debug === true || this.debug.includes(key)){\r\n\t\t\tconsole.log(...args);\r\n\t\t}\r\n\r\n\t\treturn this._dispatch(...arguments);\r\n\t}\r\n\r\n\t_debugChain(){\r\n\t\tvar args = Array.from(arguments),\r\n\t\tkey = args[0];\r\n\r\n\t\targs[0] = \"InternalEvent:\" + key;\r\n\r\n\t\tif(this.debug === true || this.debug.includes(key)){\r\n\t\t\tconsole.log(...args);\r\n\t\t}\r\n\r\n\t\treturn this._chain(...arguments);\r\n\t}\r\n\r\n\t_debugConfirm(){\r\n\t\tvar args = Array.from(arguments),\r\n\t\tkey = args[0];\r\n\r\n\t\targs[0] = \"InternalEvent:\" + key;\r\n\r\n\t\tif(this.debug === true || this.debug.includes(key)){\r\n\t\t\tconsole.log(...args);\r\n\t\t}\r\n\r\n\t\treturn this._confirm(...arguments);\r\n\t}\r\n}","import Tabulator from '../Tabulator.js';\r\n\r\nclass TableRegistry {\r\n\r\n\tstatic register(table){\r\n\t\tTableRegistry.tables.push(table);\r\n\t}\r\n\r\n\tstatic deregister(table){\r\n\t\tvar index = TableRegistry.tables.indexOf(table);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tTableRegistry.tables.splice(index, 1);\r\n\t\t}\r\n\t}\r\n\r\n\tstatic lookupTable(query, silent){\r\n\t\tvar results = [],\r\n\t\tmatches, match;\r\n\r\n\t\tif(typeof query === \"string\"){\r\n\t\t\tmatches = document.querySelectorAll(query);\r\n\r\n\t\t\tif(matches.length){\r\n\t\t\t\tfor(var i = 0; i < matches.length; i++){\r\n\t\t\t\t\tmatch = TableRegistry.matchElement(matches[i]);\r\n\r\n\t\t\t\t\tif(match){\r\n\t\t\t\t\t\tresults.push(match);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}else if((typeof HTMLElement !== \"undefined\" && query instanceof HTMLElement) || query instanceof Tabulator){\r\n\t\t\tmatch = TableRegistry.matchElement(query);\r\n\r\n\t\t\tif(match){\r\n\t\t\t\tresults.push(match);\r\n\t\t\t}\r\n\t\t}else if(Array.isArray(query)){\r\n\t\t\tquery.forEach(function(item){\r\n\t\t\t\tresults = results.concat(TableRegistry.lookupTable(item));\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tif(!silent){\r\n\t\t\t\tconsole.warn(\"Table Connection Error - Invalid Selector\", query);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn results;\r\n\t}\r\n\r\n\tstatic matchElement(element){\r\n\t\treturn TableRegistry.tables.find(function(table){\r\n\t\t\treturn element instanceof Tabulator ? table === element : table.element === element;\r\n\t\t});\r\n\t}\r\n}\r\n\r\nTableRegistry.tables = [];\r\n\r\nexport default TableRegistry;","import CoreFeature from './CoreFeature.js';\r\n\r\nclass Module extends CoreFeature{\r\n\r\n\tconstructor(table, name){\r\n\t\tsuper(table);\r\n\r\n\t\tthis._handler = null;\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\t// setup module when table is initialized, to be overriden in module\r\n\t}\r\n\r\n\r\n\t///////////////////////////////////\r\n\t////// Options Registration ///////\r\n\t///////////////////////////////////\r\n\r\n\tregisterTableOption(key, value){\r\n\t\tthis.table.optionsList.register(key, value);\r\n\t}\r\n\r\n\tregisterColumnOption(key, value){\r\n\t\tthis.table.columnManager.optionsList.register(key, value);\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t/// Public Function Registation ///\r\n\t///////////////////////////////////\r\n\r\n\tregisterTableFunction(name, func){\r\n\t\tif(typeof this.table[name] === \"undefined\"){\r\n\t\t\tthis.table[name] = func;\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Unable to bind table function, name already in use\", name)\r\n\t\t}\r\n\t}\r\n\r\n\tregisterComponentFunction(component, func, handler){\r\n\t\treturn this.table.componentFunctionBinder.bind(component, func, handler);\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t////////// Data Pipeline //////////\r\n\t///////////////////////////////////\r\n\r\n\tregisterDataHandler(handler, priority){\r\n\t\tthis.table.rowManager.registerDataPipelineHandler(handler, priority)\r\n\t\tthis._handler = handler;\r\n\t}\r\n\r\n\tregisterDisplayHandler(handler, priority){\r\n\t\tthis.table.rowManager.registerDisplayPipelineHandler(handler, priority)\r\n\t\tthis._handler = handler;\r\n\t}\r\n\r\n\trefreshData(renderInPosition, handler){\r\n\t\tif(!handler){\r\n\t\t\thandler = this._handler;\r\n\t\t}\r\n\r\n\t\tif(handler){\r\n\t\t\tthis.table.rowManager.refreshActiveData(handler, false, renderInPosition);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Module;","//resize columns to fit data they contain\r\nexport default function(columns){\r\n\tthis.table.columnManager.renderer.reinitializeColumnWidths(columns);\r\n\r\n\tif(this.table.options.responsiveLayout && this.table.modExists(\"responsiveLayout\", true)){\r\n\t\tthis.table.modules.responsiveLayout.update();\r\n\t}\r\n};","//resize columns to fit data they contain and stretch row to fill table, also used for fitDataTable\r\nexport default function(columns){\r\n\tcolumns.forEach(function(column){\r\n\t\tcolumn.reinitializeWidth();\r\n\t});\r\n\r\n\tif(this.table.options.responsiveLayout && this.table.modExists(\"responsiveLayout\", true)){\r\n\t\tthis.table.modules.responsiveLayout.update();\r\n\t}\r\n};","//resize columns to fit data the contain and stretch last column to fill table\r\nexport default function(columns){\r\n\tvar colsWidth = 0,\r\n\ttableWidth = this.table.rowManager.element.clientWidth,\r\n\tgap = 0,\r\n\tlastCol = false;\r\n\r\n\tcolumns.forEach((column, i) => {\r\n\t\tif(!column.widthFixed){\r\n\t\t\tcolumn.reinitializeWidth();\r\n\t\t}\r\n\r\n\t\tif(this.table.options.responsiveLayout ? column.modules.responsive.visible : column.visible){\r\n\t\t\tlastCol = column;\r\n\t\t}\r\n\r\n\t\tif(column.visible){\r\n\t\t\tcolsWidth += column.getWidth();\r\n\t\t}\r\n\t});\r\n\r\n\tif(lastCol){\r\n\t\tgap = tableWidth - colsWidth + lastCol.getWidth();\r\n\r\n\t\tif(this.table.options.responsiveLayout && this.table.modExists(\"responsiveLayout\", true)){\r\n\t\t\tlastCol.setWidth(0);\r\n\t\t\tthis.table.modules.responsiveLayout.update();\r\n\t\t}\r\n\r\n\t\tif(gap > 0){\r\n\t\t\tlastCol.setWidth(gap);\r\n\t\t}else{\r\n\t\t\tlastCol.reinitializeWidth();\r\n\t\t}\r\n\t}else{\r\n\t\tif(this.table.options.responsiveLayout && this.table.modExists(\"responsiveLayout\", true)){\r\n\t\t\tthis.table.modules.responsiveLayout.update();\r\n\t\t}\r\n\t}\r\n};","//resize columns to fit\r\nexport default function(columns){\r\n\tvar totalWidth = this.table.element.clientWidth; //table element width\r\n\tvar fixedWidth = 0; //total width of columns with a defined width\r\n\tvar flexWidth = 0; //total width available to flexible columns\r\n\tvar flexGrowUnits = 0; //total number of widthGrow blocks accross all columns\r\n\tvar flexColWidth = 0; //desired width of flexible columns\r\n\tvar flexColumns = []; //array of flexible width columns\r\n\tvar fixedShrinkColumns = []; //array of fixed width columns that can shrink\r\n\tvar flexShrinkUnits = 0; //total number of widthShrink blocks accross all columns\r\n\tvar overflowWidth = 0; //horizontal overflow width\r\n\tvar gapFill=0; //number of pixels to be added to final column to close and half pixel gaps\r\n\r\n\tfunction calcWidth(width){\r\n\t\tvar colWidth;\r\n\r\n\t\tif(typeof(width) == \"string\"){\r\n\t\t\tif(width.indexOf(\"%\") > -1){\r\n\t\t\t\tcolWidth = (totalWidth / 100) * parseInt(width);\r\n\t\t\t}else{\r\n\t\t\t\tcolWidth = parseInt(width);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tcolWidth = width;\r\n\t\t}\r\n\r\n\t\treturn colWidth;\r\n\t}\r\n\r\n\t//ensure columns resize to take up the correct amount of space\r\n\tfunction scaleColumns(columns, freeSpace, colWidth, shrinkCols){\r\n\r\n\t\tvar oversizeCols = [],\r\n\t\toversizeSpace = 0,\r\n\t\tremainingSpace = 0,\r\n\t\tnextColWidth = 0,\r\n\t\tremainingFlexGrowUnits = flexGrowUnits,\r\n\t\tgap = 0,\r\n\t\tchangeUnits = 0,\r\n\t\tundersizeCols = [];\r\n\r\n\t\tfunction calcGrow(col){\r\n\t\t\treturn (colWidth * (col.column.definition.widthGrow || 1));\r\n\t\t}\r\n\r\n\t\tfunction calcShrink(col){\r\n\t\t\treturn (calcWidth(col.width) - (colWidth * (col.column.definition.widthShrink || 0)))\r\n\t\t}\r\n\r\n\t\tcolumns.forEach(function(col, i){\r\n\t\t\tvar width = shrinkCols ? calcShrink(col) : calcGrow(col);\r\n\t\t\tif(col.column.minWidth >= width){\r\n\t\t\t\toversizeCols.push(col);\r\n\t\t\t}else{\r\n\t\t\t\tif(col.column.maxWidth && col.column.maxWidth < width){\r\n\t\t\t\t\tcol.width = col.column.maxWidth;\r\n\t\t\t\t\tfreeSpace -= col.column.maxWidth;\r\n\r\n\t\t\t\t\tremainingFlexGrowUnits -= shrinkCols ? (col.column.definition.widthShrink || 1) : (col.column.definition.widthGrow || 1);\r\n\r\n\t\t\t\t\tif(remainingFlexGrowUnits){\r\n\t\t\t\t\t\tcolWidth = Math.floor(freeSpace/remainingFlexGrowUnits);\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tundersizeCols.push(col);\r\n\t\t\t\t\tchangeUnits += shrinkCols ? (col.column.definition.widthShrink || 1) : (col.column.definition.widthGrow || 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(oversizeCols.length){\r\n\t\t\toversizeCols.forEach(function(col){\r\n\t\t\t\toversizeSpace += shrinkCols ? col.width - col.column.minWidth : col.column.minWidth;\r\n\t\t\t\tcol.width = col.column.minWidth;\r\n\t\t\t});\r\n\r\n\t\t\tremainingSpace = freeSpace - oversizeSpace;\r\n\r\n\t\t\tnextColWidth = changeUnits ? Math.floor(remainingSpace/changeUnits) : remainingSpace;\r\n\r\n\t\t\tgap = remainingSpace - (nextColWidth * changeUnits);\r\n\r\n\t\t\tgap += scaleColumns(undersizeCols, remainingSpace, nextColWidth, shrinkCols);\r\n\t\t}else{\r\n\t\t\tgap = changeUnits ? freeSpace - (Math.floor(freeSpace/changeUnits) * changeUnits) : freeSpace;\r\n\r\n\t\t\tundersizeCols.forEach(function(column){\r\n\t\t\t\tcolumn.width = shrinkCols ? calcShrink(column) : calcGrow(column);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn gap;\r\n\t}\r\n\r\n\tif(this.table.options.responsiveLayout && this.table.modExists(\"responsiveLayout\", true)){\r\n\t\tthis.table.modules.responsiveLayout.update();\r\n\t}\r\n\r\n\t//adjust for vertical scrollbar if present\r\n\tif(this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight){\r\n\t\ttotalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth;\r\n\t}\r\n\r\n\tcolumns.forEach(function(column){\r\n\t\tvar width, minWidth, colWidth;\r\n\r\n\t\tif(column.visible){\r\n\r\n\t\t\twidth = column.definition.width;\r\n\t\t\tminWidth = parseInt(column.minWidth);\r\n\r\n\t\t\tif(width){\r\n\r\n\t\t\t\tcolWidth = calcWidth(width);\r\n\r\n\t\t\t\tfixedWidth += colWidth > minWidth ? colWidth : minWidth;\r\n\r\n\t\t\t\tif(column.definition.widthShrink){\r\n\t\t\t\t\tfixedShrinkColumns.push({\r\n\t\t\t\t\t\tcolumn:column,\r\n\t\t\t\t\t\twidth:colWidth > minWidth ? colWidth : minWidth\r\n\t\t\t\t\t});\r\n\t\t\t\t\tflexShrinkUnits += column.definition.widthShrink;\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\t\t\t\tflexColumns.push({\r\n\t\t\t\t\tcolumn:column,\r\n\t\t\t\t\twidth:0,\r\n\t\t\t\t});\r\n\t\t\t\tflexGrowUnits += column.definition.widthGrow || 1;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t//calculate available space\r\n\tflexWidth = totalWidth - fixedWidth;\r\n\r\n\t//calculate correct column size\r\n\tflexColWidth = Math.floor(flexWidth / flexGrowUnits)\r\n\r\n\t//generate column widths\r\n\tvar gapFill = scaleColumns(flexColumns, flexWidth, flexColWidth, false);\r\n\r\n\t//increase width of last column to account for rounding errors\r\n\tif(flexColumns.length && gapFill > 0){\r\n\t\tflexColumns[flexColumns.length-1].width += + gapFill;\r\n\t}\r\n\r\n\t//caculate space for columns to be shrunk into\r\n\tflexColumns.forEach(function(col){\r\n\t\tflexWidth -= col.width;\r\n\t});\r\n\r\n\toverflowWidth = Math.abs(gapFill) + flexWidth;\r\n\r\n\t//shrink oversize columns if there is no available space\r\n\tif(overflowWidth > 0 && flexShrinkUnits){\r\n\t\tgapFill = scaleColumns(fixedShrinkColumns, overflowWidth, Math.floor(overflowWidth / flexShrinkUnits), true);\r\n\t}\r\n\r\n\t//decrease width of last column to account for rounding errors\r\n\tif(fixedShrinkColumns.length){\r\n\t\tfixedShrinkColumns[fixedShrinkColumns.length-1].width -= gapFill;\r\n\t}\r\n\r\n\tflexColumns.forEach(function(col){\r\n\t\tcol.column.setWidth(col.width);\r\n\t});\r\n\r\n\tfixedShrinkColumns.forEach(function(col){\r\n\t\tcol.column.setWidth(col.width);\r\n\t});\r\n};","import fitData from './modes/fitData.js';\r\nimport fitDataGeneral from './modes/fitDataGeneral.js';\r\nimport fitDataStretch from './modes/fitDataStretch.js';\r\nimport fitColumns from './modes/fitColumns.js';\r\n\r\nexport default {\r\n\tfitData:fitData,\r\n\tfitDataFill:fitDataGeneral,\r\n\tfitDataTable:fitDataGeneral,\r\n\tfitDataStretch:fitDataStretch,\r\n\tfitColumns:fitColumns ,\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultModes from './defaults/modes.js';\r\n\r\nclass Layout extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table, \"layout\");\r\n\r\n\t\tthis.mode = null;\r\n\r\n\t\tthis.registerTableOption(\"layout\", \"fitData\"); //layout type\r\n\t\tthis.registerTableOption(\"layoutColumnsOnNewData\", false); //update column widths on setData\r\n\r\n\t\tthis.registerColumnOption(\"widthGrow\");\r\n\t\tthis.registerColumnOption(\"widthShrink\");\r\n\t}\r\n\r\n\t//initialize layout system\r\n\tinitialize(){\r\n\t\tvar layout = this.table.options.layout;\r\n\r\n\t\tif(Layout.modes[layout]){\r\n\t\t\tthis.mode = layout;\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Layout Error - invalid mode set, defaulting to 'fitData' : \" + layout);\r\n\t\t\tthis.mode = 'fitData';\r\n\t\t}\r\n\r\n\t\tthis.table.element.setAttribute(\"tabulator-layout\", this.mode);\r\n\t}\r\n\r\n\tgetMode(){\r\n\t\treturn this.mode;\r\n\t}\r\n\r\n\t//trigger table layout\r\n\tlayout(){\r\n\t\tLayout.modes[this.mode].call(this, this.table.columnManager.columnsByIndex);\r\n\r\n\t\tthis.dispatch(\"layout-refreshed\")\r\n\t}\r\n}\r\n\r\nLayout.moduleName = \"layout\";\r\n\r\n//load defaults\r\nLayout.modes = defaultModes;\r\n\r\nexport default Layout;","export default {\r\n\t\"default\":{ //hold default locale text\r\n\t\t\"groups\":{\r\n\t\t\t\"item\":\"item\",\r\n\t\t\t\"items\":\"items\",\r\n\t\t},\r\n\t\t\"columns\":{\r\n\t\t},\r\n\t\t\"data\":{\r\n\t\t\t\"loading\":\"Loading\",\r\n\t\t\t\"error\":\"Error\",\r\n\t\t},\r\n\t\t\"pagination\":{\r\n\t\t\t\"page_size\":\"Page Size\",\r\n\t\t\t\"page_title\":\"Show Page\",\r\n\t\t\t\"first\":\"First\",\r\n\t\t\t\"first_title\":\"First Page\",\r\n\t\t\t\"last\":\"Last\",\r\n\t\t\t\"last_title\":\"Last Page\",\r\n\t\t\t\"prev\":\"Prev\",\r\n\t\t\t\"prev_title\":\"Prev Page\",\r\n\t\t\t\"next\":\"Next\",\r\n\t\t\t\"next_title\":\"Next Page\",\r\n\t\t\t\"all\":\"All\",\r\n\t\t},\r\n\t\t\"headerFilters\":{\r\n\t\t\t\"default\":\"filter column...\",\r\n\t\t\t\"columns\":{}\r\n\t\t}\r\n\t},\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nimport defaultLangs from './defaults/langs.js';\r\n\r\nclass Localize extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.locale = \"default\"; //current locale\r\n\t\tthis.lang = false; //current language\r\n\t\tthis.bindings = {}; //update events to call when locale is changed\r\n\t\tthis.langList = {};\r\n\r\n\t\tthis.registerTableOption(\"locale\", false); //current system language\r\n\t\tthis.registerTableOption(\"langs\", {});\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.langList = Helpers.deepClone(Localize.langs);\r\n\r\n\t\tif(this.table.options.columnDefaults.headerFilterPlaceholder !== false){\r\n\t\t\tthis.setHeaderFilterPlaceholder(this.table.options.columnDefaults.headerFilterPlaceholder);\r\n\t\t}\r\n\r\n\t\tfor(let locale in this.table.options.langs){\r\n\t\t\tthis.installLang(locale, this.table.options.langs[locale]);\r\n\t\t}\r\n\r\n\t\tthis.setLocale(this.table.options.locale);\r\n\r\n\t\tthis.registerTableFunction(\"setLocale\", this.setLocale.bind(this));\r\n\t\tthis.registerTableFunction(\"getLocale\", this.getLocale.bind(this));\r\n\t\tthis.registerTableFunction(\"getLang\", this.getLang.bind(this));\r\n\t}\r\n\r\n\t//set header placehoder\r\n\tsetHeaderFilterPlaceholder(placeholder){\r\n\t\tthis.langList.default.headerFilters.default = placeholder;\r\n\t}\r\n\r\n\t//set header filter placeholder by column\r\n\tsetHeaderFilterColumnPlaceholder(column, placeholder){\r\n\t\tthis.langList.default.headerFilters.columns[column] = placeholder;\r\n\r\n\t\tif(this.lang && !this.lang.headerFilters.columns[column]){\r\n\t\t\tthis.lang.headerFilters.columns[column] = placeholder;\r\n\t\t}\r\n\t}\r\n\r\n\t//setup a lang description object\r\n\tinstallLang(locale, lang){\r\n\t\tif(this.langList[locale]){\r\n\t\t\tthis._setLangProp(this.langList[locale], lang);\r\n\t\t}else{\r\n\t\t\tthis.langList[locale] = lang;\r\n\t\t}\r\n\t}\r\n\r\n\t_setLangProp(lang, values){\r\n\t\tfor(let key in values){\r\n\t\t\tif(lang[key] && typeof lang[key] == \"object\"){\r\n\t\t\t\tthis._setLangProp(lang[key], values[key])\r\n\t\t\t}else{\r\n\t\t\t\tlang[key] = values[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//set current locale\r\n\tsetLocale(desiredLocale){\r\n\t\tdesiredLocale = desiredLocale || \"default\";\r\n\r\n\t\t//fill in any matching languge values\r\n\t\tfunction traverseLang(trans, path){\r\n\t\t\tfor(var prop in trans){\r\n\t\t\t\tif(typeof trans[prop] == \"object\"){\r\n\t\t\t\t\tif(!path[prop]){\r\n\t\t\t\t\t\tpath[prop] = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttraverseLang(trans[prop], path[prop]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tpath[prop] = trans[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//determing correct locale to load\r\n\t\tif(desiredLocale === true && navigator.language){\r\n\t\t\t//get local from system\r\n\t\t\tdesiredLocale = navigator.language.toLowerCase();\r\n\t\t}\r\n\r\n\t\tif(desiredLocale){\r\n\t\t\t//if locale is not set, check for matching top level locale else use default\r\n\t\t\tif(!this.langList[desiredLocale]){\r\n\t\t\t\tlet prefix = desiredLocale.split(\"-\")[0];\r\n\r\n\t\t\t\tif(this.langList[prefix]){\r\n\t\t\t\t\tconsole.warn(\"Localization Error - Exact matching locale not found, using closest match: \", desiredLocale, prefix);\r\n\t\t\t\t\tdesiredLocale = prefix;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Localization Error - Matching locale not found, using default: \", desiredLocale);\r\n\t\t\t\t\tdesiredLocale = \"default\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.locale = desiredLocale;\r\n\r\n\t\t//load default lang template\r\n\t\tthis.lang = Helpers.deepClone(this.langList.default || {});\r\n\r\n\t\tif(desiredLocale != \"default\"){\r\n\t\t\ttraverseLang(this.langList[desiredLocale], this.lang);\r\n\t\t}\r\n\r\n\t\tthis.dispatchExternal(\"localized\", this.locale, this.lang);\r\n\r\n\t\tthis._executeBindings();\r\n\t}\r\n\r\n\t//get current locale\r\n\tgetLocale(locale){\r\n\t\treturn this.locale;\r\n\t}\r\n\r\n\t//get lang object for given local or current if none provided\r\n\tgetLang(locale){\r\n\t\treturn locale ? this.langList[locale] : this.lang;\r\n\t}\r\n\r\n\t//get text for current locale\r\n\tgetText(path, value){\r\n\t\tvar path = value ? path + \"|\" + value : path,\r\n\t\tpathArray = path.split(\"|\"),\r\n\t\ttext = this._getLangElement(pathArray, this.locale);\r\n\r\n\t\t// if(text === false){\r\n\t\t// \tconsole.warn(\"Localization Error - Matching localized text not found for given path: \", path);\r\n\t\t// }\r\n\r\n\t\treturn text || \"\";\r\n\t}\r\n\r\n\t//traverse langs object and find localized copy\r\n\t_getLangElement(path, locale){\r\n\t\tvar root = this.lang;\r\n\r\n\t\tpath.forEach(function(level){\r\n\t\t\tvar rootPath;\r\n\r\n\t\t\tif(root){\r\n\t\t\t\trootPath = root[level];\r\n\r\n\t\t\t\tif(typeof rootPath != \"undefined\"){\r\n\t\t\t\t\troot = rootPath;\r\n\t\t\t\t}else{\r\n\t\t\t\t\troot = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn root;\r\n\t}\r\n\r\n\t//set update binding\r\n\tbind(path, callback){\r\n\t\tif(!this.bindings[path]){\r\n\t\t\tthis.bindings[path] = [];\r\n\t\t}\r\n\r\n\t\tthis.bindings[path].push(callback);\r\n\r\n\t\tcallback(this.getText(path), this.lang);\r\n\t}\r\n\r\n\t//itterate through bindings and trigger updates\r\n\t_executeBindings(){\r\n\t\tfor(let path in this.bindings){\r\n\t\t\tthis.bindings[path].forEach((binding) => {\r\n\t\t\t\tbinding(this.getText(path), this.lang);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\nLocalize.moduleName = \"localize\";\r\n\r\n//load defaults\r\nLocalize.langs = defaultLangs;\r\n\r\nexport default Localize;","import Module from '../../core/Module.js';\r\nimport TableRegistry from '../../core/tools/TableRegistry.js';\r\n\r\nclass Comms extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.registerTableFunction(\"tableComms\", this.receive.bind(this));\r\n\t}\r\n\r\n\tgetConnections(selectors){\r\n\t\tvar connections = [],\r\n\t\tconnection;\r\n\r\n\t\tconnection = TableRegistry.lookupTable(selectors);\r\n\r\n\t\tconnection.forEach((con) =>{\r\n\t\t\tif(this.table !== con){\r\n\t\t\t\tconnections.push(con);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn connections;\r\n\t}\r\n\r\n\tsend(selectors, module, action, data){\r\n\t\tvar connections = this.getConnections(selectors);\r\n\r\n\t\tconnections.forEach((connection) => {\r\n\t\t\tconnection.tableComms(this.table.element, module, action, data);\r\n\t\t});\r\n\r\n\t\tif(!connections.length && selectors){\r\n\t\t\tconsole.warn(\"Table Connection Error - No tables matching selector found\", selectors);\r\n\t\t}\r\n\t}\r\n\r\n\treceive(table, module, action, data){\r\n\t\tif(this.table.modExists(module)){\r\n\t\t\treturn this.table.modules[module].commsReceived(table, action, data);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Inter-table Comms Error - no such module:\", module);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nComms.moduleName = \"comms\";\r\n\r\nexport default Comms;","import * as coreModules from '../modules/core.js';\r\nimport TableRegistry from './TableRegistry.js';\r\n\r\nexport default class ModuleBinder {\r\n\r\n\tconstructor(tabulator, modules){\r\n\t\tthis.bindStaticFuctionality(tabulator);\r\n\t\tthis.bindModules(tabulator, coreModules, true);\r\n\r\n\t\tif(modules){\r\n\t\t\tthis.bindModules(tabulator, modules);\r\n\t\t}\r\n\t}\r\n\r\n\tbindStaticFuctionality(tabulator){\r\n\t\ttabulator.moduleBindings = {};\r\n\r\n\t\ttabulator.extendModule = function(name, property, values){\r\n\t\t\tif(tabulator.moduleBindings[name]){\r\n\t\t\t\tvar source = tabulator.moduleBindings[name][property];\r\n\r\n\t\t\t\tif(source){\r\n\t\t\t\t\tif(typeof values == \"object\"){\r\n\t\t\t\t\t\tfor(let key in values){\r\n\t\t\t\t\t\t\tsource[key] = values[key];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.warn(\"Module Error - Invalid value type, it must be an object\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Module Error - property does not exist:\", property);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Module Error - module does not exist:\", name);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\ttabulator.registerModule = function(modules){\r\n\t\t\tif(!Array.isArray(modules)){\r\n\t\t\t\tmodules = [modules];\r\n\t\t\t}\r\n\r\n\t\t\tmodules.forEach((mod) => {\r\n\t\t\t\ttabulator.registerModuleBinding(mod)\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\ttabulator.registerModuleBinding = function(mod){\r\n\t\t\ttabulator.moduleBindings[mod.moduleName] = mod;\r\n\t\t};\r\n\r\n\t\ttabulator.findTable = function(query){\r\n\t\t\tvar results = TableRegistry.lookupTable(query, true);\r\n\t\t\treturn Array.isArray(results) && !results.length ? false : results;\r\n\t\t}\r\n\r\n\t\t//ensure that module are bound to instantiated function\r\n\t\ttabulator.prototype.bindModules = function(){\r\n\t\t\tthis.modules = {};\r\n\r\n\t\t\tfor(var name in tabulator.moduleBindings){\r\n\t\t\t\tlet mod = tabulator.moduleBindings[name];\r\n\r\n\t\t\t\tthis.modules[name] = new mod(this);\r\n\r\n\t\t\t\tif(mod.prototype.moduleCore){\r\n\t\t\t\t\tthis.modulesCore[name] = this.modules[name];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.modulesRegular[name] = this.modules[name];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tbindModules(tabulator, modules, core){\r\n\t\tvar mods = Object.values(modules);\r\n\r\n\t\tif(core){\r\n\t\t\tmods.forEach((mod) => {\r\n\t\t\t\tmod.prototype.moduleCore = true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\ttabulator.registerModule(mods);\r\n\t}\r\n}","'use strict';\r\n\r\nimport defaultOptions from './defaults/options.js';\r\n\r\nimport ColumnManager from './ColumnManager.js';\r\nimport RowManager from './RowManager.js';\r\nimport FooterManager from './FooterManager.js';\r\n\r\nimport InteractionMonitor from './tools/InteractionMonitor.js';\r\nimport ComponentFuctionBinder from './tools/ComponentFuctionBinder.js';\r\nimport DataLoader from './tools/DataLoader.js';\r\n\r\nimport ExternalEventBus from './tools/ExternalEventBus.js';\r\nimport InternalEventBus from './tools/InternalEventBus.js';\r\n\r\nimport TableRegistry from './tools/TableRegistry.js';\r\nimport ModuleBinder from './tools/ModuleBinder.js';\r\n\r\nimport OptionsList from './tools/OptionsList.js';\r\n\r\nclass Tabulator {\r\n\r\n\tconstructor(element, options){\r\n\r\n\t\tthis.options = {};\r\n\r\n\t\tthis.columnManager = null; // hold Column Manager\r\n\t\tthis.rowManager = null; //hold Row Manager\r\n\t\tthis.footerManager = null; //holder Footer Manager\r\n\t\tthis.vdomHoz = null; //holder horizontal virtual dom\r\n\t\tthis.externalEvents = null; //handle external event messaging\r\n\t\tthis.eventBus = null; //handle internal event messaging\r\n\t\tthis.interactionMonitor = false; //track user interaction\r\n\t\tthis.browser = \"\"; //hold current browser type\r\n\t\tthis.browserSlow = false; //handle reduced functionality for slower browsers\r\n\t\tthis.browserMobile = false; //check if running on moble, prevent resize cancelling edit on keyboard appearence\r\n\t\tthis.rtl = false; //check if the table is in RTL mode\r\n\t\tthis.originalElement = null; //hold original table element if it has been replaced\r\n\r\n\t\tthis.componentFunctionBinder = new ComponentFuctionBinder(this); //bind component functions\r\n\t\tthis.dataLoader = false; //bind component functions\r\n\r\n\t\tthis.modules = {}; //hold all modules bound to this table\r\n\t\tthis.modulesCore = {}; //hold core modules bound to this table (for initialization purposes)\r\n\t\tthis.modulesRegular = {}; //hold regular modules bound to this table (for initialization purposes)\r\n\r\n\t\tthis.optionsList = new OptionsList(this, \"table constructor\");\r\n\r\n\t\tthis.initialized = false;\r\n\r\n\t\tif(this.initializeElement(element)){\r\n\r\n\t\t\tthis.initialzeCoreSystems(options);\r\n\r\n\t\t\t//delay table creation to allow event bindings immediatly after the constructor\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis._create();\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tTableRegistry.register(this); //register table for inderdevice communication\r\n\t}\r\n\r\n\tinitializeElement(element){\r\n\t\tif(typeof HTMLElement !== \"undefined\" && element instanceof HTMLElement){\r\n\t\t\tthis.element = element;\r\n\t\t\treturn true;\r\n\t\t}else if(typeof element === \"string\"){\r\n\t\t\tthis.element = document.querySelector(element);\r\n\r\n\t\t\tif(this.element){\r\n\t\t\t\treturn true;\r\n\t\t\t}else{\r\n\t\t\t\tconsole.error(\"Tabulator Creation Error - no element found matching selector: \", element);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Tabulator Creation Error - Invalid element provided:\", element);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tinitialzeCoreSystems(options){\r\n\t\tthis.columnManager = new ColumnManager(this);\r\n\t\tthis.rowManager = new RowManager(this);\r\n\t\tthis.footerManager = new FooterManager(this);\r\n\t\tthis.dataLoader = new DataLoader(this);\r\n\r\n\t\tthis.bindModules();\r\n\r\n\t\tthis.options = this.optionsList.generate(Tabulator.defaultOptions, options)\r\n\r\n\t\tthis._clearObjectPointers();\r\n\r\n\t\tthis._mapDepricatedFunctionality();\r\n\r\n\t\tthis.externalEvents = new ExternalEventBus(this, this.options, this.options.debugEventsExternal);\r\n\t\tthis.eventBus = new InternalEventBus(this.options.debugEventsInternal);\r\n\r\n\t\tthis.interactionMonitor = new InteractionMonitor(this);\r\n\r\n\t\tthis.dataLoader.initialize();\r\n\t\tthis.columnManager.initialize();\r\n\t\tthis.rowManager.initialize();\r\n\t\tthis.footerManager.initialize();\r\n\t}\r\n\r\n\t//convert depricated functionality to new functions\r\n\t_mapDepricatedFunctionality(){\r\n\t\t//all previously deprecated functionality removed in the 5.0 release\r\n\t}\r\n\r\n\t_clearSelection(){\r\n\r\n\t\tthis.element.classList.add(\"tabulator-block-select\");\r\n\r\n\t\tif (window.getSelection) {\r\n\t\t if (window.getSelection().empty) { // Chrome\r\n\t\t \twindow.getSelection().empty();\r\n\t\t } else if (window.getSelection().removeAllRanges) { // Firefox\r\n\t\t \twindow.getSelection().removeAllRanges();\r\n\t\t }\r\n\t\t} else if (document.selection) { // IE?\r\n\t\t\tdocument.selection.empty();\r\n\t\t}\r\n\r\n\t\tthis.element.classList.remove(\"tabulator-block-select\");\r\n\t}\r\n\r\n\t//concreate table\r\n\t_create(){\r\n\t\tthis.externalEvents.dispatch(\"tableBuilding\");\r\n\t\tthis.eventBus.dispatch(\"table-building\");\r\n\r\n\t\tthis._rtlCheck();\r\n\r\n\t\tthis._buildElement();\r\n\r\n\t\tthis._initializeTable();\r\n\r\n\t\tthis._loadInitialData();\r\n\r\n\t\tthis.initialized = true;\r\n\r\n\t\tthis.externalEvents.dispatch(\"tableBuilt\");\r\n\t}\r\n\r\n\t_rtlCheck(){\r\n\t\tvar style = window.getComputedStyle(this.element);\r\n\r\n\t\tswitch(this.options.textDirection){\r\n\t\t\tcase\"auto\":\r\n\t\t\tif(style.direction !== \"rtl\"){\r\n\t\t\t\tbreak;\r\n\t\t\t};\r\n\r\n\t\t\tcase \"rtl\":\r\n\t\t\tthis.element.classList.add(\"tabulator-rtl\");\r\n\t\t\tthis.rtl = true;\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"ltr\":\r\n\t\t\tthis.element.classList.add(\"tabulator-ltr\");\r\n\r\n\t\t\tdefault:\r\n\t\t\tthis.rtl = false;\r\n\t\t}\r\n\t}\r\n\r\n\t//clear pointers to objects in default config object\r\n\t_clearObjectPointers(){\r\n\t\tthis.options.columns = this.options.columns.slice(0);\r\n\r\n\t\tif(this.options.data && !this.options.reactiveData){\r\n\t\t\tthis.options.data = this.options.data.slice(0);\r\n\t\t}\r\n\t}\r\n\r\n\t//build tabulator element\r\n\t_buildElement(){\r\n\t\tvar element = this.element,\r\n\t\toptions = this.options,\r\n\t\tnewElement;\r\n\r\n\t\tif(element.tagName === \"TABLE\"){\r\n\t\t\tthis.originalElement = this.element;\r\n\t\t\tnewElement = document.createElement(\"div\");\r\n\r\n\t\t\t//transfer attributes to new element\r\n\t\t\tvar attributes = element.attributes;\r\n\r\n\t\t\t// loop through attributes and apply them on div\r\n\t\t\tfor(var i in attributes){\r\n\t\t\t\tif(typeof attributes[i] == \"object\"){\r\n\t\t\t\t\tnewElement.setAttribute(attributes[i].name, attributes[i].value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// replace table with div element\r\n\t\t\telement.parentNode.replaceChild(newElement, element);\r\n\r\n\t\t\tthis.element = element = newElement;\r\n\t\t}\r\n\r\n\t\telement.classList.add(\"tabulator\");\r\n\t\telement.setAttribute(\"role\", \"grid\");\r\n\r\n\t\t//empty element\r\n\t\twhile(element.firstChild) element.removeChild(element.firstChild);\r\n\r\n\t\t//set table height\r\n\t\tif(options.height){\r\n\t\t\toptions.height = isNaN(options.height) ? options.height : options.height + \"px\";\r\n\t\t\telement.style.height = options.height;\r\n\t\t}\r\n\r\n\t\t//set table min height\r\n\t\tif(options.minHeight !== false){\r\n\t\t\toptions.minHeight = isNaN(options.minHeight) ? options.minHeight : options.minHeight + \"px\";\r\n\t\t\telement.style.minHeight = options.minHeight;\r\n\t\t}\r\n\r\n\t\t//set table maxHeight\r\n\t\tif(options.maxHeight !== false){\r\n\t\t\toptions.maxHeight = isNaN(options.maxHeight) ? options.maxHeight : options.maxHeight + \"px\";\r\n\t\t\telement.style.maxHeight = options.maxHeight;\r\n\t\t}\r\n\t}\r\n\r\n\t//initialize core systems and modules\r\n\t_initializeTable(){\r\n\t\tvar element = this.element,\r\n\t\toptions = this.options;\r\n\r\n\t\tthis.columnManager.initialize();\r\n\t\tthis.rowManager.initialize();\r\n\r\n\t\tthis._detectBrowser();\r\n\r\n\t\t//initialize core modules\r\n\t\tfor (let key in this.modulesCore){\r\n\t\t\tlet mod = this.modulesCore[key];\r\n\r\n\t\t\tmod.initialize();\r\n\t\t}\r\n\r\n\t\t//configure placeholder element\r\n\t\tif(typeof options.placeholder == \"string\"){\r\n\t\t\tvar el = document.createElement(\"div\");\r\n\t\t\tel.classList.add(\"tabulator-placeholder\");\r\n\r\n\t\t\tvar span = document.createElement(\"span\");\r\n\t\t\tspan.innerHTML = options.placeholder;\r\n\r\n\t\t\tel.appendChild(span);\r\n\r\n\t\t\toptions.placeholder = el;\r\n\t\t}\r\n\r\n\t\t//build table elements\r\n\t\telement.appendChild(this.columnManager.getElement());\r\n\t\telement.appendChild(this.rowManager.getElement());\r\n\r\n\t\tif(options.footerElement){\r\n\t\t\tthis.footerManager.activate();\r\n\t\t}\r\n\r\n\t\tif(options.autoColumns && options.data){\r\n\r\n\t\t\tthis.columnManager.generateColumnsFromRowData(this.options.data);\r\n\t\t}\r\n\r\n\t\t//initialize regular modules\r\n\t\tfor (let key in this.modulesRegular){\r\n\t\t\tlet mod = this.modulesRegular[key];\r\n\r\n\t\t\tmod.initialize();\r\n\t\t}\r\n\r\n\t\tthis.columnManager.setColumns(options.columns);\r\n\r\n\t\tthis.eventBus.dispatch(\"table-built\");\r\n\t}\r\n\r\n\t_loadInitialData(){\r\n\t\tthis.dataLoader.load(this.options.data);\r\n\t}\r\n\r\n\t//deconstructor\r\n\tdestroy(){\r\n\t\tvar element = this.element;\r\n\r\n\t\tTableRegistry.deregister(this); //deregister table from inderdevice communication\r\n\r\n\t\tthis.eventBus.dispatch(\"table-destroy\");\r\n\r\n\t\t//clear row data\r\n\t\tthis.rowManager.rows.forEach(function(row){\r\n\t\t\trow.wipe();\r\n\t\t});\r\n\r\n\t\tthis.rowManager.rows = [];\r\n\t\tthis.rowManager.activeRows = [];\r\n\t\tthis.rowManager.displayRows = [];\r\n\r\n\t\t//clear DOM\r\n\t\twhile(element.firstChild) element.removeChild(element.firstChild);\r\n\t\telement.classList.remove(\"tabulator\");\r\n\t}\r\n\r\n\t_detectBrowser(){\r\n\t\tvar ua = navigator.userAgent||navigator.vendor||window.opera;\r\n\r\n\t\tif(ua.indexOf(\"Trident\") > -1){\r\n\t\t\tthis.browser = \"ie\";\r\n\t\t\tthis.browserSlow = true;\r\n\t\t}else if(ua.indexOf(\"Edge\") > -1){\r\n\t\t\tthis.browser = \"edge\";\r\n\t\t\tthis.browserSlow = true;\r\n\t\t}else if(ua.indexOf(\"Firefox\") > -1){\r\n\t\t\tthis.browser = \"firefox\";\r\n\t\t\tthis.browserSlow = false;\r\n\t\t}else{\r\n\t\t\tthis.browser = \"other\";\r\n\t\t\tthis.browserSlow = false;\r\n\t\t}\r\n\r\n\t\tthis.browserMobile = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(ua.substr(0,4));\r\n\t}\r\n\r\n\t////////////////// Data Handling //////////////////\r\n\t//block table redrawing\r\n\tblockRedraw(){\r\n\t\treturn this.rowManager.blockRedraw();\r\n\t}\r\n\r\n\t//restore table redrawing\r\n\trestoreRedraw(){\r\n\t\treturn this.rowManager.restoreRedraw();\r\n\t}\r\n\r\n\t//local data from local file\r\n\tsetDataFromLocalFile(extensions){\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tvar input = document.createElement(\"input\");\r\n\t\t\tinput.type = \"file\";\r\n\t\t\tinput.accept = extensions || \".json,application/json\";\r\n\r\n\t\t\tinput.addEventListener(\"change\", (e) => {\r\n\t\t\t\tvar file = input.files[0],\r\n\t\t\t\treader = new FileReader(),\r\n\t\t\t\tdata;\r\n\r\n\t\t\t\treader.readAsText(file);\r\n\r\n\t\t\t\treader.onload = (e) => {\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tdata = JSON.parse(reader.result);\r\n\t\t\t\t\t} catch(e) {\r\n\t\t\t\t\t\tconsole.warn(\"File Load Error - File contents is invalid JSON\", e);\r\n\t\t\t\t\t\treject(e);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setData(data)\r\n\t\t\t\t\t.then((data) => {\r\n\t\t\t\t\t\tresolve(data);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((err) => {\r\n\t\t\t\t\t\tresolve(err);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\treader.onerror = (e) => {\r\n\t\t\t\t\tconsole.warn(\"File Load Error - Unable to read file\");\r\n\t\t\t\t\treject();\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tinput.click();\r\n\t\t});\r\n\t}\r\n\r\n\t//load data\r\n\tsetData(data, params, config){\r\n\t\tif(this.initialized){\r\n\t\t\treturn this.dataLoader.load(data, params, config, false);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"setData failed - table not yet initialized. To set initial data please use the 'data' property in the table constructor.\")\r\n\t\t}\r\n\t}\r\n\r\n\t//clear data\r\n\tclearData(){\r\n\t\tthis.dataLoader.blockActiveLoad();\r\n\t\tthis.rowManager.clearData();\r\n\t}\r\n\r\n\t//get table data array\r\n\tgetData(active){\r\n\t\treturn this.rowManager.getData(active);\r\n\t}\r\n\r\n\t//get table data array count\r\n\tgetDataCount(active){\r\n\t\treturn this.rowManager.getDataCount(active);\r\n\t}\r\n\r\n\t//replace data, keeping table in position with same sort\r\n\treplaceData(data, params, config){\r\n\t\tif(this.initialized){\r\n\t\t\treturn this.dataLoader.load(data, params, config, true, true);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"replaceData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.\");\r\n\t\t}\r\n\t}\r\n\r\n\t//update table data\r\n\tupdateData(data){\r\n\t\tvar responses = 0;\r\n\r\n\t\tif(this.initialized){\r\n\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\tthis.dataLoader.blockActiveLoad();\r\n\r\n\t\t\t\tif(typeof data === \"string\"){\r\n\t\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(data){\r\n\t\t\t\t\tdata.forEach((item) => {\r\n\t\t\t\t\t\tvar row = this.rowManager.findRow(item[this.options.index]);\r\n\r\n\t\t\t\t\t\tif(row){\r\n\t\t\t\t\t\t\tresponses++;\r\n\r\n\t\t\t\t\t\t\trow.updateData(item)\r\n\t\t\t\t\t\t\t.then(()=>{\r\n\t\t\t\t\t\t\t\tresponses--;\r\n\r\n\t\t\t\t\t\t\t\tif(!responses){\r\n\t\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Update Error - No data provided\");\r\n\t\t\t\t\treject(\"Update Error - No data provided\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"updateData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.\");\r\n\t\t}\r\n\t}\r\n\r\n\taddData(data, pos, index){\r\n\t\tif(this.initialized){\r\n\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\tthis.dataLoader.blockActiveLoad();\r\n\r\n\t\t\t\tif(typeof data === \"string\"){\r\n\t\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(data){\r\n\t\t\t\t\tthis.rowManager.addRows(data, pos, index)\r\n\t\t\t\t\t.then((rows) => {\r\n\t\t\t\t\t\tvar output = [];\r\n\r\n\t\t\t\t\t\trows.forEach(function(row){\r\n\t\t\t\t\t\t\toutput.push(row.getComponent());\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tresolve(output);\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Update Error - No data provided\");\r\n\t\t\t\t\treject(\"Update Error - No data provided\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"addData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.\");\r\n\t\t}\r\n\t}\r\n\r\n\t//update table data\r\n\tupdateOrAddData(data){\r\n\t\tvar rows = [],\r\n\t\tresponses = 0;\r\n\r\n\t\tif(this.initialized){\r\n\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\tthis.dataLoader.blockActiveLoad();\r\n\r\n\t\t\t\tif(typeof data === \"string\"){\r\n\t\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(data){\r\n\t\t\t\t\tdata.forEach((item) => {\r\n\t\t\t\t\t\tvar row = this.rowManager.findRow(item[this.options.index]);\r\n\r\n\t\t\t\t\t\tresponses++;\r\n\r\n\t\t\t\t\t\tif(row){\r\n\t\t\t\t\t\t\trow.updateData(item)\r\n\t\t\t\t\t\t\t.then(()=>{\r\n\t\t\t\t\t\t\t\tresponses--;\r\n\t\t\t\t\t\t\t\trows.push(row.getComponent());\r\n\r\n\t\t\t\t\t\t\t\tif(!responses){\r\n\t\t\t\t\t\t\t\t\tresolve(rows);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tthis.rowManager.addRows(item)\r\n\t\t\t\t\t\t\t.then((newRows)=>{\r\n\t\t\t\t\t\t\t\tresponses--;\r\n\t\t\t\t\t\t\t\trows.push(newRows[0].getComponent());\r\n\r\n\t\t\t\t\t\t\t\tif(!responses){\r\n\t\t\t\t\t\t\t\t\tresolve(rows);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Update Error - No data provided\");\r\n\t\t\t\t\treject(\"Update Error - No data provided\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"updateOrAddData failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.\");\r\n\t\t}\r\n\t}\r\n\r\n\t//get row object\r\n\tgetRow(index){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\r\n\t\tif(row){\r\n\t\t\treturn row.getComponent();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Find Error - No matching row found:\", index);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t//get row object\r\n\tgetRowFromPosition(position, active){\r\n\t\tvar row = this.rowManager.getRowFromPosition(position, active);\r\n\r\n\t\tif(row){\r\n\t\t\treturn row.getComponent();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Find Error - No matching row found:\", position);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t//delete row from table\r\n\tdeleteRow(index){\r\n\t\tvar foundRows = [];\r\n\r\n\t\tif(!Array.isArray(index)){\r\n\t\t\tindex = [index];\r\n\t\t}\r\n\r\n\t\t//find matching rows\r\n\t\tfor(let item of index){\r\n\t\t\tlet row = this.rowManager.findRow(item, true);\r\n\r\n\t\t\tif(row){\r\n\t\t\t\tfoundRows.push(row);\r\n\t\t\t}else{\r\n\t\t\t\tconsole.error(\"Delete Error - No matching row found:\", item);\r\n\t\t\t\treturn Promise.reject(\"Delete Error - No matching row found\")\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//sort rows into correct order to ensure smooth delete from table\r\n\t\tfoundRows.sort((a, b) => {\r\n\t\t\treturn this.rowManager.rows.indexOf(a) > this.rowManager.rows.indexOf(b) ? 1 : -1;\r\n\t\t});\r\n\r\n\t\t//delete rows\r\n\t\tfoundRows.forEach((row) =>{\r\n\t\t\trow.delete()\r\n\t\t});\r\n\r\n\t\tthis.rowManager.reRenderInPosition();\r\n\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\r\n\t//add row to table\r\n\taddRow(data, pos, index){\r\n\t\tif(this.initialized){\r\n\t\t\tif(typeof data === \"string\"){\r\n\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.rowManager.addRows(data, pos, index)\r\n\t\t\t.then((rows)=>{\r\n\t\t\t\treturn rows[0].getComponent();\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"addRow failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.\");\r\n\t\t}\r\n\t}\r\n\r\n\t//update a row if it exitsts otherwise create it\r\n\tupdateOrAddRow(index, data){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\r\n\t\tif(typeof data === \"string\"){\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\r\n\t\tif(row){\r\n\t\t\treturn row.updateData(data)\r\n\t\t\t.then(()=>{\r\n\t\t\t\treturn row.getComponent();\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\treturn this.rowManager.addRows(data)\r\n\t\t\t.then((rows)=>{\r\n\t\t\t\treturn rows[0].getComponent();\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t//update row data\r\n\tupdateRow(index, data){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\r\n\t\tif(typeof data === \"string\"){\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\r\n\t\tif(row){\r\n\t\t\treturn row.updateData(data)\r\n\t\t\t.then(()=>{\r\n\t\t\t\tresolve(row.getComponent());\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Update Error - No matching row found:\", index);\r\n\t\t\treturn Promise.reject(\"Update Error - No matching row found\");\r\n\t\t}\r\n\t}\r\n\r\n\t//scroll to row in DOM\r\n\tscrollToRow(index, position, ifVisible){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\r\n\t\tif(row){\r\n\t\t\treturn this.rowManager.scrollToRow(row, position, ifVisible)\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Scroll Error - No matching row found:\", index);\r\n\t\t\treturn Promise.reject(\"Scroll Error - No matching row found\");\r\n\t\t}\r\n\t}\r\n\r\n\tmoveRow(from, to, after){\r\n\t\tvar fromRow = this.rowManager.findRow(from);\r\n\r\n\t\tif(fromRow){\r\n\t\t\tfromRow.moveToRow(to, after);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Move Error - No matching row found:\", from);\r\n\t\t}\r\n\t}\r\n\r\n\tgetRows(active){\r\n\t\tif(this.initialized){\r\n\t\t\treturn this.rowManager.getComponents(active);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"getRows failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.\");\r\n\t\t}\r\n\t}\r\n\r\n\t//get position of row in table\r\n\tgetRowPosition(index, active){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\r\n\t\tif(row){\r\n\t\t\treturn this.rowManager.getRowPosition(row, active);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Position Error - No matching row found:\", index);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/////////////// Column Functions ///////////////\r\n\tsetColumns(definition){\r\n\t\tif(this.initialized){\r\n\t\t\tthis.columnManager.setColumns(definition);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"setColumns failed - table not yet initialized. To set initial data please use the 'columns' property in the table constructor.\")\r\n\t\t}\r\n\t}\r\n\r\n\tgetColumns(structured){\r\n\t\treturn this.columnManager.getComponents(structured);\r\n\t}\r\n\r\n\tgetColumn(field){\r\n\t\tvar col = this.columnManager.findColumn(field);\r\n\r\n\t\tif(col){\r\n\t\t\treturn col.getComponent();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Find Error - No matching column found:\", field);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tgetColumnDefinitions(){\r\n\t\treturn this.columnManager.getDefinitionTree();\r\n\t}\r\n\r\n\tshowColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\tcolumn.show();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Show Error - No matching column found:\", field);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\thideColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\tcolumn.hide();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Hide Error - No matching column found:\", field);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\tif(column.visible){\r\n\t\t\t\tcolumn.hide();\r\n\t\t\t}else{\r\n\t\t\t\tcolumn.show();\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Visibility Toggle Error - No matching column found:\", field);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\taddColumn(definition, before, field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\r\n\t\treturn this.columnManager.addColumn(definition, before, column)\r\n\t\t.then((column) => {\r\n\t\t\treturn column.getComponent();\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\treturn column.delete();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Delete Error - No matching column found:\", field);\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\tupdateColumnDefinition(field, definition){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\treturn column.updateDefinition(definition)\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Update Error - No matching column found:\", field);\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\tmoveColumn(from, to, after){\r\n\t\tvar fromColumn = this.columnManager.findColumn(from);\r\n\t\tvar toColumn = this.columnManager.findColumn(to);\r\n\r\n\t\tif(fromColumn){\r\n\t\t\tif(toColumn){\r\n\t\t\t\tthis.columnManager.moveColumn(fromColumn, toColumn, after)\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Move Error - No matching column found:\", toColumn);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Move Error - No matching column found:\", from);\r\n\t\t}\r\n\t}\r\n\r\n\t//scroll to column in DOM\r\n\tscrollToColumn(field, position, ifVisible){\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tvar column = this.columnManager.findColumn(field);\r\n\r\n\t\t\tif(column){\r\n\t\t\t\treturn this.columnManager.scrollToColumn(column, position, ifVisible)\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Scroll Error - No matching column found:\", field);\r\n\t\t\t\treturn Promise.reject(\"Scroll Error - No matching column found\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//////////// General Public Functions ////////////\r\n\t//redraw list without updating data\r\n\tredraw(force){\r\n\t\tif(this.initialized){\r\n\t\t\tthis.columnManager.redraw(force);\r\n\t\t\tthis.rowManager.redraw(force);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"redraw failed - table not yet initialized. Please wait for the `tableBuilt` event before calling this function.\");\r\n\t\t}\r\n\t}\r\n\r\n\tsetHeight(height){\r\n\t\tthis.options.height = isNaN(height) ? height : height + \"px\";\r\n\t\tthis.element.style.height = this.options.height;\r\n\t\tthis.rowManager.initializeRenderer();\r\n\t\tthis.rowManager.redraw();\r\n\t}\r\n\r\n\t//////////////////// Event Bus ///////////////////\r\n\r\n\ton(key, callback){\r\n\t\tthis.externalEvents.subscribe(key, callback);\r\n\t}\r\n\r\n\toff(key, callback){\r\n\t\tthis.externalEvents.unsubscribe(key, callback);\r\n\t}\r\n\r\n\tdispatchEvent(){\r\n\t\tvar args = Array.from(arguments),\r\n\t\tkey = args.shift();\r\n\r\n\t\tthis.externalEvents.dispatch(...arguments)\r\n\t}\r\n\r\n\t////////////// Extension Management //////////////\r\n\tmodExists(plugin, required){\r\n\t\tif(this.modules[plugin]){\r\n\t\t\treturn true;\r\n\t\t}else{\r\n\t\t\tif(required){\r\n\t\t\t\tconsole.error(\"Tabulator Module Not Installed: \" + plugin);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tmodule(key){\r\n\t\tvar mod = this.modules[key];\r\n\r\n\t\tif(!mod){\r\n\t\t\tconsole.error(\"Tabulator module not installed: \" + key);\r\n\t\t}\r\n\r\n\t\treturn mod;\r\n\t}\r\n}\r\n\r\n//default setup options\r\nTabulator.defaultOptions = defaultOptions;\r\n\r\n//bind modules and static functionality\r\nnew ModuleBinder(Tabulator);\r\n\r\nexport default Tabulator;","export default {}","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nimport defautlAccessors from './defaults/accessors.js';\r\n\r\nclass Accessor extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.allowedTypes = [\"\", \"data\", \"download\", \"clipboard\", \"print\", \"htmlOutput\"] //list of accessor types\r\n\r\n\t\tthis.registerColumnOption(\"accessor\");\r\n\t\tthis.registerColumnOption(\"accessorParams\");\r\n\t\tthis.registerColumnOption(\"accessorData\");\r\n\t\tthis.registerColumnOption(\"accessorDataParams\");\r\n\t\tthis.registerColumnOption(\"accessorDownload\");\r\n\t\tthis.registerColumnOption(\"accessorDownloadParams\");\r\n\t\tthis.registerColumnOption(\"accessorClipboard\");\r\n\t\tthis.registerColumnOption(\"accessorClipboardParams\");\r\n\t\tthis.registerColumnOption(\"accessorPrint\");\r\n\t\tthis.registerColumnOption(\"accessorPrintParams\");\r\n\t\tthis.registerColumnOption(\"accessorHtmlOutput\");\r\n\t\tthis.registerColumnOption(\"accessorHtmlOutputParams\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"column-layout\", this.initializeColumn.bind(this));\r\n\t\tthis.subscribe(\"row-data-retrieve\", this.transformRow.bind(this));\r\n\t}\r\n\r\n\t//initialize column accessor\r\n\tinitializeColumn(column){\r\n\t\tvar match = false,\r\n\t\tconfig = {};\r\n\r\n\t\tthis.allowedTypes.forEach((type) => {\r\n\t\t\tvar key = \"accessor\" + (type.charAt(0).toUpperCase() + type.slice(1)),\r\n\t\t\taccessor;\r\n\r\n\t\t\tif(column.definition[key]){\r\n\t\t\t\taccessor = this.lookupAccessor(column.definition[key]);\r\n\r\n\t\t\t\tif(accessor){\r\n\t\t\t\t\tmatch = true;\r\n\r\n\t\t\t\t\tconfig[key] = {\r\n\t\t\t\t\t\taccessor:accessor,\r\n\t\t\t\t\t\tparams: column.definition[key + \"Params\"] || {},\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(match){\r\n\t\t\tcolumn.modules.accessor = config;\r\n\t\t}\r\n\t}\r\n\r\n\tlookupAccessor(value){\r\n\t\tvar accessor = false;\r\n\r\n\t\t//set column accessor\r\n\t\tswitch(typeof value){\r\n\t\t\tcase \"string\":\r\n\t\t\tif(Accessor.accessors[value]){\r\n\t\t\t\taccessor = Accessor.accessors[value]\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Accessor Error - No such accessor found, ignoring: \", value);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\taccessor = value;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn accessor;\r\n\t}\r\n\r\n\t//apply accessor to row\r\n\ttransformRow(row, type){\r\n\t\tvar key = \"accessor\" + (type.charAt(0).toUpperCase() + type.slice(1)),\r\n\t\trowComponent = row.getComponent();\r\n\r\n\t\t//clone data object with deep copy to isolate internal data from returned result\r\n\t\tvar data = Helpers.deepClone(row.data || {});\r\n\r\n\t\tthis.table.columnManager.traverse(function(column){\r\n\t\t\tvar value, accessor, params, colCompnent;\r\n\r\n\t\t\tif(column.modules.accessor){\r\n\r\n\t\t\t\taccessor = column.modules.accessor[key] || column.modules.accessor.accessor || false;\r\n\r\n\t\t\t\tif(accessor){\r\n\t\t\t\t\tvalue = column.getFieldValue(data);\r\n\r\n\t\t\t\t\tif(value != \"undefined\"){\r\n\t\t\t\t\t\tcolCompnent = column.getComponent();\r\n\t\t\t\t\t\tparams = typeof accessor.params === \"function\" ? accessor.params(value, data, type, colCompnent, rowComponent) : accessor.params;\r\n\t\t\t\t\t\tcolumn.setFieldValue(data, accessor.accessor(value, data, type, params, colCompnent, rowComponent));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn data;\r\n\t}\r\n}\r\n\r\n//load defaults\r\nAccessor.moduleName = \"accessor\";\r\nAccessor.accessors = defautlAccessors;\r\n\r\nexport default Accessor;","export default {\r\n\tmethod: \"GET\",\r\n};","function generateParamsList(data, prefix){\r\n\tvar output = [];\r\n\r\n\tprefix = prefix || \"\";\r\n\r\n\tif(Array.isArray(data)){\r\n\t\tdata.forEach((item, i) => {\r\n\t\t\toutput = output.concat(generateParamsList(item, prefix ? prefix + \"[\" + i + \"]\" : i));\r\n\t\t});\r\n\t}else if (typeof data === \"object\"){\r\n\t\tfor (var key in data){\r\n\t\t\toutput = output.concat(generateParamsList(data[key], prefix ? prefix + \"[\" + key + \"]\" : key));\r\n\t\t}\r\n\t}else{\r\n\t\toutput.push({key:prefix, value:data});\r\n\t}\r\n\r\n\treturn output;\r\n}\r\n\r\nfunction serializeParams(params){\r\n\tvar output = generateParamsList(params),\r\n\tencoded = [];\r\n\r\n\toutput.forEach(function(item){\r\n\t\tencoded.push(encodeURIComponent(item.key) + \"=\" + encodeURIComponent(item.value));\r\n\t});\r\n\r\n\treturn encoded.join(\"&\");\r\n}\r\n\r\nexport default function(url, config, params){\r\n\tif(url){\r\n\t\tif(params && Object.keys(params).length){\r\n\t\t\tif(!config.method || config.method.toLowerCase() == \"get\"){\r\n\t\t\t\tconfig.method = \"get\";\r\n\r\n\t\t\t\turl += (url.includes(\"?\") ? \"&\" : \"?\") + serializeParams(params);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn url;\r\n};","export default function(url, config, params){\r\n\tvar contentType;\r\n\r\n\treturn new Promise((resolve, reject) => {\r\n\t\t//set url\r\n\t\turl = this.urlGenerator.call(this.table, url, config, params);\r\n\r\n\t\t//set body content if not GET request\r\n\t\tif(config.method.toUpperCase() != \"GET\"){\r\n\t\t\tcontentType = typeof this.table.options.ajaxContentType === \"object\" ? this.table.options.ajaxContentType : this.contentTypeFormatters[this.table.options.ajaxContentType];\r\n\t\t\tif(contentType){\r\n\r\n\t\t\t\tfor(var key in contentType.headers){\r\n\t\t\t\t\tif(!config.headers){\r\n\t\t\t\t\t\tconfig.headers = {};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(typeof config.headers[key] === \"undefined\"){\r\n\t\t\t\t\t\tconfig.headers[key] = contentType.headers[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconfig.body = contentType.body.call(this, url, config, params);\r\n\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Ajax Error - Invalid ajaxContentType value:\", this.table.options.ajaxContentType);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(url){\r\n\t\t\t//configure headers\r\n\t\t\tif(typeof config.headers === \"undefined\"){\r\n\t\t\t\tconfig.headers = {};\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof config.headers.Accept === \"undefined\"){\r\n\t\t\t\tconfig.headers.Accept = \"application/json\";\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof config.headers[\"X-Requested-With\"] === \"undefined\"){\r\n\t\t\t\tconfig.headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof config.mode === \"undefined\"){\r\n\t\t\t\tconfig.mode = \"cors\";\r\n\t\t\t}\r\n\r\n\t\t\tif(config.mode == \"cors\"){\r\n\t\t\t\tif(typeof config.headers[\"Origin\"] === \"undefined\"){\r\n\t\t\t\t\tconfig.headers[\"Origin\"] = window.location.origin;\r\n\t\t\t\t}\r\n \r\n\t\t\t\tif(typeof config.credentials === \"undefined\"){\r\n\t\t\t\t\tconfig.credentials = 'same-origin';\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(typeof config.credentials === \"undefined\"){\r\n\t\t\t\t\tconfig.credentials = 'include';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//send request\r\n\t\t\tfetch(url, config)\r\n\t\t\t.then((response)=>{\r\n\t\t\t\tif(response.ok) {\r\n\t\t\t\t\tresponse.json()\r\n\t\t\t\t\t.then((data)=>{\r\n\t\t\t\t\t\tresolve(data);\r\n\t\t\t\t\t}).catch((error)=>{\r\n\t\t\t\t\t\treject(error);\r\n\t\t\t\t\t\tconsole.warn(\"Ajax Load Error - Invalid JSON returned\", error);\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.error(\"Ajax Load Error - Connection Error: \" + response.status, response.statusText);\r\n\t\t\t\t\treject(response);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((error)=>{\r\n\t\t\t\tconsole.error(\"Ajax Load Error - Connection Error: \", error);\r\n\t\t\t\treject(error);\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Ajax Load Error - No URL Set\");\r\n\t\t\tresolve([]);\r\n\t\t}\r\n\t});\r\n};","function generateParamsList(data, prefix){\r\n\tvar output = [];\r\n\r\n\tprefix = prefix || \"\";\r\n\r\n\tif(Array.isArray(data)){\r\n\t\tdata.forEach((item, i) => {\r\n\t\t\toutput = output.concat(generateParamsList(item, prefix ? prefix + \"[\" + i + \"]\" : i));\r\n\t\t});\r\n\t}else if (typeof data === \"object\"){\r\n\t\tfor (var key in data){\r\n\t\t\toutput = output.concat(generateParamsList(data[key], prefix ? prefix + \"[\" + key + \"]\" : key));\r\n\t\t}\r\n\t}else{\r\n\t\toutput.push({key:prefix, value:data});\r\n\t}\r\n\r\n\treturn output;\r\n}\r\n\r\nexport default {\r\n\t\"json\":{\r\n\t\theaders:{\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t},\r\n\t\tbody:function(url, config, params){\r\n\t\t\treturn JSON.stringify(params);\r\n\t\t},\r\n\t},\r\n\t\"form\":{\r\n\t\theaders:{\r\n\t\t},\r\n\t\tbody:function(url, config, params){\r\n\r\n\t\t\tvar output = generateParamsList(params),\r\n\t\t\tform = new FormData();\r\n\r\n\t\t\toutput.forEach(function(item){\r\n\t\t\t\tform.append(item.key, item.value);\r\n\t\t\t});\r\n\r\n\t\t\treturn form;\r\n\t\t},\r\n\t},\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultConfig from './defaults/config.js';\r\nimport defaultURLGenerator from './defaults/urlGenerator.js';\r\nimport defaultLoaderPromise from './defaults/loaderPromise.js';\r\nimport defaultContentTypeFormatters from './defaults/contentTypeFormatters.js';\r\n\r\nclass Ajax extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.config = false; //hold config object for ajax request\r\n\t\tthis.url = \"\"; //request URL\r\n\t\tthis.urlGenerator = false;\r\n\t\tthis.params = false; //request parameters\r\n\r\n\t\tthis.loaderPromise = false;\r\n\r\n\t\tthis.registerTableOption(\"ajaxURL\", false); //url for ajax loading\r\n\t\tthis.registerTableOption(\"ajaxURLGenerator\", false);\r\n\t\tthis.registerTableOption(\"ajaxParams\", {}); //params for ajax loading\r\n\t\tthis.registerTableOption(\"ajaxConfig\", \"get\"); //ajax request type\r\n\t\tthis.registerTableOption(\"ajaxContentType\", \"form\"); //ajax request type\r\n\t\tthis.registerTableOption(\"ajaxRequestFunc\", false); //promise function\r\n\r\n\t\tthis.registerTableOption(\"ajaxRequesting\", function(){});\r\n\t\tthis.registerTableOption(\"ajaxResponse\", false);\r\n\r\n\t\tthis.contentTypeFormatters = Ajax.contentTypeFormatters;\r\n\t}\r\n\r\n\t//initialize setup options\r\n\tinitialize(){\r\n\t\tthis.loaderPromise = this.table.options.ajaxRequestFunc || Ajax.defaultLoaderPromise;\r\n\t\tthis.urlGenerator = this.table.options.ajaxURLGenerator || Ajax.defaultURLGenerator;\r\n\r\n\t\tif(this.table.options.ajaxParams){\r\n\t\t\tthis.setParams(this.table.options.ajaxParams);\r\n\t\t}\r\n\r\n\t\tif(this.table.options.ajaxConfig){\r\n\t\t\tthis.setConfig(this.table.options.ajaxConfig);\r\n\t\t}\r\n\r\n\t\tif(this.table.options.ajaxURL){\r\n\t\t\tthis.setUrl(this.table.options.ajaxURL);\r\n\t\t}\r\n\r\n\t\tthis.registerTableFunction(\"getAjaxUrl\", this.getUrl.bind(this));\r\n\r\n\t\tthis.subscribe(\"data-loading\", this.requestDataCheck.bind(this));\r\n\t\tthis.subscribe(\"data-load\", this.requestData.bind(this));\r\n\t}\r\n\r\n\r\n\trequestDataCheck(data, params, config, silent){\r\n\t\treturn !!((!data && this.url) || typeof data === \"string\");\r\n\t}\r\n\r\n\trequestData(data, params, config, silent, previousData){\r\n\t\tif(this.requestDataCheck(data)){\r\n\t\t\tif(data){\r\n\t\t\t\tthis.setUrl(data);\r\n\t\t\t}\r\n\r\n\t\t\tif(params){\r\n\t\t\t\tthis.setParams(params, true);\r\n\t\t\t}\r\n\r\n\t\t\tif(config){\r\n\t\t\t\tthis.setConfig(config);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.sendRequest();\r\n\t\t}else{\r\n\t\t\treturn previousData;\r\n\t\t}\r\n\t}\r\n\r\n\t//set ajax params\r\n\tsetParams(params, update){\r\n\t\tif(update){\r\n\t\t\tthis.params = this.params || {};\r\n\r\n\t\t\tfor(let key in params){\r\n\t\t\t\tthis.params[key] = params[key];\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.params = params;\r\n\t\t}\r\n\t}\r\n\r\n\tgetParams(){\r\n\t\treturn this.params || {};\r\n\t}\r\n\r\n\t//load config object\r\n\tsetConfig(config){\r\n\t\tthis._loadDefaultConfig();\r\n\r\n\t\tif(typeof config == \"string\"){\r\n\t\t\tthis.config.method = config;\r\n\t\t}else{\r\n\t\t\tfor(let key in config){\r\n\t\t\t\tthis.config[key] = config[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//create config object from default\r\n\t_loadDefaultConfig(force){\r\n\t\tif(!this.config || force){\r\n\r\n\t\t\tthis.config = {};\r\n\r\n\t\t\t//load base config from defaults\r\n\t\t\tfor(let key in Ajax.defaultConfig){\r\n\t\t\t\tthis.config[key] = Ajax.defaultConfig[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//set request url\r\n\tsetUrl(url){\r\n\t\tthis.url = url;\r\n\t}\r\n\r\n\t//get request url\r\n\tgetUrl(){\r\n\t\treturn this.url;\r\n\t}\r\n\r\n\t//send ajax request\r\n\tsendRequest(silent){\r\n\t\tvar url = this.url,\r\n\t\tesc, query;\r\n\r\n\t\tthis._loadDefaultConfig();\r\n\r\n\t\tif(this.table.options.ajaxRequesting.call(this.table, this.url, this.params) !== false){\r\n\t\t\treturn this.loaderPromise(url, this.config, this.params)\r\n\t\t\t.then((data)=>{\r\n\t\t\t\tif(this.table.options.ajaxResponse){\r\n\t\t\t\t\tdata = this.table.options.ajaxResponse.call(this.table, this.url, this.params, data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn data;\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n}\r\n\r\nAjax.moduleName = \"ajax\";\r\n\r\n//load defaults\r\nAjax.defaultConfig = defaultConfig;\r\nAjax.defaultURLGenerator = defaultURLGenerator;\r\nAjax.defaultLoaderPromise = defaultLoaderPromise;\r\nAjax.contentTypeFormatters = defaultContentTypeFormatters;\r\n\r\nexport default Ajax;","export default {\r\n\treplace:function(rows){\r\n\t\treturn this.table.setData(rows);\r\n\t},\r\n\tupdate:function(rows){\r\n\t\treturn this.table.updateOrAddData(rows);\r\n\t},\r\n\tinsert:function(rows){\r\n\t\treturn this.table.addData(rows);\r\n\t},\r\n};","export default {\r\n\ttable:function(clipboard){\r\n\t\tvar data = [],\r\n\t\tsuccess = false,\r\n\t\theaderFindSuccess = true,\r\n\t\tcolumns = this.table.columnManager.columns,\r\n\t\tcolumnMap = [],\r\n\t\trows = [];\r\n\r\n\t\t//get data from clipboard into array of columns and rows.\r\n\t\tclipboard = clipboard.split(\"\\n\");\r\n\r\n\t\tclipboard.forEach(function(row){\r\n\t\t\tdata.push(row.split(\"\\t\"));\r\n\t\t});\r\n\r\n\t\tif(data.length && !(data.length === 1 && data[0].length < 2)){\r\n\t\t\tsuccess = true;\r\n\r\n\t\t\t//check if headers are present by title\r\n\t\t\tdata[0].forEach(function(value){\r\n\t\t\t\tvar column = columns.find(function(column){\r\n\t\t\t\t\treturn value && column.definition.title && value.trim() && column.definition.title.trim() === value.trim();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(column){\r\n\t\t\t\t\tcolumnMap.push(column);\r\n\t\t\t\t}else{\r\n\t\t\t\t\theaderFindSuccess = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t//check if column headers are present by field\r\n\t\t\tif(!headerFindSuccess){\r\n\t\t\t\theaderFindSuccess = true;\r\n\t\t\t\tcolumnMap = [];\r\n\r\n\t\t\t\tdata[0].forEach(function(value){\r\n\t\t\t\t\tvar column = columns.find(function(column){\r\n\t\t\t\t\t\treturn value && column.field && value.trim() && column.field.trim() === value.trim();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif(column){\r\n\t\t\t\t\t\tcolumnMap.push(column);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\theaderFindSuccess = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(!headerFindSuccess){\r\n\t\t\t\t\tcolumnMap = this.table.columnManager.columnsByIndex;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//remove header row if found\r\n\t\t\tif(headerFindSuccess){\r\n\t\t\t\tdata.shift();\r\n\t\t\t}\r\n\r\n\t\t\tdata.forEach(function(item){\r\n\t\t\t\tvar row = {};\r\n\r\n\t\t\t\titem.forEach(function(value, i){\r\n\t\t\t\t\tif(columnMap[i]){\r\n\t\t\t\t\t\trow[columnMap[i].field] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\trows.push(row);\r\n\t\t\t});\r\n\r\n\t\t\treturn rows;\r\n\t\t}else{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultPasteActions from './defaults/pasteActions.js';\r\nimport defaultPasteParsers from './defaults/pasteParsers.js';\r\n\r\nclass Clipboard extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.mode = true;\r\n\t\tthis.pasteParser = function(){};\r\n\t\tthis.pasteAction = function(){};\r\n\t\tthis.customSelection = false;\r\n\t\tthis.rowRange = false;\r\n\t\tthis.blocked = true; //block copy actions not originating from this command\r\n\r\n\t\tthis.registerTableOption(\"clipboard\", false); //enable clipboard\r\n\t\tthis.registerTableOption(\"clipboardCopyStyled\", true); //formatted table data\r\n\t\tthis.registerTableOption(\"clipboardCopyConfig\", false); //clipboard config\r\n\t\tthis.registerTableOption(\"clipboardCopyFormatter\", false); //DEPRICATED - REMOVE in 5.0\r\n\t\tthis.registerTableOption(\"clipboardCopyRowRange\", \"active\"); //restrict clipboard to visible rows only\r\n\t\tthis.registerTableOption(\"clipboardPasteParser\", \"table\"); //convert pasted clipboard data to rows\r\n\t\tthis.registerTableOption(\"clipboardPasteAction\", \"insert\"); //how to insert pasted data into the table\r\n\r\n\t\tthis.registerColumnOption(\"clipboard\");\r\n\t\tthis.registerColumnOption(\"titleClipboard\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.mode = this.table.options.clipboard;\r\n\r\n\t\tthis.rowRange = this.table.options.clipboardCopyRowRange;\r\n\r\n\t\tif(this.mode === true || this.mode === \"copy\"){\r\n\t\t\tthis.table.element.addEventListener(\"copy\", (e) => {\r\n\t\t\t\tvar plain, html, list;\r\n\r\n\t\t\t\tif(!this.blocked){\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tif(this.customSelection){\r\n\t\t\t\t\t\tplain = this.customSelection;\r\n\r\n\t\t\t\t\t\tif(this.table.options.clipboardCopyFormatter){\r\n\t\t\t\t\t\t\tplain = this.table.options.clipboardCopyFormatter(\"plain\", plain);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\r\n\t\t\t\t\t\tvar list = this.table.modules.export.generateExportList(this.table.options.clipboardCopyConfig, this.table.options.clipboardCopyStyled, this.rowRange, \"clipboard\");\r\n\r\n\t\t\t\t\t\thtml = this.table.modules.export.genereateHTMLTable(list);\r\n\t\t\t\t\t\tplain = html ? this.generatePlainContent(list) : \"\";\r\n\r\n\t\t\t\t\t\tif(this.table.options.clipboardCopyFormatter){\r\n\t\t\t\t\t\t\tplain = this.table.options.clipboardCopyFormatter(\"plain\", plain);\r\n\t\t\t\t\t\t\thtml = this.table.options.clipboardCopyFormatter(\"html\", html);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (window.clipboardData && window.clipboardData.setData) {\r\n\t\t\t\t\t\twindow.clipboardData.setData('Text', plain);\r\n\t\t\t\t\t} else if (e.clipboardData && e.clipboardData.setData) {\r\n\t\t\t\t\t\te.clipboardData.setData('text/plain', plain);\r\n\t\t\t\t\t\tif(html){\r\n\t\t\t\t\t\t\te.clipboardData.setData('text/html', html);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (e.originalEvent && e.originalEvent.clipboardData.setData) {\r\n\t\t\t\t\t\te.originalEvent.clipboardData.setData('text/plain', plain);\r\n\t\t\t\t\t\tif(html){\r\n\t\t\t\t\t\t\te.originalEvent.clipboardData.setData('text/html', html);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.dispatchExternal(\"clipboardCopied\", plain, html);\r\n\r\n\t\t\t\t\tthis.reset();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(this.mode === true || this.mode === \"paste\"){\r\n\t\t\tthis.table.element.addEventListener(\"paste\", (e) => {\r\n\t\t\t\tthis.paste(e);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.setPasteParser(this.table.options.clipboardPasteParser);\r\n\t\tthis.setPasteAction(this.table.options.clipboardPasteAction);\r\n\r\n\t\tthis.registerTableFunction(\"copyToClipboard\", this.copy.bind(this));\r\n\t}\r\n\r\n\treset(){\r\n\t\tthis.blocked = true;\r\n\t\tthis.customSelection = false;\r\n\t}\r\n\r\n\tgeneratePlainContent (list) {\r\n\t\tvar output = [];\r\n\r\n\t\tlist.forEach((row) => {\r\n\t\t\tvar rowData = [];\r\n\r\n\t\t\trow.columns.forEach((col) => {\r\n\t\t\t\tvar value = \"\";\r\n\r\n\t\t\t\tif(col){\r\n\r\n\t\t\t\t\tif(row.type === \"group\"){\r\n\t\t\t\t\t\tcol.value = col.component.getKey();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(col.value === null){\r\n\t\t\t\t\t\tvalue = \"\";\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tswitch(typeof col.value){\r\n\t\t\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\t\t\tvalue = JSON.stringify(col.value);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\t\t\tvalue = \"\";\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tvalue = col.value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\trowData.push(value);\r\n\t\t\t});\r\n\r\n\t\t\toutput.push(rowData.join(\"\\t\"));\r\n\t\t});\r\n\r\n\t\treturn output.join(\"\\n\");\r\n\t}\r\n\r\n\tcopy (range, internal) {\r\n\t\tvar range, sel, textRange;\r\n\t\tthis.blocked = false;\r\n\t\tthis.customSelection = false;\r\n\r\n\t\tif (this.mode === true || this.mode === \"copy\") {\r\n\r\n\t\t\tthis.rowRange = range || this.table.options.clipboardCopyRowRange;\r\n\r\n\t\t\tif (typeof window.getSelection != \"undefined\" && typeof document.createRange != \"undefined\") {\r\n\t\t\t\trange = document.createRange();\r\n\t\t\t\trange.selectNodeContents(this.table.element);\r\n\t\t\t\tsel = window.getSelection();\r\n\r\n\t\t\t\tif (sel.toString() && internal) {\r\n\t\t\t\t\tthis.customSelection = sel.toString();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsel.removeAllRanges();\r\n\t\t\t\tsel.addRange(range);\r\n\t\t\t} else if (typeof document.selection != \"undefined\" && typeof document.body.createTextRange != \"undefined\") {\r\n\t\t\t\ttextRange = document.body.createTextRange();\r\n\t\t\t\ttextRange.moveToElementText(this.table.element);\r\n\t\t\t\ttextRange.select();\r\n\t\t\t}\r\n\r\n\t\t\tdocument.execCommand('copy');\r\n\r\n\t\t\tif (sel) {\r\n\t\t\t\tsel.removeAllRanges();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//PASTE EVENT HANDLING\r\n\tsetPasteAction(action){\r\n\r\n\t\tswitch(typeof action){\r\n\t\t\tcase \"string\":\r\n\t\t\tthis.pasteAction = Clipboard.pasteActions[action];\r\n\r\n\t\t\tif(!this.pasteAction){\r\n\t\t\t\tconsole.warn(\"Clipboard Error - No such paste action found:\", action);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tthis.pasteAction = action;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tsetPasteParser(parser){\r\n\t\tswitch(typeof parser){\r\n\t\t\tcase \"string\":\r\n\t\t\tthis.pasteParser = Clipboard.pasteParsers[parser];\r\n\r\n\t\t\tif(!this.pasteParser){\r\n\t\t\t\tconsole.warn(\"Clipboard Error - No such paste parser found:\", parser);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tthis.pasteParser = parser;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tpaste(e){\r\n\t\tvar data, rowData, rows;\r\n\r\n\t\tif(this.checkPaseOrigin(e)){\r\n\r\n\t\t\tdata = this.getPasteData(e);\r\n\r\n\t\t\trowData = this.pasteParser.call(this, data);\r\n\r\n\t\t\tif(rowData){\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif(this.table.modExists(\"mutator\")){\r\n\t\t\t\t\trowData = this.mutateData(rowData);\r\n\t\t\t\t}\r\n\r\n\t\t\t\trows = this.pasteAction.call(this, rowData);\r\n\r\n\t\t\t\tthis.dispatchExternal(\"clipboardPasted\", data, rowData, rows);\r\n\t\t\t}else{\r\n\t\t\t\tthis.dispatchExternal(\"clipboardPasteError\", data);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tmutateData(data){\r\n\t\tvar output = [];\r\n\r\n\t\tif(Array.isArray(data)){\r\n\t\t\tdata.forEach((row) => {\r\n\t\t\t\toutput.push(this.table.modules.mutator.transformRow(row, \"clipboard\"));\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\toutput = data;\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\r\n\tcheckPaseOrigin(e){\r\n\t\tvar valid = true;\r\n\r\n\t\tif(e.target.tagName != \"DIV\" || this.table.modules.edit.currentCell){\r\n\t\t\tvalid = false;\r\n\t\t}\r\n\r\n\t\treturn valid;\r\n\t}\r\n\r\n\tgetPasteData(e){\r\n\t\tvar data;\r\n\r\n\t\tif (window.clipboardData && window.clipboardData.getData) {\r\n\t\t\tdata = window.clipboardData.getData('Text');\r\n\t\t} else if (e.clipboardData && e.clipboardData.getData) {\r\n\t\t\tdata = e.clipboardData.getData('text/plain');\r\n\t\t} else if (e.originalEvent && e.originalEvent.clipboardData.getData) {\r\n\t\t\tdata = e.originalEvent.clipboardData.getData('text/plain');\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n}\r\n\r\nClipboard.moduleName = \"clipboard\";\r\n\r\n//load defaults\r\nClipboard.pasteActions = defaultPasteActions;\r\nClipboard.pasteParsers = defaultPasteParsers;\r\n\r\nexport default Clipboard;","class CalcComponent{\r\n\tconstructor (row){\r\n\t\tthis._row = row;\r\n\r\n\t\treturn new Proxy(this, {\r\n\t\t\tget: function(target, name, receiver) {\r\n\t\t\t\tif (typeof target[name] !== \"undefined\") {\r\n\t\t\t\t\treturn target[name];\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn target._row.table.componentFunctionBinder.handle(\"row\", target._row, name)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tgetData(transform){\r\n\t\treturn this._row.getData(transform);\r\n\t}\r\n\r\n\tgetElement(){\r\n\t\treturn this._row.getElement();\r\n\t}\r\n\r\n\tgetTable(){\r\n\t\treturn this._row.table;\r\n\t}\r\n\r\n\tgetCells(){\r\n\t\tvar cells = [];\r\n\r\n\t\tthis._row.getCells().forEach(function(cell){\r\n\t\t\tcells.push(cell.getComponent());\r\n\t\t});\r\n\r\n\t\treturn cells;\r\n\t}\r\n\r\n\tgetCell(column){\r\n\t\tvar cell = this._row.getCell(column);\r\n\t\treturn cell ? cell.getComponent() : false;\r\n\t}\r\n\r\n\t_getSelf(){\r\n\t\treturn this._row;\r\n\t}\r\n}\r\n\r\nexport default CalcComponent;","export default {\r\n\t\"avg\":function(values, data, calcParams){\r\n\t\tvar output = 0,\r\n\t\tprecision = typeof calcParams.precision !== \"undefined\" ? calcParams.precision : 2\r\n\r\n\t\tif(values.length){\r\n\t\t\toutput = values.reduce(function(sum, value){\r\n\t\t\t\treturn Number(sum) + Number(value);\r\n\t\t\t});\r\n\r\n\t\t\toutput = output / values.length;\r\n\r\n\t\t\toutput = precision !== false ? output.toFixed(precision) : output;\r\n\t\t}\r\n\r\n\t\treturn parseFloat(output).toString();\r\n\t},\r\n\t\"max\":function(values, data, calcParams){\r\n\t\tvar output = null,\r\n\t\tprecision = typeof calcParams.precision !== \"undefined\" ? calcParams.precision : false;\r\n\r\n\t\tvalues.forEach(function(value){\r\n\r\n\t\t\tvalue = Number(value);\r\n\r\n\t\t\tif(value > output || output === null){\r\n\t\t\t\toutput = value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output !== null ? (precision !== false ? output.toFixed(precision) : output) : \"\";\r\n\t},\r\n\t\"min\":function(values, data, calcParams){\r\n\t\tvar output = null,\r\n\t\tprecision = typeof calcParams.precision !== \"undefined\" ? calcParams.precision : false;\r\n\r\n\t\tvalues.forEach(function(value){\r\n\r\n\t\t\tvalue = Number(value);\r\n\r\n\t\t\tif(value < output || output === null){\r\n\t\t\t\toutput = value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output !== null ? (precision !== false ? output.toFixed(precision) : output) : \"\";\r\n\t},\r\n\t\"sum\":function(values, data, calcParams){\r\n\t\tvar output = 0,\r\n\t\tprecision = typeof calcParams.precision !== \"undefined\" ? calcParams.precision : false;\r\n\r\n\t\tif(values.length){\r\n\t\t\tvalues.forEach(function(value){\r\n\t\t\t\tvalue = Number(value);\r\n\r\n\t\t\t\toutput += !isNaN(value) ? Number(value) : 0;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn precision !== false ? output.toFixed(precision) : output;\r\n\t},\r\n\t\"concat\":function(values, data, calcParams){\r\n\t\tvar output = 0;\r\n\r\n\t\tif(values.length){\r\n\t\t\toutput = values.reduce(function(sum, value){\r\n\t\t\t\treturn String(sum) + String(value);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t},\r\n\t\"count\":function(values, data, calcParams){\r\n\t\tvar output = 0;\r\n\r\n\t\tif(values.length){\r\n\t\t\tvalues.forEach(function(value){\r\n\t\t\t\tif(value){\r\n\t\t\t\t\toutput ++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t},\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport CalcComponent from './CalcComponent.js';\r\n\r\nimport Cell from '../../core/cell/Cell.js';\r\nimport Column from '../../core/column/Column.js';\r\nimport Row from '../../core/row/Row.js';\r\n\r\nimport defaultCalculations from './defaults/calculations.js';\r\n\r\nclass ColumnCalcs extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.topCalcs = [];\r\n\t\tthis.botCalcs = [];\r\n\t\tthis.genColumn = false;\r\n\t\tthis.topElement = this.createElement();\r\n\t\tthis.botElement = this.createElement();\r\n\t\tthis.topRow = false;\r\n\t\tthis.botRow = false;\r\n\t\tthis.topInitialized = false;\r\n\t\tthis.botInitialized = false;\r\n\r\n\t\tthis.registerTableOption(\"columnCalcs\", true);\r\n\r\n\t\tthis.registerColumnOption(\"topCalc\");\r\n\t\tthis.registerColumnOption(\"topCalcParams\");\r\n\t\tthis.registerColumnOption(\"topCalcFormatter\");\r\n\t\tthis.registerColumnOption(\"topCalcFormatterParams\");\r\n\t\tthis.registerColumnOption(\"bottomCalc\");\r\n\t\tthis.registerColumnOption(\"bottomCalcParams\");\r\n\t\tthis.registerColumnOption(\"bottomCalcFormatter\");\r\n\t\tthis.registerColumnOption(\"bottomCalcFormatterParams\");\r\n\t}\r\n\r\n\tcreateElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\tel.classList.add(\"tabulator-calcs-holder\");\r\n\t\treturn el;\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.genColumn = new Column({field:\"value\"}, this);\r\n\r\n\t\tthis.subscribe(\"cell-value-changed\", this.cellValueChanged.bind(this));\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumnCheck.bind(this));\r\n\t\tthis.subscribe(\"row-deleted\", this.rowsUpdated.bind(this));\r\n\t\tthis.subscribe(\"scroll-horizontal\", this.scrollHorizontal.bind(this));\r\n\t\tthis.subscribe(\"row-added\", this.rowsUpdated.bind(this));\r\n\t\tthis.subscribe(\"column-moved\", this.recalcActiveRows.bind(this));\r\n\t\tthis.subscribe(\"column-add\", this.recalcActiveRows.bind(this));\r\n\t\tthis.subscribe(\"data-refeshed\", this.recalcActiveRows.bind(this));\r\n\t\tthis.subscribe(\"table-redraw\", this.tableRedraw.bind(this));\r\n\r\n\t\tthis.registerTableFunction(\"getCalcResults\", this.getResults.bind(this));\r\n\t\tthis.registerTableFunction(\"recalc\", this.userRecalc.bind(this));\r\n\t}\r\n\r\n\ttableRedraw(force){\r\n\t\tthis.recalc(this.table.rowManager.activeRows);\r\n\r\n\t\tif(force){\r\n\t\t\tthis.redraw();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\tuserRecalc(){\r\n\t\tthis.recalc(this.table.rowManager.activeRows);\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\trowsUpdated(row){\r\n\t\tif(this.table.options.groupBy){\r\n\t\t\tthis.recalcRowGroup(this);\r\n\t\t}else{\r\n\t\t\tthis.recalcActiveRows();\r\n\t\t}\r\n\t}\r\n\r\n\trecalcActiveRows(){\r\n\t\tthis.recalc(this.table.rowManager.activeRows);\r\n\t}\r\n\r\n\tcellValueChanged(cell){\r\n\t\tif(cell.column.definition.topCalc || cell.column.definition.bottomCalc){\r\n\t\t\tif(this.table.options.groupBy){\r\n\r\n\t\t\t\tif(this.table.options.columnCalcs == \"table\" || this.table.options.columnCalcs == \"both\"){\r\n\t\t\t\t\tthis.recalcActiveRows();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(this.table.options.columnCalcs != \"table\"){\r\n\t\t\t\t\tthis.recalcRowGroup(cell.row);\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\t\t\t\tthis.recalcActiveRows();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeColumnCheck(column){\r\n\t\tif(column.definition.topCalc || column.definition.bottomCalc){\r\n\t\t\tthis.initializeColumn(column);\r\n\t\t}\r\n\t}\r\n\r\n\t//initialize column calcs\r\n\tinitializeColumn(column){\r\n\t\tvar def = column.definition\r\n\r\n\t\tvar config = {\r\n\t\t\ttopCalcParams:def.topCalcParams || {},\r\n\t\t\tbotCalcParams:def.bottomCalcParams || {},\r\n\t\t};\r\n\r\n\t\tif(def.topCalc){\r\n\r\n\t\t\tswitch(typeof def.topCalc){\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\tif(ColumnCalcs.calculations[def.topCalc]){\r\n\t\t\t\t\tconfig.topCalc = ColumnCalcs.calculations[def.topCalc]\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Column Calc Error - No such calculation found, ignoring: \", def.topCalc);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\tconfig.topCalc = def.topCalc;\r\n\t\t\t\tbreak\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif(config.topCalc){\r\n\t\t\t\tcolumn.modules.columnCalcs = config;\r\n\t\t\t\tthis.topCalcs.push(column);\r\n\r\n\t\t\t\tif(this.table.options.columnCalcs != \"group\"){\r\n\t\t\t\t\tthis.initializeTopRow();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif(def.bottomCalc){\r\n\t\t\tswitch(typeof def.bottomCalc){\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\tif(ColumnCalcs.calculations[def.bottomCalc]){\r\n\t\t\t\t\tconfig.botCalc = ColumnCalcs.calculations[def.bottomCalc]\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Column Calc Error - No such calculation found, ignoring: \", def.bottomCalc);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\tconfig.botCalc = def.bottomCalc;\r\n\t\t\t\tbreak\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif(config.botCalc){\r\n\t\t\t\tcolumn.modules.columnCalcs = config;\r\n\t\t\t\tthis.botCalcs.push(column);\r\n\r\n\t\t\t\tif(this.table.options.columnCalcs != \"group\"){\r\n\t\t\t\t\tthis.initializeBottomRow();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t//dummy functions to handle being mock column manager\r\n\tregisterColumnField(){};\r\n\r\n\tremoveCalcs(){\r\n\t\tvar changed = false;\r\n\r\n\t\tif(this.topInitialized){\r\n\t\t\tthis.topInitialized = false;\r\n\t\t\tthis.topElement.parentNode.removeChild(this.topElement);\r\n\t\t\tchanged = true;\r\n\t\t}\r\n\r\n\t\tif(this.botInitialized){\r\n\t\t\tthis.botInitialized = false;\r\n\t\t\tthis.table.footerManager.remove(this.botElement);\r\n\t\t\tchanged = true;\r\n\t\t}\r\n\r\n\t\tif(changed){\r\n\t\t\tthis.table.rowManager.adjustTableSize();\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeTopRow(){\r\n\t\tif(!this.topInitialized){\r\n\t\t\tthis.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);\r\n\t\t\tthis.topInitialized = true;\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeBottomRow(){\r\n\t\tif(!this.botInitialized){\r\n\t\t\tthis.table.footerManager.prepend(this.botElement);\r\n\t\t\tthis.botInitialized = true;\r\n\t\t}\r\n\t}\r\n\r\n\tscrollHorizontal(left){\r\n\t\tif(this.botInitialized && this.botRow){\r\n\t\t\tthis.botRow.getElement().style.marginLeft = (-left) + \"px\";\r\n\t\t}\r\n\t}\r\n\r\n\trecalc(rows){\r\n\t\tvar data, row;\r\n\r\n\t\tif(this.topInitialized || this.botInitialized){\r\n\t\t\tdata = this.rowsToData(rows);\r\n\r\n\t\t\tif(this.topInitialized){\r\n\t\t\t\tif(this.topRow){\r\n\t\t\t\t\tthis.topRow.deleteCells();\r\n\t\t\t\t}\r\n\r\n\t\t\t\trow = this.generateRow(\"top\", this.rowsToData(rows))\r\n\t\t\t\tthis.topRow = row;\r\n\t\t\t\twhile(this.topElement.firstChild) this.topElement.removeChild(this.topElement.firstChild);\r\n\t\t\t\tthis.topElement.appendChild(row.getElement());\r\n\t\t\t\trow.initialize(true);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.botInitialized){\r\n\t\t\t\tif(this.botRow){\r\n\t\t\t\t\tthis.botRow.deleteCells();\r\n\t\t\t\t}\r\n\r\n\t\t\t\trow = this.generateRow(\"bottom\", this.rowsToData(rows))\r\n\t\t\t\tthis.botRow = row;\r\n\t\t\t\twhile(this.botElement.firstChild) this.botElement.removeChild(this.botElement.firstChild);\r\n\t\t\t\tthis.botElement.appendChild(row.getElement());\r\n\t\t\t\trow.initialize(true);\r\n\t\t\t}\r\n\r\n\t\t\tthis.table.rowManager.adjustTableSize();\r\n\r\n\t\t\t//set resizable handles\r\n\t\t\tif(this.table.modExists(\"frozenColumns\")){\r\n\t\t\t\tthis.table.modules.frozenColumns.layout();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trecalcRowGroup(row){\r\n\t\tthis.recalcGroup(this.table.modules.groupRows.getRowGroup(row));\r\n\t}\r\n\r\n\trecalcAll(){\r\n\t\tif(this.topCalcs.length || this.botCalcs.length){\r\n\t\t\tif(this.table.options.columnCalcs !== \"group\"){\r\n\t\t\t\tthis.recalcActiveRows();\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.options.groupBy && this.table.options.columnCalcs !== \"table\"){\r\n\r\n\r\n\t\t\t\tvar groups = this.table.modules.groupRows.getChildGroups();\r\n\r\n\t\t\t\tgroups.forEach((group) => {\r\n\t\t\t\t\tthis.recalcGroup(group);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trecalcGroup(group){\r\n\t\tvar data, rowData;\r\n\r\n\t\tif(group){\r\n\t\t\tif(group.calcs){\r\n\t\t\t\tif(group.calcs.bottom){\r\n\t\t\t\t\tdata = this.rowsToData(group.rows);\r\n\t\t\t\t\trowData = this.generateRowData(\"bottom\", data);\r\n\r\n\t\t\t\t\tgroup.calcs.bottom.updateData(rowData);\r\n\t\t\t\t\tgroup.calcs.bottom.reinitialize();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(group.calcs.top){\r\n\t\t\t\t\tdata = this.rowsToData(group.rows);\r\n\t\t\t\t\trowData = this.generateRowData(\"top\", data);\r\n\r\n\t\t\t\t\tgroup.calcs.top.updateData(rowData);\r\n\t\t\t\t\tgroup.calcs.top.reinitialize();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//generate top stats row\r\n\tgenerateTopRow(rows){\r\n\t\treturn this.generateRow(\"top\", this.rowsToData(rows));\r\n\t}\r\n\t//generate bottom stats row\r\n\tgenerateBottomRow(rows){\r\n\t\treturn this.generateRow(\"bottom\", this.rowsToData(rows));\r\n\t}\r\n\r\n\trowsToData(rows){\r\n\t\tvar data = [];\r\n\r\n\t\trows.forEach((row) => {\r\n\t\t\tdata.push(row.getData());\r\n\r\n\t\t\tif(this.table.options.dataTree && this.table.options.dataTreeChildColumnCalcs){\r\n\t\t\t\tif(row.modules.dataTree.open){\r\n\t\t\t\t\tvar children = this.rowsToData(this.table.modules.dataTree.getFilteredTreeChildren(row));\r\n\t\t\t\t\tdata = data.concat(children);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\t//generate stats row\r\n\tgenerateRow(pos, data){\r\n\t\tvar rowData = this.generateRowData(pos, data),\r\n\t\trow;\r\n\r\n\t\tif(this.table.modExists(\"mutator\")){\r\n\t\t\tthis.table.modules.mutator.disable();\r\n\t\t}\r\n\r\n\t\trow = new Row(rowData, this, \"calc\");\r\n\r\n\t\tif(this.table.modExists(\"mutator\")){\r\n\t\t\tthis.table.modules.mutator.enable();\r\n\t\t}\r\n\r\n\t\trow.getElement().classList.add(\"tabulator-calcs\", \"tabulator-calcs-\" + pos);\r\n\r\n\t\trow.component = false;\r\n\r\n\t\trow.getComponent = () => {\r\n\t\t\tif(!row.component){\r\n\t\t\t\trow.component = new CalcComponent(this);\r\n\t\t\t}\r\n\r\n\t\t\treturn row.component;\r\n\t\t};\r\n\r\n\t\trow.generateCells = () => {\r\n\r\n\t\t\tvar cells = [];\r\n\r\n\t\t\tthis.table.columnManager.columnsByIndex.forEach((column) => {\r\n\r\n\t\t\t\t\t//set field name of mock column\r\n\t\t\t\t\tthis.genColumn.setField(column.getField());\r\n\t\t\t\t\tthis.genColumn.hozAlign = column.hozAlign;\r\n\r\n\t\t\t\t\tif(column.definition[pos + \"CalcFormatter\"] && this.table.modExists(\"format\")){\r\n\t\t\t\t\t\tthis.genColumn.modules.format = {\r\n\t\t\t\t\t\t\tformatter: this.table.modules.format.getFormatter(column.definition[pos + \"CalcFormatter\"]),\r\n\t\t\t\t\t\t\tparams: column.definition[pos + \"CalcFormatterParams\"] || {},\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.genColumn.modules.format = {\r\n\t\t\t\t\t\t\tformatter: this.table.modules.format.getFormatter(\"plaintext\"),\r\n\t\t\t\t\t\t\tparams:{}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//ensure css class defintion is replicated to calculation cell\r\n\t\t\t\t\tthis.genColumn.definition.cssClass = column.definition.cssClass;\r\n\r\n\t\t\t\t\t//generate cell and assign to correct column\r\n\t\t\t\t\tvar cell = new Cell(this.genColumn, row);\r\n\t\t\t\t\tcell.getElement();\r\n\t\t\t\t\tcell.column = column;\r\n\t\t\t\t\tcell.setWidth();\r\n\r\n\t\t\t\t\tcolumn.cells.push(cell);\r\n\t\t\t\t\tcells.push(cell);\r\n\r\n\t\t\t\t\tif(!column.visible){\r\n\t\t\t\t\t\tcell.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\trow.cells = cells;\r\n\t\t};\r\n\r\n\t\treturn row;\r\n\t}\r\n\r\n\t//generate stats row\r\n\tgenerateRowData(pos, data){\r\n\t\tvar rowData = {},\r\n\t\tcalcs = pos == \"top\" ? this.topCalcs : this.botCalcs,\r\n\t\ttype = pos == \"top\" ? \"topCalc\" : \"botCalc\",\r\n\t\tparams, paramKey;\r\n\r\n\t\tcalcs.forEach(function(column){\r\n\t\t\tvar values = [];\r\n\r\n\t\t\tif(column.modules.columnCalcs && column.modules.columnCalcs[type]){\r\n\t\t\t\tdata.forEach(function(item){\r\n\t\t\t\t\tvalues.push(column.getFieldValue(item));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tparamKey = type + \"Params\";\r\n\t\t\t\tparams = typeof column.modules.columnCalcs[paramKey] === \"function\" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey];\r\n\r\n\t\t\t\tcolumn.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn rowData;\r\n\t}\r\n\r\n\thasTopCalcs(){\r\n\t\treturn\t!!(this.topCalcs.length);\r\n\t}\r\n\r\n\thasBottomCalcs(){\r\n\t\treturn\t!!(this.botCalcs.length);\r\n\t}\r\n\r\n\t//handle table redraw\r\n\tredraw(){\r\n\t\tif(this.topRow){\r\n\t\t\tthis.topRow.normalizeHeight(true);\r\n\t\t}\r\n\t\tif(this.botRow){\r\n\t\t\tthis.botRow.normalizeHeight(true);\r\n\t\t}\r\n\t}\r\n\r\n\t//return the calculated\r\n\tgetResults(){\r\n\t\tvar results = {},\r\n\t\tgroups;\r\n\r\n\t\tif(this.table.options.groupBy && this.table.modExists(\"groupRows\")){\r\n\t\t\tgroups = this.table.modules.groupRows.getGroups(true);\r\n\r\n\t\t\tgroups.forEach((group) => {\r\n\t\t\t\tresults[group.getKey()] = this.getGroupResults(group);\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tresults = {\r\n\t\t\t\ttop: this.topRow ? this.topRow.getData() : {},\r\n\t\t\t\tbottom: this.botRow ? this.botRow.getData() : {},\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn results;\r\n\t}\r\n\r\n\t//get results from a group\r\n\tgetGroupResults(group){\r\n\t\tvar groupObj = group._getSelf(),\r\n\t\tsubGroups = group.getSubGroups(),\r\n\t\tsubGroupResults = {},\r\n\t\tresults = {};\r\n\r\n\t\tsubGroups.forEach((subgroup) => {\r\n\t\t\tsubGroupResults[subgroup.getKey()] = this.getGroupResults(subgroup);\r\n\t\t});\r\n\r\n\t\tresults = {\r\n\t\t\ttop: groupObj.calcs.top ? groupObj.calcs.top.getData() : {},\r\n\t\t\tbottom: groupObj.calcs.bottom ? groupObj.calcs.bottom.getData() : {},\r\n\t\t\tgroups: subGroupResults,\r\n\t\t}\r\n\r\n\t\treturn results;\r\n\t}\r\n}\r\n\r\nColumnCalcs.moduleName = \"columnCalcs\";\r\n\r\n//load defaults\r\nColumnCalcs.calculations = defaultCalculations;\r\n\r\nexport default ColumnCalcs;","import Module from '../../core/Module.js';\r\n\r\nimport Row from '../../core/row/Row.js';\r\n\r\nclass DataTree extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.indent = 10;\r\n\t\tthis.field = \"\";\r\n\t\tthis.collapseEl = null;\r\n\t\tthis.expandEl = null;\r\n\t\tthis.branchEl = null;\r\n\t\tthis.elementField = false;\r\n\r\n\t\tthis.startOpen = function(){};\r\n\r\n\t\tthis.displayIndex = 0;\r\n\r\n\t\tthis.registerTableOption(\"dataTree\", false); //enable data tree\r\n\t\tthis.registerTableOption(\"dataTreeFilter\", true); //filter child rows\r\n\t\tthis.registerTableOption(\"dataTreeSort\", true); //sort child rows\r\n\t\tthis.registerTableOption(\"dataTreeElementColumn\", false);\r\n\t\tthis.registerTableOption(\"dataTreeBranchElement\", true);//show data tree branch element\r\n\t\tthis.registerTableOption(\"dataTreeChildIndent\", 9); //data tree child indent in px\r\n\t\tthis.registerTableOption(\"dataTreeChildField\", \"_children\");//data tre column field to look for child rows\r\n\t\tthis.registerTableOption(\"dataTreeCollapseElement\", false);//data tree row collapse element\r\n\t\tthis.registerTableOption(\"dataTreeExpandElement\", false);//data tree row expand element\r\n\t\tthis.registerTableOption(\"dataTreeStartExpanded\", false);\r\n\t\tthis.registerTableOption(\"dataTreeChildColumnCalcs\", false);//include visible data tree rows in column calculations\r\n\t\tthis.registerTableOption(\"dataTreeSelectPropagate\", false);//seleccting a parent row selects its children\r\n\r\n\t\t//register component functions\r\n\t\tthis.registerComponentFunction(\"row\", \"treeCollapse\", this.collapseRow.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"treeExpand\", this.expandRow.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"treeToggle\", this.toggleRow.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"getTreeParent\", this.getTreeParent.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"getTreeChildren\", this.getRowChildren.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"addTreeChild\", this.addTreeChildRow.bind(this));\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.dataTree){\r\n\t\t\tvar dummyEl = null,\r\n\t\t\tfirstCol = this.table.columnManager.getFirstVisibileColumn(),\r\n\t\t\toptions = this.table.options;\r\n\r\n\t\t\tthis.field = options.dataTreeChildField;\r\n\t\t\tthis.indent = options.dataTreeChildIndent;\r\n\t\t\tthis.elementField = options.dataTreeElementColumn || (firstCol ? firstCol.field : false);\r\n\r\n\t\t\tif(options.dataTreeBranchElement){\r\n\r\n\t\t\t\tif(options.dataTreeBranchElement === true){\r\n\t\t\t\t\tthis.branchEl = document.createElement(\"div\");\r\n\t\t\t\t\tthis.branchEl.classList.add(\"tabulator-data-tree-branch\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(typeof options.dataTreeBranchElement === \"string\"){\r\n\t\t\t\t\t\tdummyEl = document.createElement(\"div\");\r\n\t\t\t\t\t\tdummyEl.innerHTML = options.dataTreeBranchElement;\r\n\t\t\t\t\t\tthis.branchEl = dummyEl.firstChild;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.branchEl = options.dataTreeBranchElement;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(options.dataTreeCollapseElement){\r\n\t\t\t\tif(typeof options.dataTreeCollapseElement === \"string\"){\r\n\t\t\t\t\tdummyEl = document.createElement(\"div\");\r\n\t\t\t\t\tdummyEl.innerHTML = options.dataTreeCollapseElement;\r\n\t\t\t\t\tthis.collapseEl = dummyEl.firstChild;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.collapseEl = options.dataTreeCollapseElement;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.collapseEl = document.createElement(\"div\");\r\n\t\t\t\tthis.collapseEl.classList.add(\"tabulator-data-tree-control\");\r\n\t\t\t\tthis.collapseEl.tabIndex = 0;\r\n\t\t\t\tthis.collapseEl.innerHTML = \"<div class='tabulator-data-tree-control-collapse'></div>\";\r\n\t\t\t}\r\n\r\n\t\t\tif(options.dataTreeExpandElement){\r\n\t\t\t\tif(typeof options.dataTreeExpandElement === \"string\"){\r\n\t\t\t\t\tdummyEl = document.createElement(\"div\");\r\n\t\t\t\t\tdummyEl.innerHTML = options.dataTreeExpandElement;\r\n\t\t\t\t\tthis.expandEl = dummyEl.firstChild;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.expandEl = options.dataTreeExpandElement;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.expandEl = document.createElement(\"div\");\r\n\t\t\t\tthis.expandEl.classList.add(\"tabulator-data-tree-control\");\r\n\t\t\t\tthis.expandEl.tabIndex = 0;\r\n\t\t\t\tthis.expandEl.innerHTML = \"<div class='tabulator-data-tree-control-expand'></div>\";\r\n\t\t\t}\r\n\r\n\r\n\t\t\tswitch(typeof options.dataTreeStartExpanded){\r\n\t\t\t\tcase \"boolean\":\r\n\t\t\t\tthis.startOpen = function(row, index){\r\n\t\t\t\t\treturn options.dataTreeStartExpanded;\r\n\t\t\t\t};\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\tthis.startOpen = options.dataTreeStartExpanded;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\tthis.startOpen = function(row, index){\r\n\t\t\t\t\treturn options.dataTreeStartExpanded[index];\r\n\t\t\t\t};\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tthis.subscribe(\"row-init\", this.initializeRow.bind(this));\r\n\t\t\tthis.subscribe(\"row-layout-after\", this.layoutRow.bind(this));\r\n\t\t\tthis.subscribe(\"row-relayout\", this.layoutRow.bind(this));\r\n\t\t\tthis.subscribe(\"row-deleted\", this.rowDelete.bind(this),0);\r\n\t\t\tthis.subscribe(\"row-data-changed\", this.rowDataChanged.bind(this), 10);\r\n\t\t\tthis.subscribe(\"column-moving-rows\", this.columnMoving.bind(this));\r\n\r\n\t\t\tthis.registerDisplayHandler(this.getRows.bind(this), 30);\r\n\t\t}\r\n\t}\r\n\r\n\tgetRowChildren(row){\r\n\t\treturn this.getTreeChildren(row, true);\r\n\t}\r\n\r\n\tcolumnMoving(){\r\n\t\tvar rows = [];\r\n\r\n\t\tthis.table.rowManager.rows.forEach((row) => {\r\n\t\t\trows = rows.concat(this.getTreeChildren(row, false, true));\r\n\t\t});\r\n\r\n\t\treturn rows;\r\n\t}\r\n\r\n\trowDataChanged(row, visible, updatedData){\r\n\t\tif(this.redrawNeeded(updatedData)){\r\n\t\t\tthis.initializeRow(row);\r\n\r\n\t\t\tif(visible){\r\n\t\t\t\tthis.layoutRow(row);\r\n\t\t\t\tthis.refreshData(true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeRow(row){\r\n\t\tvar childArray = row.getData()[this.field];\r\n\t\tvar isArray = Array.isArray(childArray);\r\n\r\n\t\tvar children = isArray || (!isArray && typeof childArray === \"object\" && childArray !== null);\r\n\r\n\t\tif(!children && row.modules.dataTree && row.modules.dataTree.branchEl){\r\n\t\t\trow.modules.dataTree.branchEl.parentNode.removeChild(row.modules.dataTree.branchEl);\r\n\t\t}\r\n\r\n\t\tif(!children && row.modules.dataTree && row.modules.dataTree.controlEl){\r\n\t\t\trow.modules.dataTree.controlEl.parentNode.removeChild(row.modules.dataTree.controlEl);\r\n\t\t}\r\n\r\n\t\trow.modules.dataTree = {\r\n\t\t\tindex: row.modules.dataTree ? row.modules.dataTree.index : 0,\r\n\t\t\topen: children ? (row.modules.dataTree ? row.modules.dataTree.open : this.startOpen(row.getComponent(), 0)) : false,\r\n\t\t\tcontrolEl: row.modules.dataTree && children ? row.modules.dataTree.controlEl : false,\r\n\t\t\tbranchEl: row.modules.dataTree && children ? row.modules.dataTree.branchEl : false,\r\n\t\t\tparent: row.modules.dataTree ? row.modules.dataTree.parent : false,\r\n\t\t\tchildren:children,\r\n\t\t};\r\n\t}\r\n\r\n\treinitializeRowChildren(row){\r\n\t\tvar children = this.getTreeChildren(row, false, true);\r\n\r\n\t\tchildren.forEach(function(child){\r\n\t\t\tchild.reinitialize(true);\r\n\t\t});\r\n\t}\r\n\r\n\tlayoutRow(row){\r\n\t\tvar cell = this.elementField ? row.getCell(this.elementField) : row.getCells()[0],\r\n\t\tel = cell.getElement(),\r\n\t\tconfig = row.modules.dataTree;\r\n\r\n\t\tif(config.branchEl){\r\n\t\t\tif(config.branchEl.parentNode){\r\n\t\t\t\tconfig.branchEl.parentNode.removeChild(config.branchEl);\r\n\t\t\t}\r\n\t\t\tconfig.branchEl = false;\r\n\t\t}\r\n\r\n\t\tif(config.controlEl){\r\n\t\t\tif(config.controlEl.parentNode){\r\n\t\t\t\tconfig.controlEl.parentNode.removeChild(config.controlEl);\r\n\t\t\t}\r\n\t\t\tconfig.controlEl = false;\r\n\t\t}\r\n\r\n\t\tthis.generateControlElement(row, el);\r\n\r\n\t\trow.getElement().classList.add(\"tabulator-tree-level-\" + config.index);\r\n\r\n\t\tif(config.index){\r\n\t\t\tif(this.branchEl){\r\n\t\t\t\tconfig.branchEl = this.branchEl.cloneNode(true);\r\n\t\t\t\tel.insertBefore(config.branchEl, el.firstChild);\r\n\r\n\t\t\t\tif(this.table.rtl){\r\n\t\t\t\t\tconfig.branchEl.style.marginRight = (((config.branchEl.offsetWidth + config.branchEl.style.marginLeft) * (config.index - 1)) + (config.index * this.indent)) + \"px\";\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconfig.branchEl.style.marginLeft = (((config.branchEl.offsetWidth + config.branchEl.style.marginRight) * (config.index - 1)) + (config.index * this.indent)) + \"px\";\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\r\n\t\t\t\tif(this.table.rtl){\r\n\t\t\t\t\tel.style.paddingRight = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-right')) + (config.index * this.indent) + \"px\";\r\n\t\t\t\t}else{\r\n\t\t\t\t\tel.style.paddingLeft = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-left')) + (config.index * this.indent) + \"px\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgenerateControlElement(row, el){\r\n\t\tvar config = row.modules.dataTree,\r\n\t\tel = el || row.getCells()[0].getElement(),\r\n\t\toldControl = config.controlEl;\r\n\r\n\t\tif(config.children !== false){\r\n\r\n\t\t\tif(config.open){\r\n\t\t\t\tconfig.controlEl = this.collapseEl.cloneNode(true);\r\n\t\t\t\tconfig.controlEl.addEventListener(\"click\", (e) => {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tthis.collapseRow(row);\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tconfig.controlEl = this.expandEl.cloneNode(true);\r\n\t\t\t\tconfig.controlEl.addEventListener(\"click\", (e) => {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tthis.expandRow(row);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tconfig.controlEl.addEventListener(\"mousedown\", (e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\r\n\t\t\tif(oldControl && oldControl.parentNode === el){\r\n\t\t\t\toldControl.parentNode.replaceChild(config.controlEl,oldControl);\r\n\t\t\t}else{\r\n\t\t\t\tel.insertBefore(config.controlEl, el.firstChild);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetDisplayIndex (index) {\r\n\t\tthis.displayIndex = index;\r\n\t}\r\n\r\n\tgetDisplayIndex () {\r\n\t\treturn this.displayIndex;\r\n\t}\r\n\r\n\tgetRows(rows){\r\n\t\tvar output = [];\r\n\r\n\t\trows.forEach((row, i) => {\r\n\t\t\tvar config, children;\r\n\r\n\t\t\toutput.push(row);\r\n\r\n\t\t\tif(row instanceof Row){\r\n\r\n\t\t\t\trow.create();\r\n\r\n\t\t\t\tconfig = row.modules.dataTree.children;\r\n\r\n\t\t\t\tif(!config.index && config.children !== false){\r\n\t\t\t\t\tchildren = this.getChildren(row);\r\n\r\n\t\t\t\t\tchildren.forEach((child) => {\r\n\t\t\t\t\t\tchild.create();\r\n\t\t\t\t\t\toutput.push(child);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetChildren(row, allChildren){\r\n\t\tvar config = row.modules.dataTree,\r\n\t\tchildren = [],\r\n\t\toutput = [];\r\n\r\n\t\tif(config.children !== false && (config.open || allChildren)){\r\n\t\t\tif(!Array.isArray(config.children)){\r\n\t\t\t\tconfig.children = this.generateChildren(row);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.modExists(\"filter\") && this.table.options.dataTreeFilter){\r\n\t\t\t\tchildren = this.table.modules.filter.filter(config.children);\r\n\t\t\t}else{\r\n\t\t\t\tchildren = config.children;\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.modExists(\"sort\") && this.table.options.dataTreeSort){\r\n\t\t\t\tthis.table.modules.sort.sort(children);\r\n\t\t\t}\r\n\r\n\t\t\tchildren.forEach((child) => {\r\n\t\t\t\toutput.push(child);\r\n\r\n\t\t\t\tvar subChildren = this.getChildren(child);\r\n\r\n\t\t\t\tsubChildren.forEach((sub) => {\r\n\t\t\t\t\toutput.push(sub);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgenerateChildren(row){\r\n\t\tvar children = [];\r\n\r\n\t\tvar childArray = row.getData()[this.field];\r\n\r\n\t\tif(!Array.isArray(childArray)){\r\n\t\t\tchildArray = [childArray];\r\n\t\t}\r\n\r\n\t\tchildArray.forEach((childData) => {\r\n\t\t\tvar childRow = new Row(childData || {}, this.table.rowManager);\r\n\r\n\t\t\tchildRow.create();\r\n\r\n\t\t\tchildRow.modules.dataTree.index = row.modules.dataTree.index + 1;\r\n\t\t\tchildRow.modules.dataTree.parent = row;\r\n\r\n\t\t\tif(childRow.modules.dataTree.children){\r\n\t\t\t\tchildRow.modules.dataTree.open = this.startOpen(childRow.getComponent(), childRow.modules.dataTree.index);\r\n\t\t\t}\r\n\t\t\tchildren.push(childRow);\r\n\t\t});\r\n\r\n\t\treturn children;\r\n\t}\r\n\r\n\texpandRow(row, silent){\r\n\t\tvar config = row.modules.dataTree;\r\n\r\n\t\tif(config.children !== false){\r\n\t\t\tconfig.open = true;\r\n\r\n\t\t\trow.reinitialize();\r\n\r\n\t\t\tthis.refreshData(true);\r\n\r\n\t\t\tthis.dispatchExternal(\"dataTreeRowExpanded\", row.getComponent(), row.modules.dataTree.index);\r\n\t\t}\r\n\t}\r\n\r\n\tcollapseRow(row){\r\n\t\tvar config = row.modules.dataTree;\r\n\r\n\t\tif(config.children !== false){\r\n\t\t\tconfig.open = false;\r\n\r\n\t\t\trow.reinitialize();\r\n\r\n\t\t\tthis.refreshData(true);\r\n\r\n\t\t\tthis.dispatchExternal(\"dataTreeRowCollapsed\", row.getComponent(), row.modules.dataTree.index);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleRow(row){\r\n\t\tvar config = row.modules.dataTree;\r\n\r\n\t\tif(config.children !== false){\r\n\t\t\tif(config.open){\r\n\t\t\t\tthis.collapseRow(row);\r\n\t\t\t}else{\r\n\t\t\t\tthis.expandRow(row);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetTreeParent(row){\r\n\t\treturn row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false;\r\n\t}\r\n\r\n\tgetFilteredTreeChildren(row){\r\n\t\tvar config = row.modules.dataTree,\r\n\t\toutput = [], children;\r\n\r\n\t\tif(config.children){\r\n\r\n\t\t\tif(!Array.isArray(config.children)){\r\n\t\t\t\tconfig.children = this.generateChildren(row);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.modExists(\"filter\") && this.table.options.dataTreeFilter){\r\n\t\t\t\tchildren = this.table.modules.filter.filter(config.children);\r\n\t\t\t}else{\r\n\t\t\t\tchildren = config.children;\r\n\t\t\t}\r\n\r\n\t\t\tchildren.forEach((childRow) => {\r\n\t\t\t\tif(childRow instanceof Row){\r\n\t\t\t\t\toutput.push(childRow);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\trowDelete(row){\r\n\t\tvar parent = row.modules.dataTree.parent,\r\n\t\tchildIndex;\r\n\r\n\t\tif(parent){\r\n\t\t\tchildIndex = this.findChildIndex(row, parent);\r\n\r\n\t\t\tif(childIndex !== false){\r\n\t\t\t\tparent.data[this.field].splice(childIndex, 1);\r\n\t\t\t}\r\n\r\n\t\t\tif(!parent.data[this.field].length){\r\n\t\t\t\tdelete parent.data[this.field];\r\n\t\t\t}\r\n\r\n\t\t\tthis.initializeRow(parent);\r\n\t\t\tthis.layoutRow(parent);\r\n\t\t}\r\n\r\n\t\tthis.refreshData(true);\r\n\t}\r\n\r\n\taddTreeChildRow(row, data, top, index){\r\n\t\tvar childIndex = false;\r\n\r\n\t\tif(typeof data === \"string\"){\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\r\n\t\tif(!Array.isArray(row.data[this.field])){\r\n\t\t\trow.data[this.field] = [];\r\n\r\n\t\t\trow.modules.dataTree.open = this.startOpen(row.getComponent(), row.modules.dataTree.index);\r\n\t\t}\r\n\r\n\t\tif(typeof index !== \"undefined\"){\r\n\t\t\tchildIndex = this.findChildIndex(index, row);\r\n\r\n\t\t\tif(childIndex !== false){\r\n\t\t\t\trow.data[this.field].splice((top ? childIndex : childIndex + 1), 0, data);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(childIndex === false){\r\n\t\t\tif(top){\r\n\t\t\t\trow.data[this.field].unshift(data);\r\n\t\t\t}else{\r\n\t\t\t\trow.data[this.field].push(data);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.initializeRow(row);\r\n\t\tthis.layoutRow(row);\r\n\r\n\t\tthis.refreshData(true);\r\n\t}\r\n\r\n\tfindChildIndex(subject, parent){\r\n\t\tvar match = false;\r\n\r\n\t\tif(typeof subject == \"object\"){\r\n\r\n\t\t\tif(subject instanceof Row){\r\n\t\t\t\t//subject is row element\r\n\t\t\t\tmatch = subject.data;\r\n\t\t\t}else if(subject instanceof RowComponent){\r\n\t\t\t\t//subject is public row component\r\n\t\t\t\tmatch = subject._getSelf().data;\r\n\t\t\t}else if(typeof HTMLElement !== \"undefined\" && subject instanceof HTMLElement){\r\n\t\t\t\tif(parent.modules.dataTree){\r\n\t\t\t\t\tmatch = parent.modules.dataTree.children.find((childRow) => {\r\n\t\t\t\t\t\treturn childRow instanceof Row ? childRow.element === subject : false;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif(match){\r\n\t\t\t\t\t\tmatch = match.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}else if(typeof subject == \"undefined\" || subject === null){\r\n\t\t\tmatch = false\r\n\t\t}else{\r\n\t\t\t//subject should be treated as the index of the row\r\n\t\t\tmatch = parent.data[this.field].find((row) => {\r\n\t\t\t\treturn row.data[this.table.options.index] == subject;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(match){\r\n\r\n\t\t\tif(Array.isArray(parent.data[this.field])){\r\n\t\t\t\tmatch = parent.data[this.field].indexOf(match);\r\n\t\t\t}\r\n\r\n\t\t\tif(match == -1){\r\n\t\t\t\tmatch = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//catch all for any other type of input\r\n\r\n\t\treturn match;\r\n\t}\r\n\r\n\tgetTreeChildren(row, component, recurse){\r\n\t\tvar config = row.modules.dataTree,\r\n\t\toutput = [];\r\n\r\n\t\tif(config.children){\r\n\r\n\t\t\tif(!Array.isArray(config.children)){\r\n\t\t\t\tconfig.children = this.generateChildren(row);\r\n\t\t\t}\r\n\r\n\t\t\tconfig.children.forEach((childRow) => {\r\n\t\t\t\tif(childRow instanceof Row){\r\n\t\t\t\t\toutput.push(component ? childRow.getComponent() : childRow);\r\n\r\n\t\t\t\t\tif(recurse){\r\n\t\t\t\t\t\toutput = output.concat(this.getTreeChildren(childRow, component, recurse));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tcheckForRestyle(cell){\r\n\t\tif(!cell.row.cells.indexOf(cell)){\r\n\t\t\tthis.layoutRow(cell.row);\r\n\t\t}\r\n\t}\r\n\r\n\tgetChildField(){\r\n\t\treturn this.field;\r\n\t}\r\n\r\n\tredrawNeeded(data){\r\n\t\treturn (this.field ? typeof data[this.field] !== \"undefined\" : false) || (this.elementField ? typeof data[this.elementField] !== \"undefined\" : false);\r\n\t}\r\n}\r\n\r\nDataTree.moduleName = \"dataTree\";\r\n\r\nexport default DataTree;","export default function(list, options, setFileContents){\r\n\tvar delimiter = options && options.delimiter ? options.delimiter : \",\",\r\n\tfileContents = [],\r\n\theaders = [];\r\n\r\n\tlist.forEach((row) => {\r\n\t\tvar item = [];\r\n\r\n\t\tswitch(row.type){\r\n\t\t\tcase \"group\":\r\n\t\t\tconsole.warn(\"Download Warning - CSV downloader cannot process row groups\");\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"calc\":\r\n\t\t\tconsole.warn(\"Download Warning - CSV downloader cannot process column calculations\");\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"header\":\r\n\t\t\trow.columns.forEach((col, i) => {\r\n\t\t\t\tif(col && col.depth === 1){\r\n\t\t\t\t\theaders[i] = typeof col.value == \"undefined\" || col.value === null ? \"\" : ('\"' + String(col.value).split('\"').join('\"\"') + '\"');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"row\":\r\n\t\t\trow.columns.forEach((col) => {\r\n\r\n\t\t\t\tif(col){\r\n\r\n\t\t\t\t\tswitch(typeof col.value){\r\n\t\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\t\tcol.value = JSON.stringify(col.value);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\t\tcase \"null\":\r\n\t\t\t\t\t\tcol.value = \"\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\titem.push('\"' + String(col.value).split('\"').join('\"\"') + '\"');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tfileContents.push(item.join(delimiter));\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tif(headers.length){\r\n\t\tfileContents.unshift(headers.join(delimiter));\r\n\t}\r\n\r\n\tfileContents = fileContents.join(\"\\n\");\r\n\r\n\tif(options.bom){\r\n\t\tfileContents = \"\\ufeff\" + fileContents;\r\n\t}\r\n\r\n\tsetFileContents(fileContents, \"text/csv\");\r\n};","export default function(list, options, setFileContents){\r\n\tvar fileContents = [];\r\n\r\n\tlist.forEach((row) => {\r\n\t\tvar item = {};\r\n\r\n\t\tswitch(row.type){\r\n\t\t\tcase \"header\":\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"group\":\r\n\t\t\tconsole.warn(\"Download Warning - JSON downloader cannot process row groups\");\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"calc\":\r\n\t\t\tconsole.warn(\"Download Warning - JSON downloader cannot process column calculations\");\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"row\":\r\n\t\t\trow.columns.forEach((col) => {\r\n\t\t\t\tif(col){\r\n\t\t\t\t\titem[col.component.getField()] = col.value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tfileContents.push(item);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tfileContents = JSON.stringify(fileContents, null, '\\t');\r\n\r\n\tsetFileContents(fileContents, \"application/json\");\r\n};","export default function(list, options, setFileContents){\r\n\tvar header = [],\r\n\tbody = [],\r\n\tautoTableParams = {},\r\n\trowGroupStyles = options.rowGroupStyles || {\r\n\t\tfontStyle: \"bold\",\r\n\t\tfontSize: 12,\r\n\t\tcellPadding: 6,\r\n\t\tfillColor: 220,\r\n\t},\r\n\trowCalcStyles = options.rowCalcStyles || {\r\n\t\tfontStyle: \"bold\",\r\n\t\tfontSize: 10,\r\n\t\tcellPadding: 4,\r\n\t\tfillColor: 232,\r\n\t},\r\n\tjsPDFParams = options.jsPDF || {},\r\n\ttitle = options && options.title ? options.title : \"\";\r\n\r\n\tif(!jsPDFParams.orientation){\r\n\t\tjsPDFParams.orientation = options.orientation || \"landscape\";\r\n\t}\r\n\r\n\tif(!jsPDFParams.unit){\r\n\t\tjsPDFParams.unit = \"pt\";\r\n\t}\r\n\r\n\t//parse row list\r\n\tlist.forEach((row) => {\r\n\t\tvar item = {};\r\n\r\n\t\tswitch(row.type){\r\n\t\t\tcase \"header\":\r\n\t\t\theader.push(parseRow(row));\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"group\":\r\n\t\t\tbody.push(parseRow(row, rowGroupStyles));\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"calc\":\r\n\t\t\tbody.push(parseRow(row, rowCalcStyles));\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"row\":\r\n\t\t\tbody.push(parseRow(row));\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction parseRow(row, styles){\r\n\t\tvar rowData = [];\r\n\r\n\t\trow.columns.forEach((col) =>{\r\n\t\t\tvar cell;\r\n\r\n\t\t\tif(col){\r\n\t\t\t\tswitch(typeof col.value){\r\n\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\tcol.value = JSON.stringify(col.value);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\tcase \"null\":\r\n\t\t\t\t\tcol.value = \"\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcell = {\r\n\t\t\t\t\tcontent:col.value,\r\n\t\t\t\t\tcolSpan:col.width,\r\n\t\t\t\t\trowSpan:col.height,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif(styles){\r\n\t\t\t\t\tcell.styles = styles;\r\n\t\t\t\t}\r\n\r\n\t\t\t\trowData.push(cell);\r\n\t\t\t}else{\r\n\t\t\t\trowData.push(\"\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn rowData;\r\n\t}\r\n\r\n\r\n\t//configure PDF\r\n\tvar doc = new jspdf.jsPDF(jsPDFParams); //set document to landscape, better for most tables\r\n\r\n\tif(options && options.autoTable){\r\n\t\tif(typeof options.autoTable === \"function\"){\r\n\t\t\tautoTableParams = options.autoTable(doc) || {};\r\n\t\t}else{\r\n\t\t\tautoTableParams = options.autoTable;\r\n\t\t}\r\n\t}\r\n\r\n\tif(title){\r\n\t\tautoTableParams.didDrawPage = function(data) {\r\n\t\t\tdoc.text(title, 40, 30);\r\n\t\t};\r\n\t}\r\n\r\n\tautoTableParams.head = header;\r\n\tautoTableParams.body = body;\r\n\r\n\tdoc.autoTable(autoTableParams);\r\n\r\n\tif(options && options.documentProcessing){\r\n\t\toptions.documentProcessing(doc);\r\n\t}\r\n\r\n\tsetFileContents(doc.output(\"arraybuffer\"), \"application/pdf\");\r\n};","import CoreFeature from '../../../../core/CoreFeature.js';\r\n\r\nexport default function(list, options, setFileContents){\r\n\tvar self = this,\r\n\tsheetName = options.sheetName || \"Sheet1\",\r\n\tworkbook = XLSX.utils.book_new(),\r\n\ttableFeatures = new CoreFeature(this),\r\n\toutput;\r\n\r\n\tworkbook.SheetNames = [];\r\n\tworkbook.Sheets = {};\r\n\r\n\tfunction generateSheet(){\r\n\t\tvar rows = [],\r\n\t\tmerges = [],\r\n\t\tworksheet = {},\r\n\t\trange = {s: {c:0, r:0}, e: {c:(list[0] ? list[0].columns.reduce((a, b) => a + (b && b.width ? b.width : 1), 0) : 0), r:list.length }};\r\n\r\n\t\t//parse row list\r\n\t\tlist.forEach((row, i) => {\r\n\t\t\tvar rowData = [];\r\n\r\n\t\t\trow.columns.forEach(function(col, j){\r\n\r\n\t\t\t\tif(col){\r\n\t\t\t\t\trowData.push(!(col.value instanceof Date) && typeof col.value === \"object\" ? JSON.stringify(col.value) : col.value);\r\n\r\n\t\t\t\t\tif(col.width > 1 || col.height > -1){\r\n\t\t\t\t\t\tmerges.push({s:{r:i,c:j},e:{r:i + col.height - 1,c:j + col.width - 1}});\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\trowData.push(\"\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\trows.push(rowData);\r\n\t\t});\r\n\r\n\r\n\t\t//convert rows to worksheet\r\n\t\tXLSX.utils.sheet_add_aoa(worksheet, rows);\r\n\r\n\t\tworksheet['!ref'] = XLSX.utils.encode_range(range);\r\n\r\n\t\tif(merges.length){\r\n\t\t\tworksheet[\"!merges\"] = merges;\r\n\t\t}\r\n\r\n\t\treturn worksheet;\r\n\t}\r\n\r\n\tif(options.sheetOnly){\r\n\t\tsetFileContents(generateSheet());\r\n\t\treturn;\r\n\t}\r\n\r\n\tif(options.sheets){\r\n\t\tfor(var sheet in options.sheets){\r\n\r\n\t\t\tif(options.sheets[sheet] === true){\r\n\t\t\t\tworkbook.SheetNames.push(sheet);\r\n\t\t\t\tworkbook.Sheets[sheet] = generateSheet();\r\n\t\t\t}else{\r\n\r\n\t\t\t\tworkbook.SheetNames.push(sheet);\r\n\r\n\t\t\t\ttableFeatures.commsSend(options.sheets[sheet], \"download\", \"intercept\",{\r\n\t\t\t\t\ttype:\"xlsx\",\r\n\t\t\t\t\toptions:{sheetOnly:true},\r\n\t\t\t\t\tactive:self.active,\r\n\t\t\t\t\tintercept:function(data){\r\n\t\t\t\t\t\tworkbook.Sheets[sheet] = data;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\tworkbook.SheetNames.push(sheetName);\r\n\t\tworkbook.Sheets[sheetName] = generateSheet();\r\n\t}\r\n\r\n\tif(options.documentProcessing){\r\n\t\tworkbook = options.documentProcessing(workbook);\r\n\t}\r\n\r\n\t//convert workbook to binary array\r\n\tfunction s2ab(s) {\r\n\t\tvar buf = new ArrayBuffer(s.length);\r\n\t\tvar view = new Uint8Array(buf);\r\n\t\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\r\n\t\t\treturn buf;\r\n\t}\r\n\r\n\toutput = XLSX.write(workbook, {bookType:'xlsx', bookSST:true, type: 'binary'});\r\n\r\n\tsetFileContents(s2ab(output), \"application/octet-stream\");\r\n};","export default function(list, options, setFileContents){\r\n\tif(this.modExists(\"export\", true)){\r\n\t\tsetFileContents(this.modules.export.genereateHTMLTable(list), \"text/html\");\r\n\t}\r\n};","import csv from './downloaders/csv.js';\r\nimport json from './downloaders/json.js';\r\nimport pdf from './downloaders/pdf.js';\r\nimport xlsx from './downloaders/xlsx.js';\r\nimport html from './downloaders/html.js';\r\n\r\nexport default {\r\n\tcsv:csv,\r\n\tjson:json,\r\n\tpdf:pdf,\r\n\txlsx:xlsx,\r\n\thtml:html,\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultDownloaders from './defaults/downloaders.js';\r\n\r\nclass Download extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.registerTableOption(\"downloadReady\", function(data, blob){return blob;}); //function to manipulate download data\r\n\t\tthis.registerTableOption(\"downloadConfig\", {}); //download config\r\n\t\tthis.registerTableOption(\"downloadRowRange\", \"active\"); //restrict download to active rows only\r\n\r\n\t\tthis.registerColumnOption(\"download\");\r\n\t\tthis.registerColumnOption(\"titleDownload\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.registerTableFunction(\"download\", this.download.bind(this));\r\n\t\tthis.registerTableFunction(\"downloadToTab\", this.downloadToTab.bind(this));\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\tdownloadToTab(type, filename, options, active){\r\n\t\tthis.download(type, filename, options, active, true);\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\t//trigger file download\r\n\tdownload(type, filename, options, range, interceptCallback){\r\n\t\tvar downloadFunc = false;\r\n\r\n\t\tfunction buildLink(data, mime){\r\n\t\t\tif(interceptCallback){\r\n\t\t\t\tif(interceptCallback === true){\r\n\t\t\t\t\tthis.triggerDownload(data, mime, type, filename, true);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tinterceptCallback(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\t\t\t\tthis.triggerDownload(data, mime, type, filename);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(typeof type == \"function\"){\r\n\t\t\tdownloadFunc = type;\r\n\t\t}else{\r\n\t\t\tif(Download.downloaders[type]){\r\n\t\t\t\tdownloadFunc = Download.downloaders[type];\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Download Error - No such download type found: \", type);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(downloadFunc){\r\n\t\t\tvar list = this.generateExportList(range);\r\n\r\n\t\t\tdownloadFunc.call(this.table, list , options || {}, buildLink.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\tgenerateExportList(range){\r\n\t\tvar list = this.table.modules.export.generateExportList(this.table.options.downloadConfig, false, range || this.table.options.downloadRowRange, \"download\");\r\n\r\n\t\t//assign group header formatter\r\n\t\tvar groupHeader = this.table.options.groupHeaderDownload;\r\n\r\n\t\tif(groupHeader && !Array.isArray(groupHeader)){\r\n\t\t\tgroupHeader = [groupHeader];\r\n\t\t}\r\n\r\n\t\tlist.forEach((row) => {\r\n\t\t\tvar group;\r\n\r\n\t\t\tif(row.type === \"group\"){\r\n\t\t\t\tgroup = row.columns[0];\r\n\r\n\t\t\t\tif(groupHeader && groupHeader[row.indent]){\r\n\t\t\t\t\tgroup.value = groupHeader[row.indent](group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn list;\r\n\t}\r\n\r\n\ttriggerDownload(data, mime, type, filename, newTab){\r\n\t\tvar element = document.createElement('a'),\r\n\t\tblob = new Blob([data],{type:mime}),\r\n\t\tfilename = filename || \"Tabulator.\" + (typeof type === \"function\" ? \"txt\" : type);\r\n\r\n\t\tblob = this.table.options.downloadReady(data, blob);\r\n\r\n\t\tif(blob){\r\n\r\n\t\t\tif(newTab){\r\n\t\t\t\twindow.open(window.URL.createObjectURL(blob));\r\n\t\t\t}else{\r\n\t\t\t\tif(navigator.msSaveOrOpenBlob){\r\n\t\t\t\t\tnavigator.msSaveOrOpenBlob(blob, filename);\r\n\t\t\t\t}else{\r\n\t\t\t\t\telement.setAttribute('href', window.URL.createObjectURL(blob));\r\n\r\n\t\t\t\t\t//set file title\r\n\t\t\t\t\telement.setAttribute('download', filename);\r\n\r\n\t\t\t\t\t//trigger download\r\n\t\t\t\t\telement.style.display = 'none';\r\n\t\t\t\t\tdocument.body.appendChild(element);\r\n\t\t\t\t\telement.click();\r\n\r\n\t\t\t\t\t//remove temporary link element\r\n\t\t\t\t\tdocument.body.removeChild(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchExternal(\"downloadComplete\");\r\n\t\t}\r\n\t}\r\n\r\n\tcommsReceived(table, action, data){\r\n\t\tswitch(action){\r\n\t\t\tcase \"intercept\":\r\n\t\t\tthis.download(data.type, \"\", data.options, data.active, data.intercept);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nDownload.moduleName = \"download\";\r\n\r\n//load defaults\r\nDownload.downloaders = defaultDownloaders;\r\n\r\nexport default Download;","export default function maskInput(el, options){\r\n\tvar mask = options.mask,\r\n\tmaskLetter = typeof options.maskLetterChar !== \"undefined\" ? options.maskLetterChar : \"A\",\r\n\tmaskNumber = typeof options.maskNumberChar !== \"undefined\" ? options.maskNumberChar : \"9\",\r\n\tmaskWildcard = typeof options.maskWildcardChar !== \"undefined\" ? options.maskWildcardChar : \"*\",\r\n\tsuccess = false;\r\n\r\n\tfunction fillSymbols(index){\r\n\t\tvar symbol = mask[index];\r\n\t\tif(typeof symbol !== \"undefined\" && symbol !== maskWildcard && symbol !== maskLetter && symbol !== maskNumber){\r\n\t\t\tel.value = el.value + \"\" + symbol;\r\n\t\t\tfillSymbols(index+1);\r\n\t\t}\r\n\t}\r\n\r\n\tel.addEventListener(\"keydown\", (e) => {\r\n\t\tvar index = el.value.length,\r\n\t\tchar = e.key;\r\n\r\n\t\tif(e.keyCode > 46){\r\n\t\t\tif(index >= mask.length){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tsuccess = false;\r\n\t\t\t\treturn false;\r\n\t\t\t}else{\r\n\t\t\t\tswitch(mask[index]){\r\n\t\t\t\t\tcase maskLetter:\r\n\t\t\t\t\tif(char.toUpperCase() == char.toLowerCase()){\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase maskNumber:\r\n\t\t\t\t\tif(isNaN(char)){\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase maskWildcard:\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\tif(char !== mask[index]){\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsuccess = true;\r\n\t\t}\r\n\r\n\t\treturn;\r\n\t});\r\n\r\n\tel.addEventListener(\"keyup\", (e) => {\r\n\t\tif(e.keyCode > 46){\r\n\t\t\tif(options.maskAutoFill){\r\n\t\t\t\tfillSymbols(el.value.length);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\r\n\tif(!el.placeholder){\r\n\t\tel.placeholder = mask;\r\n\t}\r\n\r\n\tif(options.maskAutoFill){\r\n\t\tfillSymbols(el.value.length);\r\n\t}\r\n}","import maskInput from '../../inputMask.js';\r\n\r\n//input element\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\t//create and style input\r\n\tvar cellValue = cell.getValue(),\r\n\tinput = document.createElement(\"input\");\r\n\r\n\tinput.setAttribute(\"type\", editorParams.search ? \"search\" : \"text\");\r\n\r\n\tinput.style.padding = \"4px\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tinput.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tinput.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinput.value = typeof cellValue !== \"undefined\" ? cellValue : \"\";\r\n\r\n\tonRendered(function(){\r\n\t\tinput.focus({preventScroll: true});\r\n\t\tinput.style.height = \"100%\";\r\n\t});\r\n\r\n\tfunction onChange(e){\r\n\t\tif(((cellValue === null || typeof cellValue === \"undefined\") && input.value !== \"\") || input.value !== cellValue){\r\n\t\t\tif(success(input.value)){\r\n\t\t\t\tcellValue = input.value; //persist value if successfully validated incase editor is used as header filter\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tcancel();\r\n\t\t}\r\n\t}\r\n\r\n\t//submit new value on blur or change\r\n\tinput.addEventListener(\"change\", onChange);\r\n\tinput.addEventListener(\"blur\", onChange);\r\n\r\n\t//submit new value on enter\r\n\tinput.addEventListener(\"keydown\", function(e){\r\n\t\tswitch(e.keyCode){\r\n\t\t\t// case 9:\r\n\t\t\tcase 13:\r\n\t\t\tonChange(e);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 27:\r\n\t\t\tcancel();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\te.stopPropagation();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tif(editorParams.mask){\r\n\t\tmaskInput(input, editorParams);\r\n\t}\r\n\r\n\treturn input;\r\n};","import maskInput from '../../inputMask.js';\r\n\r\n//resizable text area element\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n var self = this,\r\n cellValue = cell.getValue(),\r\n vertNav = editorParams.verticalNavigation || \"hybrid\",\r\n value = String(cellValue !== null && typeof cellValue !== \"undefined\" ? cellValue : \"\"),\r\n count = (value.match(/(?:\\r\\n|\\r|\\n)/g) || []).length + 1,\r\n input = document.createElement(\"textarea\"),\r\n scrollHeight = 0;\r\n\r\n //create and style input\r\n input.style.display = \"block\";\r\n input.style.padding = \"2px\";\r\n input.style.height = \"100%\";\r\n input.style.width = \"100%\";\r\n input.style.boxSizing = \"border-box\";\r\n input.style.whiteSpace = \"pre-wrap\";\r\n input.style.resize = \"none\";\r\n\r\n if(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n for (let key in editorParams.elementAttributes){\r\n if(key.charAt(0) == \"+\"){\r\n key = key.slice(1);\r\n input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n }else{\r\n input.setAttribute(key, editorParams.elementAttributes[key]);\r\n }\r\n }\r\n }\r\n\r\n input.value = value;\r\n\r\n onRendered(function(){\r\n input.focus({preventScroll: true});\r\n input.style.height = \"100%\";\r\n\r\n input.scrollHeight;\r\n input.style.height = input.scrollHeight + \"px\";\r\n cell.getRow().normalizeHeight();\r\n });\r\n\r\n function onChange(e){\r\n\r\n if(((cellValue === null || typeof cellValue === \"undefined\") && input.value !== \"\") || input.value !== cellValue){\r\n\r\n if(success(input.value)){\r\n cellValue = input.value; //persist value if successfully validated incase editor is used as header filter\r\n }\r\n\r\n setTimeout(function(){\r\n cell.getRow().normalizeHeight();\r\n },300)\r\n }else{\r\n cancel();\r\n }\r\n }\r\n\r\n //submit new value on blur or change\r\n input.addEventListener(\"change\", onChange);\r\n input.addEventListener(\"blur\", onChange);\r\n\r\n input.addEventListener(\"keyup\", function(){\r\n\r\n input.style.height = \"\";\r\n\r\n var heightNow = input.scrollHeight;\r\n\r\n input.style.height = heightNow + \"px\";\r\n\r\n if(heightNow != scrollHeight){\r\n scrollHeight = heightNow;\r\n cell.getRow().normalizeHeight();\r\n }\r\n });\r\n\r\n input.addEventListener(\"keydown\", function(e){\r\n\r\n switch(e.keyCode){\r\n case 27:\r\n cancel();\r\n break;\r\n\r\n case 38: //up arrow\r\n if(vertNav == \"editor\" || (vertNav == \"hybrid\" && input.selectionStart)){\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n }\r\n\r\n break;\r\n\r\n case 40: //down arrow\r\n if(vertNav == \"editor\" || (vertNav == \"hybrid\" && input.selectionStart !== input.value.length)){\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n }\r\n break;\r\n\r\n case 35:\r\n case 36:\r\n e.stopPropagation();\r\n break;\r\n }\r\n });\r\n\r\n if(editorParams.mask){\r\n maskInput(input, editorParams);\r\n }\r\n\r\n return input;\r\n};","import maskInput from '../../inputMask.js';\r\n\r\n//input element with type of number\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar cellValue = cell.getValue(),\r\n\tvertNav = editorParams.verticalNavigation || \"editor\",\r\n\tinput = document.createElement(\"input\");\r\n\r\n\tinput.setAttribute(\"type\", \"number\");\r\n\r\n\tif(typeof editorParams.max != \"undefined\"){\r\n\t\tinput.setAttribute(\"max\", editorParams.max);\r\n\t}\r\n\r\n\tif(typeof editorParams.min != \"undefined\"){\r\n\t\tinput.setAttribute(\"min\", editorParams.min);\r\n\t}\r\n\r\n\tif(typeof editorParams.step != \"undefined\"){\r\n\t\tinput.setAttribute(\"step\", editorParams.step);\r\n\t}\r\n\r\n\t//create and style input\r\n\tinput.style.padding = \"4px\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tinput.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tinput.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinput.value = cellValue;\r\n\r\n\tvar blurFunc = function(e){\r\n\t\tonChange();\r\n\t};\r\n\r\n\tonRendered(function () {\r\n\t\t//submit new value on blur\r\n\t\tinput.removeEventListener(\"blur\", blurFunc);\r\n\r\n\t\tinput.focus({preventScroll: true});\r\n\t\tinput.style.height = \"100%\";\r\n\r\n\t\t//submit new value on blur\r\n\t\tinput.addEventListener(\"blur\", blurFunc);\r\n\t});\r\n\r\n\tfunction onChange(){\r\n\t\tvar value = input.value;\r\n\r\n\t\tif(!isNaN(value) && value !==\"\"){\r\n\t\t\tvalue = Number(value);\r\n\t\t}\r\n\r\n\t\tif(value !== cellValue){\r\n\t\t\tif(success(value)){\r\n\t\t\t\tcellValue = value; //persist value if successfully validated incase editor is used as header filter\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tcancel();\r\n\t\t}\r\n\t}\r\n\r\n\t//submit new value on enter\r\n\tinput.addEventListener(\"keydown\", function(e){\r\n\t\tswitch(e.keyCode){\r\n\t\t\tcase 13:\r\n\t\t\t// case 9:\r\n\t\t\tonChange();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 27:\r\n\t\t\tcancel();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 38: //up arrow\r\n\t\t\tcase 40: //down arrow\r\n\t\t\tif(vertNav == \"editor\"){\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\te.stopPropagation();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tif(editorParams.mask){\r\n\t\tmaskInput(input, editorParams);\r\n\t}\r\n\r\n\treturn input;\r\n};","//input element with type of number\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar cellValue = cell.getValue(),\r\n\tinput = document.createElement(\"input\");\r\n\r\n\tinput.setAttribute(\"type\", \"range\");\r\n\r\n\tif (typeof editorParams.max != \"undefined\") {\r\n\t\tinput.setAttribute(\"max\", editorParams.max);\r\n\t}\r\n\r\n\tif (typeof editorParams.min != \"undefined\") {\r\n\t\tinput.setAttribute(\"min\", editorParams.min);\r\n\t}\r\n\r\n\tif (typeof editorParams.step != \"undefined\") {\r\n\t\tinput.setAttribute(\"step\", editorParams.step);\r\n\t}\r\n\r\n\t//create and style input\r\n\tinput.style.padding = \"4px\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tinput.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tinput.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinput.value = cellValue;\r\n\r\n\tonRendered(function () {\r\n\t\tinput.focus({preventScroll: true});\r\n\t\tinput.style.height = \"100%\";\r\n\t});\r\n\r\n\tfunction onChange(){\r\n\t\tvar value = input.value;\r\n\r\n\t\tif(!isNaN(value) && value !==\"\"){\r\n\t\t\tvalue = Number(value);\r\n\t\t}\r\n\r\n\t\tif(value != cellValue){\r\n\t\t\tif(success(value)){\r\n\t\t\t\tcellValue = value; //persist value if successfully validated incase editor is used as header filter\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tcancel();\r\n\t\t}\r\n\t}\r\n\r\n\t//submit new value on blur\r\n\tinput.addEventListener(\"blur\", function(e){\r\n\t\tonChange();\r\n\t});\r\n\r\n\t//submit new value on enter\r\n\tinput.addEventListener(\"keydown\", function(e){\r\n\t\tswitch(e.keyCode){\r\n\t\t\tcase 13:\r\n\t\t\t// case 9:\r\n\t\t\tonChange();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 27:\r\n\t\t\tcancel();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\treturn input;\r\n};","import Helpers from '../../../../core/tools/Helpers.js';\r\n\r\n//dropdown select editor\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar self = this,\r\n\tcellEl = cell.getElement(),\r\n\tinitialValue = cell.getValue(),\r\n\tvertNav = editorParams.verticalNavigation || \"editor\",\r\n\tinitialDisplayValue = typeof initialValue !== \"undefined\" || initialValue === null ? (Array.isArray(initialValue) ? initialValue : [initialValue]) : (typeof editorParams.defaultValue !== \"undefined\" ? editorParams.defaultValue : []),\r\n\tinput = document.createElement(\"input\"),\r\n\tlistEl = document.createElement(\"div\"),\r\n\tmultiselect = editorParams.multiselect,\r\n\tdataItems = [],\r\n\tcurrentItem = {},\r\n\tdisplayItems = [],\r\n\tcurrentItems = [],\r\n\tblurable = true,\r\n\tblockListShow = false,\r\n\tsearchWord = \"\",\r\n\tsearchWordTimeout = null;\r\n\r\n\tif(Array.isArray(editorParams) || (!Array.isArray(editorParams) && typeof editorParams === \"object\" && !editorParams.values)){\r\n\t\tconsole.warn(\"DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object\");\r\n\t\teditorParams = {values:editorParams};\r\n\t}\r\n\r\n\tfunction getUniqueColumnValues(field){\r\n\t\tvar output = {},\r\n\t\tdata = self.table.getData(),\r\n\t\tcolumn;\r\n\r\n\t\tif(field){\r\n\t\t\tcolumn = self.table.columnManager.getColumnByField(field);\r\n\t\t}else{\r\n\t\t\tcolumn = cell.getColumn()._getSelf();\r\n\t\t}\r\n\r\n\t\tif(column){\r\n\t\t\tdata.forEach(function(row){\r\n\t\t\t\tvar val = column.getFieldValue(row);\r\n\r\n\t\t\t\tif(val !== null && typeof val !== \"undefined\" && val !== \"\"){\r\n\t\t\t\t\toutput[val] = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"unable to find matching column to create select lookup list:\", field);\r\n\t\t}\r\n\r\n\t\treturn Object.keys(output);\r\n\t}\r\n\r\n\tfunction parseItems(inputValues, curentValues){\r\n\t\tvar dataList = [];\r\n\t\tvar displayList = [];\r\n\r\n\t\tfunction processComplexListItem(item){\r\n\t\t\tvar item = {\r\n\t\t\t\tlabel:item.label,\r\n\t\t\t\tvalue:item.value,\r\n\t\t\t\titemParams:item.itemParams,\r\n\t\t\t\telementAttributes: item.elementAttributes,\r\n\t\t\t\telement:false,\r\n\t\t\t};\r\n\r\n\t\t\t// if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){\r\n\t\t\t// \tsetCurrentItem(item);\r\n\t\t\t// }\r\n\r\n\t\t\tif(curentValues.indexOf(item.value) > -1){\r\n\t\t\t\tsetItem(item);\r\n\t\t\t}\r\n\r\n\t\t\tdataList.push(item);\r\n\t\t\tdisplayList.push(item);\r\n\r\n\t\t\treturn item;\r\n\t\t}\r\n\r\n\t\tif(typeof inputValues == \"function\"){\r\n\t\t\tinputValues = inputValues(cell);\r\n\t\t}\r\n\r\n\t\tif(Array.isArray(inputValues)){\r\n\t\t\tinputValues.forEach(function(value){\r\n\t\t\t\tvar item;\r\n\r\n\t\t\t\tif(typeof value === \"object\"){\r\n\r\n\t\t\t\t\tif(value.options){\r\n\t\t\t\t\t\titem = {\r\n\t\t\t\t\t\t\tlabel:value.label,\r\n\t\t\t\t\t\t\tgroup:true,\r\n\t\t\t\t\t\t\titemParams:value.itemParams,\r\n\t\t\t\t\t\t\telementAttributes:value.elementAttributes,\r\n\t\t\t\t\t\t\telement:false,\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tdisplayList.push(item);\r\n\r\n\t\t\t\t\t\tvalue.options.forEach(function(item){\r\n\t\t\t\t\t\t\tprocessComplexListItem(item);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tprocessComplexListItem(value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}else{\r\n\r\n\t\t\t\t\titem = {\r\n\t\t\t\t\t\tlabel:value,\r\n\t\t\t\t\t\tvalue:value,\r\n\t\t\t\t\t\telement:false,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){\r\n\t\t\t\t\t// \tsetCurrentItem(item);\r\n\t\t\t\t\t// }\r\n\r\n\t\t\t\t\tif(curentValues.indexOf(item.value) > -1){\r\n\t\t\t\t\t\tsetItem(item);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdataList.push(item);\r\n\t\t\t\t\tdisplayList.push(item);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tfor(var key in inputValues){\r\n\t\t\t\tvar item = {\r\n\t\t\t\t\tlabel:inputValues[key],\r\n\t\t\t\t\tvalue:key,\r\n\t\t\t\t\telement:false,\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){\r\n\t\t\t\t// \tsetCurrentItem(item);\r\n\t\t\t\t// }\r\n\r\n\t\t\t\tif(curentValues.indexOf(item.value) > -1){\r\n\t\t\t\t\tsetItem(item);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdataList.push(item);\r\n\t\t\t\tdisplayList.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(editorParams.sortValuesList){\r\n\t\t\tdataList.sort((a, b) => {\r\n\t\t\t\treturn a.label < b.label ? -1 : (a.label > b.label ? 1 : 0);\r\n\t\t\t});\r\n\r\n\t\t\tdisplayList.sort((a, b) => {\r\n\t\t\t\treturn a.label < b.label ? -1 : (a.label > b.label ? 1 : 0);\r\n\t\t\t});\r\n\r\n\t\t\tif(editorParams.sortValuesList !== \"asc\"){\r\n\t\t\t\tdataList.reverse();\r\n\t\t\t\tdisplayList.reverse();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdataItems = dataList;\r\n\t\tdisplayItems = displayList;\r\n\r\n\t\tfillList();\r\n\t}\r\n\r\n\tfunction fillList(){\r\n\t\twhile(listEl.firstChild) listEl.removeChild(listEl.firstChild);\r\n\r\n\t\tdisplayItems.forEach(function(item){\r\n\r\n\t\t\tvar el = item.element;\r\n\r\n\t\t\tif(!el){\r\n\t\t\t\tel = document.createElement(\"div\");\r\n\t\t\t\titem.label = editorParams.listItemFormatter ? editorParams.listItemFormatter(item.value, item.label, cell, el, item.itemParams) : item.label;\r\n\t\t\t\tif(item.group){\r\n\t\t\t\t\tel.classList.add(\"tabulator-edit-select-list-group\");\r\n\t\t\t\t\tel.tabIndex = 0;\r\n\t\t\t\t\tel.innerHTML = item.label === \"\" ? \" \" : item.label;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tel.classList.add(\"tabulator-edit-select-list-item\");\r\n\t\t\t\t\tel.tabIndex = 0;\r\n\t\t\t\t\tel.innerHTML = item.label === \"\" ? \" \" : item.label;\r\n\r\n\t\t\t\t\tel.addEventListener(\"click\", function(){\r\n\t\t\t\t\t\tblockListShow = true;\r\n\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tblockListShow = false;\r\n\t\t\t\t\t\t}, 10);\r\n\r\n\t\t\t\t\t\t// setCurrentItem(item);\r\n\t\t\t\t\t\t// chooseItem();\r\n\t\t\t\t\t\tif(multiselect){\r\n\t\t\t\t\t\t\ttoggleItem(item);\r\n\t\t\t\t\t\t\tinput.focus();\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tchooseItem(item);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// if(item === currentItem){\r\n\t\t\t\t\t// \tel.classList.add(\"active\");\r\n\t\t\t\t\t// }\r\n\r\n\t\t\t\t\tif(currentItems.indexOf(item) > -1){\r\n\t\t\t\t\t\tel.classList.add(\"active\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(item.elementAttributes && typeof item.elementAttributes == \"object\"){\r\n\t\t\t\t\tfor (let key in item.elementAttributes){\r\n\t\t\t\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\t\t\t\tkey = key.slice(1);\r\n\t\t\t\t\t\t\tel.setAttribute(key, input.getAttribute(key) + item.elementAttributes[\"+\" + key]);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tel.setAttribute(key, item.elementAttributes[key]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tel.addEventListener(\"mousedown\", function(){\r\n\t\t\t\t\tblurable = false;\r\n\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\tblurable = true;\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t});\r\n\r\n\t\t\t\titem.element = el;\r\n\r\n\r\n\t\t\t}\r\n\r\n\t\t\tlistEl.appendChild(el);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tfunction setCurrentItem(item, active){\r\n\r\n\t\tif(!multiselect && currentItem && currentItem.element){\r\n\t\t\tcurrentItem.element.classList.remove(\"active\");\r\n\t\t}\r\n\r\n\t\tif(currentItem && currentItem.element){\r\n\t\t\tcurrentItem.element.classList.remove(\"focused\");\r\n\t\t}\r\n\r\n\t\tcurrentItem = item;\r\n\r\n\t\tif(item.element){\r\n\t\t\titem.element.classList.add(\"focused\");\r\n\t\t\tif(active){\r\n\t\t\t\titem.element.classList.add(\"active\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(item && item.element && item.element.scrollIntoView){\r\n\t\t\titem.element.scrollIntoView({behavior: 'smooth', block: 'nearest', inline: 'start'});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t// function chooseItem(){\r\n\t// \thideList();\r\n\r\n\t// \tif(initialValue !== currentItem.value){\r\n\t// \t\tinitialValue = currentItem.value;\r\n\t// \t\tsuccess(currentItem.value);\r\n\t// \t}else{\r\n\t// \t\tcancel();\r\n\t// \t}\r\n\t// }\r\n\r\n\tfunction setItem(item) {\r\n\t\tvar index = currentItems.indexOf(item);\r\n\r\n\t\tif(index == -1){\r\n\t\t\tcurrentItems.push(item);\r\n\t\t\tsetCurrentItem(item, true);\r\n\t\t}\r\n\r\n\t\tfillInput();\r\n\t}\r\n\r\n\tfunction unsetItem(index) {\r\n\t\tvar item = currentItems[index];\r\n\r\n\t\tif(index > -1){\r\n\t\t\tcurrentItems.splice(index, 1);\r\n\t\t\tif(item.element){\r\n\t\t\t\titem.element.classList.remove(\"active\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction toggleItem(item) {\r\n\t\tif(!item){\r\n\t\t\titem = currentItem;\r\n\t\t}\r\n\r\n\t\tvar index = currentItems.indexOf(item);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tunsetItem(index);\r\n\t\t}else{\r\n\t\t\tif(multiselect !== true && currentItems.length >= multiselect){\r\n\t\t\t\tunsetItem(0);\r\n\t\t\t}\r\n\r\n\t\t\tsetItem(item);\r\n\t\t}\r\n\r\n\t\tfillInput();\r\n\r\n\t}\r\n\r\n\tfunction chooseItem(item){\r\n\t\thideList();\r\n\r\n\t\tif(!item){\r\n\t\t\titem = currentItem;\r\n\t\t}\r\n\r\n\t\tif(item){\r\n\t\t\tinput.value = item.label;\r\n\t\t\tsuccess(item.value);\r\n\t\t}\r\n\r\n\t\tinitialDisplayValue = [item.value];\r\n\t}\r\n\r\n\r\n\tfunction chooseItems(silent){\r\n\t\tif(!silent){\r\n\t\t\thideList();\r\n\t\t}\r\n\r\n\t\tvar output = [];\r\n\r\n\t\tcurrentItems.forEach((item) => {\r\n\t\t\toutput.push(item.value);\r\n\t\t});\r\n\r\n\t\tinitialDisplayValue = output;\r\n\r\n\t\tsuccess(output);\r\n\t}\r\n\r\n\tfunction fillInput(){\r\n\t\tvar output = [];\r\n\r\n\t\tcurrentItems.forEach((item) => {\r\n\t\t\toutput.push(item.label);\r\n\t\t});\r\n\r\n\t\tinput.value = output.join(\", \");\r\n\r\n\t\tif(self.currentCell === false){\r\n\t\t\tchooseItems(true);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tfunction unsetItems() {\r\n\r\n\t\tvar len = currentItems.length;\r\n\r\n\t\tfor(let i = 0; i < len; i++){\r\n\t\t\tunsetItem(0);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction cancelItem(){\r\n\t\thideList();\r\n\t\tcancel();\r\n\t}\r\n\r\n\tfunction showList(){\r\n\t\tcurrentItems = [];\r\n\r\n\t\tif(!listEl.parentNode){\r\n\t\t\tif(editorParams.values === true){\r\n\t\t\t\tparseItems(getUniqueColumnValues(), initialDisplayValue);\r\n\t\t\t}else if(typeof editorParams.values === \"string\"){\r\n\t\t\t\tparseItems(getUniqueColumnValues(editorParams.values), initialDisplayValue);\r\n\t\t\t}else{\r\n\t\t\t\tparseItems(editorParams.values || [], initialDisplayValue);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar offset = Helpers.elOffset(cellEl);\r\n\r\n\t\t\tlistEl.style.minWidth = cellEl.offsetWidth + \"px\";\r\n\r\n\t\t\tlistEl.style.top = (offset.top + cellEl.offsetHeight) + \"px\";\r\n\t\t\tlistEl.style.left = offset.left + \"px\";\r\n\r\n\r\n\t\t\tlistEl.addEventListener(\"mousedown\", function(e){\r\n\t\t\t\tblurable = false;\r\n\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\tblurable = true;\r\n\t\t\t\t}, 10);\r\n\t\t\t});\r\n\r\n\t\t\tdocument.body.appendChild(listEl);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction hideList(){\r\n\t\tif(listEl.parentNode){\r\n\t\t\tlistEl.parentNode.removeChild(listEl);\r\n\t\t}\r\n\r\n\t\tremoveScrollListener();\r\n\t}\r\n\r\n\tfunction removeScrollListener() {\r\n\t\tself.table.rowManager.element.removeEventListener(\"scroll\", cancelItem);\r\n\t}\r\n\r\n\tfunction scrollTovalue(char){\r\n\r\n\t\tclearTimeout(searchWordTimeout);\r\n\r\n\t\tvar character = String.fromCharCode(event.keyCode).toLowerCase();\r\n\t\tsearchWord += character.toLowerCase();\r\n\r\n\t\tvar match = dataItems.find((item) => {\r\n\t\t\treturn typeof item.label !== \"undefined\" && item.label.toLowerCase().startsWith(searchWord);\r\n\t\t});\r\n\r\n\t\tif(match){\r\n\t\t\tsetCurrentItem(match, !multiselect);\r\n\t\t}\r\n\r\n\t\tsearchWordTimeout = setTimeout(() => {\r\n\t\t\tsearchWord = \"\";\r\n\t\t}, 800)\r\n\t}\r\n\r\n\t//style input\r\n\tinput.setAttribute(\"type\", \"text\");\r\n\r\n\tinput.style.padding = \"4px\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\tinput.style.cursor = \"default\";\r\n\tinput.readOnly = (this.currentCell != false);\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tinput.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tinput.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinput.value = typeof initialValue !== \"undefined\" || initialValue === null ? initialValue : \"\";\r\n\r\n\t// if(editorParams.values === true){\r\n\t// \tparseItems(getUniqueColumnValues(), initialValue);\r\n\t// }else if(typeof editorParams.values === \"string\"){\r\n\t// \tparseItems(getUniqueColumnValues(editorParams.values), initialValue);\r\n\t// }else{\r\n\t// \tparseItems(editorParams.values || [], initialValue);\r\n\t// }\r\n\r\n\tinput.addEventListener(\"search\", function(e){\r\n\t\tif(!input.value){\r\n\t\t\tunsetItems();\r\n\t\t\tchooseItems();\r\n\t\t}\r\n\t});\r\n\r\n\t//allow key based navigation\r\n\tinput.addEventListener(\"keydown\", function(e){\r\n\t\tvar index;\r\n\r\n\t\tswitch(e.keyCode){\r\n\t\t\tcase 38: //up arrow\r\n\t\t\tindex = dataItems.indexOf(currentItem);\r\n\r\n\t\t\tif(vertNav == \"editor\" || (vertNav == \"hybrid\" && index)){\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif(index > 0){\r\n\t\t\t\t\tsetCurrentItem(dataItems[index - 1], !multiselect);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 40: //down arrow\r\n\t\t\tindex = dataItems.indexOf(currentItem);\r\n\r\n\t\t\tif(vertNav == \"editor\" || (vertNav == \"hybrid\" && index < dataItems.length - 1)){\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif(index < dataItems.length - 1){\r\n\t\t\t\t\tif(index == -1){\r\n\t\t\t\t\t\tsetCurrentItem(dataItems[0], !multiselect);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tsetCurrentItem(dataItems[index + 1], !multiselect);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 37: //left arrow\r\n\t\t\tcase 39: //right arrow\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 13: //enter\r\n\t\t\t// chooseItem();\r\n\r\n\t\t\tif(multiselect){\r\n\t\t\t\ttoggleItem();\r\n\t\t\t}else{\r\n\t\t\t\tchooseItem();\r\n\t\t\t}\r\n\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 27: //escape\r\n\t\t\tcancelItem();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 9: //tab\r\n\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\tif(self.currentCell === false){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tif(e.keyCode >= 38 && e.keyCode <= 90){\r\n\t\t\t\tscrollTovalue(e.keyCode);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tinput.addEventListener(\"blur\", function(e){\r\n\t\tif(blurable){\r\n\t\t\tif(multiselect){\r\n\t\t\t\tchooseItems();\r\n\t\t\t}else{\r\n\t\t\t\tcancelItem();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tinput.addEventListener(\"focus\", function(e){\r\n\t\tif(!blockListShow){\r\n\t\t\tshowList();\r\n\t\t}\r\n\t});\r\n\r\n\t//style list element\r\n\tlistEl = document.createElement(\"div\");\r\n\tlistEl.classList.add(\"tabulator-edit-select-list\");\r\n\r\n\tonRendered(function(){\r\n\t\tinput.style.height = \"100%\";\r\n\t\tinput.focus({preventScroll: true});\r\n\t});\r\n\r\n\tsetTimeout(() => {\r\n\t\tthis.table.rowManager.element.addEventListener(\"scroll\", cancelItem);\r\n\t}, 10);\r\n\r\n\treturn input;\r\n};","import Helpers from '../../../../core/tools/Helpers.js';\r\nimport maskInput from '../../inputMask.js';\r\n\r\n//autocomplete\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar self = this,\r\n\tcellEl = cell.getElement(),\r\n\tinitialValue = cell.getValue(),\r\n\tvertNav = editorParams.verticalNavigation || \"editor\",\r\n\tinitialDisplayValue = typeof initialValue !== \"undefined\" || initialValue === null ? initialValue : (typeof editorParams.defaultValue !== \"undefined\" ? editorParams.defaultValue : \"\"),\r\n\tinput = document.createElement(\"input\"),\r\n\tlistEl = document.createElement(\"div\"),\r\n\tallItems = [],\r\n\tdisplayItems = [],\r\n\tvalues = [],\r\n\tcurrentItem = false,\r\n\tblurable = true,\r\n\tuniqueColumnValues = false;\r\n\r\n\t//style input\r\n\tinput.setAttribute(\"type\", \"search\");\r\n\r\n\tinput.style.padding = \"4px\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tinput.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tinput.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//style list element\r\n\tlistEl.classList.add(\"tabulator-edit-select-list\");\r\n\r\n\tlistEl.addEventListener(\"mousedown\", function(e){\r\n\t\tblurable = false;\r\n\r\n\t\tsetTimeout(function(){\r\n\t\t\tblurable = true;\r\n\t\t}, 10);\r\n\t});\r\n\r\n\r\n\tfunction genUniqueColumnValues(){\r\n\t\tif(editorParams.values === true){\r\n\t\t\tuniqueColumnValues = getUniqueColumnValues();\r\n\t\t}else if(typeof editorParams.values === \"string\"){\r\n\t\t\tuniqueColumnValues = getUniqueColumnValues(editorParams.values);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getUniqueColumnValues(field){\r\n\t\tvar output = {},\r\n\t\tdata = self.table.getData(),\r\n\t\tcolumn;\r\n\r\n\t\tif(field){\r\n\t\t\tcolumn = self.table.columnManager.getColumnByField(field);\r\n\t\t}else{\r\n\t\t\tcolumn = cell.getColumn()._getSelf();\r\n\t\t}\r\n\r\n\t\tif(column){\r\n\t\t\tdata.forEach(function(row){\r\n\t\t\t\tvar val = column.getFieldValue(row);\r\n\r\n\t\t\t\tif(val !== null && typeof val !== \"undefined\" && val !== \"\"){\r\n\t\t\t\t\toutput[val] = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(editorParams.sortValuesList){\r\n\t\t\t\tif(editorParams.sortValuesList == \"asc\"){\r\n\t\t\t\t\toutput = Object.keys(output).sort();\r\n\t\t\t\t}else{\r\n\t\t\t\t\toutput = Object.keys(output).sort().reverse();\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\toutput = Object.keys(output);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"unable to find matching column to create autocomplete lookup list:\", field);\r\n\t\t}\r\n\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tfunction filterList(term, intialLoad){\r\n\t\tvar matches = [],\r\n\t\tvalues, items, searchEl;\r\n\r\n\t\t//lookup base values list\r\n\t\tif(uniqueColumnValues){\r\n\t\t\tvalues = uniqueColumnValues;\r\n\t\t}else{\r\n\t\t\tvalues = editorParams.values || [];\r\n\t\t}\r\n\r\n\t\tif(editorParams.searchFunc){\r\n\t\t\tmatches = editorParams.searchFunc(term, values);\r\n\r\n\t\t\tif(matches instanceof Promise){\r\n\r\n\t\t\t\taddNotice(typeof editorParams.searchingPlaceholder !== \"undefined\" ? editorParams.searchingPlaceholder : \"Searching...\");\r\n\r\n\t\t\t\tmatches.then((result) => {\r\n\t\t\t\t\tfillListIfNotEmpty(parseItems(result), intialLoad);\r\n\t\t\t\t}).catch((err) => {\r\n\t\t\t\t\tconsole.err(\"error in autocomplete search promise:\", err);\r\n\t\t\t\t});\r\n\r\n\t\t\t}else{\r\n\t\t\t\tfillListIfNotEmpty(parseItems(matches), intialLoad);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\titems = parseItems(values);\r\n\r\n\t\t\tif(term === \"\"){\r\n\t\t\t\tif(editorParams.showListOnEmpty){\r\n\t\t\t\t\tmatches = items;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\titems.forEach(function(item){\r\n\t\t\t\t\tif(item.value !== null || typeof item.value !== \"undefined\"){\r\n\t\t\t\t\t\tif(String(item.value).toLowerCase().indexOf(String(term).toLowerCase()) > -1 || String(item.title).toLowerCase().indexOf(String(term).toLowerCase()) > -1){\r\n\t\t\t\t\t\t\tmatches.push(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfillListIfNotEmpty(matches, intialLoad);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction addNotice(notice){\r\n\t\tvar searchEl = document.createElement(\"div\");\r\n\r\n\t\tclearList();\r\n\r\n\t\tif(notice !== false){\r\n\t\t\tsearchEl.classList.add(\"tabulator-edit-select-list-notice\");\r\n\t\t\tsearchEl.tabIndex = 0;\r\n\r\n\t\t\tif(notice instanceof Node){\r\n\t\t\t\tsearchEl.appendChild(notice);\r\n\t\t\t}else{\r\n\t\t\t\tsearchEl.innerHTML = notice;\r\n\t\t\t}\r\n\r\n\t\t\tlistEl.appendChild(searchEl);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction parseItems(inputValues){\r\n\t\tvar itemList = [];\r\n\r\n\t\tif(Array.isArray(inputValues)){\r\n\t\t\tinputValues.forEach(function(value){\r\n\r\n\t\t\t\tvar item = {};\r\n\r\n\t\t\t\tif(typeof value === \"object\"){\r\n\t\t\t\t\titem.title = editorParams.listItemFormatter ? editorParams.listItemFormatter(value.value, value.label) : value.label;\r\n\t\t\t\t\titem.value = value.value;\r\n\t\t\t\t}else{\r\n\t\t\t\t\titem.title = editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value;\r\n\t\t\t\t\titem.value = value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\titemList.push(item);\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tfor(var key in inputValues){\r\n\t\t\t\tvar item = {\r\n\t\t\t\t\ttitle:editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],\r\n\t\t\t\t\tvalue:key,\r\n\t\t\t\t};\r\n\r\n\t\t\t\titemList.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn itemList;\r\n\t}\r\n\r\n\tfunction clearList(){\r\n\t\twhile(listEl.firstChild) listEl.removeChild(listEl.firstChild);\r\n\t}\r\n\r\n\tfunction fillListIfNotEmpty(items, intialLoad){\r\n\t\tif(items.length){\r\n\t\t\tfillList(items, intialLoad);\r\n\t\t}else{\r\n\t\t\tif(editorParams.emptyPlaceholder){\r\n\t\t\t\taddNotice(editorParams.emptyPlaceholder);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction fillList(items, intialLoad){\r\n\t\tvar current = false;\r\n\r\n\t\tclearList();\r\n\r\n\t\tdisplayItems = items;\r\n\r\n\t\tdisplayItems.forEach(function(item){\r\n\t\t\tvar el = item.element;\r\n\r\n\t\t\tif(!el){\r\n\t\t\t\tel = document.createElement(\"div\");\r\n\t\t\t\tel.classList.add(\"tabulator-edit-select-list-item\");\r\n\t\t\t\tel.tabIndex = 0;\r\n\t\t\t\tel.innerHTML = item.title;\r\n\r\n\t\t\t\tel.addEventListener(\"click\", function(e){\r\n\t\t\t\t\tsetCurrentItem(item);\r\n\t\t\t\t\tchooseItem();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tel.addEventListener(\"mousedown\", function(e){\r\n\t\t\t\t\tblurable = false;\r\n\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\tblurable = true;\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t});\r\n\r\n\t\t\t\titem.element = el;\r\n\r\n\t\t\t\tif(intialLoad && item.value == initialValue){\r\n\t\t\t\t\tinput.value = item.title;\r\n\t\t\t\t\titem.element.classList.add(\"active\");\r\n\t\t\t\t\tcurrent = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(item === currentItem){\r\n\t\t\t\t\titem.element.classList.add(\"active\");\r\n\t\t\t\t\tcurrent = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlistEl.appendChild(el);\r\n\t\t});\r\n\r\n\t\tif(!current){\r\n\t\t\tsetCurrentItem(false);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction chooseItem(){\r\n\t\thideList();\r\n\r\n\t\tif(currentItem){\r\n\t\t\tif(initialValue !== currentItem.value){\r\n\t\t\t\tinitialValue = currentItem.value;\r\n\t\t\t\tinput.value = currentItem.title;\r\n\t\t\t\tsuccess(currentItem.value);\r\n\t\t\t}else{\r\n\t\t\t\tcancel();\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(editorParams.freetext){\r\n\t\t\t\tinitialValue = input.value;\r\n\t\t\t\tsuccess(input.value);\r\n\t\t\t}else{\r\n\t\t\t\tif(editorParams.allowEmpty && input.value === \"\"){\r\n\t\t\t\t\tinitialValue = input.value;\r\n\t\t\t\t\tsuccess(input.value);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcancel();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction showList(){\r\n\t\tif(!listEl.parentNode){\r\n\t\t\twhile(listEl.firstChild) listEl.removeChild(listEl.firstChild);\r\n\r\n\t\t\tvar offset = Helpers.elOffset(cellEl);\r\n\r\n\t\t\tlistEl.style.minWidth = cellEl.offsetWidth + \"px\";\r\n\r\n\t\t\tlistEl.style.top = (offset.top + cellEl.offsetHeight) + \"px\";\r\n\t\t\tlistEl.style.left = offset.left + \"px\";\r\n\t\t\tdocument.body.appendChild(listEl);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setCurrentItem(item, showInputValue){\r\n\t\tif(currentItem && currentItem.element){\r\n\t\t\tcurrentItem.element.classList.remove(\"active\");\r\n\t\t}\r\n\r\n\t\tcurrentItem = item;\r\n\r\n\t\tif(item && item.element){\r\n\t\t\titem.element.classList.add(\"active\");\r\n\t\t}\r\n\r\n\t\tif(item && item.element && item.element.scrollIntoView){\r\n\t\t\titem.element.scrollIntoView({behavior: 'smooth', block: 'nearest', inline: 'start'});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction hideList(){\r\n\t\tif(listEl.parentNode){\r\n\t\t\tlistEl.parentNode.removeChild(listEl);\r\n\t\t}\r\n\r\n\t\tremoveScrollListener();\r\n\t}\r\n\r\n\r\n\tfunction cancelItem(){\r\n\t\thideList();\r\n\t\tcancel();\r\n\t}\r\n\r\n\tfunction removeScrollListener() {\r\n\t\tself.table.rowManager.element.removeEventListener(\"scroll\", cancelItem);\r\n\t}\r\n\r\n\t//allow key based navigation\r\n\tinput.addEventListener(\"keydown\", function(e){\r\n\t\tvar index;\r\n\r\n\t\tswitch(e.keyCode){\r\n\t\t\tcase 38: //up arrow\r\n\t\t\tindex = displayItems.indexOf(currentItem);\r\n\r\n\t\t\tif(vertNav == \"editor\" || (vertNav == \"hybrid\" && index)){\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif(index > 0){\r\n\t\t\t\t\tsetCurrentItem(displayItems[index - 1]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tsetCurrentItem(false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 40: //down arrow\r\n\r\n\t\t\tindex = displayItems.indexOf(currentItem);\r\n\r\n\t\t\tif(vertNav == \"editor\" || (vertNav == \"hybrid\" && index < displayItems.length - 1)){\r\n\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif(index < displayItems.length - 1){\r\n\t\t\t\t\tif(index == -1){\r\n\t\t\t\t\t\tsetCurrentItem(displayItems[0]);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tsetCurrentItem(displayItems[index + 1]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\r\n\t\t\tcase 37: //left arrow\r\n\t\t\tcase 39: //right arrow\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\te.stopPropagation();\r\n\t\t\t// e.preventDefault();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 13: //enter\r\n\t\t\tchooseItem();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 27: //escape\r\n\t\t\tcancelItem();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 36: //home\r\n\t\t\tcase 35: //end\r\n\t\t\t//prevent table navigation while using input element\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tinput.addEventListener(\"keyup\", function(e){\r\n\r\n\t\tswitch(e.keyCode){\r\n\t\t\tcase 38: //up arrow\r\n\t\t\tcase 37: //left arrow\r\n\t\t\tcase 39: //up arrow\r\n\t\t\tcase 40: //right arrow\r\n\t\t\tcase 13: //enter\r\n\t\t\tcase 27: //escape\r\n\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\tfilterList(input.value);\r\n\t\t}\r\n\r\n\t});\r\n\r\n\tinput.addEventListener(\"search\", function(e){\r\n\t\tfilterList(input.value);\r\n\t});\r\n\r\n\tinput.addEventListener(\"blur\", function(e){\r\n\t\tif(blurable){\r\n\t\t\tchooseItem();\r\n\t\t}\r\n\t});\r\n\r\n\tinput.addEventListener(\"focus\", function(e){\r\n\t\tvar value = initialDisplayValue;\r\n\t\tgenUniqueColumnValues();\r\n\t\tshowList();\r\n\t\tinput.value = value;\r\n\t\tfilterList(value, true);\r\n\t});\r\n\r\n\r\n\tonRendered(function(){\r\n\t\tinput.style.height = \"100%\";\r\n\t\tinput.focus({preventScroll: true});\r\n\t});\r\n\r\n\tif(editorParams.mask){\r\n\t\tmaskInput(input, editorParams);\r\n\t}\r\n\r\n\tsetTimeout(() => {\r\n\t\tthis.table.rowManager.element.addEventListener(\"scroll\", cancelItem);\r\n\t}, 10);\r\n\r\n\tgenUniqueColumnValues();\r\n\tinput.value = initialDisplayValue;\r\n\tfilterList(initialDisplayValue, true);\r\n\r\n\treturn input;\r\n};","//star rating\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar self = this,\r\n\telement = cell.getElement(),\r\n\tvalue = cell.getValue(),\r\n\tmaxStars = element.getElementsByTagName(\"svg\").length || 5,\r\n\tsize = element.getElementsByTagName(\"svg\")[0] ? element.getElementsByTagName(\"svg\")[0].getAttribute(\"width\") : 14,\r\n\tstars = [],\r\n\tstarsHolder = document.createElement(\"div\"),\r\n\tstar = document.createElementNS('http://www.w3.org/2000/svg', \"svg\");\r\n\r\n\r\n\t//change star type\r\n\tfunction starChange(val){\r\n\t\tstars.forEach(function(star, i){\r\n\t\t\tif(i < val){\r\n\t\t\t\tif(self.table.browser == \"ie\"){\r\n\t\t\t\t\tstar.setAttribute(\"class\", \"tabulator-star-active\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tstar.classList.replace(\"tabulator-star-inactive\", \"tabulator-star-active\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstar.innerHTML = '<polygon fill=\"#488CE9\" stroke=\"#014AAE\" stroke-width=\"37.6152\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" points=\"259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 \"/>';\r\n\t\t\t}else{\r\n\t\t\t\tif(self.table.browser == \"ie\"){\r\n\t\t\t\t\tstar.setAttribute(\"class\", \"tabulator-star-inactive\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tstar.classList.replace(\"tabulator-star-active\", \"tabulator-star-inactive\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstar.innerHTML = '<polygon fill=\"#010155\" stroke=\"#686868\" stroke-width=\"37.6152\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" points=\"259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 \"/>';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//build stars\r\n\tfunction buildStar(i){\r\n\r\n\t\tvar starHolder = document.createElement(\"span\");\r\n\t\tvar nextStar = star.cloneNode(true);\r\n\r\n\t\tstars.push(nextStar);\r\n\r\n\t\tstarHolder.addEventListener(\"mouseenter\", function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\tstarChange(i);\r\n\t\t});\r\n\r\n\t\tstarHolder.addEventListener(\"mousemove\", function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t});\r\n\r\n\t\tstarHolder.addEventListener(\"click\", function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\tsuccess(i);\r\n\t\t\telement.blur();\r\n\t\t});\r\n\r\n\t\tstarHolder.appendChild(nextStar);\r\n\t\tstarsHolder.appendChild(starHolder);\r\n\r\n\t}\r\n\r\n\t//handle keyboard navigation value change\r\n\tfunction changeValue(val){\r\n\t\tvalue = val;\r\n\t\tstarChange(val);\r\n\t}\r\n\r\n\t//style cell\r\n\telement.style.whiteSpace = \"nowrap\";\r\n\telement.style.overflow = \"hidden\";\r\n\telement.style.textOverflow = \"ellipsis\";\r\n\r\n\t//style holding element\r\n\tstarsHolder.style.verticalAlign = \"middle\";\r\n\tstarsHolder.style.display = \"inline-block\";\r\n\tstarsHolder.style.padding = \"4px\";\r\n\r\n\t//style star\r\n\tstar.setAttribute(\"width\", size);\r\n\tstar.setAttribute(\"height\", size);\r\n\tstar.setAttribute(\"viewBox\", \"0 0 512 512\");\r\n\tstar.setAttribute(\"xml:space\", \"preserve\");\r\n\tstar.style.padding = \"0 1px\";\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tstarsHolder.setAttribute(key, starsHolder.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tstarsHolder.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//create correct number of stars\r\n\tfor(var i=1;i<= maxStars;i++){\r\n\t\tbuildStar(i);\r\n\t}\r\n\r\n\t//ensure value does not exceed number of stars\r\n\tvalue = Math.min(parseInt(value), maxStars);\r\n\r\n\t// set initial styling of stars\r\n\tstarChange(value);\r\n\r\n\tstarsHolder.addEventListener(\"mousemove\", function(e){\r\n\t\tstarChange(0);\r\n\t});\r\n\r\n\tstarsHolder.addEventListener(\"click\", function(e){\r\n\t\tsuccess(0);\r\n\t});\r\n\r\n\telement.addEventListener(\"blur\", function(e){\r\n\t\tcancel();\r\n\t});\r\n\r\n\t//allow key based navigation\r\n\telement.addEventListener(\"keydown\", function(e){\r\n\t\tswitch(e.keyCode){\r\n\t\t\tcase 39: //right arrow\r\n\t\t\tchangeValue(value + 1);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 37: //left arrow\r\n\t\t\tchangeValue(value - 1);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 13: //enter\r\n\t\t\tsuccess(value);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 27: //escape\r\n\t\t\tcancel();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\treturn starsHolder;\r\n};","//draggable progress bar\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar element = cell.getElement(),\r\n\tmax = typeof editorParams.max === \"undefined\" ? ( element.getElementsByTagName(\"div\")[0]?.getAttribute(\"max\") || 100) : editorParams.max,\r\n\tmin = typeof editorParams.min === \"undefined\" ? ( element.getElementsByTagName(\"div\")[0]?.getAttribute(\"min\") || 0) : editorParams.min,\r\n\tpercent = (max - min) / 100,\r\n\tvalue = cell.getValue() || 0,\r\n\thandle = document.createElement(\"div\"),\r\n\tbar = document.createElement(\"div\"),\r\n\tmouseDrag, mouseDragWidth;\r\n\r\n\t//set new value\r\n\tfunction updateValue(){\r\n\t\tvar style = window.getComputedStyle(element, null);\r\n\r\n\t\tvar calcVal = (percent * Math.round(bar.offsetWidth / ((element.clientWidth - parseInt(style.getPropertyValue(\"padding-left\")) - parseInt(style.getPropertyValue(\"padding-right\")))/100))) + min;\r\n\t\tsuccess(calcVal);\r\n\t\telement.setAttribute(\"aria-valuenow\", calcVal);\r\n\t\telement.setAttribute(\"aria-label\", value);\r\n\t}\r\n\r\n\t//style handle\r\n\thandle.style.position = \"absolute\";\r\n\thandle.style.right = \"0\";\r\n\thandle.style.top = \"0\";\r\n\thandle.style.bottom = \"0\";\r\n\thandle.style.width = \"5px\";\r\n\thandle.classList.add(\"tabulator-progress-handle\");\r\n\r\n\t//style bar\r\n\tbar.style.display = \"inline-block\";\r\n\tbar.style.position = \"relative\";\r\n\t// bar.style.top = \"8px\";\r\n\t// bar.style.bottom = \"8px\";\r\n\t// bar.style.left = \"4px\";\r\n\t// bar.style.marginRight = \"4px\";\r\n\tbar.style.height = \"100%\";\r\n\tbar.style.backgroundColor = \"#488CE9\";\r\n\tbar.style.maxWidth = \"100%\";\r\n\tbar.style.minWidth = \"0%\";\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tbar.setAttribute(key, bar.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tbar.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//style cell\r\n\telement.style.padding = \"4px 4px\";\r\n\r\n\t//make sure value is in range\r\n\tvalue = Math.min(parseFloat(value), max);\r\n\tvalue = Math.max(parseFloat(value), min);\r\n\r\n\t//workout percentage\r\n\tvalue = Math.round((value - min) / percent);\r\n\t// bar.style.right = value + \"%\";\r\n\tbar.style.width = value + \"%\";\r\n\r\n\telement.setAttribute(\"aria-valuemin\", min);\r\n\telement.setAttribute(\"aria-valuemax\", max);\r\n\r\n\tbar.appendChild(handle);\r\n\r\n\thandle.addEventListener(\"mousedown\", function(e){\r\n\t\tmouseDrag = e.screenX;\r\n\t\tmouseDragWidth = bar.offsetWidth;\r\n\t});\r\n\r\n\thandle.addEventListener(\"mouseover\", function(){\r\n\t\thandle.style.cursor = \"ew-resize\";\r\n\t});\r\n\r\n\telement.addEventListener(\"mousemove\", function(e){\r\n\t\tif(mouseDrag){\r\n\t\t\tbar.style.width = (mouseDragWidth + e.screenX - mouseDrag) + \"px\";\r\n\t\t}\r\n\t});\r\n\r\n\telement.addEventListener(\"mouseup\", function(e){\r\n\t\tif(mouseDrag){\r\n\t\t\te.stopPropagation();\r\n\t\t\te.stopImmediatePropagation();\r\n\r\n\t\t\tmouseDrag = false;\r\n\t\t\tmouseDragWidth = false;\r\n\r\n\t\t\tupdateValue();\r\n\t\t}\r\n\t});\r\n\r\n\t//allow key based navigation\r\n\telement.addEventListener(\"keydown\", function(e){\r\n\t\tswitch(e.keyCode){\r\n\t\t\tcase 39: //right arrow\r\n\t\t\te.preventDefault();\r\n\t\t\tbar.style.width = (bar.clientWidth + element.clientWidth/100) + \"px\";\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 37: //left arrow\r\n\t\t\te.preventDefault();\r\n\t\t\tbar.style.width = (bar.clientWidth - element.clientWidth/100) + \"px\";\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 9: //tab\r\n\t\t\tcase 13: //enter\r\n\t\t\tupdateValue();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase 27: //escape\r\n\t\t\tcancel();\r\n\t\t\tbreak;\r\n\r\n\t\t}\r\n\t});\r\n\r\n\telement.addEventListener(\"blur\", function(){\r\n\t\tcancel();\r\n\t});\r\n\r\n\treturn bar;\r\n};","//checkbox\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar value = cell.getValue(),\r\n\tinput = document.createElement(\"input\"),\r\n\ttristate = editorParams.tristate,\r\n\tindetermValue = typeof editorParams.indeterminateValue === \"undefined\" ? null : editorParams.indeterminateValue,\r\n\tindetermState = false;\r\n\r\n\tinput.setAttribute(\"type\", \"checkbox\");\r\n\tinput.style.marginTop = \"5px\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\r\n\tif(editorParams.elementAttributes && typeof editorParams.elementAttributes == \"object\"){\r\n\t\tfor (let key in editorParams.elementAttributes){\r\n\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\tkey = key.slice(1);\r\n\t\t\t\tinput.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes[\"+\" + key]);\r\n\t\t\t}else{\r\n\t\t\t\tinput.setAttribute(key, editorParams.elementAttributes[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinput.value = value;\r\n\r\n\tif(tristate && (typeof value === \"undefined\" || value === indetermValue || value === \"\")){\r\n\t\tindetermState = true;\r\n\t\tinput.indeterminate = true;\r\n\t}\r\n\r\n\tif(this.table.browser != \"firefox\"){ //prevent blur issue on mac firefox\r\n\t\tonRendered(function(){\r\n\t\t\tinput.focus({preventScroll: true});\r\n\t\t});\r\n\t}\r\n\r\n\tinput.checked = value === true || value === \"true\" || value === \"True\" || value === 1;\r\n\r\n\tonRendered(function(){\r\n\t\tinput.focus();\r\n\t});\r\n\r\n\tfunction setValue(blur){\r\n\t\tif(tristate){\r\n\t\t\tif(!blur){\r\n\t\t\t\tif(input.checked && !indetermState){\r\n\t\t\t\t\tinput.checked = false;\r\n\t\t\t\t\tinput.indeterminate = true;\r\n\t\t\t\t\tindetermState = true;\r\n\t\t\t\t\treturn indetermValue;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tindetermState = false;\r\n\t\t\t\t\treturn input.checked;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(indetermState){\r\n\t\t\t\t\treturn indetermValue;\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn input.checked;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\treturn input.checked;\r\n\t\t}\r\n\t}\r\n\r\n\t//submit new value on blur\r\n\tinput.addEventListener(\"change\", function(e){\r\n\t\tsuccess(setValue());\r\n\t});\r\n\r\n\tinput.addEventListener(\"blur\", function(e){\r\n\t\tsuccess(setValue(true));\r\n\t});\r\n\r\n\t//submit new value on enter\r\n\tinput.addEventListener(\"keydown\", function(e){\r\n\t\tif(e.keyCode == 13){\r\n\t\t\tsuccess(setValue());\r\n\t\t}\r\n\t\tif(e.keyCode == 27){\r\n\t\t\tcancel();\r\n\t\t}\r\n\t});\r\n\r\n\treturn input;\r\n};","import input from './editors/input.js';\r\nimport textarea from './editors/textarea.js';\r\nimport number from './editors/number.js';\r\nimport range from './editors/range.js';\r\nimport select from './editors/select.js';\r\nimport autocomplete from './editors/autocomplete.js';\r\nimport star from './editors/star.js';\r\nimport progress from './editors/progress.js';\r\nimport tickCross from './editors/tickCross.js';\r\n\r\nexport default {\r\n\tinput:input,\r\n\ttextarea:textarea,\r\n number:number,\r\n range:range,\r\n\tselect:select,\r\n\tautocomplete:autocomplete,\r\n\tstar:star,\r\n\tprogress:progress,\r\n\ttickCross:tickCross,\r\n};","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nimport defaultEditors from './defaults/editors.js';\r\n\r\nclass Edit extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.currentCell = false; //hold currently editing cell\r\n\t\tthis.mouseClick = false; //hold mousedown state to prevent click binding being overriden by editor opening\r\n\t\tthis.recursionBlock = false; //prevent focus recursion\r\n\t\tthis.invalidEdit = false;\r\n\t\tthis.editedCells = [];\r\n\r\n\t\tthis.editors = Edit.editors;\r\n\r\n\t\tthis.registerColumnOption(\"editable\");\r\n\t\tthis.registerColumnOption(\"editor\");\r\n\t\tthis.registerColumnOption(\"editorParams\");\r\n\r\n\t\tthis.registerColumnOption(\"cellEditing\");\r\n\t\tthis.registerColumnOption(\"cellEdited\");\r\n\t\tthis.registerColumnOption(\"cellEditCancelled\");\r\n\r\n\t\tthis.registerTableFunction(\"getEditedCells\", this.getEditedCells.bind(this));\r\n\t\tthis.registerTableFunction(\"clearCellEdited\", this.clearCellEdited.bind(this));\r\n\t\tthis.registerTableFunction(\"navigatePrev\", this.navigatePrev.bind(this));\r\n\t\tthis.registerTableFunction(\"navigateNext\", this.navigateNext.bind(this));\r\n\t\tthis.registerTableFunction(\"navigateLeft\", this.navigateLeft.bind(this));\r\n\t\tthis.registerTableFunction(\"navigateRight\", this.navigateRight.bind(this));\r\n\t\tthis.registerTableFunction(\"navigateUp\", this.navigateUp.bind(this));\r\n\t\tthis.registerTableFunction(\"navigateDown\", this.navigateDown.bind(this));\r\n\r\n\t\tthis.registerComponentFunction(\"cell\", \"isEdited\", this.cellisEdited.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"clearEdited\", this.clearEdited.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"edit\", this.editCell.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"cancelEdit\", this.cellCancelEdit.bind(this));\r\n\r\n\t\tthis.registerComponentFunction(\"cell\", \"navigatePrev\", this.navigatePrev.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"navigateNext\", this.navigateNext.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"navigateLeft\", this.navigateLeft.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"navigateRight\", this.navigateRight.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"navigateUp\", this.navigateUp.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"navigateDown\", this.navigateDown.bind(this));\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"cell-init\", this.bindEditor.bind(this));\r\n\t\tthis.subscribe(\"cell-delete\", this.clearEdited.bind(this));\r\n\t\tthis.subscribe(\"column-layout\", this.initializeColumnCheck.bind(this));\r\n\t\tthis.subscribe(\"column-delete\", this.columnDeleteCheck.bind(this));\r\n\t\tthis.subscribe(\"row-deleting\", this.rowDeleteCheck.bind(this));\r\n\t\tthis.subscribe(\"data-refeshing\", this.cancelEdit.bind(this));\r\n\r\n\t\tthis.subscribe(\"keybinding-nav-prev\", this.navigatePrev.bind(this));\r\n\t\tthis.subscribe(\"keybinding-nav-next\", this.keybindingNavigateNext.bind(this));\r\n\t\tthis.subscribe(\"keybinding-nav-left\", this.navigateLeft.bind(this));\r\n\t\tthis.subscribe(\"keybinding-nav-right\", this.navigateRight.bind(this));\r\n\t\tthis.subscribe(\"keybinding-nav-up\", this.navigateUp.bind(this));\r\n\t\tthis.subscribe(\"keybinding-nav-down\", this.navigateDown.bind(this));\r\n\t}\r\n\r\n\r\n\t///////////////////////////////////\r\n\t////// Keybinding Functions ///////\r\n\t///////////////////////////////////\r\n\r\n\tkeybindingNavigateNext(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tnewRow = this.options(\"tabEndNewRow\");\r\n\r\n\t\tif(cell){\r\n\t\t\tif(!this.navigateNext(e)){\r\n\t\t\t\tif(newRow){\r\n\t\t\t\t\tcell.getElement().firstChild.blur();\r\n\r\n\t\t\t\t\tif(newRow === true){\r\n\t\t\t\t\t\tnewRow = this.table.addRow({})\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(typeof newRow == \"function\"){\r\n\t\t\t\t\t\t\tnewRow = this.table.addRow(newRow(cell.row.getComponent()))\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tnewRow = this.table.addRow(Object.assign({}, newRow));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tnewRow.then(() => {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tnav.next();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Cell Functions //////////\r\n\t///////////////////////////////////\r\n\r\n\tcellisEdited(cell){\r\n\t\treturn !! cell.modules.edit && cell.modules.edit.edited;\r\n\t}\r\n\r\n\tcellCancelEdit(cell){\r\n\t\tif(cell === this.currentCell){\r\n\t\t\tthis.table.modules.edit.cancelEdit();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Cancel Editor Error - This cell is not currently being edited \");\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\tclearCellEdited(cells){\r\n\t\tif(!cells){\r\n\t\t\tcells = this.modules.edit.getEditedCells();\r\n\t\t}\r\n\r\n\t\tif(!Array.isArray(cells)){\r\n\t\t\tcells = [cells];\r\n\t\t}\r\n\r\n\t\tcells.forEach((cell) => {\r\n\t\t\tthis.modules.edit.clearEdited(cell._getSelf());\r\n\t\t});\r\n\t}\r\n\r\n\tnavigatePrev(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tnextCell, prevRow;\r\n\r\n\t\tif(cell){\r\n\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tnextCell = this.navigateLeft();\r\n\r\n\t\t\tif(nextCell){\r\n\t\t\t\treturn true;\r\n\t\t\t}else{\r\n\t\t\t\tprevRow = this.table.rowManager.prevDisplayRow(cell.row, true);\r\n\r\n\t\t\t\tif(prevRow){\r\n\t\t\t\t\tnextCell = this.findNextEditableCell(prevRow, prevRow.cells.length);\r\n\r\n\t\t\t\t\tif(nextCell){\r\n\t\t\t\t\t\tnextCell.getComponent().edit();\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnavigateNext(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tnextCell, nextRow;\r\n\r\n\t\tif(cell){\r\n\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tnextCell = this.navigateRight();\r\n\r\n\t\t\tif(nextCell){\r\n\t\t\t\treturn true;\r\n\t\t\t}else{\r\n\t\t\t\tnextRow = this.table.rowManager.nextDisplayRow(cell.row, true);\r\n\r\n\t\t\t\tif(nextRow){\r\n\t\t\t\t\tnextCell = this.findNextEditableCell(nextRow, -1);\r\n\r\n\t\t\t\t\tif(nextCell){\r\n\t\t\t\t\t\tnextCell.getComponent().edit();\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnavigateLeft(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tindex, nextCell;\r\n\r\n\t\tif(cell){\r\n\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextCell = this.findPrevEditableCell(cell.row, index);\r\n\r\n\t\t\tif(nextCell){\r\n\t\t\t\tnextCell.getComponent().edit();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnavigateRight(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tindex, nextCell;\r\n\r\n\t\tif(cell){\r\n\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextCell = this.findNextEditableCell(cell.row, index);\r\n\r\n\t\t\tif(nextCell){\r\n\t\t\t\tnextCell.getComponent().edit();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnavigateUp(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tindex, nextRow;\r\n\r\n\t\tif(cell){\r\n\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextRow = this.table.rowManager.prevDisplayRow(cell.row, true);\r\n\r\n\t\t\tif(nextRow){\r\n\t\t\t\tnextRow.cells[index].getComponent().edit();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnavigateDown(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tindex, nextRow;\r\n\r\n\t\tif(cell){\r\n\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextRow = this.table.rowManager.nextDisplayRow(cell.row, true);\r\n\r\n\t\t\tif(nextRow){\r\n\t\t\t\tnextRow.cells[index].getComponent().edit();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tfindNextEditableCell(row, index){\r\n\t\tvar nextCell = false;\r\n\r\n\t\tif(index < row.cells.length-1){\r\n\t\t\tfor(var i = index+1; i < row.cells.length; i++){\r\n\t\t\t\tlet cell = row.cells[i];\r\n\r\n\t\t\t\tif(cell.column.modules.edit && Helpers.elVisible(cell.getElement())){\r\n\t\t\t\t\tlet allowEdit = true;\r\n\r\n\t\t\t\t\tif(typeof cell.column.modules.edit.check == \"function\"){\r\n\t\t\t\t\t\tallowEdit = cell.column.modules.edit.check(cell.getComponent());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(allowEdit){\r\n\t\t\t\t\t\tnextCell = cell;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn nextCell;\r\n\t}\r\n\r\n\tfindPrevEditableCell(row, index){\r\n\t\tvar prevCell = false;\r\n\r\n\t\tif(index > 0){\r\n\t\t\tfor(var i = index-1; i >= 0; i--){\r\n\t\t\t\tlet cell = row.cells[i],\r\n\t\t\t\tallowEdit = true;\r\n\r\n\t\t\t\tif(cell.column.modules.edit && Helpers.elVisible(cell.getElement())){\r\n\t\t\t\t\tif(typeof cell.column.modules.edit.check == \"function\"){\r\n\t\t\t\t\t\tallowEdit = cell.column.modules.edit.check(cell.getComponent());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(allowEdit){\r\n\t\t\t\t\t\tprevCell = cell;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn prevCell;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\tinitializeColumnCheck(column){\r\n\t\tif(typeof column.definition.editor !== \"undefined\"){\r\n\t\t\tthis.initializeColumn(column);\r\n\t\t}\r\n\t}\r\n\r\n\tcolumnDeleteCheck(column){\r\n\t\tif(this.currentCell && this.currentCell.column === column){\r\n\t\t\tthis.cancelEdit();\r\n\t\t}\r\n\t}\r\n\r\n\trowDeleteCheck(row){\r\n\t\tif(this.currentCell && this.currentCell.row === row){\r\n\t\t\tthis.cancelEdit();\r\n\t\t}\r\n\t}\r\n\r\n\t//initialize column editor\r\n\tinitializeColumn(column){\r\n\t\tvar self = this,\r\n\t\tconfig = {\r\n\t\t\teditor:false,\r\n\t\t\tblocked:false,\r\n\t\t\tcheck:column.definition.editable,\r\n\t\t\tparams:column.definition.editorParams || {}\r\n\t\t};\r\n\r\n\t\t//set column editor\r\n\t\tswitch(typeof column.definition.editor){\r\n\t\t\tcase \"string\":\r\n\t\t\tif(this.editors[column.definition.editor]){\r\n\t\t\t\tconfig.editor = this.editors[column.definition.editor];\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Editor Error - No such editor found: \", column.definition.editor);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tconfig.editor = column.definition.editor;\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"boolean\":\r\n\t\t\tif(column.definition.editor === true){\r\n\t\t\t\tif(typeof column.definition.formatter !== \"function\"){\r\n\t\t\t\t\tif(this.editors[column.definition.formatter]){\r\n\t\t\t\t\t\tconfig.editor = this.editors[column.definition.formatter];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconfig.editor = this.editors[\"input\"];\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Editor Error - Cannot auto lookup editor for a custom formatter: \", column.definition.formatter);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif(config.editor){\r\n\t\t\tcolumn.modules.edit = config;\r\n\t\t}\r\n\t}\r\n\r\n\tgetCurrentCell(){\r\n\t\treturn this.currentCell ? this.currentCell.getComponent() : false;\r\n\t}\r\n\r\n\tclearEditor(cancel){\r\n\t\tvar cell = this.currentCell,\r\n\t\tcellEl;\r\n\r\n\t\tthis.invalidEdit = false;\r\n\r\n\t\tif(cell){\r\n\t\t\tthis.currentCell = false;\r\n\r\n\t\t\tcellEl = cell.getElement();\r\n\r\n\t\t\tif(cancel){\r\n\t\t\t\tif(cell.validate){\r\n\t\t\t\t\tcell.validate();\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tcellEl.classList.remove(\"tabulator-validation-fail\");\r\n\t\t\t}\r\n\r\n\t\t\tcellEl.classList.remove(\"tabulator-editing\");\r\n\t\t\twhile(cellEl.firstChild) cellEl.removeChild(cellEl.firstChild);\r\n\r\n\t\t\tcell.row.getElement().classList.remove(\"tabulator-row-editing\");\r\n\t\t}\r\n\t}\r\n\r\n\tcancelEdit(){\r\n\t\tif(this.currentCell){\r\n\t\t\tvar cell = this.currentCell;\r\n\t\t\tvar component = this.currentCell.getComponent();\r\n\r\n\t\t\tthis.clearEditor(true);\r\n\t\t\tcell.setValueActual(cell.getValue());\r\n\t\t\tcell.cellRendered();\r\n\r\n\t\t\tif(cell.column.definition.editor == \"textarea\" || cell.column.definition.variableHeight){\r\n\t\t\t\tcell.row.normalizeHeight(true);\r\n\t\t\t}\r\n\r\n\t\t\tif(cell.column.definition.cellEditCancelled){\r\n\t\t\t\tcell.column.definition.cellEditCancelled.call(this.table, component);\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchExternal(\"cellEditCancelled\", component);\r\n\t\t}\r\n\t}\r\n\r\n\t//return a formatted value for a cell\r\n\tbindEditor(cell){\r\n\t\tif(cell.column.modules.edit){\r\n\t\t\tvar self = this,\r\n\t\t\telement = cell.getElement(true);\r\n\r\n\t\t\telement.setAttribute(\"tabindex\", 0);\r\n\r\n\t\t\telement.addEventListener(\"click\", function(e){\r\n\t\t\t\tif(!element.classList.contains(\"tabulator-editing\")){\r\n\t\t\t\t\telement.focus({preventScroll: true});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\telement.addEventListener(\"mousedown\", function(e){\r\n\t\t\t\tif (e.button === 2) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}else{\r\n\t\t\t\t\tself.mouseClick = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\telement.addEventListener(\"focus\", function(e){\r\n\t\t\t\tif(!self.recursionBlock){\r\n\t\t\t\t\tself.edit(cell, e, false);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfocusCellNoEvent(cell, block){\r\n\t\tthis.recursionBlock = true;\r\n\r\n\t\tif(!(block && this.table.browser === \"ie\")){\r\n\t\t\tcell.getElement().focus({preventScroll: true});\r\n\t\t}\r\n\r\n\t\tthis.recursionBlock = false;\r\n\t}\r\n\r\n\teditCell(cell, forceEdit){\r\n\t\tthis.focusCellNoEvent(cell);\r\n\t\tthis.edit(cell, false, forceEdit);\r\n\t}\r\n\r\n\tfocusScrollAdjust(cell){\r\n\t\tif(this.table.rowManager.getRenderMode() == \"virtual\"){\r\n\t\t\tvar topEdge = this.table.rowManager.element.scrollTop,\r\n\t\t\tbottomEdge = this.table.rowManager.element.clientHeight + this.table.rowManager.element.scrollTop,\r\n\t\t\trowEl = cell.row.getElement(),\r\n\t\t\toffset = rowEl.offsetTop;\r\n\r\n\t\t\tif(rowEl.offsetTop < topEdge){\r\n\t\t\t\tthis.table.rowManager.element.scrollTop -= (topEdge - rowEl.offsetTop);\r\n\t\t\t}else{\r\n\t\t\t\tif(rowEl.offsetTop + rowEl.offsetHeight > bottomEdge){\r\n\t\t\t\t\tthis.table.rowManager.element.scrollTop += (rowEl.offsetTop + rowEl.offsetHeight - bottomEdge);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar leftEdge = this.table.rowManager.element.scrollLeft,\r\n\t\t\trightEdge = this.table.rowManager.element.clientWidth + this.table.rowManager.element.scrollLeft,\r\n\t\t\tcellEl = cell.getElement(),\r\n\t\t\toffset = cellEl.offsetLeft;\r\n\r\n\t\t\tif(this.table.modExists(\"frozenColumns\")){\r\n\t\t\t\tleftEdge += parseInt(this.table.modules.frozenColumns.leftMargin);\r\n\t\t\t\trightEdge -= parseInt(this.table.modules.frozenColumns.rightMargin);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.options.renderHorizontal === \"virtual\"){\r\n\t\t\t\tleftEdge -= parseInt(this.table.columnManager.renderer.vDomPadLeft);\r\n\t\t\t\trightEdge -= parseInt(this.table.columnManager.renderer.vDomPadLeft);\r\n\t\t\t}\r\n\r\n\t\t\tif(cellEl.offsetLeft < leftEdge){\r\n\r\n\t\t\t\tthis.table.rowManager.element.scrollLeft -= (leftEdge - cellEl.offsetLeft);\r\n\t\t\t}else{\r\n\t\t\t\tif(cellEl.offsetLeft + cellEl.offsetWidth > rightEdge){\r\n\t\t\t\t\tthis.table.rowManager.element.scrollLeft += (cellEl.offsetLeft + cellEl.offsetWidth - rightEdge);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tedit(cell, e, forceEdit){\r\n\t\tvar self = this,\r\n\t\tallowEdit = true,\r\n\t\trendered = function(){},\r\n\t\telement = cell.getElement(),\r\n\t\tcellEditor, component, params;\r\n\r\n\t\t//prevent editing if another cell is refusing to leave focus (eg. validation fail)\r\n\t\tif(this.currentCell){\r\n\t\t\tif(!this.invalidEdit){\r\n\t\t\t\tthis.cancelEdit();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//handle successfull value change\r\n\t\tfunction success(value){\r\n\t\t\tif(self.currentCell === cell){\r\n\t\t\t\tvar valid = true;\r\n\r\n\t\t\t\tif(cell.column.modules.validate && self.table.modExists(\"validate\") && self.table.options.validationMode != \"manual\"){\r\n\t\t\t\t\tvalid = self.table.modules.validate.validate(cell.column.modules.validate, cell, value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(valid === true || self.table.options.validationMode === \"highlight\"){\r\n\t\t\t\t\tself.clearEditor();\r\n\r\n\r\n\t\t\t\t\tif(!cell.modules.edit){\r\n\t\t\t\t\t\tcell.modules.edit = {};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcell.modules.edit.edited = true;\r\n\r\n\t\t\t\t\tif(self.editedCells.indexOf(cell) == -1){\r\n\t\t\t\t\t\tself.editedCells.push(cell);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcell.setValue(value, true);\r\n\r\n\t\t\t\t\tif(self.table.options.dataTree && self.table.modExists(\"dataTree\")){\r\n\t\t\t\t\t\tself.table.modules.dataTree.checkForRestyle(cell);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(valid !== true){\r\n\t\t\t\t\t\telement.classList.add(\"tabulator-validation-fail\");\r\n\t\t\t\t\t\tself.table.externalEvents.dispatch(\"validationFailed\", cell.getComponent(), value, valid);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tself.invalidEdit = true;\r\n\t\t\t\t\telement.classList.add(\"tabulator-validation-fail\");\r\n\t\t\t\t\tself.focusCellNoEvent(cell, true);\r\n\t\t\t\t\trendered();\r\n\t\t\t\t\tself.table.externalEvents.dispatch(\"validationFailed\", cell.getComponent(), value, valid);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\t// console.warn(\"Edit Success Error - cannot call success on a cell that is no longer being edited\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//handle aborted edit\r\n\t\tfunction cancel(){\r\n\t\t\tif(self.currentCell === cell){\r\n\t\t\t\tself.cancelEdit();\r\n\r\n\t\t\t\tif(self.table.options.dataTree && self.table.modExists(\"dataTree\")){\r\n\t\t\t\t\tself.table.modules.dataTree.checkForRestyle(cell);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\t// console.warn(\"Edit Success Error - cannot call cancel on a cell that is no longer being edited\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onRendered(callback){\r\n\t\t\trendered = callback;\r\n\t\t}\r\n\r\n\t\tif(!cell.column.modules.edit.blocked){\r\n\t\t\tif(e){\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\r\n\t\t\tswitch(typeof cell.column.modules.edit.check){\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\tallowEdit = cell.column.modules.edit.check(cell.getComponent());\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"boolean\":\r\n\t\t\t\tallowEdit = cell.column.modules.edit.check;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif(allowEdit || forceEdit){\r\n\r\n\t\t\t\tself.cancelEdit();\r\n\r\n\t\t\t\tself.currentCell = cell;\r\n\r\n\t\t\t\tthis.focusScrollAdjust(cell);\r\n\r\n\t\t\t\tcomponent = cell.getComponent();\r\n\r\n\t\t\t\tif(this.mouseClick){\r\n\t\t\t\t\tthis.mouseClick = false;\r\n\r\n\t\t\t\t\tif(cell.column.definition.cellClick){\r\n\t\t\t\t\t\tcell.column.definition.cellClick.call(this.table, e, component);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(cell.column.definition.cellEditing){\r\n\t\t\t\t\tcell.column.definition.cellEditing.call(this.table, component);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dispatchExternal(\"cellEditing\", component);\r\n\r\n\t\t\t\tparams = typeof cell.column.modules.edit.params === \"function\" ? cell.column.modules.edit.params(component) : cell.column.modules.edit.params;\r\n\r\n\t\t\t\tcellEditor = cell.column.modules.edit.editor.call(self, component, onRendered, success, cancel, params);\r\n\r\n\t\t\t\t//if editor returned, add to DOM, if false, abort edit\r\n\t\t\t\tif(cellEditor !== false){\r\n\r\n\t\t\t\t\tif(cellEditor instanceof Node){\r\n\t\t\t\t\t\telement.classList.add(\"tabulator-editing\");\r\n\t\t\t\t\t\tcell.row.getElement().classList.add(\"tabulator-row-editing\");\r\n\t\t\t\t\t\twhile(element.firstChild) element.removeChild(element.firstChild);\r\n\t\t\t\t\t\telement.appendChild(cellEditor);\r\n\r\n\t\t\t\t\t\t//trigger onRendered Callback\r\n\t\t\t\t\t\trendered();\r\n\r\n\t\t\t\t\t\t//prevent editing from triggering rowClick event\r\n\t\t\t\t\t\tvar children = element.children;\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\t\t\tchildren[i].addEventListener(\"click\", function(e){\r\n\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.warn(\"Edit Error - Editor should return an instance of Node, the editor returned:\", cellEditor);\r\n\t\t\t\t\t\telement.blur();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}else{\r\n\t\t\t\t\telement.blur();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}else{\r\n\t\t\t\tthis.mouseClick = false;\r\n\t\t\t\telement.blur();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.mouseClick = false;\r\n\t\t\telement.blur();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tgetEditedCells(){\r\n\t\tvar output = [];\r\n\r\n\t\tthis.editedCells.forEach((cell) => {\r\n\t\t\toutput.push(cell.getComponent());\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tclearEdited(cell){\r\n\t\tvar editIndex;\r\n\r\n\t\tif(cell.modules.edit && cell.modules.edit.edited){\r\n\t\t\tcell.modules.edit.edited = false;\r\n\r\n\t\t\tif(cell.modules.validate){\r\n\t\t\t\tcell.modules.validate.invalid = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\teditIndex = this.editedCells.indexOf(cell);\r\n\r\n\t\tif(editIndex > -1){\r\n\t\t\tthis.editedCells.splice(editIndex, 1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nEdit.moduleName = \"edit\";\r\n\r\n//load defaults\r\nEdit.editors = defaultEditors;\r\n\r\n\r\nexport default Edit;","class ExportRow{\r\n\tconstructor(type, columns, component, indent){\r\n\t\tthis.type = type;\r\n\t\tthis.columns = columns;\r\n\t\tthis.component = component || false;\r\n\t\tthis.indent = indent || 0;\r\n\t}\r\n}\r\n\r\nexport default ExportRow;","class ExportColumn{\r\n\tconstructor(value, component, width, height, depth){\r\n\t\tthis.value = value;\r\n\t\tthis.component = component || false;\r\n\t\tthis.width = width;\r\n\t\tthis.height = height;\r\n\t\tthis.depth = depth;\r\n\t}\r\n}\r\n\r\nexport default ExportColumn;","import Module from '../../core/Module.js';\r\n\r\nimport ExportRow from './ExportRow.js';\r\nimport ExportColumn from './ExportColumn.js';\r\n\r\nclass Export extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.config = {};\r\n\t\tthis.cloneTableStyle = true;\r\n\t\tthis.colVisProp = \"\";\r\n\r\n\t\tthis.registerTableOption(\"htmlOutputConfig\", false); //html outypu config\r\n\r\n\t\tthis.registerColumnOption(\"htmlOutput\");\r\n\t\tthis.registerColumnOption(\"titleHtmlOutput\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.registerTableFunction(\"getHtml\", this.getHtml.bind(this));\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\tgenerateExportList(config, style, range, colVisProp){\r\n\t\tthis.cloneTableStyle = style;\r\n\t\tthis.config = config || {};\r\n\t\tthis.colVisProp = colVisProp;\r\n\r\n\t\tvar headers = this.config.columnHeaders !== false ? this.headersToExportRows(this.generateColumnGroupHeaders()) : [];\r\n\t\tvar body = this.bodyToExportRows(this.rowLookup(range));\r\n\r\n\t\treturn headers.concat(body);\r\n\t}\r\n\r\n\tgenereateTable(config, style, range, colVisProp){\r\n\t\tvar list = this.generateExportList(config, style, range, colVisProp);\r\n\r\n\t\treturn this.genereateTableElement(list);\r\n\t}\r\n\r\n\trowLookup(range){\r\n\t\tvar rows = [];\r\n\r\n\t\tif(typeof range == \"function\"){\r\n\t\t\trange.call(this.table).forEach((row) =>{\r\n\t\t\t\trow = this.table.rowManager.findRow(row);\r\n\r\n\t\t\t\tif(row){\r\n\t\t\t\t\trows.push(row);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tswitch(range){\r\n\t\t\t\tcase true:\r\n\t\t\t\tcase \"visible\":\r\n\t\t\t\trows = this.table.rowManager.getVisibleRows(true);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"all\":\r\n\t\t\t\trows = this.table.rowManager.rows;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"selected\":\r\n\t\t\t\trows = this.table.modules.selectRow.selectedRows;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"active\":\r\n\t\t\t\tdefault:\r\n\t\t\t\tif(this.table.options.pagination){\r\n\t\t\t\t\trows = this.table.rowManager.getDisplayRows(this.table.rowManager.displayRows.length - 2);\r\n\t\t\t\t}else{\r\n\t\t\t\t\trows = this.table.rowManager.getDisplayRows();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn Object.assign([], rows);\r\n\t}\r\n\r\n\tgenerateColumnGroupHeaders(){\r\n\t\tvar output = [];\r\n\r\n\t\tvar columns = this.config.columnGroups !== false ? this.table.columnManager.columns : this.table.columnManager.columnsByIndex;\r\n\r\n\t\tcolumns.forEach((column) => {\r\n\t\t\tvar colData = this.processColumnGroup(column);\r\n\r\n\t\t\tif(colData){\r\n\t\t\t\toutput.push(colData);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tprocessColumnGroup(column){\r\n\t\tvar subGroups = column.columns,\r\n\t\tmaxDepth = 0,\r\n\t\ttitle = column.definition[\"title\" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))] || column.definition.title;\r\n\r\n\t\tvar groupData = {\r\n\t\t\ttitle:title,\r\n\t\t\tcolumn:column,\r\n\t\t\tdepth:1,\r\n\t\t};\r\n\r\n\t\tif(subGroups.length){\r\n\t\t\tgroupData.subGroups = [];\r\n\t\t\tgroupData.width = 0;\r\n\r\n\t\t\tsubGroups.forEach((subGroup) => {\r\n\t\t\t\tvar subGroupData = this.processColumnGroup(subGroup);\r\n\r\n\t\t\t\tif(subGroupData){\r\n\t\t\t\t\tgroupData.width += subGroupData.width;\r\n\t\t\t\t\tgroupData.subGroups.push(subGroupData);\r\n\r\n\t\t\t\t\tif(subGroupData.depth > maxDepth){\r\n\t\t\t\t\t\tmaxDepth = subGroupData.depth;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tgroupData.depth += maxDepth;\r\n\r\n\t\t\tif(!groupData.width){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(this.columnVisCheck(column)){\r\n\t\t\t\tgroupData.width = 1;\r\n\t\t\t}else{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn groupData;\r\n\t}\r\n\r\n\tcolumnVisCheck(column){\r\n\t\treturn column.definition[this.colVisProp] !== false && (column.visible || (!column.visible && column.definition[this.colVisProp]));\r\n\t}\r\n\r\n\theadersToExportRows(columns){\r\n\t\tvar headers = [],\r\n\t\theaderDepth = 0,\r\n\t\texportRows = [];\r\n\r\n\t\tfunction parseColumnGroup(column, level){\r\n\r\n\t\t\tvar depth = headerDepth - level;\r\n\r\n\t\t\tif(typeof headers[level] === \"undefined\"){\r\n\t\t\t\theaders[level] = [];\r\n\t\t\t}\r\n\r\n\t\t\tcolumn.height = column.subGroups ? 1 : (depth - column.depth) + 1;\r\n\r\n\t\t\theaders[level].push(column);\r\n\r\n\t\t\tif(column.height > 1){\r\n\t\t\t\tfor(let i = 1; i < column.height; i ++){\r\n\r\n\t\t\t\t\tif(typeof headers[level + i] === \"undefined\"){\r\n\t\t\t\t\t\theaders[level + i] = [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\theaders[level + i].push(false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(column.width > 1){\r\n\t\t\t\tfor(let i = 1; i < column.width; i ++){\r\n\t\t\t\t\theaders[level].push(false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(column.subGroups){\r\n\t\t\t\tcolumn.subGroups.forEach(function(subGroup){\r\n\t\t\t\t\tparseColumnGroup(subGroup, level+1);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//calculate maximum header debth\r\n\t\tcolumns.forEach(function(column){\r\n\t\t\tif(column.depth > headerDepth){\r\n\t\t\t\theaderDepth = column.depth;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tcolumns.forEach(function(column){\r\n\t\t\tparseColumnGroup(column,0);\r\n\t\t});\r\n\r\n\t\theaders.forEach((header) => {\r\n\t\t\tvar columns = [];\r\n\r\n\t\t\theader.forEach((col) => {\r\n\t\t\t\tif(col){\r\n\t\t\t\t\tcolumns.push(new ExportColumn(col.title, col.column.getComponent(), col.width, col.height, col.depth));\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcolumns.push(null);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\texportRows.push(new ExportRow(\"header\", columns));\r\n\t\t});\r\n\r\n\t\treturn exportRows;\r\n\t}\r\n\r\n\tbodyToExportRows(rows){\r\n\r\n\t\tvar columns = [];\r\n\t\tvar exportRows = [];\r\n\r\n\t\tthis.table.columnManager.columnsByIndex.forEach((column) => {\r\n\t\t\tif (this.columnVisCheck(column)) {\r\n\t\t\t\tcolumns.push(column.getComponent());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(this.config.columnCalcs !== false && this.table.modExists(\"columnCalcs\")){\r\n\t\t\tif(this.table.modules.columnCalcs.topInitialized){\r\n\t\t\t\trows.unshift(this.table.modules.columnCalcs.topRow);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.modules.columnCalcs.botInitialized){\r\n\t\t\t\trows.push(this.table.modules.columnCalcs.botRow);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\trows = rows.filter((row) => {\r\n\t\t\tswitch(row.type){\r\n\t\t\t\tcase \"group\":\r\n\t\t\t\treturn this.config.rowGroups !== false;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"calc\":\r\n\t\t\t\treturn this.config.columnCalcs !== false;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"row\":\r\n\t\t\t\treturn !(this.table.options.dataTree && this.config.dataTree === false && row.modules.dataTree.parent);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t\trows.forEach((row, i) => {\r\n\t\t\tvar rowData = row.getData(this.colVisProp);\r\n\t\t\tvar exportCols = [];\r\n\t\t\tvar indent = 0;\r\n\r\n\t\t\tswitch(row.type){\r\n\t\t\t\tcase \"group\":\r\n\t\t\t\tindent = row.level;\r\n\t\t\t\texportCols.push(new ExportColumn(row.key, row.getComponent(), columns.length, 1));\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"calc\" :\r\n\t\t\t\tcase \"row\" :\r\n\t\t\t\tcolumns.forEach((col) => {\r\n\t\t\t\t\texportCols.push(new ExportColumn(col._column.getFieldValue(rowData), col, 1, 1));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(this.table.options.dataTree && this.config.dataTree !== false){\r\n\t\t\t\t\tindent = row.modules.dataTree.index;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\texportRows.push(new ExportRow(row.type, exportCols, row.getComponent(), indent));\r\n\t\t});\r\n\r\n\t\treturn exportRows;\r\n\t}\r\n\r\n\tgenereateTableElement(list){\r\n\t\tvar table = document.createElement(\"table\"),\r\n\t\theaderEl = document.createElement(\"thead\"),\r\n\t\tbodyEl = document.createElement(\"tbody\"),\r\n\t\tstyles = this.lookupTableStyles(),\r\n\t\trowFormatter = this.table.options[\"rowFormatter\" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))],\r\n\t\tsetup = {};\r\n\r\n\t\tsetup.rowFormatter = rowFormatter !== null ? rowFormatter : this.table.options.rowFormatter;\r\n\r\n\t\tif(this.table.options.dataTree &&this.config.dataTree !== false && this.table.modExists(\"columnCalcs\")){\r\n\t\t\tsetup.treeElementField = this.table.modules.dataTree.elementField;\r\n\t\t}\r\n\r\n\t\t//assign group header formatter\r\n\t\tsetup.groupHeader = this.table.options[\"groupHeader\" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))];\r\n\r\n\t\tif(setup.groupHeader && !Array.isArray(setup.groupHeader)){\r\n\t\t\tsetup.groupHeader = [setup.groupHeader];\r\n\t\t}\r\n\r\n\t\ttable.classList.add(\"tabulator-print-table\");\r\n\r\n\t\tthis.mapElementStyles(this.table.columnManager.getHeadersElement(), headerEl, [\"border-top\", \"border-left\", \"border-right\", \"border-bottom\", \"background-color\", \"color\", \"font-weight\", \"font-family\", \"font-size\"]);\r\n\r\n\r\n\t\tif(list.length > 1000){\r\n\t\t\tconsole.warn(\"It may take a long time to render an HTML table with more than 1000 rows\");\r\n\t\t}\r\n\r\n\t\tlist.forEach((row, i) => {\r\n\t\t\tswitch(row.type){\r\n\t\t\t\tcase \"header\":\r\n\t\t\t\theaderEl.appendChild(this.genereateHeaderElement(row, setup, styles));\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"group\":\r\n\t\t\t\tbodyEl.appendChild(this.genereateGroupElement(row, setup, styles));\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"calc\":\r\n\t\t\t\tbodyEl.appendChild(this.genereateCalcElement(row, setup, styles));\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"row\":\r\n\t\t\t\tlet rowEl = this.genereateRowElement(row, setup, styles);\r\n\t\t\t\tthis.mapElementStyles(((i % 2) && styles.evenRow) ? styles.evenRow : styles.oddRow, rowEl, [\"border-top\", \"border-left\", \"border-right\", \"border-bottom\", \"color\", \"font-weight\", \"font-family\", \"font-size\", \"background-color\"]);\r\n\t\t\t\tbodyEl.appendChild(rowEl);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(headerEl.innerHTML){\r\n\t\t\ttable.appendChild(headerEl);\r\n\t\t}\r\n\r\n\t\ttable.appendChild(bodyEl);\r\n\r\n\r\n\t\tthis.mapElementStyles(this.table.element, table, [\"border-top\", \"border-left\", \"border-right\", \"border-bottom\"]);\r\n\t\treturn table;\r\n\t}\r\n\r\n\tlookupTableStyles(){\r\n\t\tvar styles = {};\r\n\r\n\t\t//lookup row styles\r\n\t\tif(this.cloneTableStyle && window.getComputedStyle){\r\n\t\t\tstyles.oddRow = this.table.element.querySelector(\".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)\");\r\n\t\t\tstyles.evenRow = this.table.element.querySelector(\".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)\");\r\n\t\t\tstyles.calcRow = this.table.element.querySelector(\".tabulator-row.tabulator-calcs\");\r\n\t\t\tstyles.firstRow = this.table.element.querySelector(\".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)\");\r\n\t\t\tstyles.firstGroup = this.table.element.getElementsByClassName(\"tabulator-group\")[0];\r\n\r\n\t\t\tif(styles.firstRow){\r\n\t\t\t\tstyles.styleCells = styles.firstRow.getElementsByClassName(\"tabulator-cell\");\r\n\t\t\t\tstyles.firstCell = styles.styleCells[0];\r\n\t\t\t\tstyles.lastCell = styles.styleCells[styles.styleCells.length - 1];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tgenereateHeaderElement(row, setup, styles){\r\n\t\tvar rowEl = document.createElement(\"tr\");\r\n\r\n\t\trow.columns.forEach((column) => {\r\n\t\t\tif(column){\r\n\t\t\t\tvar cellEl = document.createElement(\"th\");\r\n\t\t\t\tvar classNames = column.component._column.definition.cssClass ? column.component._column.definition.cssClass.split(\" \") : [];\r\n\r\n\t\t\t\tcellEl.colSpan = column.width;\r\n\t\t\t\tcellEl.rowSpan = column.height;\r\n\r\n\t\t\t\tcellEl.innerHTML = column.value;\r\n\r\n\t\t\t\tif(this.cloneTableStyle){\r\n\t\t\t\t\tcellEl.style.boxSizing = \"border-box\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tclassNames.forEach(function(className) {\r\n\t\t\t\t\tcellEl.classList.add(className);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.mapElementStyles(column.component.getElement(), cellEl, [\"text-align\", \"border-top\", \"border-left\", \"border-right\", \"border-bottom\", \"background-color\", \"color\", \"font-weight\", \"font-family\", \"font-size\"]);\r\n\t\t\t\tthis.mapElementStyles(column.component._column.contentElement, cellEl, [\"padding-top\", \"padding-left\", \"padding-right\", \"padding-bottom\"]);\r\n\r\n\t\t\t\tif(column.component._column.visible){\r\n\t\t\t\t\tthis.mapElementStyles(column.component.getElement(), cellEl, [\"width\"]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(column.component._column.definition.width){\r\n\t\t\t\t\t\tcellEl.style.width = column.component._column.definition.width + \"px\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(column.component._column.parent){\r\n\t\t\t\t\tthis.mapElementStyles(column.component._column.parent.groupElement, cellEl, [\"border-top\"]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\trowEl.appendChild(cellEl);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn rowEl;\r\n\t}\r\n\r\n\tgenereateGroupElement(row, setup, styles){\r\n\r\n\t\tvar rowEl = document.createElement(\"tr\"),\r\n\t\tcellEl = document.createElement(\"td\"),\r\n\t\tgroup = row.columns[0];\r\n\r\n\t\trowEl.classList.add(\"tabulator-print-table-row\");\r\n\r\n\t\tif(setup.groupHeader && setup.groupHeader[row.indent]){\r\n\t\t\tgroup.value = setup.groupHeader[row.indent](group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);\r\n\t\t}else{\r\n\t\t\tif(setup.groupHeader === false){\r\n\t\t\t\tgroup.value = group.value;\r\n\t\t\t}else{\r\n\t\t\t\tgroup.value = row.component._group.generator(group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcellEl.colSpan = group.width;\r\n\t\tcellEl.innerHTML = group.value;\r\n\r\n\t\trowEl.classList.add(\"tabulator-print-table-group\");\r\n\t\trowEl.classList.add(\"tabulator-group-level-\" + row.indent);\r\n\r\n\t\tif(group.component.isVisible()){\r\n\t\t\trowEl.classList.add(\"tabulator-group-visible\");\r\n\t\t}\r\n\r\n\t\tthis.mapElementStyles(styles.firstGroup, rowEl, [\"border-top\", \"border-left\", \"border-right\", \"border-bottom\", \"color\", \"font-weight\", \"font-family\", \"font-size\", \"background-color\"]);\r\n\t\tthis.mapElementStyles(styles.firstGroup, cellEl, [\"padding-top\", \"padding-left\", \"padding-right\", \"padding-bottom\"]);\r\n\r\n\t\trowEl.appendChild(cellEl);\r\n\r\n\t\treturn rowEl;\r\n\t}\r\n\r\n\tgenereateCalcElement(row, setup, styles){\r\n\t\tvar rowEl = this.genereateRowElement(row, setup, styles);\r\n\r\n\t\trowEl.classList.add(\"tabulator-print-table-calcs\");\r\n\t\tthis.mapElementStyles(styles.calcRow, rowEl, [\"border-top\", \"border-left\", \"border-right\", \"border-bottom\", \"color\", \"font-weight\", \"font-family\", \"font-size\", \"background-color\"]);\r\n\r\n\t\treturn rowEl;\r\n\t}\r\n\r\n\tgenereateRowElement(row, setup, styles){\r\n\t\tvar rowEl = document.createElement(\"tr\");\r\n\r\n\t\trowEl.classList.add(\"tabulator-print-table-row\");\r\n\r\n\t\trow.columns.forEach((col) => {\r\n\r\n\t\t\tif(col){\r\n\t\t\t\tvar cellEl = document.createElement(\"td\"),\r\n\t\t\t\tcolumn = col.component._column,\r\n\t\t\t\tvalue = col.value;\r\n\r\n\t\t\t\tvar cellWrapper = {\r\n\t\t\t\t\tmodules:{},\r\n\t\t\t\t\tgetValue:function(){\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetField:function(){\r\n\t\t\t\t\t\treturn column.definition.field;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetElement:function(){\r\n\t\t\t\t\t\treturn cellEl;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetColumn:function(){\r\n\t\t\t\t\t\treturn column.getComponent();\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetData:function(){\r\n\t\t\t\t\t\treturn row.component.getData();\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetRow:function(){\r\n\t\t\t\t\t\treturn row.component;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetComponent:function(){\r\n\t\t\t\t\t\treturn cellWrapper;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcolumn:column,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar classNames = column.definition.cssClass ? column.definition.cssClass.split(\" \") : [];\r\n\r\n\t\t\t\tclassNames.forEach(function(className) {\r\n\t\t\t\t\tcellEl.classList.add(className);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(this.table.modExists(\"format\") && this.config.formatCells !== false){\r\n\t\t\t\t\tvalue = this.table.modules.format.formatExportValue(cellWrapper, this.colVisProp);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tswitch(typeof value){\r\n\t\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\t\tvalue = JSON.stringify(value);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\t\tcase \"null\":\r\n\t\t\t\t\t\tvalue = \"\";\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tvalue = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(value instanceof Node){\r\n\t\t\t\t\tcellEl.appendChild(value);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcellEl.innerHTML = value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(styles.firstCell){\r\n\t\t\t\t\tthis.mapElementStyles(styles.firstCell, cellEl, [\"padding-top\", \"padding-left\", \"padding-right\", \"padding-bottom\", \"border-top\", \"border-left\", \"border-right\", \"border-bottom\", \"color\", \"font-weight\", \"font-family\", \"font-size\"]);\r\n\r\n\t\t\t\t\tif(column.definition.align){\r\n\t\t\t\t\t\tcellEl.style.textAlign = column.definition.align;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(this.table.options.dataTree && this.config.dataTree !== false){\r\n\t\t\t\t\tif((setup.treeElementField && setup.treeElementField == column.field) || (!setup.treeElementField && i == 0)){\r\n\t\t\t\t\t\tif(row.component._row.modules.dataTree.controlEl){\r\n\t\t\t\t\t\t\tcellEl.insertBefore(row.component._row.modules.dataTree.controlEl.cloneNode(true), cellEl.firstChild);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(row.component._row.modules.dataTree.branchEl){\r\n\t\t\t\t\t\t\tcellEl.insertBefore(row.component._row.modules.dataTree.branchEl.cloneNode(true), cellEl.firstChild);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\trowEl.appendChild(cellEl);\r\n\r\n\t\t\t\tif(cellWrapper.modules.format && cellWrapper.modules.format.renderedCallback){\r\n\t\t\t\t\tcellWrapper.modules.format.renderedCallback();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(setup.rowFormatter && this.config.formatCells !== false){\r\n\t\t\t\t\tsetup.rowFormatter(row.component);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn rowEl;\r\n\t}\r\n\r\n\tgenereateHTMLTable(list){\r\n\t\tvar holder = document.createElement(\"div\");\r\n\r\n\t\tholder.appendChild(this.genereateTableElement(list));\r\n\r\n\t\treturn holder.innerHTML;\r\n\t}\r\n\r\n\tgetHtml(visible, style, config, colVisProp){\r\n\t\tvar list = this.generateExportList(config || this.table.options.htmlOutputConfig, style, visible, colVisProp || \"htmlOutput\");\r\n\r\n\t\treturn this.genereateHTMLTable(list);\r\n\t}\r\n\r\n\tmapElementStyles(from, to, props){\r\n\t\tif(this.cloneTableStyle && from && to){\r\n\r\n\t\t\tvar lookup = {\r\n\t\t\t\t\"background-color\" : \"backgroundColor\",\r\n\t\t\t\t\"color\" : \"fontColor\",\r\n\t\t\t\t\"width\" : \"width\",\r\n\t\t\t\t\"font-weight\" : \"fontWeight\",\r\n\t\t\t\t\"font-family\" : \"fontFamily\",\r\n\t\t\t\t\"font-size\" : \"fontSize\",\r\n\t\t\t\t\"text-align\" : \"textAlign\",\r\n\t\t\t\t\"border-top\" : \"borderTop\",\r\n\t\t\t\t\"border-left\" : \"borderLeft\",\r\n\t\t\t\t\"border-right\" : \"borderRight\",\r\n\t\t\t\t\"border-bottom\" : \"borderBottom\",\r\n\t\t\t\t\"padding-top\" : \"paddingTop\",\r\n\t\t\t\t\"padding-left\" : \"paddingLeft\",\r\n\t\t\t\t\"padding-right\" : \"paddingRight\",\r\n\t\t\t\t\"padding-bottom\" : \"paddingBottom\",\r\n\t\t\t};\r\n\r\n\t\t\tif(window.getComputedStyle){\r\n\t\t\t\tvar fromStyle = window.getComputedStyle(from);\r\n\r\n\t\t\t\tprops.forEach(function(prop){\r\n\t\t\t\t\tto.style[lookup[prop]] = fromStyle.getPropertyValue(prop);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nExport.moduleName = \"export\";\r\n\r\nexport default Export;\r\n","export default {\r\n\r\n\t//equal to\r\n\t\"=\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\treturn rowVal == filterVal ? true : false;\r\n\t},\r\n\r\n\t//less than\r\n\t\"<\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\treturn rowVal < filterVal ? true : false;\r\n\t},\r\n\r\n\t//less than or equal to\r\n\t\"<=\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\treturn rowVal <= filterVal ? true : false;\r\n\t},\r\n\r\n\t//greater than\r\n\t\">\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\treturn rowVal > filterVal ? true : false;\r\n\t},\r\n\r\n\t//greater than or equal to\r\n\t\">=\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\treturn rowVal >= filterVal ? true : false;\r\n\t},\r\n\r\n\t//not equal to\r\n\t\"!=\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\treturn rowVal != filterVal ? true : false;\r\n\t},\r\n\r\n\t\"regex\":function(filterVal, rowVal, rowData, filterParams){\r\n\r\n\t\tif(typeof filterVal == \"string\"){\r\n\t\t\tfilterVal = new RegExp(filterVal);\r\n\t\t}\r\n\r\n\t\treturn filterVal.test(rowVal);\r\n\t},\r\n\r\n\t//contains the string\r\n\t\"like\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\tif(filterVal === null || typeof filterVal === \"undefined\"){\r\n\t\t\treturn rowVal === filterVal ? true : false;\r\n\t\t}else{\r\n\t\t\tif(typeof rowVal !== 'undefined' && rowVal !== null){\r\n\t\t\t\treturn String(rowVal).toLowerCase().indexOf(filterVal.toLowerCase()) > -1;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t//contains the keywords\r\n\t\"keywords\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\tvar keywords = filterVal.toLowerCase().split(typeof filterParams.separator === \"undefined\" ? \" \" : filterParams.separator),\r\n\t\tvalue = String(rowVal === null || typeof rowVal === \"undefined\" ? \"\" : rowVal).toLowerCase(),\r\n\t\tmatches = [];\r\n\r\n\t\tkeywords.forEach((keyword) =>{\r\n\t\t\tif(value.includes(keyword)){\r\n\t\t\t\tmatches.push(true);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn filterParams.matchAll ? matches.length === keywords.length : !!matches.length;\r\n\t},\r\n\r\n\t//starts with the string\r\n\t\"starts\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\tif(filterVal === null || typeof filterVal === \"undefined\"){\r\n\t\t\treturn rowVal === filterVal ? true : false;\r\n\t\t}else{\r\n\t\t\tif(typeof rowVal !== 'undefined' && rowVal !== null){\r\n\t\t\t\treturn String(rowVal).toLowerCase().startsWith(filterVal.toLowerCase());\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t//ends with the string\r\n\t\"ends\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\tif(filterVal === null || typeof filterVal === \"undefined\"){\r\n\t\t\treturn rowVal === filterVal ? true : false;\r\n\t\t}else{\r\n\t\t\tif(typeof rowVal !== 'undefined' && rowVal !== null){\r\n\t\t\t\treturn String(rowVal).toLowerCase().endsWith(filterVal.toLowerCase());\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t//in array\r\n\t\"in\":function(filterVal, rowVal, rowData, filterParams){\r\n\t\tif(Array.isArray(filterVal)){\r\n\t\t\treturn filterVal.length ? filterVal.indexOf(rowVal) > -1 : true;\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Filter Error - filter value is not an array:\", filterVal);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultFilters from './defaults/filters.js';\r\n\r\nclass Filter extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.filterList = []; //hold filter list\r\n\t\tthis.headerFilters = {}; //hold column filters\r\n\t\tthis.headerFilterColumns = []; //hold columns that use header filters\r\n\r\n\t\tthis.prevHeaderFilterChangeCheck = \"\";\r\n\t\tthis.prevHeaderFilterChangeCheck = \"{}\";\r\n\r\n\t\tthis.changed = false; //has filtering changed since last render\r\n\t\tthis.tableInitialized = false;\r\n\r\n\t\tthis.registerTableOption(\"filterMode\", \"local\"); //local or remote filtering\r\n\r\n\t\tthis.registerTableOption(\"initialFilter\", false); //initial filtering criteria\r\n\t\tthis.registerTableOption(\"initialHeaderFilter\", false); //initial header filtering criteria\r\n\t\tthis.registerTableOption(\"headerFilterLiveFilterDelay\", 300); //delay before updating column after user types in header filter\r\n\r\n\t\tthis.registerColumnOption(\"headerFilter\");\r\n\t\tthis.registerColumnOption(\"headerFilterPlaceholder\");\r\n\t\tthis.registerColumnOption(\"headerFilterParams\");\r\n\t\tthis.registerColumnOption(\"headerFilterEmptyCheck\");\r\n\t\tthis.registerColumnOption(\"headerFilterFunc\");\r\n\t\tthis.registerColumnOption(\"headerFilterFuncParams\");\r\n\t\tthis.registerColumnOption(\"headerFilterLiveFilter\");\r\n\r\n\t\tthis.registerTableFunction(\"searchRows\", this.searchRows.bind(this));\r\n\t\tthis.registerTableFunction(\"searchData\", this.searchData.bind(this));\r\n\r\n\t\tthis.registerTableFunction(\"setFilter\", this.userSetFilter.bind(this));\r\n\t\tthis.registerTableFunction(\"refreshFilter\", this.userRefreshFilter.bind(this));\r\n\t\tthis.registerTableFunction(\"addFilter\", this.userAddFilter.bind(this));\r\n\t\tthis.registerTableFunction(\"getFilters\", this.getFilters.bind(this));\r\n\t\tthis.registerTableFunction(\"setHeaderFilterFocus\", this.userSetHeaderFilterFocus.bind(this));\r\n\t\tthis.registerTableFunction(\"getHeaderFilterValue\", this.userGetHeaderFilterValue.bind(this));\r\n\t\tthis.registerTableFunction(\"setHeaderFilterValue\", this.userSetHeaderFilterValue.bind(this));\r\n\t\tthis.registerTableFunction(\"getHeaderFilters\", this.getHeaderFilters.bind(this));\r\n\t\tthis.registerTableFunction(\"removeFilter\", this.userRemoveFilter.bind(this));\r\n\t\tthis.registerTableFunction(\"clearFilter\", this.userClearFilter.bind(this));\r\n\t\tthis.registerTableFunction(\"clearHeaderFilter\", this.userClearHeaderFilter.bind(this));\r\n\r\n\t\tthis.registerComponentFunction(\"column\", \"headerFilterFocus\", this.setHeaderFilterFocus.bind(this));\r\n\t\tthis.registerComponentFunction(\"column\", \"reloadHeaderFilter\", this.reloadHeaderFilter.bind(this));\r\n\t\tthis.registerComponentFunction(\"column\", \"getHeaderFilterValue\", this.getHeaderFilterValue.bind(this));\r\n\t\tthis.registerComponentFunction(\"column\", \"setHeaderFilterValue\", this.setHeaderFilterValue.bind(this));\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumnHeaderFilter.bind(this));\r\n\t\tthis.subscribe(\"column-width-fit-before\", this.hideHeaderFilterElements.bind(this));\r\n\t\tthis.subscribe(\"column-width-fit-after\", this.showHeaderFilterElements.bind(this));\r\n\t\tthis.subscribe(\"table-built\", this.tableBuilt.bind(this));\r\n\r\n\t\tif(this.table.options.filterMode === \"remote\"){\r\n\t\t\tthis.subscribe(\"data-params\", this.remoteFilterParams.bind(this));\r\n\t\t}\r\n\r\n\t\tthis.registerDataHandler(this.filter.bind(this), 10);\r\n\t}\r\n\r\n\ttableBuilt(){\r\n\t\tif(this.table.options.initialFilter){\r\n\t\t\tthis.setFilter(this.table.options.initialFilter);\r\n\t\t}\r\n\r\n\t\tif(this.table.options.initialHeaderFilter){\r\n\t\t\tthis.table.options.initialHeaderFilter.forEach((item) => {\r\n\r\n\t\t\t\tvar column = this.table.columnManager.findColumn(item.field);\r\n\r\n\t\t\t\tif(column){\r\n\t\t\t\t\tthis.setHeaderFilterValue(column, item.value);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Column Filter Error - No matching column found:\", item.field);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.tableInitialized = true;\r\n\t}\r\n\r\n\tremoteFilterParams(data, config, silent, params){\r\n\t\tparams.filter = this.getFilters(true, true);\r\n\t\treturn params;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\t//set standard filters\r\n\tuserSetFilter(field, type, value, params){\r\n\t\tthis.setFilter(field, type, value, params);\r\n\t\tthis.refreshFilter();\r\n\t}\r\n\r\n\t//set standard filters\r\n\tuserRefreshFilter(){\r\n\t\tthis.refreshFilter();\r\n\t}\r\n\r\n\t//add filter to array\r\n\tuserAddFilter(field, type, value, params){\r\n\t\tthis.addFilter(field, type, value, params);\r\n\t\tthis.refreshFilter();\r\n\t}\r\n\r\n\tuserSetHeaderFilterFocus(field){\r\n\t\tvar column = this.table.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\tthis.setHeaderFilterFocus(column);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Filter Focus Error - No matching column found:\", field);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tuserGetHeaderFilterValue(field) {\r\n\t\tvar column = this.table.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\treturn this.getHeaderFilterValue(column);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Filter Error - No matching column found:\", field);\r\n\t\t}\r\n\t}\r\n\r\n\tuserSetHeaderFilterValue(field, value){\r\n\t\tvar column = this.table.columnManager.findColumn(field);\r\n\r\n\t\tif(column){\r\n\t\t\tthis.setHeaderFilterValue(column, value);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Filter Error - No matching column found:\", field);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t//remove filter from array\r\n\tuserRemoveFilter(field, type, value){\r\n\t\tthis.removeFilter(field, type, value);\r\n\t\tthis.refreshFilter();\r\n\t}\r\n\r\n\t//clear filters\r\n\tuserClearFilter(all){\r\n\t\tthis.clearFilter(all);\r\n\t\tthis.refreshFilter();\r\n\t}\r\n\r\n\t//clear header filters\r\n\tuserClearHeaderFilter(){\r\n\t\tthis.clearHeaderFilter();\r\n\t\tthis.refreshFilter();\r\n\t}\r\n\r\n\r\n\t//search for specific row components\r\n\tsearchRows(field, type, value){\r\n\t\treturn this.search(\"rows\", field, type, value);\r\n\t}\r\n\r\n\t//search for specific data\r\n\tsearchData(field, type, value){\r\n\t\treturn this.search(\"data\", field, type, value);\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\tinitializeColumnHeaderFilter(column){\r\n\t\tvar def = column.definition;\r\n\r\n\t\tif(def.headerFilter){\r\n\r\n\t\t\tif(typeof def.headerFilterPlaceholder !== \"undefined\" && def.field){\r\n\t\t\t\tthis.module(\"localize\").setHeaderFilterColumnPlaceholder(def.field, def.headerFilterPlaceholder);\r\n\t\t\t}\r\n\r\n\t\t\tthis.initializeColumn(column);\r\n\t\t}\r\n\t}\r\n\r\n\t//initialize column header filter\r\n\tinitializeColumn(column, value){\r\n\t\tvar self = this,\r\n\t\tfield = column.getField(),\r\n\t\tparams;\r\n\r\n\t\t//handle successfull value change\r\n\t\tfunction success(value){\r\n\t\t\tvar filterType = (column.modules.filter.tagType == \"input\" && column.modules.filter.attrType == \"text\") || column.modules.filter.tagType == \"textarea\" ? \"partial\" : \"match\",\r\n\t\t\ttype = \"\",\r\n\t\t\tfilterChangeCheck = \"\",\r\n\t\t\tfilterFunc;\r\n\r\n\t\t\tif(typeof column.modules.filter.prevSuccess === \"undefined\" || column.modules.filter.prevSuccess !== value){\r\n\r\n\t\t\t\tcolumn.modules.filter.prevSuccess = value;\r\n\r\n\t\t\t\tif(!column.modules.filter.emptyFunc(value)){\r\n\t\t\t\t\tcolumn.modules.filter.value = value;\r\n\r\n\t\t\t\t\tswitch(typeof column.definition.headerFilterFunc){\r\n\t\t\t\t\t\tcase \"string\":\r\n\t\t\t\t\t\tif(Filter.filters[column.definition.headerFilterFunc]){\r\n\t\t\t\t\t\t\ttype = column.definition.headerFilterFunc;\r\n\t\t\t\t\t\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\t\t\tvar params = column.definition.headerFilterFuncParams || {};\r\n\t\t\t\t\t\t\t\tvar fieldVal = column.getFieldValue(data);\r\n\r\n\t\t\t\t\t\t\t\tparams = typeof params === \"function\" ? params(value, fieldVal, data) : params;\r\n\r\n\t\t\t\t\t\t\t\treturn Filter.filters[column.definition.headerFilterFunc](value, fieldVal, data, params);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tconsole.warn(\"Header Filter Error - Matching filter function not found: \", column.definition.headerFilterFunc);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"function\":\r\n\t\t\t\t\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\t\tvar params = column.definition.headerFilterFuncParams || {};\r\n\t\t\t\t\t\t\tvar fieldVal = column.getFieldValue(data);\r\n\r\n\t\t\t\t\t\t\tparams = typeof params === \"function\" ? params(value, fieldVal, data) : params;\r\n\r\n\t\t\t\t\t\t\treturn column.definition.headerFilterFunc(value, fieldVal, data, params);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\ttype = filterFunc;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(!filterFunc){\r\n\t\t\t\t\t\tswitch(filterType){\r\n\t\t\t\t\t\t\tcase \"partial\":\r\n\t\t\t\t\t\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\t\t\tvar colVal = column.getFieldValue(data);\r\n\r\n\t\t\t\t\t\t\t\tif(typeof colVal !== 'undefined' && colVal !== null){\r\n\t\t\t\t\t\t\t\t\treturn String(colVal).toLowerCase().indexOf(String(value).toLowerCase()) > -1;\r\n\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\ttype = \"like\";\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\t\t\treturn column.getFieldValue(data) == value;\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\ttype = \"=\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.headerFilters[field] = {value:value, func:filterFunc, type:type, params:params || {}};\r\n\r\n\t\t\t\t}else{\r\n\t\t\t\t\tdelete self.headerFilters[field];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfilterChangeCheck = JSON.stringify(self.headerFilters);\r\n\r\n\t\t\t\tif(self.prevHeaderFilterChangeCheck !== filterChangeCheck){\r\n\t\t\t\t\tself.prevHeaderFilterChangeCheck = filterChangeCheck;\r\n\r\n\t\t\t\t\tself.trackChanges();\r\n\t\t\t\t\tself.refreshFilter();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tcolumn.modules.filter = {\r\n\t\t\tsuccess:success,\r\n\t\t\tattrType:false,\r\n\t\t\ttagType:false,\r\n\t\t\temptyFunc:false,\r\n\t\t};\r\n\r\n\t\tthis.generateHeaderFilterElement(column);\r\n\t}\r\n\r\n\tgenerateHeaderFilterElement(column, initialValue, reinitialize){\r\n\t\tvar self = this,\r\n\t\tsuccess = column.modules.filter.success,\r\n\t\tfield = column.getField(),\r\n\t\tfilterElement, editor, editorElement, cellWrapper, typingTimer, searchTrigger, params;\r\n\r\n\t\t//handle aborted edit\r\n\t\tfunction cancel(){}\r\n\r\n\t\tif(column.modules.filter.headerElement && column.modules.filter.headerElement.parentNode){\r\n\t\t\tcolumn.contentElement.removeChild(column.modules.filter.headerElement.parentNode);\r\n\t\t}\r\n\r\n\t\tif(field){\r\n\r\n\t\t\t//set empty value function\r\n\t\t\tcolumn.modules.filter.emptyFunc = column.definition.headerFilterEmptyCheck || function(value){\r\n\t\t\t\treturn !value && value !== \"0\" && value !== 0;\r\n\t\t\t};\r\n\r\n\t\t\tfilterElement = document.createElement(\"div\");\r\n\t\t\tfilterElement.classList.add(\"tabulator-header-filter\");\r\n\r\n\t\t\t//set column editor\r\n\t\t\tswitch(typeof column.definition.headerFilter){\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\tif(self.table.modules.edit.editors[column.definition.headerFilter]){\r\n\t\t\t\t\teditor = self.table.modules.edit.editors[column.definition.headerFilter];\r\n\r\n\t\t\t\t\tif((column.definition.headerFilter === \"tick\" || column.definition.headerFilter === \"tickCross\") && !column.definition.headerFilterEmptyCheck){\r\n\t\t\t\t\t\tcolumn.modules.filter.emptyFunc = function(value){\r\n\t\t\t\t\t\t\treturn value !== true && value !== false;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Filter Error - Cannot build header filter, No such editor found: \", column.definition.editor);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\teditor = column.definition.headerFilter;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"boolean\":\r\n\t\t\t\tif(column.modules.edit && column.modules.edit.editor){\r\n\t\t\t\t\teditor = column.modules.edit.editor;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]){\r\n\t\t\t\t\t\teditor = self.table.modules.edit.editors[column.definition.formatter];\r\n\r\n\t\t\t\t\t\tif((column.definition.formatter === \"tick\" || column.definition.formatter === \"tickCross\") && !column.definition.headerFilterEmptyCheck){\r\n\t\t\t\t\t\t\tcolumn.modules.filter.emptyFunc = function(value){\r\n\t\t\t\t\t\t\t\treturn value !== true && value !== false;\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\teditor = self.table.modules.edit.editors[\"input\"];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif(editor){\r\n\r\n\t\t\t\tcellWrapper = {\r\n\t\t\t\t\tgetValue:function(){\r\n\t\t\t\t\t\treturn typeof initialValue !== \"undefined\" ? initialValue : \"\";\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetField:function(){\r\n\t\t\t\t\t\treturn column.definition.field;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetElement:function(){\r\n\t\t\t\t\t\treturn filterElement;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetColumn:function(){\r\n\t\t\t\t\t\treturn column.getComponent();\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetRow:function(){\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tnormalizeHeight:function(){\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tparams = column.definition.headerFilterParams || {};\r\n\r\n\t\t\t\tparams = typeof params === \"function\" ? params.call(self.table) : params;\r\n\r\n\t\t\t\teditorElement = editor.call(this.table.modules.edit, cellWrapper, function(){}, success, cancel, params);\r\n\r\n\t\t\t\tif(!editorElement){\r\n\t\t\t\t\tconsole.warn(\"Filter Error - Cannot add filter to \" + field + \" column, editor returned a value of false\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(!(editorElement instanceof Node)){\r\n\t\t\t\t\tconsole.warn(\"Filter Error - Cannot add filter to \" + field + \" column, editor should return an instance of Node, the editor returned:\", editorElement);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//set Placeholder Text\r\n\t\t\t\tif(field){\r\n\t\t\t\t\tself.langBind(\"headerFilters|columns|\" + column.definition.field, function(value){\r\n\t\t\t\t\t\teditorElement.setAttribute(\"placeholder\", typeof value !== \"undefined\" && value ? value : self.langText(\"headerFilters|default\"));\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tself.langBind(\"headerFilters|default\", function(value){\r\n\t\t\t\t\t\teditorElement.setAttribute(\"placeholder\", value);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//focus on element on click\r\n\t\t\t\teditorElement.addEventListener(\"click\", function(e){\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\teditorElement.focus();\r\n\t\t\t\t});\r\n\r\n\t\t\t\teditorElement.addEventListener(\"focus\", (e) => {\r\n\t\t\t\t\tvar left = this.table.columnManager.element.scrollLeft;\r\n\r\n\t\t\t\t\tif(left !== this.table.rowManager.element.scrollLeft){\r\n\t\t\t\t\t\tthis.table.rowManager.scrollHorizontal(left);\r\n\t\t\t\t\t\tthis.table.columnManager.scrollHorizontal(left);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//live update filters as user types\r\n\t\t\t\ttypingTimer = false;\r\n\r\n\t\t\t\tsearchTrigger = function(e){\r\n\t\t\t\t\tif(typingTimer){\r\n\t\t\t\t\t\tclearTimeout(typingTimer);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttypingTimer = setTimeout(function(){\r\n\t\t\t\t\t\tsuccess(editorElement.value);\r\n\t\t\t\t\t},self.table.options.headerFilterLiveFilterDelay);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tcolumn.modules.filter.headerElement = editorElement;\r\n\t\t\t\tcolumn.modules.filter.attrType = editorElement.hasAttribute(\"type\") ? editorElement.getAttribute(\"type\").toLowerCase() : \"\" ;\r\n\t\t\t\tcolumn.modules.filter.tagType = editorElement.tagName.toLowerCase();\r\n\r\n\t\t\t\tif(column.definition.headerFilterLiveFilter !== false){\r\n\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!(\r\n\t\t\t\t\t\t\tcolumn.definition.headerFilter === 'autocomplete' ||\r\n\t\t\t\t\t\t\tcolumn.definition.headerFilter === 'tickCross' ||\r\n\t\t\t\t\t\t\t((column.definition.editor === 'autocomplete' ||\r\n\t\t\t\t\t\t\t\tcolumn.definition.editor === 'tickCross') &&\r\n\t\t\t\t\t\t\tcolumn.definition.headerFilter === true)\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\teditorElement.addEventListener(\"keyup\", searchTrigger);\r\n\t\t\t\t\teditorElement.addEventListener(\"search\", searchTrigger);\r\n\r\n\r\n\t\t\t\t\t//update number filtered columns on change\r\n\t\t\t\t\tif(column.modules.filter.attrType == \"number\"){\r\n\t\t\t\t\t\teditorElement.addEventListener(\"change\", function(e){\r\n\t\t\t\t\t\t\tsuccess(editorElement.value);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//change text inputs to search inputs to allow for clearing of field\r\n\t\t\t\t\tif(column.modules.filter.attrType == \"text\" && this.table.browser !== \"ie\"){\r\n\t\t\t\t\t\teditorElement.setAttribute(\"type\", \"search\");\r\n\t\t\t\t\t\t// editorElement.off(\"change blur\"); //prevent blur from triggering filter and preventing selection click\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\t//prevent input and select elements from propegating click to column sorters etc\r\n\t\t\t\t\tif(column.modules.filter.tagType == \"input\" || column.modules.filter.tagType == \"select\" || column.modules.filter.tagType == \"textarea\"){\r\n\t\t\t\t\t\teditorElement.addEventListener(\"mousedown\",function(e){\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfilterElement.appendChild(editorElement);\r\n\r\n\t\t\t\tcolumn.contentElement.appendChild(filterElement);\r\n\r\n\t\t\t\tif(!reinitialize){\r\n\t\t\t\t\tself.headerFilterColumns.push(column);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Filter Error - Cannot add header filter, column has no field set:\", column.definition.title);\r\n\t\t}\r\n\t}\r\n\r\n\t//hide all header filter elements (used to ensure correct column widths in \"fitData\" layout mode)\r\n\thideHeaderFilterElements(){\r\n\t\tthis.headerFilterColumns.forEach(function(column){\r\n\t\t\tif(column.modules.filter && column.modules.filter.headerElement){\r\n\t\t\t\tcolumn.modules.filter.headerElement.style.display = 'none';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//show all header filter elements (used to ensure correct column widths in \"fitData\" layout mode)\r\n\tshowHeaderFilterElements(){\r\n\t\tthis.headerFilterColumns.forEach(function(column){\r\n\t\t\tif(column.modules.filter && column.modules.filter.headerElement){\r\n\t\t\t\tcolumn.modules.filter.headerElement.style.display = '';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//programatically set focus of header filter\r\n\tsetHeaderFilterFocus(column){\r\n\t\tif(column.modules.filter && column.modules.filter.headerElement){\r\n\t\t\tcolumn.modules.filter.headerElement.focus();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Column Filter Focus Error - No header filter set on column:\", column.getField());\r\n\t\t}\r\n\t}\r\n\r\n\t//programmatically get value of header filter\r\n\tgetHeaderFilterValue(column){\r\n\t\tif(column.modules.filter && column.modules.filter.headerElement){\r\n\t\t\treturn column.modules.filter.headerElement.value;\r\n\t\t} else {\r\n\t\t\tconsole.warn(\"Column Filter Error - No header filter set on column:\", column.getField());\r\n\t\t}\r\n\t}\r\n\r\n\t//programatically set value of header filter\r\n\tsetHeaderFilterValue(column, value){\r\n\t\tif (column){\r\n\t\t\tif(column.modules.filter && column.modules.filter.headerElement){\r\n\t\t\t\tthis.generateHeaderFilterElement(column, value, true);\r\n\t\t\t\tcolumn.modules.filter.success(value);\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Column Filter Error - No header filter set on column:\", column.getField());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treloadHeaderFilter(column){\r\n\t\tif (column){\r\n\t\t\tif(column.modules.filter && column.modules.filter.headerElement){\r\n\t\t\t\tthis.generateHeaderFilterElement(column, column.modules.filter.value, true);\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Column Filter Error - No header filter set on column:\", column.getField());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trefreshFilter(){\r\n\t\tif(this.tableInitialized){\r\n\t\t\tif(this.table.options.filterMode === \"remote\"){\r\n\t\t\t\tthis.reloadData();\r\n\t\t\t}else{\r\n\t\t\t\tthis.refreshData();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//TODO - Persist left position of row manager\r\n\t\t// left = this.scrollLeft;\r\n\t\t// this.scrollHorizontal(left);\r\n\t}\r\n\r\n\t//check if the filters has changed since last use\r\n\ttrackChanges(){\r\n\t\tthis.changed = true;\r\n\t\tthis.dispatch(\"filter-changed\");\r\n\t}\r\n\r\n\t//check if the filters has changed since last use\r\n\thasChanged(){\r\n\t\tvar changed = this.changed;\r\n\t\tthis.changed = false;\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t//set standard filters\r\n\tsetFilter(field, type, value, params){\r\n\t\tthis.filterList = [];\r\n\r\n\t\tif(!Array.isArray(field)){\r\n\t\t\tfield = [{field:field, type:type, value:value, params:params}];\r\n\t\t}\r\n\r\n\t\tthis.addFilter(field);\r\n\t}\r\n\r\n\t//add filter to array\r\n\taddFilter(field, type, value, params){\r\n\t\tvar changed = false;\r\n\r\n\t\tif(!Array.isArray(field)){\r\n\t\t\tfield = [{field:field, type:type, value:value, params:params}];\r\n\t\t}\r\n\r\n\t\tfield.forEach((filter) => {\r\n\r\n\t\t\tfilter = this.findFilter(filter);\r\n\r\n\t\t\tif(filter){\r\n\t\t\t\tthis.filterList.push(filter);\r\n\t\t\t\tthis.changed = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(changed){\r\n\t\t\tthis.trackChanges();\r\n\t\t}\r\n\t}\r\n\r\n\tfindFilter(filter){\r\n\t\tvar column;\r\n\r\n\t\tif(Array.isArray(filter)){\r\n\t\t\treturn this.findSubFilters(filter);\r\n\t\t}\r\n\r\n\t\tvar filterFunc = false;\r\n\r\n\t\tif(typeof filter.field == \"function\"){\r\n\t\t\tfilterFunc = function(data){\r\n\t\t\t\treturn filter.field(data, filter.type || {})// pass params to custom filter function\r\n\t\t\t};\r\n\t\t}else{\r\n\r\n\t\t\tif(Filter.filters[filter.type]){\r\n\r\n\t\t\t\tcolumn = this.table.columnManager.getColumnByField(filter.field);\r\n\r\n\t\t\t\tif(column){\r\n\t\t\t\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\treturn Filter.filters[filter.type](filter.value, column.getFieldValue(data), data, filter.params || {});\r\n\t\t\t\t\t};\r\n\t\t\t\t}else{\r\n\t\t\t\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\treturn Filter.filters[filter.type](filter.value, data[filter.field], data, filter.params || {});\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Filter Error - No such filter type found, ignoring: \", filter.type);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfilter.func = filterFunc;\r\n\r\n\t\treturn filter.func ? filter : false;\r\n\t}\r\n\r\n\tfindSubFilters(filters){\r\n\t\tvar output = [];\r\n\r\n\t\tfilters.forEach((filter) => {\r\n\t\t\tfilter = this.findFilter(filter);\r\n\r\n\t\t\tif(filter){\r\n\t\t\t\toutput.push(filter);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output.length ? output : false;\r\n\t}\r\n\r\n\t//get all filters\r\n\tgetFilters(all, ajax){\r\n\t\tvar output = [];\r\n\r\n\t\tif(all){\r\n\t\t\toutput = this.getHeaderFilters();\r\n\t\t}\r\n\r\n\t\tif(ajax){\r\n\t\t\toutput.forEach(function(item){\r\n\t\t\t\tif(typeof item.type == \"function\"){\r\n\t\t\t\t\titem.type = \"function\";\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\toutput = output.concat(this.filtersToArray(this.filterList, ajax));\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\t//filter to Object\r\n\tfiltersToArray(filterList, ajax){\r\n\t\tvar output = [];\r\n\r\n\t\tfilterList.forEach((filter) => {\r\n\t\t\tvar item;\r\n\r\n\t\t\tif(Array.isArray(filter)){\r\n\t\t\t\toutput.push(this.filtersToArray(filter, ajax));\r\n\t\t\t}else{\r\n\t\t\t\titem = {field:filter.field, type:filter.type, value:filter.value}\r\n\r\n\t\t\t\tif(ajax){\r\n\t\t\t\t\tif(typeof item.type == \"function\"){\r\n\t\t\t\t\t\titem.type = \"function\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\toutput.push(item);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\t//get all filters\r\n\tgetHeaderFilters(){\r\n\t\tvar output = [];\r\n\r\n\t\tfor(var key in this.headerFilters){\r\n\t\t\toutput.push({field:key, type:this.headerFilters[key].type, value:this.headerFilters[key].value});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\t//remove filter from array\r\n\tremoveFilter(field, type, value){\r\n\t\tvar changed = false;\r\n\r\n\t\tif(!Array.isArray(field)){\r\n\t\t\tfield = [{field:field, type:type, value:value}];\r\n\t\t}\r\n\r\n\t\tfield.forEach((filter) => {\r\n\t\t\tvar index = -1;\r\n\r\n\t\t\tif(typeof filter.field == \"object\"){\r\n\t\t\t\tindex = this.filterList.findIndex((element) => {\r\n\t\t\t\t\treturn filter === element;\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tindex = this.filterList.findIndex((element) => {\r\n\t\t\t\t\treturn filter.field === element.field && filter.type === element.type && filter.value === element.value;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif(index > -1){\r\n\t\t\t\tthis.filterList.splice(index, 1);\r\n\t\t\t\tchanged = true;\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Filter Error - No matching filter type found, ignoring: \", filter.type);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.trackChanges();\r\n\t}\r\n\r\n\t//clear filters\r\n\tclearFilter(all){\r\n\t\tthis.filterList = [];\r\n\r\n\t\tif(all){\r\n\t\t\tthis.clearHeaderFilter();\r\n\t\t}\r\n\r\n\t\tthis.trackChanges();\r\n\t}\r\n\r\n\t//clear header filters\r\n\tclearHeaderFilter(){\r\n\t\tthis.headerFilters = {};\r\n\t\tthis.prevHeaderFilterChangeCheck = \"{}\";\r\n\r\n\t\tthis.headerFilterColumns.forEach((column) => {\r\n\t\t\tif(typeof column.modules.filter.value !== \"undefined\"){\r\n\t\t\t\tdelete column.modules.filter.value;\r\n\t\t\t}\r\n\t\t\tcolumn.modules.filter.prevSuccess = undefined;\r\n\t\t\tthis.reloadHeaderFilter(column);\r\n\t\t});\r\n\r\n\t\tthis.trackChanges();\r\n\t}\r\n\r\n\t//search data and return matching rows\r\n\tsearch (searchType, field, type, value){\r\n\t\tvar activeRows = [],\r\n\t\tfilterList = [];\r\n\r\n\t\tif(!Array.isArray(field)){\r\n\t\t\tfield = [{field:field, type:type, value:value}];\r\n\t\t}\r\n\r\n\t\tfield.forEach((filter) => {\r\n\t\t\tfilter = this.findFilter(filter);\r\n\r\n\t\t\tif(filter){\r\n\t\t\t\tfilterList.push(filter);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.table.rowManager.rows.forEach((row) => {\r\n\t\t\tvar match = true;\r\n\r\n\t\t\tfilterList.forEach((filter) => {\r\n\t\t\t\tif(!this.filterRecurse(filter, row.getData())){\r\n\t\t\t\t\tmatch = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(match){\r\n\t\t\t\tactiveRows.push(searchType === \"data\" ? row.getData(\"data\") : row.getComponent());\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\treturn activeRows;\r\n\t}\r\n\r\n\t//filter row array\r\n\tfilter(rowList, filters){\r\n\t\tvar activeRows = [],\r\n\t\tactiveRowComponents = [];\r\n\r\n\t\tif(this.subscribedExternal(\"dataFiltering\")){\r\n\t\t\tthis.dispatchExternal(\"dataFiltering\", this.getFilters());\r\n\t\t}\r\n\r\n\t\tif(this.table.options.filterMode !== \"remote\" && (this.filterList.length || Object.keys(this.headerFilters).length)){\r\n\r\n\t\t\trowList.forEach((row) => {\r\n\t\t\t\tif(this.filterRow(row)){\r\n\t\t\t\t\tactiveRows.push(row);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}else{\r\n\t\t\tactiveRows = rowList.slice(0);\r\n\t\t}\r\n\r\n\t\tif(this.subscribedExternal(\"dataFiltered\")){\r\n\r\n\t\t\tactiveRows.forEach((row) => {\r\n\t\t\t\tactiveRowComponents.push(row.getComponent());\r\n\t\t\t});\r\n\r\n\t\t\tthis.dispatchExternal(\"dataFiltered\", this.getFilters(), activeRowComponents);\r\n\t\t}\r\n\r\n\t\treturn activeRows;\r\n\t}\r\n\r\n\t//filter individual row\r\n\tfilterRow(row, filters){\r\n\t\tvar match = true,\r\n\t\tdata = row.getData();\r\n\r\n\t\tthis.filterList.forEach((filter) => {\r\n\t\t\tif(!this.filterRecurse(filter, data)){\r\n\t\t\t\tmatch = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\tfor(var field in this.headerFilters){\r\n\t\t\tif(!this.headerFilters[field].func(data)){\r\n\t\t\t\tmatch = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn match;\r\n\t}\r\n\r\n\tfilterRecurse(filter, data){\r\n\t\tvar match = false;\r\n\r\n\t\tif(Array.isArray(filter)){\r\n\t\t\tfilter.forEach((subFilter) => {\r\n\t\t\t\tif(this.filterRecurse(subFilter, data)){\r\n\t\t\t\t\tmatch = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tmatch = filter.func(data);\r\n\t\t}\r\n\r\n\t\treturn match;\r\n\t}\r\n}\r\n\r\nFilter.moduleName = \"filter\";\r\n\r\n//load defaults\r\nFilter.filters = defaultFilters;\r\n\r\nexport default Filter;","export default function(cell, formatterParams, onRendered){\r\n\treturn this.emptyToSpace(this.sanitizeHTML(cell.getValue()));\r\n};","export default function(cell, formatterParams, onRendered){\r\n\treturn cell.getValue();\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tcell.getElement().style.whiteSpace = \"pre-wrap\";\r\n\treturn this.emptyToSpace(this.sanitizeHTML(cell.getValue()));\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar floatVal = parseFloat(cell.getValue()),\r\n\tsign = \"\",\r\n\tnumber, integer, decimal, rgx;\r\n\r\n\tvar decimalSym = formatterParams.decimal || \".\";\r\n\tvar thousandSym = formatterParams.thousand || \",\";\r\n\tvar negativeSign = formatterParams.negativeSign || \"-\";\r\n\tvar symbol = formatterParams.symbol || \"\";\r\n\tvar after = !!formatterParams.symbolAfter;\r\n\tvar precision = typeof formatterParams.precision !== \"undefined\" ? formatterParams.precision : 2;\r\n\r\n\tif(isNaN(floatVal)){\r\n\t\treturn this.emptyToSpace(this.sanitizeHTML(cell.getValue()));\r\n\t}\r\n\r\n\tif(floatVal < 0){\r\n\t\tfloatVal = Math.abs(floatVal);\r\n\t\tsign = negativeSign;\r\n\t}\r\n\r\n\tnumber = precision !== false ? floatVal.toFixed(precision) : floatVal;\r\n\tnumber = String(number).split(\".\");\r\n\r\n\tinteger = number[0];\r\n\tdecimal = number.length > 1 ? decimalSym + number[1] : \"\";\r\n\r\n\trgx = /(\\d+)(\\d{3})/;\r\n\r\n\twhile (rgx.test(integer)){\r\n\t\tinteger = integer.replace(rgx, \"$1\" + thousandSym + \"$2\");\r\n\t}\r\n\r\n\treturn after ? sign + integer + decimal + symbol : sign + symbol + integer + decimal;\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar value = cell.getValue(),\r\n\turlPrefix = formatterParams.urlPrefix || \"\",\r\n\tdownload = formatterParams.download,\r\n\tlabel = value,\r\n\tel = document.createElement(\"a\"),\r\n\tdata;\r\n\r\n\tif(formatterParams.labelField){\r\n\t\tdata = cell.getData();\r\n\t\tlabel = data[formatterParams.labelField];\r\n\t}\r\n\r\n\tif(formatterParams.label){\r\n\t\tswitch(typeof formatterParams.label){\r\n\t\t\tcase \"string\":\r\n\t\t\tlabel = formatterParams.label;\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tlabel = formatterParams.label(cell);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif(label){\r\n\t\tif(formatterParams.urlField){\r\n\t\t\tdata = cell.getData();\r\n\t\t\tvalue = data[formatterParams.urlField];\r\n\t\t}\r\n\r\n\t\tif(formatterParams.url){\r\n\t\t\tswitch(typeof formatterParams.url){\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\tvalue = formatterParams.url;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\tvalue = formatterParams.url(cell);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tel.setAttribute(\"href\", urlPrefix + value);\r\n\r\n\t\tif(formatterParams.target){\r\n\t\t\tel.setAttribute(\"target\", formatterParams.target);\r\n\t\t}\r\n\r\n\t\tif(formatterParams.download){\r\n\r\n\t\t\tif(typeof download == \"function\"){\r\n\t\t\t\tdownload = download(cell);\r\n\t\t\t}else{\r\n\t\t\t\tdownload = download === true ? \"\" : download;\r\n\t\t\t}\r\n\r\n\t\t\tel.setAttribute(\"download\", download);\r\n\t\t}\r\n\r\n\t\tel.innerHTML = this.emptyToSpace(this.sanitizeHTML(label));\r\n\r\n\t\treturn el;\r\n\t}else{\r\n\t\treturn \" \";\r\n\t}\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar el = document.createElement(\"img\"),\r\n\tsrc = cell.getValue();\r\n\r\n\tif(formatterParams.urlPrefix){\r\n\t\tsrc = formatterParams.urlPrefix + cell.getValue();\r\n\t}\r\n\r\n\tif(formatterParams.urlSuffix){\r\n\t\tsrc = src + formatterParams.urlSuffix;\r\n\t}\r\n\r\n\tel.setAttribute(\"src\", src);\r\n\r\n\tswitch(typeof formatterParams.height){\r\n\t\tcase \"number\":\r\n\t\tel.style.height = formatterParams.height + \"px\";\r\n\t\tbreak;\r\n\r\n\t\tcase \"string\":\r\n\t\tel.style.height = formatterParams.height;\r\n\t\tbreak;\r\n\t}\r\n\r\n\tswitch(typeof formatterParams.width){\r\n\t\tcase \"number\":\r\n\t\tel.style.width = formatterParams.width + \"px\";\r\n\t\tbreak;\r\n\r\n\t\tcase \"string\":\r\n\t\tel.style.width = formatterParams.width;\r\n\t\tbreak;\r\n\t}\r\n\r\n\tel.addEventListener(\"load\", function(){\r\n\t\tcell.getRow().normalizeHeight();\r\n\t});\r\n\r\n\treturn el;\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar value = cell.getValue(),\r\n\telement = cell.getElement(),\r\n\tempty = formatterParams.allowEmpty,\r\n\ttruthy = formatterParams.allowTruthy,\r\n\ttick = typeof formatterParams.tickElement !== \"undefined\" ? formatterParams.tickElement : '<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>',\r\n\tcross = typeof formatterParams.crossElement !== \"undefined\" ? formatterParams.crossElement : '<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>';\r\n\r\n\tif((truthy && value) || (value === true || value === \"true\" || value === \"True\" || value === 1 || value === \"1\")){\r\n\t\telement.setAttribute(\"aria-checked\", true);\r\n\t\treturn tick || \"\";\r\n\t}else{\r\n\t\tif(empty && (value === \"null\" || value === \"\" || value === null || typeof value === \"undefined\")){\r\n\t\t\telement.setAttribute(\"aria-checked\", \"mixed\");\r\n\t\t\treturn \"\";\r\n\t\t}else{\r\n\t\t\telement.setAttribute(\"aria-checked\", false);\r\n\t\t\treturn cross || \"\";\r\n\t\t}\r\n\t}\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar DT = window.DateTime || luxon.DateTime;\r\n\tvar inputFormat = formatterParams.inputFormat || \"yyyy-MM-dd HH:mm:ss\";\r\n\tvar\toutputFormat = formatterParams.outputFormat || \"dd/MM/yyyy HH:mm:ss\";\r\n\tvar\tinvalid = typeof formatterParams.invalidPlaceholder !== \"undefined\" ? formatterParams.invalidPlaceholder : \"\";\r\n\tvar value = cell.getValue();\r\n\r\n\tif(typeof DT != \"undefined\"){\r\n\t\tvar newDatetime = (window.DateTime || luxon.DateTime).fromFormat(value, inputFormat);\r\n\r\n\t\tif(newDatetime.isValid){\r\n\r\n\t\t\tif(formatterParams.timezone){\r\n\t\t\t\tnewDatetime = newDatetime.shiftTimezone(formatterParams.timezone);\r\n\t\t\t}\r\n\r\n\t\t\treturn newDatetime.toFormat(outputFormat);\r\n\t\t}else{\r\n\r\n\t\t\tif(invalid === true){\r\n\t\t\t\treturn value;\r\n\t\t\t}else if(typeof invalid === \"function\"){\r\n\t\t\t\treturn invalid(value);\r\n\t\t\t}else{\r\n\t\t\t\treturn invalid;\r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\tconsole.error(\"Format Error - 'datetime' formatter is dependant on luxon.js\");\r\n\t}\r\n};","export default function (cell, formatterParams, onRendered) {\r\n\tvar DT = window.DateTime || luxon.DateTime;\r\n\tvar inputFormat = formatterParams.inputFormat || \"yyyy-MM-dd HH:mm:ss\";\r\n\tvar invalid = typeof formatterParams.invalidPlaceholder !== \"undefined\" ? formatterParams.invalidPlaceholder : \"\";\r\n\tvar suffix = typeof formatterParams.suffix !== \"undefined\" ? formatterParams.suffix : false;\r\n\tvar unit = typeof formatterParams.unit !== \"undefined\" ? formatterParams.unit : \"days\";\r\n\tvar humanize = typeof formatterParams.humanize !== \"undefined\" ? formatterParams.humanize : false;\r\n\tvar date = typeof formatterParams.date !== \"undefined\" ? formatterParams.date : DT.now();\r\n\tvar value = cell.getValue();\r\n\r\n\tif(typeof DT != \"undefined\"){\r\n\t\tvar newDatetime = DT.fromFormat(value, inputFormat);\r\n\r\n\t\tif (newDatetime.isValid){\r\n\t\t\tif(humanize){\r\n\t\t\t\t// return moment.duration(newDatetime.diff(date)).humanize(suffix);\r\n\t\t\t}else{\r\n\t\t\t\treturn parseInt(newDatetime.diff(date, unit)[unit]) + (suffix ? \" \" + suffix : \"\");\r\n\t\t\t}\r\n\t\t} else {\r\n\r\n\t\t\tif (invalid === true) {\r\n\t\t\t\treturn value;\r\n\t\t\t} else if (typeof invalid === \"function\") {\r\n\t\t\t\treturn invalid(value);\r\n\t\t\t} else {\r\n\t\t\t\treturn invalid;\r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\tconsole.error(\"Format Error - 'datetimediff' formatter is dependant on luxon.js\");\r\n\t}\r\n};","export default function (cell, formatterParams, onRendered) {\r\n\tvar value = cell.getValue();\r\n\r\n\tif (typeof formatterParams[value] === \"undefined\") {\r\n\t\tconsole.warn('Missing display value for ' + value);\r\n\t\treturn value;\r\n\t}\r\n\r\n\treturn formatterParams[value];\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar value = cell.getValue(),\r\n\telement = cell.getElement(),\r\n\tmaxStars = formatterParams && formatterParams.stars ? formatterParams.stars : 5,\r\n\tstars = document.createElement(\"span\"),\r\n\tstar = document.createElementNS('http://www.w3.org/2000/svg', \"svg\"),\r\n\tstarActive = '<polygon fill=\"#FFEA00\" stroke=\"#C1AB60\" stroke-width=\"37.6152\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" points=\"259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 \"/>',\r\n\tstarInactive = '<polygon fill=\"#D2D2D2\" stroke=\"#686868\" stroke-width=\"37.6152\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" points=\"259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 \"/>';\r\n\r\n\t//style stars holder\r\n\tstars.style.verticalAlign = \"middle\";\r\n\r\n\t//style star\r\n\tstar.setAttribute(\"width\", \"14\");\r\n\tstar.setAttribute(\"height\", \"14\");\r\n\tstar.setAttribute(\"viewBox\", \"0 0 512 512\");\r\n\tstar.setAttribute(\"xml:space\", \"preserve\");\r\n\tstar.style.padding = \"0 1px\";\r\n\r\n\tvalue = value && !isNaN(value) ? parseInt(value) : 0;\r\n\r\n\tvalue = Math.max(0, Math.min(value, maxStars));\r\n\r\n\tfor(var i=1;i<= maxStars;i++){\r\n\t\tvar nextStar = star.cloneNode(true);\r\n\t\tnextStar.innerHTML = i <= value ? starActive : starInactive;\r\n\r\n\t\tstars.appendChild(nextStar);\r\n\t}\r\n\r\n\telement.style.whiteSpace = \"nowrap\";\r\n\telement.style.overflow = \"hidden\";\r\n\telement.style.textOverflow = \"ellipsis\";\r\n\r\n\telement.setAttribute(\"aria-label\", value);\r\n\r\n\treturn stars;\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar value = this.sanitizeHTML(cell.getValue()) || 0,\r\n\tel = document.createElement(\"span\"),\r\n\tmax = formatterParams && formatterParams.max ? formatterParams.max : 100,\r\n\tmin = formatterParams && formatterParams.min ? formatterParams.min : 0,\r\n\tcolors = formatterParams && typeof formatterParams.color !== \"undefined\" ? formatterParams.color : [\"red\", \"orange\", \"green\"],\r\n\tcolor = \"#666666\",\r\n\tpercent, percentValue;\r\n\r\n\tif(isNaN(value) || typeof cell.getValue() === \"undefined\"){\r\n\t\treturn;\r\n\t}\r\n\r\n\tel.classList.add(\"tabulator-traffic-light\");\r\n\r\n\t//make sure value is in range\r\n\tpercentValue = parseFloat(value) <= max ? parseFloat(value) : max;\r\n\tpercentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;\r\n\r\n\t//workout percentage\r\n\tpercent = (max - min) / 100;\r\n\tpercentValue = Math.round((percentValue - min) / percent);\r\n\r\n\t//set color\r\n\tswitch(typeof colors){\r\n\t\tcase \"string\":\r\n\t\tcolor = colors;\r\n\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\tcolor = colors(value);\r\n\t\tbreak;\r\n\t\tcase \"object\":\r\n\t\tif(Array.isArray(colors)){\r\n\t\t\tvar unit = 100 / colors.length;\r\n\t\t\tvar index = Math.floor(percentValue / unit);\r\n\r\n\t\t\tindex = Math.min(index, colors.length - 1);\r\n\t\t\tindex = Math.max(index, 0);\r\n\t\t\tcolor = colors[index];\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tel.style.backgroundColor = color;\r\n\r\n\treturn el;\r\n};","import CellComponent from '../../../../core/cell/CellComponent.js';\r\n\r\nexport default function(cell, formatterParams, onRendered){ //progress bar\r\n\tvar value = this.sanitizeHTML(cell.getValue()) || 0,\r\n\telement = cell.getElement(),\r\n\tmax = formatterParams && formatterParams.max ? formatterParams.max : 100,\r\n\tmin = formatterParams && formatterParams.min ? formatterParams.min : 0,\r\n\tlegendAlign = formatterParams && formatterParams.legendAlign ? formatterParams.legendAlign : \"center\",\r\n\tpercent, percentValue, color, legend, legendColor, top, left, right, bottom;\r\n\r\n\t//make sure value is in range\r\n\tpercentValue = parseFloat(value) <= max ? parseFloat(value) : max;\r\n\tpercentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;\r\n\r\n\t//workout percentage\r\n\tpercent = (max - min) / 100;\r\n\tpercentValue = Math.round((percentValue - min) / percent);\r\n\r\n\t//set bar color\r\n\tswitch(typeof formatterParams.color){\r\n\t\tcase \"string\":\r\n\t\tcolor = formatterParams.color;\r\n\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\tcolor = formatterParams.color(value);\r\n\t\tbreak;\r\n\t\tcase \"object\":\r\n\t\tif(Array.isArray(formatterParams.color)){\r\n\t\t\tvar unit = 100 / formatterParams.color.length;\r\n\t\t\tvar index = Math.floor(percentValue / unit);\r\n\r\n\t\t\tindex = Math.min(index, formatterParams.color.length - 1);\r\n\t\t\tindex = Math.max(index, 0);\r\n\t\t\tcolor = formatterParams.color[index];\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tdefault:\r\n\t\tcolor = \"#2DC214\";\r\n\t}\r\n\r\n\t//generate legend\r\n\tswitch(typeof formatterParams.legend){\r\n\t\tcase \"string\":\r\n\t\tlegend = formatterParams.legend;\r\n\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\tlegend = formatterParams.legend(value);\r\n\t\tbreak;\r\n\t\tcase \"boolean\":\r\n\t\tlegend = value;\r\n\t\tbreak;\r\n\t\tdefault:\r\n\t\tlegend = false;\r\n\t}\r\n\r\n\t//set legend color\r\n\tswitch(typeof formatterParams.legendColor){\r\n\t\tcase \"string\":\r\n\t\tlegendColor = formatterParams.legendColor;\r\n\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\tlegendColor = formatterParams.legendColor(value);\r\n\t\tbreak;\r\n\t\tcase \"object\":\r\n\t\tif(Array.isArray(formatterParams.legendColor)){\r\n\t\t\tvar unit = 100 / formatterParams.legendColor.length;\r\n\t\t\tvar index = Math.floor(percentValue / unit);\r\n\r\n\t\t\tindex = Math.min(index, formatterParams.legendColor.length - 1);\r\n\t\t\tindex = Math.max(index, 0);\r\n\t\t\tlegendColor = formatterParams.legendColor[index];\r\n\t\t}\r\n\t\tbreak;\r\n\t\tdefault:\r\n\t\tlegendColor = \"#000\";\r\n\t}\r\n\r\n\telement.style.minWidth = \"30px\";\r\n\telement.style.position = \"relative\";\r\n\r\n\telement.setAttribute(\"aria-label\", percentValue);\r\n\r\n\tvar barEl = document.createElement(\"div\");\r\n\tbarEl.style.display = \"inline-block\";\r\n\tbarEl.style.position = \"absolute\";\r\n\tbarEl.style.width = percentValue + \"%\";\r\n\tbarEl.style.backgroundColor = color;\r\n\tbarEl.style.height = \"100%\";\r\n\r\n\tbarEl.setAttribute('data-max', max);\r\n\tbarEl.setAttribute('data-min', min);\r\n\r\n\tvar barContainer = document.createElement(\"div\");\r\n\tbarContainer.style.position = \"relative\";\r\n\tbarContainer.style.width = \"100%\";\r\n\tbarContainer.style.height = \"100%\";\r\n\r\n\tif(legend){\r\n\t\tvar legendEl = document.createElement(\"div\");\r\n\t\tlegendEl.style.position = \"absolute\";\r\n\t\tlegendEl.style.top = 0;\r\n\t\tlegendEl.style.left = 0;\r\n\t\tlegendEl.style.textAlign = legendAlign;\r\n\t\tlegendEl.style.width = \"100%\";\r\n\t\tlegendEl.style.color = legendColor;\r\n\t\tlegendEl.innerHTML = legend;\r\n\t}\r\n\r\n\tonRendered(function(){\r\n\r\n\t\t//handle custom element needed if formatter is to be included in printed/downloaded output\r\n\t\tif(!(cell instanceof CellComponent)){\r\n\t\t\tvar holderEl = document.createElement(\"div\");\r\n\t\t\tholderEl.style.position = \"absolute\";\r\n\t\t\tholderEl.style.top = \"4px\";\r\n\t\t\tholderEl.style.bottom = \"4px\";\r\n\t\t\tholderEl.style.left = \"4px\";\r\n\t\t\tholderEl.style.right = \"4px\";\r\n\r\n\t\t\telement.appendChild(holderEl);\r\n\r\n\t\t\telement = holderEl;\r\n\t\t}\r\n\r\n\t\telement.appendChild(barContainer);\r\n\t\tbarContainer.appendChild(barEl);\r\n\r\n\t\tif(legend){\r\n\t\t\tbarContainer.appendChild(legendEl);\r\n\t\t}\r\n\t});\r\n\r\n\treturn \"\";\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tcell.getElement().style.backgroundColor = this.sanitizeHTML(cell.getValue());\r\n\treturn \"\";\r\n};","export default function(cell, formatterParams, onRendered){\r\n\treturn '<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>';\r\n};","export default function(cell, formatterParams, onRendered){\r\n\treturn '<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>';\r\n};","export default function(cell, formatterParams, onRendered){\r\n\treturn this.table.rowManager.activeRows.indexOf(cell.getRow()._getSelf()) + 1;\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tcell.getElement().classList.add(\"tabulator-row-handle\");\r\n\treturn \"<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>\";\r\n};","export default function(cell, formatterParams, onRendered){\r\n\tvar open = false,\r\n\tel = document.createElement(\"div\"),\r\n\tconfig = cell.getRow()._row.modules.responsiveLayout;\r\n\r\n\tel.classList.add(\"tabulator-responsive-collapse-toggle\");\r\n\tel.innerHTML = \"<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>\";\r\n\r\n\tcell.getElement().classList.add(\"tabulator-row-handle\");\r\n\r\n\tfunction toggleList(isOpen){\r\n\t\tvar collapseEl = config.element;\r\n\r\n\t\tconfig.open = isOpen;\r\n\r\n\t\tif(collapseEl){\r\n\r\n\t\t\tif(config.open){\r\n\t\t\t\tel.classList.add(\"open\");\r\n\t\t\t\tcollapseEl.style.display = '';\r\n\t\t\t}else{\r\n\t\t\t\tel.classList.remove(\"open\");\r\n\t\t\t\tcollapseEl.style.display = 'none';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tel.addEventListener(\"click\", function(e){\r\n\t\te.stopImmediatePropagation();\r\n\t\ttoggleList(!config.open);\r\n\t});\r\n\r\n\ttoggleList(config.open);\r\n\r\n\treturn el;\r\n};","import RowComponent from '../../../../core/row/RowComponent.js';\r\n\r\nexport default function(cell, formatterParams, onRendered){\r\n\tvar checkbox = document.createElement(\"input\");\r\n\r\n\tcheckbox.type = 'checkbox';\r\n\r\n\tif(this.table.modExists(\"selectRow\", true)){\r\n\r\n\t\tcheckbox.addEventListener(\"click\", (e) => {\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t\tif(typeof cell.getRow == 'function'){\r\n\t\t\tvar row = cell.getRow();\r\n\r\n\t\t\tif(row instanceof RowComponent){\r\n\r\n\t\t\t\tcheckbox.addEventListener(\"change\", (e) => {\r\n\t\t\t\t\trow.toggleSelect();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tcheckbox.checked = row.isSelected && row.isSelected();\r\n\t\t\t\tthis.table.modules.selectRow.registerRowSelectCheckbox(row, checkbox);\r\n\t\t\t}else{\r\n\t\t\t\tcheckbox = \"\";\r\n\t\t\t}\r\n\t\t}else {\r\n\t\t\tcheckbox.addEventListener(\"change\", (e) => {\r\n\t\t\t\tif(this.table.modules.selectRow.selectedRows.length){\r\n\t\t\t\t\tthis.table.deselectRow();\r\n\t\t\t\t}else {\r\n\t\t\t\t\tthis.table.selectRow(formatterParams.rowRange);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.table.modules.selectRow.registerHeaderSelectCheckbox(checkbox);\r\n\t\t}\r\n\t}\r\n\r\n\treturn checkbox;\r\n};","import plaintext from './formatters/plaintext.js';\r\nimport html from './formatters/html.js';\r\nimport textarea from './formatters/textarea.js';\r\nimport money from './formatters/money.js';\r\nimport link from './formatters/link.js';\r\nimport image from './formatters/image.js';\r\nimport tickCross from './formatters/tickCross.js';\r\nimport datetime from './formatters/datetime.js';\r\nimport datetimediff from './formatters/datetimediff.js';\r\nimport lookup from './formatters/lookup.js';\r\nimport star from './formatters/star.js';\r\nimport traffic from './formatters/traffic.js';\r\nimport progress from './formatters/progress.js';\r\nimport color from './formatters/color.js';\r\nimport buttonTick from './formatters/buttonTick.js';\r\nimport buttonCross from './formatters/buttonCross.js';\r\nimport rownum from './formatters/rownum.js';\r\nimport handle from './formatters/handle.js';\r\nimport responsiveCollapse from './formatters/responsiveCollapse.js';\r\nimport rowSelection from './formatters/rowSelection.js';\r\n\r\nexport default {\r\n\tplaintext:plaintext,\r\n\thtml:html,\r\n\ttextarea:textarea,\r\n\tmoney:money,\r\n\tlink:link,\r\n\timage:image,\r\n\ttickCross:tickCross,\r\n\tdatetime:datetime,\r\n\tdatetimediff:datetimediff,\r\n\tlookup:lookup,\r\n\tstar:star,\r\n\ttraffic:traffic,\r\n\tprogress:progress,\r\n\tcolor:color,\r\n\tbuttonTick:buttonTick,\r\n\tbuttonCross:buttonCross,\r\n\trownum:rownum,\r\n\thandle:handle,\r\n\tresponsiveCollapse:responsiveCollapse,\r\n\trowSelection:rowSelection,\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultFormatters from './defaults/formatters.js';\r\n\r\nclass Format extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.registerColumnOption(\"formatter\");\r\n\t\tthis.registerColumnOption(\"formatterParams\");\r\n\r\n\t\tthis.registerColumnOption(\"formatterPrint\");\r\n\t\tthis.registerColumnOption(\"formatterPrintParams\");\r\n\t\tthis.registerColumnOption(\"formatterClipboard\");\r\n\t\tthis.registerColumnOption(\"formatterClipboardParams\");\r\n\t\tthis.registerColumnOption(\"formatterHtmlOutput\");\r\n\t\tthis.registerColumnOption(\"formatterHtmlOutputParams\");\r\n\t\tthis.registerColumnOption(\"titleFormatter\");\r\n\t\tthis.registerColumnOption(\"titleFormatterParams\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"cell-format\", this.formatValue.bind(this));\r\n\t\tthis.subscribe(\"cell-rendered\", this.cellRendered.bind(this));\r\n\t\tthis.subscribe(\"column-layout\", this.initializeColumn.bind(this));\r\n\t\tthis.subscribe(\"column-format\", this.formatHeader.bind(this));\r\n\t}\r\n\r\n\t//initialize column formatter\r\n\tinitializeColumn(column){\r\n\t\tcolumn.modules.format = this.lookupFormatter(column, \"\");\r\n\r\n\t\tif(typeof column.definition.formatterPrint !== \"undefined\"){\r\n\t\t\tcolumn.modules.format.print = this.lookupFormatter(column, \"Print\");\r\n\t\t}\r\n\r\n\t\tif(typeof column.definition.formatterClipboard !== \"undefined\"){\r\n\t\t\tcolumn.modules.format.clipboard = this.lookupFormatter(column, \"Clipboard\");\r\n\t\t}\r\n\r\n\t\tif(typeof column.definition.formatterHtmlOutput !== \"undefined\"){\r\n\t\t\tcolumn.modules.format.htmlOutput = this.lookupFormatter(column, \"HtmlOutput\");\r\n\t\t}\r\n\t}\r\n\r\n\tlookupFormatter(column, type){\r\n\t\tvar config = {params:column.definition[\"formatter\" + type + \"Params\"] || {}},\r\n\t\tformatter = column.definition[\"formatter\" + type];\r\n\r\n\t\t//set column formatter\r\n\t\tswitch(typeof formatter){\r\n\t\t\tcase \"string\":\r\n\t\t\tif(Format.formatters[formatter]){\r\n\t\t\t\tconfig.formatter = Format.formatters[formatter];\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Formatter Error - No such formatter found: \", formatter);\r\n\t\t\t\tconfig.formatter = Format.formatters.plaintext;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tconfig.formatter = formatter;\r\n\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\tconfig.formatter = Format.formatters.plaintext;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn config;\r\n\t}\r\n\r\n\tcellRendered(cell){\r\n\t\tif(cell.modules.format && cell.modules.format.renderedCallback && !cell.modules.format.rendered){\r\n\t\t\tcell.modules.format.renderedCallback();\r\n\t\t\tcell.modules.format.rendered = true;\r\n\t\t}\r\n\t}\r\n\r\n\t//return a formatted value for a column header\r\n\tformatHeader(column, title, el){\r\n\t\tvar formatter, params, onRendered, mockCell;\r\n\r\n\t\tif(column.definition.titleFormatter){\r\n\t\t\tformatter = this.getFormatter(column.definition.titleFormatter);\r\n\r\n\t\t\tonRendered = (callback) => {\r\n\t\t\t\tcolumn.titleFormatterRendered = callback;\r\n\t\t\t};\r\n\r\n\t\t\tmockCell = {\r\n\t\t\t\tgetValue:function(){\r\n\t\t\t\t\treturn title;\r\n\t\t\t\t},\r\n\t\t\t\tgetElement:function(){\r\n\t\t\t\t\treturn el;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tparams = column.definition.titleFormatterParams || {};\r\n\r\n\t\t\tparams = typeof params === \"function\" ? params() : params;\r\n\r\n\t\t\treturn formatter.call(this, mockCell, params, onRendered);\r\n\t\t}else{\r\n\t\t\treturn title;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//return a formatted value for a cell\r\n\tformatValue(cell){\r\n\t\tvar component = cell.getComponent(),\r\n\t\tparams = typeof cell.column.modules.format.params === \"function\" ? cell.column.modules.format.params(component) : cell.column.modules.format.params;\r\n\r\n\t\tfunction onRendered(callback){\r\n\t\t\tif(!cell.modules.format){\r\n\t\t\t\tcell.modules.format = {};\r\n\t\t\t}\r\n\r\n\t\t\tcell.modules.format.renderedCallback = callback;\r\n\t\t\tcell.modules.format.rendered = false;\r\n\t\t}\r\n\r\n\t\treturn cell.column.modules.format.formatter.call(this, component, params, onRendered);\r\n\t}\r\n\r\n\tformatExportValue(cell, type){\r\n\t\tvar formatter = cell.column.modules.format[type],\r\n\t\tparams;\r\n\r\n\t\tif(formatter){\r\n\t\t\tparams = typeof formatter.params === \"function\" ? formatter.params(component) : formatter.params;\r\n\r\n\t\t\tfunction onRendered(callback){\r\n\t\t\t\tif(!cell.modules.format){\r\n\t\t\t\t\tcell.modules.format = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcell.modules.format.renderedCallback = callback;\r\n\t\t\t\tcell.modules.format.rendered = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn formatter.formatter.call(this, cell.getComponent(), params, onRendered);\r\n\r\n\t\t}else{\r\n\t\t\treturn this.formatValue(cell);\r\n\t\t}\r\n\t}\r\n\r\n\tsanitizeHTML(value){\r\n\t\tif(value){\r\n\t\t\tvar entityMap = {\r\n\t\t\t\t'&': '&',\r\n\t\t\t\t'<': '<',\r\n\t\t\t\t'>': '>',\r\n\t\t\t\t'\"': '"',\r\n\t\t\t\t\"'\": ''',\r\n\t\t\t\t'/': '/',\r\n\t\t\t\t'`': '`',\r\n\t\t\t\t'=': '='\r\n\t\t\t};\r\n\r\n\t\t\treturn String(value).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n\t\t\t\treturn entityMap[s];\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\treturn value;\r\n\t\t}\r\n\t}\r\n\r\n\temptyToSpace(value){\r\n\t\treturn value === null || typeof value === \"undefined\" || value === \"\" ? \" \" : value;\r\n\t}\r\n\r\n\t//get formatter for cell\r\n\tgetFormatter(formatter){\r\n\t\tvar formatter;\r\n\r\n\t\tswitch(typeof formatter){\r\n\t\t\tcase \"string\":\r\n\t\t\tif(Format.formatters[formatter]){\r\n\t\t\t\tformatter = Format.formatters[formatter]\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Formatter Error - No such formatter found: \", formatter);\r\n\t\t\t\tformatter = Format.formatters.plaintext;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tformatter = formatter;\r\n\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\tformatter = Format.formatters.plaintext;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn formatter;\r\n\t}\r\n}\r\n\r\nFormat.moduleName = \"format\";\r\n\r\n//load defaults\r\nFormat.formatters = defaultFormatters;\r\n\r\nexport default Format;","import Module from '../../core/Module.js';\r\n\r\nclass FrozenColumns extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.leftColumns = [];\r\n\t\tthis.rightColumns = [];\r\n\t\tthis.leftMargin = 0;\r\n\t\tthis.rightMargin = 0;\r\n\t\tthis.rightPadding = 0;\r\n\t\tthis.initializationMode = \"left\";\r\n\t\tthis.active = false;\r\n\t\tthis.scrollEndTimer = false;\r\n\r\n\t\tthis.registerColumnOption(\"frozen\");\r\n\t}\r\n\r\n\t//reset initial state\r\n\treset(){\r\n\t\tthis.initializationMode = \"left\";\r\n\t\tthis.leftColumns = [];\r\n\t\tthis.rightColumns = [];\r\n\t\tthis.leftMargin = 0;\r\n\t\tthis.rightMargin = 0;\r\n\t\tthis.rightMargin = 0;\r\n\t\tthis.active = false;\r\n\r\n\t\tthis.table.columnManager.headersElement.style.marginLeft = 0;\r\n\t\tthis.table.columnManager.element.style.paddingRight = 0;\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"cell-layout\", this.layoutCell.bind(this));\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t\tthis.subscribe(\"column-width\", this.layout.bind(this));\r\n\t\tthis.subscribe(\"row-layout-before\", this.layoutRow.bind(this));\r\n\t\tthis.subscribe(\"table-layout\", this.layout.bind(this));\r\n\t\tthis.subscribe(\"scroll-horizontal\", this.scrollHorizontal.bind(this));\r\n\t\tthis.subscribe(\"columns-loading\", this.reset.bind(this));\r\n\t\tthis.subscribe(\"table-redraw\", this.layout.bind(this));\r\n\t}\r\n\r\n\tlayoutCell(cell){\r\n\t\tthis.layoutElement(cell.element, cell.column)\r\n\t}\r\n\r\n\t//initialize specific column\r\n\tinitializeColumn(column){\r\n\t\tvar config = {margin:0, edge:false};\r\n\r\n\t\tif(!column.isGroup){\r\n\r\n\t\t\tif(this.frozenCheck(column)){\r\n\r\n\t\t\t\tconfig.position = this.initializationMode;\r\n\r\n\t\t\t\tif(this.initializationMode == \"left\"){\r\n\t\t\t\t\tthis.leftColumns.push(column);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.rightColumns.unshift(column);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.active = true;\r\n\r\n\t\t\t\tcolumn.modules.frozen = config;\r\n\t\t\t}else{\r\n\t\t\t\tthis.initializationMode = \"right\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfrozenCheck(column){\r\n\t\tvar frozen = false;\r\n\r\n\t\tif(column.parent.isGroup && column.definition.frozen){\r\n\t\t\tconsole.warn(\"Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups\");\r\n\t\t}\r\n\r\n\t\tif(column.parent.isGroup){\r\n\t\t\treturn this.frozenCheck(column.parent);\r\n\t\t}else{\r\n\t\t\treturn column.definition.frozen;\r\n\t\t}\r\n\r\n\t\treturn frozen;\r\n\t}\r\n\r\n\t//quick layout to smooth horizontal scrolling\r\n\tscrollHorizontal(){\r\n\t\tvar rows;\r\n\r\n\t\tif(this.active){\r\n\t\t\tclearTimeout(this.scrollEndTimer);\r\n\r\n\t\t\t//layout all rows after scroll is complete\r\n\t\t\tthis.scrollEndTimer = setTimeout(() => {\r\n\t\t\t\tthis.layout();\r\n\t\t\t}, 100);\r\n\r\n\t\t\trows = this.table.rowManager.getVisibleRows();\r\n\r\n\t\t\tthis.calcMargins();\r\n\r\n\t\t\tthis.layoutColumnPosition();\r\n\r\n\t\t\tthis.layoutCalcRows();\r\n\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tif(row.type === \"row\"){\r\n\t\t\t\t\tthis.layoutRow(row);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.table.rowManager.tableElement.style.marginRight = this.rightMargin;\r\n\t\t}\r\n\t}\r\n\r\n\t//calculate margins for rows\r\n\tcalcMargins(){\r\n\t\tthis.leftMargin = this._calcSpace(this.leftColumns, this.leftColumns.length) + \"px\";\r\n\t\tthis.table.columnManager.headersElement.style.marginLeft = this.leftMargin;\r\n\r\n\t\tthis.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + \"px\";\r\n\t\tthis.table.columnManager.element.style.paddingRight = this.rightMargin;\r\n\r\n\t\t//calculate right frozen columns\r\n\t\tthis.rightPadding = this.table.rowManager.element.clientWidth + this.table.columnManager.scrollLeft;\r\n\t}\r\n\r\n\t//layout calculation rows\r\n\tlayoutCalcRows(){\r\n\t\tif(this.table.modExists(\"columnCalcs\")){\r\n\t\t\tif(this.table.modules.columnCalcs.topInitialized && this.table.modules.columnCalcs.topRow){\r\n\t\t\t\tthis.layoutRow(this.table.modules.columnCalcs.topRow);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow){\r\n\t\t\t\tthis.layoutRow(this.table.modules.columnCalcs.botRow);\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.modExists(\"groupRows\")){\r\n\t\t\t\tthis.layoutGroupCalcs(this.table.modules.groupRows.getGroups())\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tlayoutGroupCalcs(groups){\r\n\t\tgroups.forEach((group) => {\r\n\t\t\tif(group.calcs.top){\r\n\t\t\t\tthis.layoutRow(group.calcs.top);\r\n\t\t\t}\r\n\r\n\t\t\tif(group.calcs.bottom){\r\n\t\t\t\tthis.layoutRow(group.calcs.bottom);\r\n\t\t\t}\r\n\r\n\t\t\tif(group.groupList && group.groupList.length){\r\n\t\t\t\tthis.layoutGroupCalcs(group.groupList && group.groupList);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//calculate column positions and layout headers\r\n\tlayoutColumnPosition(allCells){\r\n\r\n\t\tvar leftParents = [];\r\n\r\n\t\tthis.leftColumns.forEach((column, i) => {\r\n\t\t\tcolumn.modules.frozen.margin = (this._calcSpace(this.leftColumns, i) + this.table.columnManager.scrollLeft) + \"px\";\r\n\r\n\t\t\tif(i == this.leftColumns.length - 1){\r\n\t\t\t\tcolumn.modules.frozen.edge = true;\r\n\t\t\t}else{\r\n\t\t\t\tcolumn.modules.frozen.edge = false;\r\n\t\t\t}\r\n\r\n\t\t\tif(column.parent.isGroup){\r\n\t\t\t\tvar parentEl = this.getColGroupParentElement(column);\r\n\t\t\t\tif(!leftParents.includes(parentEl)){\r\n\t\t\t\t\tthis.layoutElement(parentEl, column);\r\n\t\t\t\t\tleftParents.push(parentEl);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(column.modules.frozen.edge){\r\n\t\t\t\t\tparentEl.classList.add(\"tabulator-frozen-\" + column.modules.frozen.position);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.layoutElement(column.getElement(), column);\r\n\t\t\t}\r\n\r\n\t\t\tif(allCells){\r\n\t\t\t\tcolumn.cells.forEach((cell) => {\r\n\t\t\t\t\tthis.layoutElement(cell.getElement(true), column);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.rightColumns.forEach((column, i) => {\r\n\t\t\tcolumn.modules.frozen.margin = (this.rightPadding - this._calcSpace(this.rightColumns, i + 1)) + \"px\";\r\n\r\n\t\t\tif(i == this.rightColumns.length - 1){\r\n\t\t\t\tcolumn.modules.frozen.edge = true;\r\n\t\t\t}else{\r\n\t\t\t\tcolumn.modules.frozen.edge = false;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif(column.parent.isGroup){\r\n\t\t\t\tthis.layoutElement(this.getColGroupParentElement(column), column);\r\n\t\t\t}else{\r\n\t\t\t\tthis.layoutElement(column.getElement(), column);\r\n\t\t\t}\r\n\r\n\t\t\tif(allCells){\r\n\t\t\t\tcolumn.cells.forEach((cell) => {\r\n\t\t\t\t\tthis.layoutElement(cell.getElement(true), column);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetColGroupParentElement(column){\r\n\t\treturn column.parent.isGroup ? this.getColGroupParentElement(column.parent) : column.getElement();\r\n\t}\r\n\r\n\t//layout columns appropropriatly\r\n\tlayout(){\r\n\t\tvar rightMargin = 0;\r\n\r\n\t\tif(this.active){\r\n\r\n\t\t\t//calculate row padding\r\n\t\t\tthis.calcMargins();\r\n\r\n\t\t\tthis.table.rowManager.getDisplayRows().forEach((row) =>{\r\n\t\t\t\tif(row.type === \"row\"){\r\n\t\t\t\t\tthis.layoutRow(row);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.layoutCalcRows();\r\n\r\n\t\t\t//calculate left columns\r\n\t\t\tthis.layoutColumnPosition(true);\r\n\r\n\t\t\tthis.table.rowManager.tableElement.style.marginRight = this.rightMargin;\r\n\t\t}\r\n\t}\r\n\r\n\tlayoutRow(row){\r\n\t\tvar rowEl = row.getElement();\r\n\r\n\t\trowEl.style.paddingLeft = this.leftMargin;\r\n\r\n\t\tthis.leftColumns.forEach((column) => {\r\n\t\t\tvar cell = row.getCell(column);\r\n\r\n\t\t\tif(cell){\r\n\t\t\t\tthis.layoutElement(cell.getElement(true), column);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.rightColumns.forEach((column) => {\r\n\t\t\tvar cell = row.getCell(column);\r\n\r\n\t\t\tif(cell){\r\n\t\t\t\tthis.layoutElement(cell.getElement(true), column);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tlayoutElement(element, column){\r\n\r\n\t\tif(column.modules.frozen){\r\n\t\t\telement.style.position = \"absolute\";\r\n\t\t\telement.style.left = column.modules.frozen.margin;\r\n\r\n\t\t\telement.classList.add(\"tabulator-frozen\");\r\n\r\n\t\t\tif(column.modules.frozen.edge){\r\n\t\t\t\telement.classList.add(\"tabulator-frozen-\" + column.modules.frozen.position);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_calcSpace(columns, index){\r\n\t\tvar width = 0;\r\n\r\n\t\tfor (let i = 0; i < index; i++){\r\n\t\t\tif(columns[i].visible){\r\n\t\t\t\twidth += columns[i].getWidth();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn width;\r\n\t}\r\n}\r\n\r\nFrozenColumns.moduleName = \"frozenColumns\";\r\n\r\nexport default FrozenColumns;","import Module from '../../core/Module.js';\r\n\r\nclass FrozenRows extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.topElement = document.createElement(\"div\");\r\n\t\tthis.rows = [];\r\n\r\n\t\t//register component functions\r\n\t\tthis.registerComponentFunction(\"row\", \"freeze\", this.freezeRow.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"unfreeze\", this.unfreezeRow.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"isFrozen\", this.isRowFrozen.bind(this));\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.rows = [];\r\n\r\n\t\tthis.topElement.classList.add(\"tabulator-frozen-rows-holder\");\r\n\r\n\t\t// this.table.columnManager.element.append(this.topElement);\r\n\t\tthis.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);\r\n\r\n\t\tthis.subscribe(\"row-deleting\", this.detachRow.bind(this));\r\n\r\n\t\tthis.registerDisplayHandler(this.getRows.bind(this), 10);\r\n\t}\r\n\r\n\tisRowFrozen(row){\r\n\t\tvar index = this.rows.indexOf(row);\r\n\t\treturn index > -1;\r\n\t}\r\n\r\n\tisFrozen(){\r\n\t\treturn !!this.rows.length;\r\n\t}\r\n\r\n\t//filter frozen rows out of display data\r\n\tgetRows(rows){\r\n\t\tvar self = this,\r\n\t\tfrozen = [],\r\n\t\toutput = rows.slice(0);\r\n\r\n\t\tthis.rows.forEach(function(row){\r\n\t\t\tvar index = output.indexOf(row);\r\n\r\n\t\t\tif(index > -1){\r\n\t\t\t\toutput.splice(index, 1);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tfreezeRow(row){\r\n\t\tif(!row.modules.frozen){\r\n\t\t\trow.modules.frozen = true;\r\n\t\t\tthis.topElement.appendChild(row.getElement());\r\n\t\t\trow.initialize();\r\n\t\t\trow.normalizeHeight();\r\n\t\t\tthis.table.rowManager.adjustTableSize();\r\n\r\n\t\t\tthis.rows.push(row);\r\n\r\n\t\t\tthis.refreshData(false, \"display\")\r\n\r\n\t\t\tthis.styleRows();\r\n\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Freeze Error - Row is already frozen\");\r\n\t\t}\r\n\t}\r\n\r\n\tunfreezeRow(row){\r\n\t\tvar index = this.rows.indexOf(row);\r\n\r\n\t\tif(row.modules.frozen){\r\n\r\n\t\t\trow.modules.frozen = false;\r\n\r\n\t\t\tthis.detachRow(row);\r\n\r\n\t\t\tthis.table.rowManager.adjustTableSize();\r\n\r\n\t\t\tthis.refreshData(false, \"display\")\r\n\r\n\t\t\tif(this.rows.length){\r\n\t\t\t\tthis.styleRows();\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Freeze Error - Row is already unfrozen\");\r\n\t\t}\r\n\t}\r\n\r\n\tdetachRow(row){\r\n\t\tvar index = this.rows.indexOf(row);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tvar rowEl = row.getElement();\r\n\r\n\t\t\tif(rowEl.parentNode){\r\n\t\t\t\trowEl.parentNode.removeChild(rowEl);\r\n\t\t\t}\r\n\r\n\t\t\tthis.rows.splice(index, 1);\r\n\t\t}\r\n\t}\r\n\r\n\tstyleRows(row){\r\n\t\tthis.rows.forEach((row, i) => {\r\n\t\t\tthis.table.rowManager.styleRow(row, i);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nFrozenRows.moduleName = \"frozenRows\";\r\n\r\nexport default FrozenRows;","//public group object\r\nclass GroupComponent {\r\n\tconstructor (group){\r\n\t\tthis._group = group;\r\n\t\tthis.type = \"GroupComponent\";\r\n\r\n\t\treturn new Proxy(this, {\r\n\t\t\tget: function(target, name, receiver) {\r\n\t\t\t\tif (typeof target[name] !== \"undefined\") {\r\n\t\t\t\t\treturn target[name];\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn target._group.table.componentFunctionBinder.handle(\"row\", target._group, name)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tgetKey(){\r\n\t\treturn this._group.key;\r\n\t}\r\n\r\n\tgetField(){\r\n\t\treturn this._group.field;\r\n\t}\r\n\r\n\tgetElement(){\r\n\t\treturn this._group.element;\r\n\t}\r\n\r\n\tgetRows(){\r\n\t\treturn this._group.getRows(true);\r\n\t}\r\n\r\n\tgetSubGroups(){\r\n\t\treturn this._group.getSubGroups(true);\r\n\t}\r\n\r\n\tgetParentGroup(){\r\n\t\treturn this._group.parent ? this._group.parent.getComponent() : false;\r\n\t}\r\n\r\n\tisVisible(){\r\n\t\treturn this._group.visible;\r\n\t}\r\n\r\n\tshow(){\r\n\t\tthis._group.show();\r\n\t}\r\n\r\n\thide(){\r\n\t\tthis._group.hide();\r\n\t}\r\n\r\n\ttoggle(){\r\n\t\tthis._group.toggleVisibility();\r\n\t}\r\n\r\n\t_getSelf(){\r\n\t\treturn this._group;\r\n\t}\r\n\r\n\tgetTable(){\r\n\t\treturn this._group.groupManager.table;\r\n\t}\r\n}\r\n\r\nexport default GroupComponent;","import Helpers from '../../core/tools/Helpers.js';\r\nimport GroupComponent from './GroupComponent.js';\r\n\r\n//Group functions\r\nclass Group{\r\n\r\n\tconstructor(groupManager, parent, level, key, field, generator, oldGroup){\r\n\t\tthis.groupManager = groupManager;\r\n\t\tthis.parent = parent;\r\n\t\tthis.key = key;\r\n\t\tthis.level = level;\r\n\t\tthis.field = field;\r\n\t\tthis.hasSubGroups = level < (groupManager.groupIDLookups.length - 1);\r\n\t\tthis.addRow = this.hasSubGroups ? this._addRowToGroup : this._addRow;\r\n\t\tthis.type = \"group\"; //type of element\r\n\t\tthis.old = oldGroup;\r\n\t\tthis.rows = [];\r\n\t\tthis.groups = [];\r\n\t\tthis.groupList = [];\r\n\t\tthis.generator = generator;\r\n\t\tthis.elementContents = false;\r\n\t\tthis.height = 0;\r\n\t\tthis.outerHeight = 0;\r\n\t\tthis.initialized = false;\r\n\t\tthis.calcs = {};\r\n\t\tthis.initialized = false;\r\n\t\tthis.modules = {};\r\n\t\tthis.arrowElement = false;\r\n\r\n\t\tthis.visible = oldGroup ? oldGroup.visible : (typeof groupManager.startOpen[level] !== \"undefined\" ? groupManager.startOpen[level] : groupManager.startOpen[0]);\r\n\r\n\t\tthis.component = null;\r\n\r\n\t\tthis.createElements();\r\n\t\tthis.addBindings();\r\n\r\n\t\tthis.createValueGroups();\r\n\t}\r\n\r\n\twipe(){\r\n\t\tif(this.groupList.length){\r\n\t\t\tthis.groupList.forEach(function(group){\r\n\t\t\t\tgroup.wipe();\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tthis.element = false;\r\n\t\t\tthis.arrowElement = false;\r\n\t\t\tthis.elementContents = false;\r\n\t\t}\r\n\t}\r\n\r\n\tcreateElements(){\r\n\t\tvar arrow = document.createElement(\"div\");\r\n\t\tarrow.classList.add(\"tabulator-arrow\");\r\n\r\n\t\tthis.element = document.createElement(\"div\");\r\n\t\tthis.element.classList.add(\"tabulator-row\");\r\n\t\tthis.element.classList.add(\"tabulator-group\");\r\n\t\tthis.element.classList.add(\"tabulator-group-level-\" + this.level);\r\n\t\tthis.element.setAttribute(\"role\", \"rowgroup\");\r\n\r\n\t\tthis.arrowElement = document.createElement(\"div\");\r\n\t\tthis.arrowElement.classList.add(\"tabulator-group-toggle\");\r\n\t\tthis.arrowElement.appendChild(arrow);\r\n\r\n\t\t//setup movable rows\r\n\t\tif(this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists(\"moveRow\")){\r\n\t\t\tthis.groupManager.table.modules.moveRow.initializeGroupHeader(this);\r\n\t\t}\r\n\t}\r\n\r\n\tcreateValueGroups(){\r\n\t\tvar level = this.level + 1;\r\n\t\tif(this.groupManager.allowedValues && this.groupManager.allowedValues[level]){\r\n\t\t\tthis.groupManager.allowedValues[level].forEach((value) => {\r\n\t\t\t\tthis._createGroup(value, level);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\taddBindings(){\r\n\t\tvar dblTap,\ttapHold, tap, toggleElement;\r\n\r\n\t\tif ((this.groupManager.table.options.groupContextMenu || this.groupManager.table.options.groupClickMenu) && this.groupManager.table.modExists(\"menu\")){\r\n\t\t\tthis.groupManager.table.modules.menu.initializeGroup.call(this.groupManager.table.modules.menu, this);\r\n\t\t}\r\n\r\n\t\tif (this.groupManager.table.options.groupTap){\r\n\t\t\ttap = false;\r\n\r\n\t\t\tthis.element.addEventListener(\"touchstart\", (e) => {\r\n\t\t\t\ttap = true;\r\n\t\t\t}, {passive: true});\r\n\r\n\t\t\tthis.element.addEventListener(\"touchend\", (e) => {\r\n\t\t\t\tif(tap){\r\n\t\t\t\t\tthis.groupManager.table.options.groupTap(e, this.getComponent());\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttap = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.groupManager.table.options.groupDblTap){\r\n\t\t\tdblTap = null;\r\n\r\n\t\t\tthis.element.addEventListener(\"touchend\", (e) => {\r\n\t\t\t\tif(dblTap){\r\n\t\t\t\t\tclearTimeout(dblTap);\r\n\t\t\t\t\tdblTap = null;\r\n\r\n\t\t\t\t\tthis.groupManager.table.options.groupDblTap(e, this.getComponent());\r\n\t\t\t\t}else{\r\n\r\n\t\t\t\t\tdblTap = setTimeout(() => {\r\n\t\t\t\t\t\tclearTimeout(dblTap);\r\n\t\t\t\t\t\tdblTap = null;\r\n\t\t\t\t\t}, 300);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.groupManager.table.options.groupTapHold){\r\n\t\t\ttapHold = null;\r\n\r\n\t\t\tthis.element.addEventListener(\"touchstart\", (e) => {\r\n\t\t\t\tclearTimeout(tapHold);\r\n\r\n\t\t\t\ttapHold = setTimeout(() => {\r\n\t\t\t\t\tclearTimeout(tapHold);\r\n\t\t\t\t\ttapHold = null;\r\n\t\t\t\t\ttap = false;\r\n\t\t\t\t\tthis.groupManager.table.options.groupTapHold(e, this.getComponent());\r\n\t\t\t\t}, 1000);\r\n\r\n\t\t\t}, {passive: true});\r\n\r\n\t\t\tthis.element.addEventListener(\"touchend\", (e) => {\r\n\t\t\t\tclearTimeout(tapHold);\r\n\t\t\t\ttapHold = null;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(this.groupManager.table.options.groupToggleElement){\r\n\t\t\ttoggleElement = this.groupManager.table.options.groupToggleElement == \"arrow\" ? this.arrowElement : this.element;\r\n\r\n\t\t\ttoggleElement.addEventListener(\"click\", (e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\tthis.toggleVisibility();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t_createGroup(groupID, level){\r\n\t\tvar groupKey = level + \"_\" + groupID;\r\n\t\tvar group = new Group(this.groupManager, this, level, groupID, this.groupManager.groupIDLookups[level].field, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupKey] : false);\r\n\r\n\t\tthis.groups[groupKey] = group;\r\n\t\tthis.groupList.push(group);\r\n\t}\r\n\r\n\t_addRowToGroup(row){\r\n\r\n\t\tvar level = this.level + 1;\r\n\r\n\t\tif(this.hasSubGroups){\r\n\t\t\tvar groupID = this.groupManager.groupIDLookups[level].func(row.getData()),\r\n\t\t\tgroupKey = level + \"_\" + groupID;\r\n\r\n\t\t\tif(this.groupManager.allowedValues && this.groupManager.allowedValues[level]){\r\n\t\t\t\tif(this.groups[groupKey]){\r\n\t\t\t\t\tthis.groups[groupKey].addRow(row);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(!this.groups[groupKey]){\r\n\t\t\t\t\tthis._createGroup(groupID, level);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.groups[groupKey].addRow(row);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_addRow(row){\r\n\t\tthis.rows.push(row);\r\n\t\trow.modules.group = this;\r\n\t}\r\n\r\n\tinsertRow(row, to, after){\r\n\t\tvar data = this.conformRowData({});\r\n\r\n\t\trow.updateData(data);\r\n\r\n\t\tvar toIndex = this.rows.indexOf(to);\r\n\r\n\t\tif(toIndex > -1){\r\n\t\t\tif(after){\r\n\t\t\t\tthis.rows.splice(toIndex+1, 0, row);\r\n\t\t\t}else{\r\n\t\t\t\tthis.rows.splice(toIndex, 0, row);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(after){\r\n\t\t\t\tthis.rows.push(row);\r\n\t\t\t}else{\r\n\t\t\t\tthis.rows.unshift(row);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\trow.modules.group = this;\r\n\r\n\t\tthis.generateGroupHeaderContents();\r\n\r\n\t\tif(this.groupManager.table.modExists(\"columnCalcs\") && this.groupManager.table.options.columnCalcs != \"table\"){\r\n\t\t\tthis.groupManager.table.modules.columnCalcs.recalcGroup(this);\r\n\t\t}\r\n\r\n\t\tthis.groupManager.updateGroupRows(true);\r\n\t}\r\n\r\n\tscrollHeader(left){\r\n\t\tthis.arrowElement.style.marginLeft = left;\r\n\r\n\t\tthis.groupList.forEach(function(child){\r\n\t\t\tchild.scrollHeader(left);\r\n\t\t});\r\n\t}\r\n\r\n\tgetRowIndex(row){}\r\n\r\n\t//update row data to match grouping contraints\r\n\tconformRowData(data){\r\n\t\tif(this.field){\r\n\t\t\tdata[this.field] = this.key;\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Data Conforming Error - Cannot conform row data to match new group as groupBy is a function\");\r\n\t\t}\r\n\r\n\t\tif(this.parent){\r\n\t\t\tdata = this.parent.conformRowData(data);\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tremoveRow(row){\r\n\t\tvar index = this.rows.indexOf(row);\r\n\t\tvar el = row.getElement();\r\n\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis.rows.splice(index, 1);\r\n\t\t}\r\n\r\n\t\tif(!this.groupManager.table.options.groupValues && !this.rows.length){\r\n\t\t\tif(this.parent){\r\n\t\t\t\tthis.parent.removeGroup(this);\r\n\t\t\t}else{\r\n\t\t\t\tthis.groupManager.removeGroup(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis.groupManager.updateGroupRows(true);\r\n\t\t}else{\r\n\r\n\t\t\tif(el.parentNode){\r\n\t\t\t\tel.parentNode.removeChild(el);\r\n\t\t\t}\r\n\r\n\t\t\tthis.generateGroupHeaderContents();\r\n\r\n\t\t\tif(this.groupManager.table.modExists(\"columnCalcs\") && this.groupManager.table.options.columnCalcs != \"table\"){\r\n\t\t\t\tthis.groupManager.table.modules.columnCalcs.recalcGroup(this);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tremoveGroup(group){\r\n\t\tvar groupKey = group.level + \"_\" + group.key,\r\n\t\tindex;\r\n\r\n\t\tif(this.groups[groupKey]){\r\n\t\t\tdelete this.groups[groupKey];\r\n\r\n\t\t\tindex = this.groupList.indexOf(group);\r\n\r\n\t\t\tif(index > -1){\r\n\t\t\t\tthis.groupList.splice(index, 1);\r\n\t\t\t}\r\n\r\n\t\t\tif(!this.groupList.length){\r\n\t\t\t\tif(this.parent){\r\n\t\t\t\t\tthis.parent.removeGroup(this);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.groupManager.removeGroup(this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetHeadersAndRows(noCalc){\r\n\t\tvar output = [];\r\n\r\n\t\toutput.push(this);\r\n\r\n\t\tthis._visSet();\r\n\r\n\t\tif(this.visible){\r\n\t\t\tif(this.groupList.length){\r\n\t\t\t\tthis.groupList.forEach(function(group){\r\n\t\t\t\t\toutput = output.concat(group.getHeadersAndRows(noCalc));\r\n\t\t\t\t});\r\n\r\n\t\t\t}else{\r\n\t\t\t\tif(!noCalc && this.groupManager.table.options.columnCalcs != \"table\" && this.groupManager.table.modExists(\"columnCalcs\") && this.groupManager.table.modules.columnCalcs.hasTopCalcs()){\r\n\t\t\t\t\tif(this.calcs.top){\r\n\t\t\t\t\t\tthis.calcs.top.detachElement();\r\n\t\t\t\t\t\tthis.calcs.top.deleteCells();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);\r\n\t\t\t\t\toutput.push(this.calcs.top);\r\n\t\t\t\t}\r\n\r\n\t\t\t\toutput = output.concat(this.rows);\r\n\r\n\t\t\t\tif(!noCalc && this.groupManager.table.options.columnCalcs != \"table\" && this.groupManager.table.modExists(\"columnCalcs\") && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()){\r\n\t\t\t\t\tif(this.calcs.bottom){\r\n\t\t\t\t\t\tthis.calcs.bottom.detachElement();\r\n\t\t\t\t\t\tthis.calcs.bottom.deleteCells();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);\r\n\t\t\t\t\toutput.push(this.calcs.bottom);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(!this.groupList.length && this.groupManager.table.options.columnCalcs != \"table\"){\r\n\r\n\t\t\t\tif(this.groupManager.table.modExists(\"columnCalcs\")){\r\n\r\n\t\t\t\t\tif(!noCalc && this.groupManager.table.modules.columnCalcs.hasTopCalcs()){\r\n\t\t\t\t\t\tif(this.calcs.top){\r\n\t\t\t\t\t\t\tthis.calcs.top.detachElement();\r\n\t\t\t\t\t\t\tthis.calcs.top.deleteCells();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(this.groupManager.table.options.groupClosedShowCalcs){\r\n\t\t\t\t\t\t\tthis.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);\r\n\t\t\t\t\t\t\toutput.push(this.calcs.top);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(!noCalc && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()){\r\n\t\t\t\t\t\tif(this.calcs.bottom){\r\n\t\t\t\t\t\t\tthis.calcs.bottom.detachElement();\r\n\t\t\t\t\t\t\tthis.calcs.bottom.deleteCells();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(this.groupManager.table.options.groupClosedShowCalcs){\r\n\t\t\t\t\t\t\tthis.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);\r\n\t\t\t\t\t\t\toutput.push(this.calcs.bottom);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetData(visible, transform){\r\n\t\tvar output = [];\r\n\r\n\t\tthis._visSet();\r\n\r\n\t\tif(!visible || (visible && this.visible)){\r\n\t\t\tthis.rows.forEach((row) => {\r\n\t\t\t\toutput.push(row.getData(transform || \"data\"));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetRowCount(){\r\n\t\tvar count = 0;\r\n\r\n\t\tif(this.groupList.length){\r\n\t\t\tthis.groupList.forEach((group) => {\r\n\t\t\t\tcount += group.getRowCount();\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tcount = this.rows.length;\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\ttoggleVisibility(){\r\n\t\tif(this.visible){\r\n\t\t\tthis.hide();\r\n\t\t}else{\r\n\t\t\tthis.show();\r\n\t\t}\r\n\t}\r\n\r\n\thide(){\r\n\t\tthis.visible = false;\r\n\r\n\t\tif(this.groupManager.table.rowManager.getRenderMode() == \"classic\" && !this.groupManager.table.options.pagination){\r\n\r\n\t\t\tthis.element.classList.remove(\"tabulator-group-visible\");\r\n\r\n\t\t\tif(this.groupList.length){\r\n\t\t\t\tthis.groupList.forEach((group) => {\r\n\r\n\t\t\t\t\tvar rows = group.getHeadersAndRows();\r\n\r\n\t\t\t\t\trows.forEach((row) => {\r\n\t\t\t\t\t\trow.detachElement();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t}else{\r\n\t\t\t\tthis.rows.forEach((row) => {\r\n\t\t\t\t\tvar rowEl = row.getElement();\r\n\t\t\t\t\trowEl.parentNode.removeChild(rowEl);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());\r\n\r\n\t\t\tthis.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();\r\n\r\n\t\t}else{\r\n\t\t\tthis.groupManager.updateGroupRows(true);\r\n\t\t}\r\n\r\n\t\tthis.groupManager.table.externalEvents.dispatch(\"groupVisibilityChanged\", this.getComponent(), false);\r\n\t}\r\n\r\n\tshow(){\r\n\t\tthis.visible = true;\r\n\r\n\t\tif(this.groupManager.table.rowManager.getRenderMode() == \"classic\" && !this.groupManager.table.options.pagination){\r\n\r\n\t\t\tthis.element.classList.add(\"tabulator-group-visible\");\r\n\r\n\t\t\tvar prev = this.getElement();\r\n\r\n\t\t\tif(this.groupList.length){\r\n\t\t\t\tthis.groupList.forEach((group) => {\r\n\t\t\t\t\tvar rows = group.getHeadersAndRows();\r\n\r\n\t\t\t\t\trows.forEach((row) => {\r\n\t\t\t\t\t\tvar rowEl = row.getElement();\r\n\t\t\t\t\t\tprev.parentNode.insertBefore(rowEl, prev.nextSibling);\r\n\t\t\t\t\t\trow.initialize();\r\n\t\t\t\t\t\tprev = rowEl;\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t}else{\r\n\t\t\t\tthis.rows.forEach((row) => {\r\n\t\t\t\t\tvar rowEl = row.getElement();\r\n\t\t\t\t\tprev.parentNode.insertBefore(rowEl, prev.nextSibling);\r\n\t\t\t\t\trow.initialize();\r\n\t\t\t\t\tprev = rowEl;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());\r\n\r\n\t\t\tthis.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();\r\n\t\t}else{\r\n\t\t\tthis.groupManager.updateGroupRows(true);\r\n\t\t}\r\n\r\n\t\tthis.groupManager.table.externalEvents.dispatch(\"groupVisibilityChanged\", this.getComponent(), true);\r\n\t}\r\n\r\n\t_visSet(){\r\n\t\tvar data = [];\r\n\r\n\t\tif(typeof this.visible == \"function\"){\r\n\r\n\t\t\tthis.rows.forEach(function(row){\r\n\t\t\t\tdata.push(row.getData());\r\n\t\t\t});\r\n\r\n\t\t\tthis.visible = this.visible(this.key, this.getRowCount(), data, this.getComponent());\r\n\t\t}\r\n\t}\r\n\r\n\tgetRowGroup(row){\r\n\t\tvar match = false;\r\n\t\tif(this.groupList.length){\r\n\t\t\tthis.groupList.forEach(function(group){\r\n\t\t\t\tvar result = group.getRowGroup(row);\r\n\r\n\t\t\t\tif(result){\r\n\t\t\t\t\tmatch = result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tif(this.rows.find(function(item){\r\n\t\t\t\treturn item === row;\r\n\t\t\t})){\r\n\t\t\t\tmatch = this;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn match;\r\n\t}\r\n\r\n\tgetSubGroups(component){\r\n\t\tvar output = [];\r\n\r\n\t\tthis.groupList.forEach(function(child){\r\n\t\t\toutput.push(component ? child.getComponent() : child);\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetRows(compoment){\r\n\t\tvar output = [];\r\n\r\n\t\tthis.rows.forEach(function(row){\r\n\t\t\toutput.push(compoment ? row.getComponent() : row);\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgenerateGroupHeaderContents(){\r\n\t\tvar data = [];\r\n\r\n\t\tthis.rows.forEach(function(row){\r\n\t\t\tdata.push(row.getData());\r\n\t\t});\r\n\r\n\t\tthis.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent());\r\n\r\n\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\r\n\t\tif(typeof this.elementContents === \"string\"){\r\n\t\t\tthis.element.innerHTML = this.elementContents;\r\n\t\t}else{\r\n\t\t\tthis.element.appendChild(this.elementContents);\r\n\t\t}\r\n\r\n\t\tthis.element.insertBefore(this.arrowElement, this.element.firstChild);\r\n\t}\r\n\r\n\tgetPath(path = []) {\r\n\t\tpath.unshift(this.key);\r\n\t\tif(this.parent) {\r\n\t\t\tthis.parent.getPath(path);\r\n\t\t}\r\n\t\treturn path;\r\n\t}\r\n\r\n\t////////////// Standard Row Functions //////////////\r\n\r\n\tgetElement(){\r\n\t\tthis.addBindingsd = false;\r\n\r\n\t\tthis._visSet();\r\n\r\n\t\tif(this.visible){\r\n\t\t\tthis.element.classList.add(\"tabulator-group-visible\");\r\n\t\t}else{\r\n\t\t\tthis.element.classList.remove(\"tabulator-group-visible\");\r\n\t\t}\r\n\r\n\t\tfor(var i = 0; i < this.element.childNodes.length; ++i){\r\n\t\t\tthis.element.childNodes[i].parentNode.removeChild(this.element.childNodes[i]);\r\n\t\t}\r\n\r\n\t\tthis.generateGroupHeaderContents();\r\n\r\n\t\t// this.addBindings();\r\n\r\n\t\treturn this.element;\r\n\t}\r\n\r\n\tdetachElement(){\r\n\t\tif (this.element && this.element.parentNode){\r\n\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t}\r\n\t}\r\n\r\n\t//normalize the height of elements in the row\r\n\tnormalizeHeight(){\r\n\t\tthis.setHeight(this.element.clientHeight);\r\n\t}\r\n\r\n\tinitialize(force){\r\n\t\tif(!this.initialized || force){\r\n\t\t\tthis.normalizeHeight();\r\n\t\t\tthis.initialized = true;\r\n\t\t}\r\n\t}\r\n\r\n\treinitialize(){\r\n\t\tthis.initialized = false;\r\n\t\tthis.height = 0;\r\n\r\n\t\tif(Helpers.elVisible(this.element)){\r\n\t\t\tthis.initialize(true);\r\n\t\t}\r\n\t}\r\n\r\n\tsetHeight(height){\r\n\t\tif(this.height != height){\r\n\t\t\tthis.height = height;\r\n\t\t\tthis.outerHeight = this.element.offsetHeight;\r\n\t\t}\r\n\t}\r\n\r\n\t//return rows outer height\r\n\tgetHeight(){\r\n\t\treturn this.outerHeight;\r\n\t}\r\n\r\n\tgetGroup(){\r\n\t\treturn this;\r\n\t}\r\n\r\n\treinitializeHeight(){}\r\n\r\n\tcalcHeight(){}\r\n\r\n\tsetCellHeight(){}\r\n\r\n\tclearCellHeight(){}\r\n\r\n\tdeinitializeHeight(){}\r\n\r\n\t//////////////// Object Generation /////////////////\r\n\tgetComponent(){\r\n\t\tif(!this.component){\r\n\t\t\tthis.component = new GroupComponent(this);\r\n\t\t}\r\n\r\n\t\treturn this.component;\r\n\t}\r\n}\r\n\r\nexport default Group;","import Module from '../../core/Module.js';\r\n\r\nimport GroupComponent from './GroupComponent.js';\r\nimport Group from './Group.js';\r\n\r\nclass GroupRows extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.groupIDLookups = false; //enable table grouping and set field to group by\r\n\t\tthis.startOpen = [function(){return false;}]; //starting state of group\r\n\t\tthis.headerGenerator = [function(){return \"\";}];\r\n\t\tthis.groupList = []; //ordered list of groups\r\n\t\tthis.allowedValues = false;\r\n\t\tthis.groups = {}; //hold row groups\r\n\t\tthis.displayIndex = 0; //index in display pipeline\r\n\r\n\t\tthis.displayHandler = this.getRows.bind(this);\r\n\r\n\t\t//register table options\r\n\t\tthis.registerTableOption(\"groupBy\", false); //enable table grouping and set field to group by\r\n\t\tthis.registerTableOption(\"groupStartOpen\", true); //starting state of group\r\n\t\tthis.registerTableOption(\"groupValues\", false);\r\n\t\tthis.registerTableOption(\"groupUpdateOnCellEdit\", false);\r\n\t\tthis.registerTableOption(\"groupHeader\", false); //header generation function\r\n\t\tthis.registerTableOption(\"groupHeaderPrint\", null);\r\n\t\tthis.registerTableOption(\"groupHeaderClipboard\", null);\r\n\t\tthis.registerTableOption(\"groupHeaderHtmlOutput\", null);\r\n\t\tthis.registerTableOption(\"groupHeaderDownload\", null);\r\n\t\tthis.registerTableOption(\"groupToggleElement\", \"arrow\");\r\n\t\tthis.registerTableOption(\"groupClosedShowCalcs\", false);\r\n\r\n\t\t//register table functions\r\n\t\tthis.registerTableFunction(\"setGroupBy\", this.setGroupBy.bind(this));\r\n\t\tthis.registerTableFunction(\"setGroupValues\", this.setGroupValues.bind(this));\r\n\t\tthis.registerTableFunction(\"setGroupStartOpen\", this.setGroupStartOpen.bind(this));\r\n\t\tthis.registerTableFunction(\"setGroupHeader\", this.setGroupHeader.bind(this));\r\n\t\tthis.registerTableFunction(\"getGroups\", this.userGetGroups.bind(this));\r\n\t\tthis.registerTableFunction(\"getGroupedData\", this.userGetGroupedData.bind(this));\r\n\r\n\t\t//register component functions\r\n\t\tthis.registerComponentFunction(\"row\", \"getGroup\", this.rowGetGroup.bind(this));\r\n\t}\r\n\r\n\t//initialize group configuration\r\n\tinitialize(){\r\n\t\tif(this.table.options.groupBy){\r\n\r\n\t\t\tthis.configureGroupSetup();\r\n\r\n\t\t\tif(this.table.options.groupUpdateOnCellEdit){\r\n\t\t\t\tthis.subscribe(\"cell-value-updated\", this.cellUpdated.bind(this));\r\n\t\t\t\tthis.subscribe(\"row-data-changed\", this.reassignRowToGroup.bind(this), 0);\r\n\t\t\t}\r\n\r\n\t\t\tthis.subscribe(\"row-deleting\", this.rowDeleting.bind(this));\r\n\t\t\tthis.subscribe(\"row-deleted\", this.rowsUpdated.bind(this));\r\n\t\t\tthis.subscribe(\"scroll-horizontal\", this.scrollHeaders.bind(this));\r\n\t\t\tthis.subscribe(\"rows-wipe\", this.wipe.bind(this));\r\n\t\t\tthis.subscribe(\"rows-added\", this.rowsUpdated.bind(this));\r\n\t\t\tthis.subscribe(\"row-moving\", this.rowMoving.bind(this));\r\n\t\t\tthis.subscribe(\"row-adding-index\", this.rowAddingIndex.bind(this));\r\n\r\n\t\t\tthis.subscribe(\"rows-sample\", this.rowSample.bind(this));\r\n\r\n\t\t\tthis.subscribe(\"render-virtual-fill\", this.virtualRenderFill.bind(this));\r\n\r\n\t\t\tthis.registerDisplayHandler(this.displayHandler, 20);\r\n\r\n\t\t\tthis.initialized = true;\r\n\t\t}\r\n\t}\r\n\r\n\tconfigureGroupSetup(){\r\n\t\tif(this.table.options.groupBy){\r\n\t\t\tvar groupBy = this.table.options.groupBy,\r\n\t\t\tstartOpen = this.table.options.groupStartOpen,\r\n\t\t\tgroupHeader = this.table.options.groupHeader;\r\n\r\n\t\t\tthis.allowedValues = this.table.options.groupValues;\r\n\r\n\t\t\tif(Array.isArray(groupBy) && Array.isArray(groupHeader) && groupBy.length > groupHeader.length){\r\n\t\t\t\tconsole.warn(\"Error creating group headers, groupHeader array is shorter than groupBy array\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.headerGenerator = [function(){return \"\";}];\r\n\t\t\tthis.startOpen = [function(){return false;}]; //starting state of group\r\n\r\n\t\t\tthis.langBind(\"groups|item\", (langValue, lang) => {\r\n\t\t\t\tthis.headerGenerator[0] = (value, count, data) => { //header layout function\r\n\t\t\t\t\treturn (typeof value === \"undefined\" ? \"\" : value) + \"<span>(\" + count + \" \" + ((count === 1) ? langValue : lang.groups.items) + \")</span>\";\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tthis.groupIDLookups = [];\r\n\r\n\t\t\tif(Array.isArray(groupBy) || groupBy){\r\n\t\t\t\tif(this.table.modExists(\"columnCalcs\") && this.table.options.columnCalcs != \"table\" && this.table.options.columnCalcs != \"both\"){\r\n\t\t\t\t\tthis.table.modules.columnCalcs.removeCalcs();\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(this.table.modExists(\"columnCalcs\") && this.table.options.columnCalcs != \"group\"){\r\n\r\n\t\t\t\t\tvar cols = this.table.columnManager.getRealColumns();\r\n\r\n\t\t\t\t\tcols.forEach((col) => {\r\n\t\t\t\t\t\tif(col.definition.topCalc){\r\n\t\t\t\t\t\t\tthis.table.modules.columnCalcs.initializeTopRow();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(col.definition.bottomCalc){\r\n\t\t\t\t\t\t\tthis.table.modules.columnCalcs.initializeBottomRow();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!Array.isArray(groupBy)){\r\n\t\t\t\tgroupBy = [groupBy];\r\n\t\t\t}\r\n\r\n\t\t\tgroupBy.forEach((group, i) => {\r\n\t\t\t\tvar lookupFunc, column;\r\n\r\n\t\t\t\tif(typeof group == \"function\"){\r\n\t\t\t\t\tlookupFunc = group;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcolumn = this.table.columnManager.getColumnByField(group);\r\n\r\n\t\t\t\t\tif(column){\r\n\t\t\t\t\t\tlookupFunc = function(data){\r\n\t\t\t\t\t\t\treturn column.getFieldValue(data);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tlookupFunc = function(data){\r\n\t\t\t\t\t\t\treturn data[group];\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.groupIDLookups.push({\r\n\t\t\t\t\tfield: typeof group === \"function\" ? false : group,\r\n\t\t\t\t\tfunc:lookupFunc,\r\n\t\t\t\t\tvalues:this.allowedValues ? this.allowedValues[i] : false,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tif(startOpen){\r\n\t\t\t\tif(!Array.isArray(startOpen)){\r\n\t\t\t\t\tstartOpen = [startOpen];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstartOpen.forEach((level) => {\r\n\t\t\t\t\tlevel = typeof level == \"function\" ? level : function(){return true;};\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.startOpen = startOpen;\r\n\t\t\t}\r\n\r\n\t\t\tif(groupHeader){\r\n\t\t\t\tthis.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trowSample(rows, prevValue){\r\n\t\tvar group = this.getGroups(false)[0];\r\n\r\n\t\tprevValue.push(group.getRows(false)[0]);\r\n\r\n\t\treturn prevValue;\r\n\t}\r\n\r\n\tvirtualRenderFill(){\r\n\t\tvar el = this.table.rowManager.tableElement;\r\n\t\tvar rows = this.table.rowManager.getVisibleRows();\r\n\r\n\t\trows = rows.filter((row) => {\r\n\t\t\treturn row.type !== \"group\";\r\n\t\t});\r\n\r\n\t\tel.style.minWidth = !rows.length ? this.table.columnManager.getWidth() + \"px\" : \"\";\r\n\r\n\t\t// if(this.table.options.groupBy){\r\n\t\t// \tif(this.layoutMode() != \"fitDataFill\" && rowsCount == this.table.modules.groupRows.countGroups()){\r\n\t\t// \t\tel.style.minWidth = this.table.columnManager.getWidth() + \"px\";\r\n\t\t// \t}\r\n\t\t// }\r\n\t}\r\n\r\n\trowAddingIndex(row, index, top){\r\n\t\tthis.assignRowToGroup(row);\r\n\r\n\t\tvar groupRows = row.modules.group.rows;\r\n\r\n\t\tif(groupRows.length > 1){\r\n\t\t\tif(!index || (index && groupRows.indexOf(index) == -1)){\r\n\t\t\t\tif(top){\r\n\t\t\t\t\tif(groupRows[0] !== row){\r\n\t\t\t\t\t\tindex = groupRows[0];\r\n\t\t\t\t\t\tthis.table.rowManager.moveRowInArray(row.modules.group.rows, row, index, !top);\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(groupRows[groupRows.length -1] !== row){\r\n\t\t\t\t\t\tindex = groupRows[groupRows.length -1];\r\n\t\t\t\t\t\tthis.table.rowManager.moveRowInArray(row.modules.group.rows, row, index, !top);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.table.rowManager.moveRowInArray(row.modules.group.rows, row, index, !top);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn index;\r\n\t}\r\n\r\n\ttrackChanges(){\r\n\t\tthis.dispatch(\"group-changed\");\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\tsetGroupBy(groups){\r\n\t\tthis.table.options.groupBy = groups;\r\n\t\tthis.configureGroupSetup();\r\n\t\tthis.refreshData();\r\n\r\n\t\tthis.trackChanges();\r\n\t}\r\n\r\n\tsetGroupValues(groupValues){\r\n\t\tthis.table.options.groupValues = groupValues;\r\n\t\tthis.configureGroupSetup();\r\n\t\tthis.refreshData();\r\n\r\n\t\tthis.trackChanges();\r\n\t}\r\n\r\n\tsetGroupStartOpen(values){\r\n\t\tthis.table.options.groupStartOpen = values;\r\n\t\tthis.configureGroupSetup();\r\n\r\n\t\tif(this.table.options.groupBy){\r\n\t\t\tthis.refreshData();\r\n\r\n\t\t\tthis.trackChanges();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Grouping Update - cant refresh view, no groups have been set\");\r\n\t\t}\r\n\t}\r\n\r\n\tsetGroupHeader(values){\r\n\t\tthis.table.options.groupHeader = values;\r\n\t\tthis.configureGroupSetup();\r\n\r\n\t\tif(this.table.options.groupBy){\r\n\t\t\tthis.refreshData();\r\n\r\n\t\t\tthis.trackChanges();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Grouping Update - cant refresh view, no groups have been set\");\r\n\t\t}\r\n\t}\r\n\r\n\tuserGetGroups(values){\r\n\t\treturn this.getGroups(true);\r\n\t}\r\n\r\n\t// get grouped table data in the same format as getData()\r\n\tuserGetGroupedData(){\r\n\t\treturn this.table.options.groupBy ?\r\n\t\tthis.getGroupedData() : this.getData()\r\n\t}\r\n\r\n\r\n\t///////////////////////////////////////\r\n\t///////// Component Functions /////////\r\n\t///////////////////////////////////////\r\n\r\n\trowGetGroup(row){\r\n\t\treturn row.modules.group ? row.modules.group.getComponent() : false;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\trowMoving(from, to, after){\r\n\t\tif(!after && to instanceof Group){\r\n\t\t\tto = this.table.rowManager.prevDisplayRow(from) || to;\r\n\t\t}\r\n\r\n\t\tvar toGroup = to instanceof Group ? to : to.modules.group;\r\n\t\tvar fromGroup = from instanceof Group ? from : from.modules.group;\r\n\r\n\t\tif(toGroup === fromGroup){\r\n\t\t\tthis.table.rowManager.moveRowInArray(toGroup.rows, from, to, after);\r\n\t\t}else{\r\n\t\t\tif(fromGroup){\r\n\t\t\t\tfromGroup.removeRow(from);\r\n\t\t\t}\r\n\r\n\t\t\ttoGroup.insertRow(from, to, after);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\trowDeleting(row){\r\n\t\t//remove from group\r\n\t\tif(row.modules.group){\r\n\t\t\trow.modules.group.removeRow(row);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\trowsUpdated(row){\r\n\t\tthis.updateGroupRows(true);\r\n\t}\r\n\r\n\tcellUpdated(cell){\r\n\t\tthis.reassignRowToGroup(cell.row);\r\n\t}\r\n\r\n\r\n\tsetDisplayIndex(index){\r\n\t\tthis.displayIndex = index;\r\n\t}\r\n\r\n\tgetDisplayIndex(){\r\n\t\treturn this.displayIndex;\r\n\t}\r\n\r\n\t//return appropriate rows with group headers\r\n\tgetRows(rows){\r\n\t\tif(this.table.options.groupBy && this.groupIDLookups.length){\r\n\r\n\t\t\tthis.dispatchExternal(\"dataGrouping\");\r\n\r\n\t\t\tthis.generateGroups(rows);\r\n\r\n\t\t\tif(this.subscribedExternal(\"dataGrouped\")){\r\n\t\t\t\tthis.dispatchExternal(\"dataGrouped\", this.getGroups(true));\r\n\t\t\t}\r\n\r\n\t\t\treturn this.updateGroupRows();\r\n\r\n\t\t}else{\r\n\t\t\treturn rows.slice(0);\r\n\t\t}\r\n\t}\r\n\r\n\tgetGroups(component){\r\n\t\tvar groupComponents = [];\r\n\r\n\t\tthis.groupList.forEach(function(group){\r\n\t\t\tgroupComponents.push(component ? group.getComponent() : group);\r\n\t\t});\r\n\r\n\t\treturn groupComponents;\r\n\t}\r\n\r\n\tgetChildGroups(group){\r\n\t\tvar groupComponents = [];\r\n\r\n\t\tif(!group){\r\n\t\t\tgroup = this;\r\n\t\t}\r\n\r\n\t\tgroup.groupList.forEach((child) => {\r\n\t\t\tif(child.groupList.length){\r\n\t\t\t\tgroupComponents = groupComponents.concat(this.getChildGroups(child));\r\n\t\t\t}else{\r\n\t\t\t\tgroupComponents.push(child);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn groupComponents;\r\n\t}\r\n\r\n\twipe(){\r\n\t\tthis.groupList.forEach(function(group){\r\n\t\t\tgroup.wipe();\r\n\t\t});\r\n\t}\r\n\r\n\tpullGroupListData(groupList) {\r\n\t\tvar groupListData = [];\r\n\r\n\t\tgroupList.forEach((group) => {\r\n\t\t\tvar groupHeader = {};\r\n\t\t\tgroupHeader.level = 0;\r\n\t\t\tgroupHeader.rowCount = 0;\r\n\t\t\tgroupHeader.headerContent = \"\";\r\n\t\t\tvar childData = [];\r\n\r\n\t\t\tif (group.hasSubGroups) {\r\n\t\t\t\tchildData = this.pullGroupListData(group.groupList);\r\n\r\n\t\t\t\tgroupHeader.level = group.level;\r\n\t\t\t\tgroupHeader.rowCount = childData.length - group.groupList.length; // data length minus number of sub-headers\r\n\t\t\t\tgroupHeader.headerContent = group.generator(group.key, groupHeader.rowCount, group.rows, group);\r\n\r\n\t\t\t\tgroupListData.push(groupHeader);\r\n\t\t\t\tgroupListData = groupListData.concat(childData);\r\n\t\t\t}\r\n\r\n\t\t\telse {\r\n\t\t\t\tgroupHeader.level = group.level;\r\n\t\t\t\tgroupHeader.headerContent = group.generator(group.key, group.rows.length, group.rows, group);\r\n\t\t\t\tgroupHeader.rowCount = group.getRows().length;\r\n\r\n\t\t\t\tgroupListData.push(groupHeader);\r\n\r\n\t\t\t\tgroup.getRows().forEach((row) => {\r\n\t\t\t\t\tgroupListData.push(row.getData(\"data\"));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn groupListData\r\n\t}\r\n\r\n\tgetGroupedData(){\r\n\r\n\t\treturn this.pullGroupListData(this.groupList);\r\n\t}\r\n\r\n\tgetRowGroup(row){\r\n\t\tvar match = false;\r\n\r\n\t\tthis.groupList.forEach((group) => {\r\n\t\t\tvar result = group.getRowGroup(row);\r\n\r\n\t\t\tif(result){\r\n\t\t\t\tmatch = result;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn match;\r\n\t}\r\n\r\n\tcountGroups(){\r\n\t\treturn this.groupList.length;\r\n\t}\r\n\r\n\tgenerateGroups(rows){\r\n\t\tvar oldGroups = this.groups;\r\n\r\n\t\tthis.groups = {};\r\n\t\tthis.groupList = [];\r\n\r\n\t\tif(this.allowedValues && this.allowedValues[0]){\r\n\t\t\tthis.allowedValues[0].forEach((value) => {\r\n\t\t\t\tthis.createGroup(value, 0, oldGroups);\r\n\t\t\t});\r\n\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tthis.assignRowToExistingGroup(row, oldGroups);\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tthis.assignRowToGroup(row, oldGroups);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcreateGroup(groupID, level, oldGroups){\r\n\t\tvar groupKey = level + \"_\" + groupID,\r\n\t\tgroup;\r\n\r\n\t\toldGroups = oldGroups || [];\r\n\r\n\t\tgroup = new Group(this, false, level, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupKey]);\r\n\r\n\t\tthis.groups[groupKey] = group;\r\n\t\tthis.groupList.push(group);\r\n\t}\r\n\r\n\tassignRowToExistingGroup(row, oldGroups){\r\n\t\tvar groupID = this.groupIDLookups[0].func(row.getData()),\r\n\t\tgroupKey = \"0_\" + groupID;\r\n\r\n\t\tif(this.groups[groupKey]){\r\n\t\t\tthis.groups[groupKey].addRow(row);\r\n\t\t}\r\n\t}\r\n\r\n\tassignRowToGroup(row, oldGroups){\r\n\t\tvar groupID = this.groupIDLookups[0].func(row.getData()),\r\n\t\tnewGroupNeeded = !this.groups[\"0_\" + groupID];\r\n\r\n\t\tif(newGroupNeeded){\r\n\t\t\tthis.createGroup(groupID, 0, oldGroups);\r\n\t\t}\r\n\r\n\t\tthis.groups[\"0_\" + groupID].addRow(row);\r\n\r\n\t\treturn !newGroupNeeded;\r\n\t}\r\n\r\n\treassignRowToGroup(row){\r\n\t\tif(row.type === \"row\"){\r\n\t\t\tvar oldRowGroup = row.modules.group,\r\n\t\t\toldGroupPath = oldRowGroup.getPath(),\r\n\t\t\tnewGroupPath = this.getExpectedPath(row),\r\n\t\t\tsamePath = true;\r\n\r\n\t\t\t// figure out if new group path is the same as old group path\r\n\t\t\tvar samePath = (oldGroupPath.length == newGroupPath.length) && oldGroupPath.every((element, index) => {\r\n\t\t\t\treturn element === newGroupPath[index];\r\n\t\t\t});\r\n\r\n\t\t\t// refresh if they new path and old path aren't the same (aka the row's groupings have changed)\r\n\t\t\tif(!samePath) {\r\n\t\t\t\toldRowGroup.removeRow(row);\r\n\t\t\t\tthis.assignRowToGroup(row, this.groups);\r\n\t\t\t\tthis.refreshData(true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetExpectedPath(row) {\r\n\t\tvar groupPath = [], rowData = row.getData();\r\n\r\n\t\tthis.groupIDLookups.forEach((groupId) => {\r\n\t\t\tgroupPath.push(groupId.func(rowData));\r\n\t\t});\r\n\r\n\t\treturn groupPath;\r\n\t}\r\n\r\n\tupdateGroupRows(force){\r\n\t\tvar output = [],\r\n\t\toldRowCount;\r\n\r\n\t\tthis.groupList.forEach((group) => {\r\n\t\t\toutput = output.concat(group.getHeadersAndRows());\r\n\t\t});\r\n\r\n\t\tif(force){\r\n\t\t\tthis.refreshData(true, this.displayHandler);\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tscrollHeaders(left){\r\n\t\tif(this.table.options.renderHorizontal === \"virtual\"){\r\n\t\t\tleft -= this.table.columnManager.renderer.vDomPadLeft;\r\n\t\t}\r\n\r\n\t\tleft = left + \"px\";\r\n\r\n\t\tthis.groupList.forEach((group) => {\r\n\t\t\tgroup.scrollHeader(left);\r\n\t\t});\r\n\t}\r\n\r\n\tremoveGroup(group){\r\n\t\tvar groupKey = group.level + \"_\" + group.key,\r\n\t\tindex;\r\n\r\n\t\tif(this.groups[groupKey]){\r\n\t\t\tdelete this.groups[groupKey];\r\n\r\n\t\t\tindex = this.groupList.indexOf(group);\r\n\r\n\t\t\tif(index > -1){\r\n\t\t\t\tthis.groupList.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nGroupRows.moduleName = \"groupRows\";\r\n\r\nexport default GroupRows;","export default {\r\n\tcellEdit: function(action){\r\n\t\taction.component.setValueProcessData(action.data.oldValue);\r\n\t\taction.component.cellRendered();\r\n\t},\r\n\r\n\trowAdd: function(action){\r\n\t\taction.component.deleteActual();\r\n\t},\r\n\r\n\trowDelete: function(action){\r\n\t\tvar newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);\r\n\r\n\t\tif(this.table.options.groupBy && this.table.modExists(\"groupRows\")){\r\n\t\t\tthis.table.modules.groupRows.updateGroupRows(true);\r\n\t\t}\r\n\r\n\t\tthis._rebindRow(action.component, newRow);\r\n\t},\r\n\r\n\trowMove: function(action){\r\n\t\tthis.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posFrom], !action.data.after);\r\n\t\tthis.table.rowManager.redraw();\r\n\t},\r\n};","export default {\r\n\tcellEdit: function(action){\r\n\t\taction.component.setValueProcessData(action.data.newValue);\r\n\t\taction.component.cellRendered();\r\n\t},\r\n\r\n\trowAdd: function(action){\r\n\t\tvar newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);\r\n\r\n\t\tif(this.table.options.groupBy && this.table.modExists(\"groupRows\")){\r\n\t\t\tthis.table.modules.groupRows.updateGroupRows(true);\r\n\t\t}\r\n\r\n\t\tthis._rebindRow(action.component, newRow);\r\n\t},\r\n\r\n\trowDelete:function(action){\r\n\t\taction.component.deleteActual();\r\n\t},\r\n\r\n\trowMove: function(action){\r\n\t\tthis.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posTo], action.data.after);\r\n\t\tthis.table.rowManager.redraw();\r\n\t},\r\n};","import Module from '../../core/Module.js';\r\nimport Row from '../../core/row/Row.js';\r\nimport Cell from '../../core/cell/Cell.js';\r\n\r\nimport defaultUndoers from './defaults/undoers.js';\r\nimport defaultRedoers from './defaults/redoers.js';\r\n\r\nclass History extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.history = [];\r\n\t\tthis.index = -1;\r\n\r\n\t\tthis.registerTableOption(\"history\", false); //enable edit history\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.history){\r\n\t\t\tthis.subscribe(\"cell-value-updated\", this.cellUpdated.bind(this));\r\n\t\t\tthis.subscribe(\"cell-delete\", this.clearComponentHistory.bind(this));\r\n\t\t\tthis.subscribe(\"row-delete\", this.rowDeleted.bind(this));\r\n\t\t\tthis.subscribe(\"rows-wipe\", this.clear.bind(this));\r\n\t\t\tthis.subscribe(\"row-added\", this.rowAdded.bind(this));\r\n\t\t\tthis.subscribe(\"row-move\", this.rowMoved.bind(this));\r\n\t\t}\r\n\r\n\t\tthis.registerTableFunction(\"undo\", this.undo.bind(this));\r\n\t\tthis.registerTableFunction(\"redo\", this.redo.bind(this));\r\n\t\tthis.registerTableFunction(\"getHistoryUndoSize\", this.getHistoryUndoSize.bind(this));\r\n\t\tthis.registerTableFunction(\"getHistoryRedoSize\", this.getHistoryRedoSize.bind(this));\r\n\t\tthis.registerTableFunction(\"clearHistory\", this.clear.bind(this));\r\n\t}\r\n\r\n\trowMoved(from, to, after){\r\n\t\tthis.action(\"rowMove\", from, {posFrom:this.table.rowManager.getRowPosition(from), posTo:this.table.rowManager.getRowPosition(to), to:to, after:after});\r\n\t}\r\n\r\n\trowAdded(row, data, pos, index){\r\n\t\tthis.action(\"rowAdd\", row, {data:data, pos:pos, index:index});\r\n\t}\r\n\r\n\trowDeleted(row){\r\n\t\tvar index, rows;\r\n\r\n\t\tif(this.table.options.groupBy){\r\n\r\n\t\t\trows = row.getComponent().getGroup().rows\r\n\t\t\tindex = rows.indexOf(row);\r\n\r\n\t\t\tif(index){\r\n\t\t\t\tindex = rows[index-1];\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tindex = row.table.rowManager.getRowIndex(row);\r\n\r\n\t\t\tif(index){\r\n\t\t\t\tindex = row.table.rowManager.rows[index-1];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.action(\"rowDelete\", row, {data:row.getData(), pos:!index, index:index});\r\n\t}\r\n\r\n\tcellUpdated(cell){\r\n\t\tthis.action(\"cellEdit\", cell, {oldValue:cell.oldValue, newValue:cell.value});\r\n\t}\r\n\r\n\tclear(){\r\n\t\tthis.history = [];\r\n\t\tthis.index = -1;\r\n\t}\r\n\r\n\taction(type, component, data){\r\n\t\tthis.history = this.history.slice(0, this.index + 1);\r\n\r\n\t\tthis.history.push({\r\n\t\t\ttype:type,\r\n\t\t\tcomponent:component,\r\n\t\t\tdata:data,\r\n\t\t});\r\n\r\n\t\tthis.index ++;\r\n\t}\r\n\r\n\tgetHistoryUndoSize(){\r\n\t\treturn this.index + 1;\r\n\t}\r\n\r\n\tgetHistoryRedoSize(){\r\n\t\treturn this.history.length - (this.index + 1);\r\n\t}\r\n\r\n\tclearComponentHistory(component){\r\n\t\tvar index = this.history.findIndex(function(item){\r\n\t\t\treturn item.component === component;\r\n\t\t});\r\n\r\n\t\tif(index > -1){\r\n\t\t\tthis.history.splice(index, 1);\r\n\t\t\tif(index <= this.index){\r\n\t\t\t\tthis.index--;\r\n\t\t\t}\r\n\r\n\t\t\tthis.clearComponentHistory(component);\r\n\t\t}\r\n\t}\r\n\r\n\tundo(){\r\n\t\tif(this.index > -1){\r\n\t\t\tlet action = this.history[this.index];\r\n\r\n\t\t\tHistory.undoers[action.type].call(this, action);\r\n\r\n\t\t\tthis.index--;\r\n\r\n\t\t\tthis.dispatchExternal(\"historyUndo\", action.type, action.component.getComponent(), action.data);\r\n\r\n\t\t\treturn true;\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"History Undo Error - No more history to undo\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tredo(){\r\n\t\tif(this.history.length-1 > this.index){\r\n\r\n\t\t\tthis.index++;\r\n\r\n\t\t\tlet action = this.history[this.index];\r\n\r\n\t\t\tHistory.redoers[action.type].call(this, action);\r\n\r\n\t\t\tthis.dispatchExternal(\"historyRedo\", action.type, action.component.getComponent(), action.data);\r\n\r\n\t\t\treturn true;\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"History Redo Error - No more history to redo\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t//rebind rows to new element after deletion\r\n\t_rebindRow(oldRow, newRow){\r\n\t\tthis.history.forEach(function(action){\r\n\t\t\tif(action.component instanceof Row){\r\n\t\t\t\tif(action.component === oldRow){\r\n\t\t\t\t\taction.component = newRow;\r\n\t\t\t\t}\r\n\t\t\t}else if(action.component instanceof Cell){\r\n\t\t\t\tif(action.component.row === oldRow){\r\n\t\t\t\t\tvar field = action.component.column.getField();\r\n\r\n\t\t\t\t\tif(field){\r\n\t\t\t\t\t\taction.component = newRow.getCell(field);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nHistory.moduleName = \"history\";\r\n\r\n//load defaults\r\nHistory.undoers = defaultUndoers;\r\nHistory.redoers = defaultRedoers;\r\n\r\nexport default History;","import Module from '../../core/Module.js';\r\nimport Column from '../../core/column/Column.js';\r\n\r\nclass HtmlTableImport extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.fieldIndex = [];\r\n\t\tthis.hasIndex = false;\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.tableElementCheck();\r\n\t}\r\n\r\n\ttableElementCheck(){\r\n\t\tif(this.table.originalElement && this.table.originalElement.tagName === \"TABLE\"){\r\n\t\t\tthis.parseTable();\r\n\t\t}\r\n\t}\r\n\r\n\tparseTable(){\r\n\t\tvar element = this.table.originalElement,\r\n\t\toptions = this.table.options,\r\n\t\tcolumns = options.columns,\r\n\t\theaders = element.getElementsByTagName(\"th\"),\r\n\t\trows = element.getElementsByTagName(\"tbody\")[0],\r\n\t\tdata = [],\r\n\t\tnewTable;\r\n\r\n\t\tthis.hasIndex = false;\r\n\r\n\t\tthis.dispatchExternal(\"htmlImporting\");\r\n\r\n\t\trows = rows ? rows.getElementsByTagName(\"tr\") : [];\r\n\r\n\t\t//check for tablator inline options\r\n\t\tthis._extractOptions(element, options);\r\n\r\n\t\tif(headers.length){\r\n\t\t\tthis._extractHeaders(headers, rows);\r\n\t\t}else{\r\n\t\t\tthis._generateBlankHeaders(headers, rows);\r\n\t\t}\r\n\r\n\t\t//iterate through table rows and build data set\r\n\t\tfor(var index = 0; index < rows.length; index++){\r\n\t\t\tvar row = rows[index],\r\n\t\t\tcells = row.getElementsByTagName(\"td\"),\r\n\t\t\titem = {};\r\n\r\n\t\t\t//create index if the dont exist in table\r\n\t\t\tif(!this.hasIndex){\r\n\t\t\t\titem[options.index] = index;\r\n\t\t\t}\r\n\r\n\t\t\tfor(var i = 0; i < cells.length; i++){\r\n\t\t\t\tvar cell = cells[i];\r\n\t\t\t\tif(typeof this.fieldIndex[i] !== \"undefined\"){\r\n\t\t\t\t\titem[this.fieldIndex[i]] = cell.innerHTML;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//add row data to item\r\n\t\t\tdata.push(item);\r\n\t\t}\r\n\r\n\t\toptions.data = data;\r\n\r\n\t\tthis.dispatchExternal(\"htmlImported\");\r\n\t}\r\n\r\n\t//extract tabulator attribute options\r\n\t_extractOptions(element, options, defaultOptions){\r\n\t\tvar attributes = element.attributes;\r\n\t\tvar optionsArr = defaultOptions ? Object.assign([], defaultOptions) : Object.keys(options);\r\n\t\tvar optionsList = {};\r\n\r\n\t\toptionsArr.forEach((item) => {\r\n\t\t\toptionsList[item.toLowerCase()] = item;\r\n\t\t});\r\n\r\n\t\tfor(var index in attributes){\r\n\t\t\tvar attrib = attributes[index];\r\n\t\t\tvar name;\r\n\r\n\t\t\tif(attrib && typeof attrib == \"object\" && attrib.name && attrib.name.indexOf(\"tabulator-\") === 0){\r\n\t\t\t\tname = attrib.name.replace(\"tabulator-\", \"\");\r\n\r\n\t\t\t\tif(typeof optionsList[name] !== \"undefined\"){\r\n\t\t\t\t\toptions[optionsList[name]] = this._attribValue(attrib.value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//get value of attribute\r\n\t_attribValue(value){\r\n\t\tif(value === \"true\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif(value === \"false\"){\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\t//find column if it has already been defined\r\n\t_findCol(title){\r\n\t\tvar match = this.table.options.columns.find((column) => {\r\n\t\t\treturn column.title === title;\r\n\t\t});\r\n\r\n\t\treturn match || false;\r\n\t}\r\n\r\n\t//extract column from headers\r\n\t_extractHeaders(headers, rows){\r\n\t\tfor(var index = 0; index < headers.length; index++){\r\n\t\t\tvar header = headers[index],\r\n\t\t\texists = false,\r\n\t\t\tcol = this._findCol(header.textContent),\r\n\t\t\twidth, attributes;\r\n\r\n\t\t\tif(col){\r\n\t\t\t\texists = true;\r\n\t\t\t}else{\r\n\t\t\t\tcol = {title:header.textContent.trim()};\r\n\t\t\t}\r\n\r\n\t\t\tif(!col.field) {\r\n\t\t\t\tcol.field = header.textContent.trim().toLowerCase().replace(\" \", \"_\");\r\n\t\t\t}\r\n\r\n\t\t\twidth = header.getAttribute(\"width\");\r\n\r\n\t\t\tif(width && !col.width)\t{\r\n\t\t\t\tcol.width = width;\r\n\t\t\t}\r\n\r\n\t\t\t//check for tablator inline options\r\n\t\t\tattributes = header.attributes;\r\n\r\n\t\t\t// //check for tablator inline options\r\n\t\t\tthis._extractOptions(header, col, Column.prototype.defaultOptionList);\r\n\r\n\t\t\tthis.fieldIndex[index] = col.field;\r\n\r\n\t\t\tif(col.field == this.table.options.index){\r\n\t\t\t\tthis.hasIndex = true;\r\n\t\t\t}\r\n\r\n\t\t\tif(!exists){\r\n\t\t\t\tthis.table.options.columns.push(col);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t//generate blank headers\r\n\t_generateBlankHeaders(headers, rows){\r\n\t\tfor(var index = 0; index < headers.length; index++){\r\n\t\t\tvar header = headers[index],\r\n\t\t\tcol = {title:\"\", field:\"col\" + index};\r\n\r\n\t\t\tthis.fieldIndex[index] = col.field;\r\n\r\n\t\t\tvar width = header.getAttribute(\"width\");\r\n\r\n\t\t\tif(width){\r\n\t\t\t\tcol.width = width;\r\n\t\t\t}\r\n\r\n\t\t\tthis.table.options.columns.push(col);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nHtmlTableImport.moduleName = \"htmlTableImport\";\r\n\r\nexport default HtmlTableImport;","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nimport Cell from '../../core/cell/Cell';\r\nimport Column from '../../core/column/Column';\r\n\r\nclass Interaction extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.eventMap = {\r\n\t\t\t//row events\r\n\t\t\trowClick:\"row-click\",\r\n\t\t\trowDblClick:\"row-dblclick\",\r\n\t\t\trowContext:\"row-contextmenu\",\r\n\t\t\trowMouseEnter:\"row-mouseenter\",\r\n\t\t\trowMouseLeave:\"row-mouseleave\",\r\n\t\t\trowMouseOver:\"row-mouseover\",\r\n\t\t\trowMouseOut:\"row-mouseout\",\r\n\t\t\trowMouseMove:\"row-mousemove\",\r\n\t\t\trowTap:\"row\",\r\n\t\t\trowDblTap:\"row\",\r\n\t\t\trowTapHold:\"row\",\r\n\r\n\t\t\t//cell events\r\n\t\t\tcellClick:\"cell-click\",\r\n\t\t\tcellDblClick:\"cell-dblclick\",\r\n\t\t\tcellContext:\"cell-contextmenu\",\r\n\t\t\tcellMouseEnter:\"cell-mouseenter\",\r\n\t\t\tcellMouseLeave:\"cell-mouseleave\",\r\n\t\t\tcellMouseOver:\"cell-mouseover\",\r\n\t\t\tcellMouseOut:\"cell-mouseout\",\r\n\t\t\tcellMouseMove:\"cell-mousemove\",\r\n\t\t\tcellTap:\"cell\",\r\n\t\t\tcellDblTap:\"cell\",\r\n\t\t\tcellTapHold:\"cell\",\r\n\r\n\t\t\t//column header events\r\n\t\t\theaderClick:\"column-click\",\r\n\t\t\theaderDblClick:\"column-dblclick\",\r\n\t\t\theaderContext:\"column-contextmenu\",\r\n\t\t\theaderMouseEnter:\"column-mouseenter\",\r\n\t\t\theaderMouseLeave:\"column-mouseleave\",\r\n\t\t\theaderMouseOver:\"column-mouseover\",\r\n\t\t\theaderMouseOut:\"column-mouseout\",\r\n\t\t\theaderMouseMove:\"column-mousemove\",\r\n\t\t\theaderTap:\"column\",\r\n\t\t\theaderDblTap:\"column\",\r\n\t\t\theaderTapHold:\"column\",\r\n\r\n\t\t\t//group header\r\n\t\t\tgroupClick:\"group-click\",\r\n\t\t\tgroupDblClick:\"group-dblclick\",\r\n\t\t\tgroupContext:\"group-contextmenu\",\r\n\t\t\tgroupMouseEnter:\"group-mouseenter\",\r\n\t\t\tgroupMouseLeave:\"group-mouseleave\",\r\n\t\t\tgroupMouseOver:\"group-mouseover\",\r\n\t\t\tgroupMouseOut:\"group-mouseout\",\r\n\t\t\tgroupMouseMove:\"group-mousemove\",\r\n\t\t\tgroupTap:\"group\",\r\n\t\t\tgroupDblTap:\"group\",\r\n\t\t\tgroupTapHold:\"group\",\r\n\t\t}\r\n\r\n\t\tthis.subscribers = {};\r\n\r\n\t\tthis.touchSubscribers = {};\r\n\r\n\t\tthis.columnSubscribers = {};\r\n\r\n\t\tthis.touchWatchers = {\r\n\t\t\trow:{\r\n\t\t\t\ttap:null,\r\n\t\t\t\ttapDbl:null,\r\n\t\t\t\ttapHold:null,\r\n\t\t\t},\r\n\t\t\tcell:{\r\n\t\t\t\ttap:null,\r\n\t\t\t\ttapDbl:null,\r\n\t\t\t\ttapHold:null,\r\n\t\t\t},\r\n\t\t\tcolumn:{\r\n\t\t\t\ttap:null,\r\n\t\t\t\ttapDbl:null,\r\n\t\t\t\ttapHold:null,\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.registerColumnOption(\"headerClick\");\r\n\t\tthis.registerColumnOption(\"headerDblClick\");\r\n\t\tthis.registerColumnOption(\"headerContext\");\r\n\t\tthis.registerColumnOption(\"headerMouseEnter\");\r\n\t\tthis.registerColumnOption(\"headerMouseLeave\");\r\n\t\tthis.registerColumnOption(\"headerMouseOver\");\r\n\t\tthis.registerColumnOption(\"headerMouseOut\");\r\n\t\tthis.registerColumnOption(\"headerMouseMove\");\r\n\t\tthis.registerColumnOption(\"headerTap\");\r\n\t\tthis.registerColumnOption(\"headerDblTap\");\r\n\t\tthis.registerColumnOption(\"headerTapHold\");\r\n\r\n\t\tthis.registerColumnOption(\"cellClick\");\r\n\t\tthis.registerColumnOption(\"cellDblClick\");\r\n\t\tthis.registerColumnOption(\"cellContext\");\r\n\t\tthis.registerColumnOption(\"cellMouseEnter\");\r\n\t\tthis.registerColumnOption(\"cellMouseLeave\");\r\n\t\tthis.registerColumnOption(\"cellMouseOver\");\r\n\t\tthis.registerColumnOption(\"cellMouseOut\");\r\n\t\tthis.registerColumnOption(\"cellMouseMove\");\r\n\t\tthis.registerColumnOption(\"cellTap\");\r\n\t\tthis.registerColumnOption(\"cellDblTap\");\r\n\t\tthis.registerColumnOption(\"cellTapHold\");\r\n\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.initializeExternalEvents();\r\n\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this))\r\n\t\tthis.subscribe(\"cell-dblclick\", this.cellContentsSelectionFixer.bind(this))\r\n\t}\r\n\r\n\tcellContentsSelectionFixer(e, cell){\r\n\t\tif(this.table.modExists(\"edit\")){\r\n\t\t\tif (this.table.modules.edit.currentCell === this){\r\n\t\t\t\treturn; //prevent instant selection of editor content\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\ttry{\r\n\t\t\tif (document.selection) { // IE\r\n\t\t\t\tvar range = document.body.createTextRange();\r\n\t\t\t\trange.moveToElementText(this.element);\r\n\t\t\t\trange.select();\r\n\t\t\t} else if (window.getSelection) {\r\n\t\t\t\tvar range = document.createRange();\r\n\t\t\t\trange.selectNode(this.element);\r\n\t\t\t\twindow.getSelection().removeAllRanges();\r\n\t\t\t\twindow.getSelection().addRange(range);\r\n\t\t\t}\r\n\t\t}catch(e){}\r\n\t}\r\n\r\n\tinitializeExternalEvents(){\r\n\t\tfor(let key in this.eventMap){\r\n\t\t\tthis.subscriptionChangeExternal(key, this.subscriptionChanged.bind(this, key))\r\n\t\t}\r\n\t}\r\n\r\n\tsubscriptionChanged(key, added){\r\n\t\tvar index;\r\n\r\n\t\tif(added){\r\n\t\t\tif(!this.subscribers[key]){\r\n\t\t\t\tif(this.eventMap[key].includes(\"-\")){\r\n\t\t\t\t\tthis.subscribers[key] = this.handle.bind(this, key);\r\n\t\t\t\t\tthis.subscribe(this.eventMap[key], this.subscribers[key]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.subscribeTouchEvents(key);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(this.eventMap[key].includes(\"-\")){\r\n\t\t\t\tif(this.subscribers[key] && !this.columnSubscribers[key] && !this.subscribedExternal(key)){\r\n\t\t\t\t\tthis.unsubscribe(this.eventMap[key], this.subscribers[key]);\r\n\t\t\t\t\tdelete this.subscribers[key];\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.unsubscribeTouchEvents(key);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tsubscribeTouchEvents(key){\r\n\t\tvar type = this.eventMap[key];\r\n\r\n\t\tif(!this.touchSubscribers[type + \"-touchstart\"]){\r\n\t\t\tthis.touchSubscribers[type + \"-touchstart\"] = this.handleTouch.bind(this, type, \"start\");\r\n\t\t\tthis.touchSubscribers[type + \"-touchend\"] = this.handleTouch.bind(this, type, \"end\");\r\n\r\n\t\t\tthis.subscribe(type + \"-touchstart\", this.touchSubscribers[type + \"-touchstart\"]);\r\n\t\t\tthis.subscribe(type + \"-touchend\", this.touchSubscribers[type + \"-touchend\"]);\r\n\t\t}\r\n\r\n\t\tthis.subscribers[key] = true;\r\n\t}\r\n\r\n\tunsubscribeTouchEvents(key){\r\n\t\tvar notouch = true,\r\n\t\ttype = this.eventMap[key];\r\n\r\n\t\tif(this.subscribers[key] && !this.subscribedExternal(key)){\r\n\t\t\tdelete this.subscribers[key];\r\n\r\n\t\t\tfor(let i in this.eventMap){\r\n\t\t\t\tif(this.eventMap[i] === type){\r\n\t\t\t\t\tif(this.subscribers[i]){\r\n\t\t\t\t\t\tnotouch = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(notouch){\r\n\t\t\t\tthis.unsubscribe(type + \"-touchstart\", this.touchSubscribers[type + \"-touchstart\"]);\r\n\t\t\t\tthis.unsubscribe(type + \"-touchend\", this.touchSubscribers[type + \"-touchend\"]);\r\n\r\n\t\t\t\tdelete this.touchSubscribers[type + \"-touchstart\"];\r\n\t\t\t\tdelete this.touchSubscribers[type + \"-touchend\"];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeColumn(column){\r\n\t\tvar def = column.definition;\r\n\r\n\t\tfor(let key in this.eventMap){\r\n\t\t\tif(def[key]){\r\n\t\t\t\tthis.subscriptionChanged(key, true);\r\n\r\n\t\t\t\tif(!this.columnSubscribers[key]){\r\n\t\t\t\t\tthis.columnSubscribers[key] = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.columnSubscribers[key].push(column);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thandle(action, e, component){\r\n\t\tthis.dispatchEvent(action, e, component);\r\n\t}\r\n\r\n\thandleTouch(type, action, e, component){\r\n\t\tvar watchers = this.touchWatchers[type];\r\n\r\n\t\tif(type === \"column\"){\r\n\t\t\ttype = \"header\";\r\n\t\t}\r\n\r\n\t\tswitch(action){\r\n\t\t\tcase \"start\":\r\n\t\t\twatchers.tap = true;\r\n\r\n\t\t\tclearTimeout(watchers.tapHold);\r\n\r\n\t\t\twatchers.tapHold = setTimeout(() => {\r\n\t\t\t\tclearTimeout(watchers.tapHold);\r\n\t\t\t\twatchers.tapHold = null;\r\n\r\n\t\t\t\twatchers.tap = null;\r\n\t\t\t\tclearTimeout(watchers.tapDbl);\r\n\t\t\t\twatchers.tapDbl = null;\r\n\r\n\t\t\t\tthis.dispatchEvent(type + \"TapHold\", e, component);\r\n\t\t\t}, 1000);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"end\":\r\n\t\t\tif(watchers.tap){\r\n\r\n\t\t\t\twatchers.tap = null;\r\n\t\t\t\tthis.dispatchEvent(type + \"Tap\", e, component);\r\n\t\t\t}\r\n\r\n\t\t\tif(watchers.tapDbl){\r\n\t\t\t\tclearTimeout(watchers.tapDbl);\r\n\t\t\t\twatchers.tapDbl = null;\r\n\r\n\t\t\t\tthis.dispatchEvent(type + \"DblTap\", e, component);\r\n\t\t\t}else{\r\n\t\t\t\twatchers.tapDbl = setTimeout(() => {\r\n\t\t\t\t\tclearTimeout(watchers.tapDbl);\r\n\t\t\t\t\twatchers.tapDbl = null;\r\n\t\t\t\t}, 300);\r\n\t\t\t}\r\n\r\n\t\t\tclearTimeout(watchers.tapHold);\r\n\t\t\twatchers.tapHold = null;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tdispatchEvent(action, e, component){\r\n\t\tvar componentObj = component.getComponent(),\r\n\t\tcallback;\r\n\r\n\t\tif(this.columnSubscribers[action]){\r\n\r\n\t\t\tif(component instanceof Cell){\r\n\t\t\t\tcallback = component.column.definition[action];\r\n\t\t\t}else if(component instanceof Column){\r\n\t\t\t\tcallback = component.definition[action];\r\n\t\t\t}\r\n\r\n\t\t\tif(callback){\r\n\t\t\t\tcallback(e, componentObj);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.dispatchExternal(action, e, componentObj);\r\n\t}\r\n}\r\n\r\nInteraction.moduleName = \"interaction\";\r\n\r\nexport default Interaction;","export default {\r\n\tnavPrev:\"shift + 9\",\r\n\tnavNext:9,\r\n\tnavUp:38,\r\n\tnavDown:40,\r\n\tscrollPageUp:33,\r\n\tscrollPageDown:34,\r\n\tscrollToStart:36,\r\n\tscrollToEnd:35,\r\n\tundo:\"ctrl + 90\",\r\n\tredo:\"ctrl + 89\",\r\n\tcopyToClipboard:\"ctrl + 67\",\r\n};","export default {\r\n\tkeyBlock:function(e){\r\n\t\te.stopPropagation();\r\n\t\te.preventDefault();\r\n\t},\r\n\tscrollPageUp:function(e){\r\n\t\tvar rowManager = this.table.rowManager,\r\n\t\tnewPos = rowManager.scrollTop - rowManager.element.clientHeight,\r\n\t\tscrollMax = rowManager.element.scrollHeight;\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tif(rowManager.displayRowsCount){\r\n\t\t\tif(newPos >= 0){\r\n\t\t\t\trowManager.element.scrollTop = newPos;\r\n\t\t\t}else{\r\n\t\t\t\trowManager.scrollToRow(rowManager.getDisplayRows()[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.table.element.focus();\r\n\t},\r\n\tscrollPageDown:function(e){\r\n\t\tvar rowManager = this.table.rowManager,\r\n\t\tnewPos = rowManager.scrollTop + rowManager.element.clientHeight,\r\n\t\tscrollMax = rowManager.element.scrollHeight;\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tif(rowManager.displayRowsCount){\r\n\t\t\tif(newPos <= scrollMax){\r\n\t\t\t\trowManager.element.scrollTop = newPos;\r\n\t\t\t}else{\r\n\t\t\t\trowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.table.element.focus();\r\n\r\n\t},\r\n\tscrollToStart:function(e){\r\n\t\tvar rowManager = this.table.rowManager;\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tif(rowManager.displayRowsCount){\r\n\t\t\trowManager.scrollToRow(rowManager.getDisplayRows()[0]);\r\n\t\t}\r\n\r\n\t\tthis.table.element.focus();\r\n\t},\r\n\tscrollToEnd:function(e){\r\n\t\tvar rowManager = this.table.rowManager;\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tif(rowManager.displayRowsCount){\r\n\t\t\trowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);\r\n\t\t}\r\n\r\n\t\tthis.table.element.focus();\r\n\t},\r\n\tnavPrev:function(e){\r\n\t\tthis.dispatch(\"keybinding-nav-prev\", e);\r\n\t},\r\n\r\n\tnavNext:function(e){\r\n\t\tthis.dispatch(\"keybinding-nav-next\", e);\r\n\t},\r\n\r\n\tnavLeft:function(e){\r\n\t\tthis.dispatch(\"keybinding-nav-left\", e);\r\n\t},\r\n\r\n\tnavRight:function(e){\r\n\t\tthis.dispatch(\"keybinding-nav-right\", e);\r\n\t},\r\n\r\n\tnavUp:function(e){\r\n\t\tthis.dispatch(\"keybinding-nav-up\", e);\r\n\t},\r\n\r\n\tnavDown:function(e){\r\n\t\tthis.dispatch(\"keybinding-nav-down\", e);\r\n\t},\r\n\r\n\tundo:function(e){\r\n\t\tvar cell = false;\r\n\t\tif(this.table.options.history && this.table.modExists(\"history\") && this.table.modExists(\"edit\")){\r\n\r\n\t\t\tcell = this.table.modules.edit.currentCell;\r\n\r\n\t\t\tif(!cell){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.table.modules.history.undo();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tredo:function(e){\r\n\t\tvar cell = false;\r\n\t\tif(this.table.options.history && this.table.modExists(\"history\") && this.table.modExists(\"edit\")){\r\n\r\n\t\t\tcell = this.table.modules.edit.currentCell;\r\n\r\n\t\t\tif(!cell){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.table.modules.history.redo();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tcopyToClipboard:function(e){\r\n\t\tif(!this.table.modules.edit.currentCell){\r\n\t\t\tif(this.table.modExists(\"clipboard\", true)){\r\n\t\t\t\tthis.table.modules.clipboard.copy(false, true);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultBindings from './defaults/bindings.js';\r\nimport defaultActions from './defaults/actions.js';\r\n\r\nclass Keybindings extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.watchKeys = null;\r\n\t\tthis.pressedKeys = null;\r\n\t\tthis.keyupBinding = false;\r\n\t\tthis.keydownBinding = false;\r\n\r\n\t\tthis.registerTableOption(\"keybindings\", []); //array for keybindings\r\n\t\tthis.registerTableOption(\"tabEndNewRow\", false); //create new row when tab to end of table\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tvar bindings = this.table.options.keybindings,\r\n\t\tmergedBindings = {};\r\n\r\n\t\tthis.watchKeys = {};\r\n\t\tthis.pressedKeys = [];\r\n\r\n\t\tif(bindings !== false){\r\n\r\n\t\t\tfor(let key in Keybindings.bindings){\r\n\t\t\t\tmergedBindings[key] = Keybindings.bindings[key];\r\n\t\t\t}\r\n\r\n\t\t\tif(Object.keys(bindings).length){\r\n\r\n\t\t\t\tfor(let key in bindings){\r\n\t\t\t\t\tmergedBindings[key] = bindings[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.mapBindings(mergedBindings);\r\n\t\t\tthis.bindEvents();\r\n\t\t}\r\n\r\n\t\tthis.subscribe(\"table-destroy\", this.clearBindings.bind(this));\r\n\t}\r\n\r\n\tmapBindings(bindings){\r\n\t\tfor(let key in bindings){\r\n\t\t\tif(Keybindings.actions[key]){\r\n\t\t\t\tif(bindings[key]){\r\n\t\t\t\t\tif(typeof bindings[key] !== \"object\"){\r\n\t\t\t\t\t\tbindings[key] = [bindings[key]];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbindings[key].forEach((binding) => {\r\n\t\t\t\t\t\tthis.mapBinding(key, binding);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Key Binding Error - no such action:\", key);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tmapBinding(action, symbolsList){\r\n\t\tvar binding = {\r\n\t\t\taction: Keybindings.actions[action],\r\n\t\t\tkeys: [],\r\n\t\t\tctrl: false,\r\n\t\t\tshift: false,\r\n\t\t\tmeta: false,\r\n\t\t};\r\n\r\n\t\tvar symbols = symbolsList.toString().toLowerCase().split(\" \").join(\"\").split(\"+\");\r\n\r\n\t\tsymbols.forEach((symbol) => {\r\n\t\t\tswitch(symbol){\r\n\t\t\t\tcase \"ctrl\":\r\n\t\t\t\tbinding.ctrl = true;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"shift\":\r\n\t\t\t\tbinding.shift = true;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"meta\":\r\n\t\t\t\tbinding.meta = true;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\tsymbol = parseInt(symbol);\r\n\t\t\t\tbinding.keys.push(symbol);\r\n\r\n\t\t\t\tif(!this.watchKeys[symbol]){\r\n\t\t\t\t\tthis.watchKeys[symbol] = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.watchKeys[symbol].push(binding);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tbindEvents(){\r\n\t\tvar self = this;\r\n\r\n\t\tthis.keyupBinding = function(e){\r\n\t\t\tvar code = e.keyCode;\r\n\t\t\tvar bindings = self.watchKeys[code];\r\n\r\n\t\t\tif(bindings){\r\n\r\n\t\t\t\tself.pressedKeys.push(code);\r\n\r\n\t\t\t\tbindings.forEach(function(binding){\r\n\t\t\t\t\tself.checkBinding(e, binding);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.keydownBinding = function(e){\r\n\t\t\tvar code = e.keyCode;\r\n\t\t\tvar bindings = self.watchKeys[code];\r\n\r\n\t\t\tif(bindings){\r\n\r\n\t\t\t\tvar index = self.pressedKeys.indexOf(code);\r\n\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\tself.pressedKeys.splice(index, 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.table.element.addEventListener(\"keydown\", this.keyupBinding);\r\n\r\n\t\tthis.table.element.addEventListener(\"keyup\", this.keydownBinding);\r\n\t}\r\n\r\n\tclearBindings(){\r\n\t\tif(this.keyupBinding){\r\n\t\t\tthis.table.element.removeEventListener(\"keydown\", this.keyupBinding);\r\n\t\t}\r\n\r\n\t\tif(this.keydownBinding){\r\n\t\t\tthis.table.element.removeEventListener(\"keyup\", this.keydownBinding);\r\n\t\t}\r\n\t}\r\n\r\n\tcheckBinding(e, binding){\r\n\t\tvar match = true;\r\n\r\n\t\tif(e.ctrlKey == binding.ctrl && e.shiftKey == binding.shift && e.metaKey == binding.meta){\r\n\t\t\tbinding.keys.forEach((key) => {\r\n\t\t\t\tvar index = this.pressedKeys.indexOf(key);\r\n\r\n\t\t\t\tif(index == -1){\r\n\t\t\t\t\tmatch = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(match){\r\n\t\t\t\tbinding.action.call(this, e);\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nKeybindings.moduleName = \"keybindings\";\r\n\r\n//load defaults\r\nKeybindings.bindings = defaultBindings;\r\nKeybindings.actions = defaultActions;\r\n\r\nexport default Keybindings;","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nclass Menu extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.menuElements = [];\r\n\t\tthis.blurEvent = this.hideMenu.bind(this);\r\n\t\tthis.escEvent = this.escMenu.bind(this);\r\n\t\tthis.nestedMenuBlock = false;\r\n\t\tthis.positionReversedX = false;\r\n\r\n\t\tthis.registerTableOption(\"rowContextMenu\", false);\r\n\t\tthis.registerTableOption(\"rowClickMenu\", false);\r\n\t\tthis.registerTableOption(\"groupContextMenu\", false);\r\n\t\tthis.registerTableOption(\"groupClickMenu\", false);\r\n\r\n\t\tthis.registerColumnOption(\"headerContextMenu\");\r\n\t\tthis.registerColumnOption(\"headerMenu\");\r\n\t\tthis.registerColumnOption(\"contextMenu\");\r\n\t\tthis.registerColumnOption(\"clickMenu\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"cell-layout\", this.layoutCell.bind(this));\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t\tthis.subscribe(\"row-init\", this.initializeRow.bind(this));\r\n\t}\r\n\r\n\tlayoutCell(cell){\r\n\t\tif(cell.column.definition.contextMenu || cell.column.definition.clickMenu){\r\n\t\t\tthis.initializeCell(cell);\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeColumn(column){\r\n\t\tvar def = column.definition;\r\n\r\n\t\tif(def.headerContextMenu || def.headerClickMenu || def.headerMenu){\r\n\t\t\tthis.initializeColumnHeader(column);\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeColumnHeader(column){\r\n\t\tvar headerMenuEl;\r\n\r\n\t\tif(column.definition.headerContextMenu){\r\n\t\t\tcolumn.getElement().addEventListener(\"contextmenu\", this.LoadMenuEvent.bind(this, column, column.definition.headerContextMenu));\r\n\t\t\tthis.tapHold(column, column.definition.headerContextMenu);\r\n\t\t}\r\n\r\n\t\t// if(column.definition.headerClickMenu){\r\n\t\t// \tcolumn.getElement().addEventListener(\"click\", this.LoadMenuEvent.bind(this, column, column.definition.headerClickMenu));\r\n\t\t// }\r\n\r\n\t\tif(column.definition.headerMenu){\r\n\r\n\t\t\theaderMenuEl = document.createElement(\"span\");\r\n\t\t\theaderMenuEl.classList.add(\"tabulator-header-menu-button\");\r\n\t\t\theaderMenuEl.innerHTML = \"⋮\";\r\n\r\n\t\t\theaderMenuEl.addEventListener(\"click\", (e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.LoadMenuEvent(column, column.definition.headerMenu, e);\r\n\t\t\t});\r\n\r\n\t\t\tcolumn.titleElement.insertBefore(headerMenuEl, column.titleElement.firstChild);\r\n\t\t}\r\n\t}\r\n\r\n\tLoadMenuEvent(component, menu, e){\r\n\t\tmenu = typeof menu == \"function\" ? menu.call(this.table, component.getComponent(), e) : menu;\r\n\r\n\t\t// if(component instanceof Cell){\r\n\t\t// \te.stopImmediatePropagation();\r\n\t\t// }\r\n\r\n\t\tthis.loadMenu(e, component, menu);\r\n\t}\r\n\r\n\ttapHold(component, menu){\r\n\t\tvar element = component.getElement(),\r\n\t\ttapHold = null,\r\n\t\tloaded = false;\r\n\r\n\t\telement.addEventListener(\"touchstart\", (e) => {\r\n\t\t\tclearTimeout(tapHold);\r\n\t\t\tloaded = false;\r\n\r\n\t\t\ttapHold = setTimeout(() => {\r\n\t\t\t\tclearTimeout(tapHold);\r\n\t\t\t\ttapHold = null;\r\n\t\t\t\tloaded = true;\r\n\r\n\t\t\t\tthis.LoadMenuEvent(component, menu, e);\r\n\t\t\t}, 1000);\r\n\r\n\t\t}, {passive: true});\r\n\r\n\t\telement.addEventListener(\"touchend\", (e) => {\r\n\t\t\tclearTimeout(tapHold);\r\n\t\t\ttapHold = null;\r\n\r\n\t\t\tif(loaded){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinitializeCell(cell){\r\n\t\tif(cell.column.definition.contextMenu){\r\n\t\t\tcell.getElement(true).addEventListener(\"contextmenu\", this.LoadMenuEvent.bind(this, cell, cell.column.definition.contextMenu));\r\n\t\t\tthis.tapHold(cell, cell.column.definition.contextMenu);\r\n\t\t}\r\n\r\n\t\tif(cell.column.definition.clickMenu){\r\n\t\t\tcell.getElement(true).addEventListener(\"click\", this.LoadMenuEvent.bind(this, cell, cell.column.definition.clickMenu));\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeRow(row){\r\n\t\tif(this.table.options.rowContextMenu){\r\n\t\t\trow.getElement().addEventListener(\"contextmenu\", this.LoadMenuEvent.bind(this, row, this.table.options.rowContextMenu));\r\n\t\t\tthis.tapHold(row, this.table.options.rowContextMenu);\r\n\t\t}\r\n\r\n\t\tif(this.table.options.rowClickMenu){\r\n\t\t\trow.getElement().addEventListener(\"click\", this.LoadMenuEvent.bind(this, row, this.table.options.rowClickMenu));\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeGroup (group){\r\n\t\tif(this.table.options.groupContextMenu){\r\n\t\t\tgroup.getElement().addEventListener(\"contextmenu\", this.LoadMenuEvent.bind(this, group, this.table.options.groupContextMenu));\r\n\t\t\tthis.tapHold(group, this.table.options.groupContextMenu);\r\n\t\t}\r\n\r\n\t\tif(this.table.options.groupClickMenu){\r\n\t\t\tgroup.getElement().addEventListener(\"click\", this.LoadMenuEvent.bind(this, group, this.table.options.groupClickMenu));\r\n\t\t}\r\n\t}\r\n\r\n\tloadMenu(e, component, menu, parentEl){\r\n\r\n\t\tvar touch = !(e instanceof MouseEvent);\r\n\r\n\t\tvar menuEl = document.createElement(\"div\");\r\n\t\tmenuEl.classList.add(\"tabulator-menu\");\r\n\r\n\t\tif(!touch){\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\r\n\t\t//abort if no menu set\r\n\t\tif(!menu || !menu.length){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(!parentEl){\r\n\t\t\tif(this.nestedMenuBlock){\r\n\t\t\t\t//abort if child menu already open\r\n\t\t\t\tif(this.isOpen()){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.nestedMenuBlock = setTimeout(() => {\r\n\t\t\t\t\tthis.nestedMenuBlock = false;\r\n\t\t\t\t}, 100)\r\n\t\t\t}\r\n\r\n\t\t\tthis.hideMenu();\r\n\t\t\tthis.menuElements = [];\r\n\t\t}\r\n\r\n\t\tmenu.forEach((item) => {\r\n\t\t\tvar itemEl = document.createElement(\"div\"),\r\n\t\t\tlabel = item.label,\r\n\t\t\tdisabled = item.disabled;\r\n\r\n\t\t\tif(item.separator){\r\n\t\t\t\titemEl.classList.add(\"tabulator-menu-separator\");\r\n\t\t\t}else{\r\n\t\t\t\titemEl.classList.add(\"tabulator-menu-item\");\r\n\r\n\t\t\t\tif(typeof label == \"function\"){\r\n\t\t\t\t\tlabel = label.call(this.table, component.getComponent());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(label instanceof Node){\r\n\t\t\t\t\titemEl.appendChild(label);\r\n\t\t\t\t}else{\r\n\t\t\t\t\titemEl.innerHTML = label;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof disabled == \"function\"){\r\n\t\t\t\t\tdisabled = disabled.call(this.table, component.getComponent());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(disabled){\r\n\t\t\t\t\titemEl.classList.add(\"tabulator-menu-item-disabled\");\r\n\t\t\t\t\titemEl.addEventListener(\"click\", (e) => {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(item.menu && item.menu.length){\r\n\t\t\t\t\t\titemEl.addEventListener(\"click\", (e) => {\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\tthis.hideOldSubMenus(menuEl);\r\n\t\t\t\t\t\t\tthis.loadMenu(e, component, item.menu, itemEl);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(item.action){\r\n\t\t\t\t\t\t\titemEl.addEventListener(\"click\", (e) => {\r\n\t\t\t\t\t\t\t\titem.action(e, component.getComponent());\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(item.menu && item.menu.length){\r\n\t\t\t\t\titemEl.classList.add(\"tabulator-menu-item-submenu\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tmenuEl.appendChild(itemEl);\r\n\t\t});\r\n\r\n\t\tmenuEl.addEventListener(\"click\", (e) => {\r\n\t\t\tthis.hideMenu();\r\n\t\t});\r\n\r\n\t\tthis.menuElements.push(menuEl);\r\n\t\tthis.positionMenu(menuEl, parentEl, touch, e);\r\n\t}\r\n\r\n\thideOldSubMenus(menuEl){\r\n\t\tvar index = this.menuElements.indexOf(menuEl);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tfor(let i = this.menuElements.length - 1; i > index; i--){\r\n\t\t\t\tvar el = this.menuElements[i];\r\n\r\n\t\t\t\tif(el.parentNode){\r\n\t\t\t\t\tel.parentNode.removeChild(el);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.menuElements.pop();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpositionMenu(element, parentEl, touch, e){\r\n\t\tvar docHeight = Math.max(document.body.offsetHeight, window.innerHeight),\r\n\t\tx, y, parentOffset;\r\n\r\n\t\tif(!parentEl){\r\n\t\t\tx = touch ? e.touches[0].pageX : e.pageX;\r\n\t\t\ty = touch ? e.touches[0].pageY : e.pageY;\r\n\r\n\t\t\tthis.positionReversedX = false;\r\n\t\t}else{\r\n\t\t\tparentOffset = Helpers.elOffset(parentEl);\r\n\t\t\tx = parentOffset.left + parentEl.offsetWidth;\r\n\t\t\ty = parentOffset.top - 1;\r\n\t\t}\r\n\r\n\t\telement.style.top = y + \"px\";\r\n\t\telement.style.left = x + \"px\";\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.table.rowManager.element.addEventListener(\"scroll\", this.blurEvent);\r\n\t\t\tdocument.body.addEventListener(\"click\", this.blurEvent);\r\n\t\t\tdocument.body.addEventListener(\"contextmenu\", this.blurEvent);\r\n\t\t\twindow.addEventListener(\"resize\", this.blurEvent);\r\n\t\t\tdocument.body.addEventListener(\"keydown\", this.escEvent);\r\n\t\t}, 100);\r\n\r\n\t\tdocument.body.appendChild(element);\r\n\r\n\t\t//move menu to start on bottom edge if it is too close to the edge of the screen\r\n\t\tif((y + element.offsetHeight) >= docHeight){\r\n\t\t\telement.style.top = \"\";\r\n\r\n\t\t\tif(parentEl){\r\n\t\t\t\telement.style.bottom = (docHeight - parentOffset.top - parentEl.offsetHeight - 1) + \"px\";\r\n\t\t\t}else{\r\n\t\t\t\telement.style.bottom = (docHeight - y) + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//move menu to start on right edge if it is too close to the edge of the screen\r\n\t\tif((x + element.offsetWidth) >= document.body.offsetWidth || this.positionReversedX){\r\n\t\t\telement.style.left = \"\";\r\n\r\n\t\t\tif(parentEl){\r\n\t\t\t\telement.style.right = (document.documentElement.offsetWidth - parentOffset.left) + \"px\";\r\n\t\t\t}else{\r\n\t\t\t\telement.style.right = (document.documentElement.offsetWidth - x) + \"px\";\r\n\t\t\t}\r\n\r\n\t\t\tthis.positionReversedX = true;\r\n\t\t}\r\n\t}\r\n\r\n\tisOpen(){\r\n\t\treturn !!this.menuElements.length;\r\n\t}\r\n\r\n\tescMenu(e){\r\n\t\tif(e.keyCode == 27){\r\n\t\t\tthis.hideMenu();\r\n\t\t}\r\n\t}\r\n\r\n\thideMenu(){\r\n\t\tthis.menuElements.forEach((menuEl) => {\r\n\t\t\tif(menuEl.parentNode){\r\n\t\t\t\tmenuEl.parentNode.removeChild(menuEl);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdocument.body.removeEventListener(\"keydown\", this.escEvent);\r\n\t\tdocument.body.removeEventListener(\"click\", this.blurEvent);\r\n\t\tdocument.body.removeEventListener(\"contextmenu\", this.blurEvent);\r\n\t\twindow.removeEventListener(\"resize\", this.blurEvent);\r\n\t\tthis.table.rowManager.element.removeEventListener(\"scroll\", this.blurEvent);\r\n\t}\r\n}\r\n\r\nMenu.moduleName = \"menu\";\r\n\r\nexport default Menu;","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nclass MoveColumns extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.placeholderElement = this.createPlaceholderElement();\r\n\t\tthis.hoverElement = false; //floating column header element\r\n\t\tthis.checkTimeout = false; //click check timeout holder\r\n\t\tthis.checkPeriod = 250; //period to wait on mousedown to consider this a move and not a click\r\n\t\tthis.moving = false; //currently moving column\r\n\t\tthis.toCol = false; //destination column\r\n\t\tthis.toColAfter = false; //position of moving column relative to the desitnation column\r\n\t\tthis.startX = 0; //starting position within header element\r\n\t\tthis.autoScrollMargin = 40; //auto scroll on edge when within margin\r\n\t\tthis.autoScrollStep = 5; //auto scroll distance in pixels\r\n\t\tthis.autoScrollTimeout = false; //auto scroll timeout\r\n\t\tthis.touchMove = false;\r\n\r\n\t\tthis.moveHover = this.moveHover.bind(this);\r\n\t\tthis.endMove = this.endMove.bind(this);\r\n\r\n\t\tthis.registerTableOption(\"movableColumns\", false); //enable movable columns\r\n\t}\r\n\r\n\tcreatePlaceholderElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-col\");\r\n\t\tel.classList.add(\"tabulator-col-placeholder\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t}\r\n\r\n\tinitializeColumn(column){\r\n\t\tvar self = this,\r\n\t\tconfig = {},\r\n\t\tcolEl;\r\n\r\n\t\tif(!column.modules.frozen){\r\n\r\n\t\t\tcolEl = column.getElement();\r\n\r\n\t\t\tconfig.mousemove = function(e){\r\n\t\t\t\tif(column.parent === self.moving.parent){\r\n\t\t\t\t\tif((((self.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(colEl).left) + self.table.columnManager.element.scrollLeft) > (column.getWidth() / 2)){\r\n\t\t\t\t\t\tif(self.toCol !== column || !self.toColAfter){\r\n\t\t\t\t\t\t\tcolEl.parentNode.insertBefore(self.placeholderElement, colEl.nextSibling);\r\n\t\t\t\t\t\t\tself.moveColumn(column, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(self.toCol !== column || self.toColAfter){\r\n\t\t\t\t\t\t\tcolEl.parentNode.insertBefore(self.placeholderElement, colEl);\r\n\t\t\t\t\t\t\tself.moveColumn(column, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}.bind(self);\r\n\r\n\t\t\tcolEl.addEventListener(\"mousedown\", function(e){\r\n\t\t\t\tself.touchMove = false;\r\n\t\t\t\tif(e.which === 1){\r\n\t\t\t\t\tself.checkTimeout = setTimeout(function(){\r\n\t\t\t\t\t\tself.startMove(e, column);\r\n\t\t\t\t\t}, self.checkPeriod);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcolEl.addEventListener(\"mouseup\", function(e){\r\n\t\t\t\tif(e.which === 1){\r\n\t\t\t\t\tif(self.checkTimeout){\r\n\t\t\t\t\t\tclearTimeout(self.checkTimeout);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.bindTouchEvents(column);\r\n\t\t}\r\n\r\n\t\tcolumn.modules.moveColumn = config;\r\n\t}\r\n\r\n\tbindTouchEvents(column){\r\n\t\tvar colEl = column.getElement(),\r\n\t\tstartXMove = false, //shifting center position of the cell\r\n\t\tdir = false,\r\n\t\tcurrentCol, nextCol, prevCol, nextColWidth, prevColWidth, nextColWidthLast, prevColWidthLast;\r\n\r\n\t\tcolEl.addEventListener(\"touchstart\", (e) => {\r\n\t\t\tthis.checkTimeout = setTimeout(() => {\r\n\t\t\t\tthis.touchMove = true;\r\n\t\t\t\tcurrentCol = column;\r\n\t\t\t\tnextCol = column.nextColumn();\r\n\t\t\t\tnextColWidth = nextCol ? nextCol.getWidth()/2 : 0;\r\n\t\t\t\tprevCol = column.prevColumn();\r\n\t\t\t\tprevColWidth = prevCol ? prevCol.getWidth()/2 : 0;\r\n\t\t\t\tnextColWidthLast = 0;\r\n\t\t\t\tprevColWidthLast = 0;\r\n\t\t\t\tstartXMove = false;\r\n\r\n\t\t\t\tthis.startMove(e, column);\r\n\t\t\t}, this.checkPeriod);\r\n\t\t}, {passive: true});\r\n\r\n\t\tcolEl.addEventListener(\"touchmove\", (e) => {\r\n\t\t\tvar halfCol, diff, moveToCol;\r\n\r\n\t\t\tif(this.moving){\r\n\t\t\t\tthis.moveHover(e);\r\n\r\n\t\t\t\tif(!startXMove){\r\n\t\t\t\t\tstartXMove = e.touches[0].pageX;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdiff = e.touches[0].pageX - startXMove;\r\n\r\n\t\t\t\tif(diff > 0){\r\n\t\t\t\t\tif(nextCol && diff - nextColWidthLast > nextColWidth){\r\n\t\t\t\t\t\tmoveToCol = nextCol;\r\n\r\n\t\t\t\t\t\tif(moveToCol !== column){\r\n\t\t\t\t\t\t\tstartXMove = e.touches[0].pageX;\r\n\t\t\t\t\t\t\tmoveToCol.getElement().parentNode.insertBefore(this.placeholderElement, moveToCol.getElement().nextSibling);\r\n\t\t\t\t\t\t\tthis.moveColumn(moveToCol, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(prevCol && -diff - prevColWidthLast > prevColWidth){\r\n\t\t\t\t\t\tmoveToCol = prevCol;\r\n\r\n\t\t\t\t\t\tif(moveToCol !== column){\r\n\t\t\t\t\t\t\tstartXMove = e.touches[0].pageX;\r\n\t\t\t\t\t\t\tmoveToCol.getElement().parentNode.insertBefore(this.placeholderElement, moveToCol.getElement());\r\n\t\t\t\t\t\t\tthis.moveColumn(moveToCol, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(moveToCol){\r\n\t\t\t\t\tcurrentCol = moveToCol;\r\n\t\t\t\t\tnextCol = moveToCol.nextColumn();\r\n\t\t\t\t\tnextColWidthLast = nextColWidth;\r\n\t\t\t\t\tnextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;\r\n\t\t\t\t\tprevCol = moveToCol.prevColumn();\r\n\t\t\t\t\tprevColWidthLast = prevColWidth;\r\n\t\t\t\t\tprevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, {passive: true});\r\n\r\n\t\tcolEl.addEventListener(\"touchend\", (e) => {\r\n\t\t\tif(this.checkTimeout){\r\n\t\t\t\tclearTimeout(this.checkTimeout);\r\n\t\t\t}\r\n\t\t\tif(this.moving){\r\n\t\t\t\tthis.endMove(e);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstartMove(e, column){\r\n\t\tvar element = column.getElement(),\r\n\t\theaderElement = this.table.columnManager.getElement(),\r\n\t\theadersElement = this.table.columnManager.getHeadersElement();\r\n\r\n\t\tthis.moving = column;\r\n\t\tthis.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(element).left;\r\n\r\n\t\tthis.table.element.classList.add(\"tabulator-block-select\");\r\n\r\n\t\t//create placeholder\r\n\t\tthis.placeholderElement.style.width = column.getWidth() + \"px\";\r\n\t\tthis.placeholderElement.style.height = column.getHeight() + \"px\";\r\n\r\n\t\telement.parentNode.insertBefore(this.placeholderElement, element);\r\n\t\telement.parentNode.removeChild(element);\r\n\r\n\t\t//create hover element\r\n\t\tthis.hoverElement = element.cloneNode(true);\r\n\t\tthis.hoverElement.classList.add(\"tabulator-moving\");\r\n\r\n\t\tthis.table.columnManager.getElement().appendChild(this.hoverElement);\r\n\r\n\t\tthis.hoverElement.style.left = \"0\";\r\n\t\tthis.hoverElement.style.bottom = (headerElement.clientHeight - headersElement.offsetHeight) + \"px\";\r\n\r\n\t\tif(!this.touchMove){\r\n\t\t\tthis._bindMouseMove();\r\n\r\n\t\t\tdocument.body.addEventListener(\"mousemove\", this.moveHover);\r\n\t\t\tdocument.body.addEventListener(\"mouseup\", this.endMove);\r\n\t\t}\r\n\r\n\t\tthis.moveHover(e);\r\n\t}\r\n\r\n\t_bindMouseMove(){\r\n\t\tthis.table.columnManager.columnsByIndex.forEach(function(column){\r\n\t\t\tif(column.modules.moveColumn.mousemove){\r\n\t\t\t\tcolumn.getElement().addEventListener(\"mousemove\", column.modules.moveColumn.mousemove);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_unbindMouseMove(){\r\n\t\tthis.table.columnManager.columnsByIndex.forEach(function(column){\r\n\t\t\tif(column.modules.moveColumn.mousemove){\r\n\t\t\t\tcolumn.getElement().removeEventListener(\"mousemove\", column.modules.moveColumn.mousemove);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tmoveColumn(column, after){\r\n\t\tvar movingCells = this.moving.getCells();\r\n\r\n\t\tthis.toCol = column;\r\n\t\tthis.toColAfter = after;\r\n\r\n\t\tif(after){\r\n\t\t\tcolumn.getCells().forEach(function(cell, i){\r\n\t\t\t\tvar cellEl = cell.getElement(true);\r\n\r\n\t\t\t\tif(cellEl.parentNode && movingCells[i]){\r\n\t\t\t\t\tcellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tcolumn.getCells().forEach(function(cell, i){\r\n\t\t\t\tvar cellEl = cell.getElement(true);\r\n\r\n\t\t\t\tif(cellEl.parentNode && movingCells[i]){\r\n\t\t\t\t\tcellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tendMove(e){\r\n\t\tif(e.which === 1 || this.touchMove){\r\n\t\t\tthis._unbindMouseMove();\r\n\r\n\t\t\tthis.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);\r\n\t\t\tthis.placeholderElement.parentNode.removeChild(this.placeholderElement);\r\n\t\t\tthis.hoverElement.parentNode.removeChild(this.hoverElement);\r\n\r\n\t\t\tthis.table.element.classList.remove(\"tabulator-block-select\");\r\n\r\n\t\t\tif(this.toCol){\r\n\t\t\t\tthis.table.columnManager.moveColumnActual(this.moving, this.toCol, this.toColAfter);\r\n\t\t\t}\r\n\r\n\t\t\tthis.moving = false;\r\n\t\t\tthis.toCol = false;\r\n\t\t\tthis.toColAfter = false;\r\n\r\n\t\t\tif(!this.touchMove){\r\n\t\t\t\tdocument.body.removeEventListener(\"mousemove\", this.moveHover);\r\n\t\t\t\tdocument.body.removeEventListener(\"mouseup\", this.endMove);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tmoveHover(e){\r\n\t\tvar columnHolder = this.table.columnManager.getElement(),\r\n\t\tscrollLeft = columnHolder.scrollLeft,\r\n\t\txPos = ((this.touchMove ? e.touches[0].pageX : e.pageX) - Helpers.elOffset(columnHolder).left) + scrollLeft,\r\n\t\tscrollPos;\r\n\r\n\t\tthis.hoverElement.style.left = (xPos - this.startX) + \"px\";\r\n\r\n\t\tif(xPos - scrollLeft < this.autoScrollMargin){\r\n\t\t\tif(!this.autoScrollTimeout){\r\n\t\t\t\tthis.autoScrollTimeout = setTimeout(() => {\r\n\t\t\t\t\tscrollPos = Math.max(0,scrollLeft-5);\r\n\t\t\t\t\tthis.table.rowManager.getElement().scrollLeft = scrollPos;\r\n\t\t\t\t\tthis.autoScrollTimeout = false;\r\n\t\t\t\t}, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(scrollLeft + columnHolder.clientWidth - xPos < this.autoScrollMargin){\r\n\t\t\tif(!this.autoScrollTimeout){\r\n\t\t\t\tthis.autoScrollTimeout = setTimeout(() => {\r\n\t\t\t\t\tscrollPos = Math.min(columnHolder.clientWidth, scrollLeft+5);\r\n\t\t\t\t\tthis.table.rowManager.getElement().scrollLeft = scrollPos;\r\n\t\t\t\t\tthis.autoScrollTimeout = false;\r\n\t\t\t\t}, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nMoveColumns.moduleName = \"moveColumn\";\r\n\r\nexport default MoveColumns;\r\n","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nclass MoveRows extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.placeholderElement = this.createPlaceholderElement();\r\n\t\tthis.hoverElement = false; //floating row header element\r\n\t\tthis.checkTimeout = false; //click check timeout holder\r\n\t\tthis.checkPeriod = 150; //period to wait on mousedown to consider this a move and not a click\r\n\t\tthis.moving = false; //currently moving row\r\n\t\tthis.toRow = false; //destination row\r\n\t\tthis.toRowAfter = false; //position of moving row relative to the desitnation row\r\n\t\tthis.hasHandle = false; //row has handle instead of fully movable row\r\n\t\tthis.startY = 0; //starting Y position within header element\r\n\t\tthis.startX = 0; //starting X position within header element\r\n\r\n\t\tthis.moveHover = this.moveHover.bind(this);\r\n\t\tthis.endMove = this.endMove.bind(this);\r\n\t\tthis.tableRowDropEvent = false;\r\n\r\n\t\tthis.touchMove = false;\r\n\r\n\t\tthis.connection = false;\r\n\t\tthis.connectionSelectorsTables = false;\r\n\t\tthis.connectionSelectorsElements = false;\r\n\t\tthis.connectionElements = [];\r\n\t\tthis.connections = [];\r\n\r\n\t\tthis.connectedTable = false;\r\n\t\tthis.connectedRow = false;\r\n\r\n\t\tthis.registerTableOption(\"movableRows\", false); //enable movable rows\r\n\t\tthis.registerTableOption(\"movableRowsConnectedTables\", false); //tables for movable rows to be connected to\r\n\t\tthis.registerTableOption(\"movableRowsConnectedElements\", false); //other elements for movable rows to be connected to\r\n\t\tthis.registerTableOption(\"movableRowsSender\", false);\r\n\t\tthis.registerTableOption(\"movableRowsReceiver\", \"insert\");\r\n\r\n\t\tthis.registerColumnOption(\"rowHandle\");\r\n\t}\r\n\r\n\tcreatePlaceholderElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-row\");\r\n\t\tel.classList.add(\"tabulator-row-placeholder\");\r\n\r\n\t\treturn el;\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.movableRows){\r\n\t\t\tthis.connectionSelectorsTables = this.table.options.movableRowsConnectedTables;\r\n\t\t\tthis.connectionSelectorsElements = this.table.options.movableRowsConnectedElements;\r\n\r\n\t\t\tthis.connection = this.connectionSelectorsTables || this.connectionSelectorsElements;\r\n\r\n\t\t\tthis.subscribe(\"cell-init\", this.initializeCell.bind(this));\r\n\t\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t\t\tthis.subscribe(\"row-init\", this.initializeRow.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeGroupHeader(group){\r\n\t\tvar self = this,\r\n\t\tconfig = {},\r\n\t\trowEl;\r\n\r\n\t\t//inter table drag drop\r\n\t\tconfig.mouseup = function(e){\r\n\t\t\tself.tableRowDrop(e, row);\r\n\t\t}.bind(self);\r\n\r\n\t\t//same table drag drop\r\n\t\tconfig.mousemove = function(e){\r\n\t\t\tif(((e.pageY - Helpers.elOffset(group.element).top) + self.table.rowManager.element.scrollTop) > (group.getHeight() / 2)){\r\n\t\t\t\tif(self.toRow !== group || !self.toRowAfter){\r\n\t\t\t\t\tvar rowEl = group.getElement();\r\n\t\t\t\t\trowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);\r\n\t\t\t\t\tself.moveRow(group, true);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(self.toRow !== group || self.toRowAfter){\r\n\t\t\t\t\tvar rowEl = group.getElement();\r\n\t\t\t\t\tif(rowEl.previousSibling){\r\n\t\t\t\t\t\trowEl.parentNode.insertBefore(self.placeholderElement, rowEl);\r\n\t\t\t\t\t\tself.moveRow(group, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}.bind(self);\r\n\r\n\t\tgroup.modules.moveRow = config;\r\n\t}\r\n\r\n\tinitializeRow(row){\r\n\t\tvar self = this,\r\n\t\tconfig = {},\r\n\t\trowEl;\r\n\r\n\t\t//inter table drag drop\r\n\t\tconfig.mouseup = function(e){\r\n\t\t\tself.tableRowDrop(e, row);\r\n\t\t}.bind(self);\r\n\r\n\t\t//same table drag drop\r\n\t\tconfig.mousemove = function(e){\r\n\t\t\tvar rowEl = row.getElement();\r\n\r\n\t\t\tif(((e.pageY - Helpers.elOffset(rowEl).top) + self.table.rowManager.element.scrollTop) > (row.getHeight() / 2)){\r\n\t\t\t\tif(self.toRow !== row || !self.toRowAfter){\r\n\t\t\t\t\trowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);\r\n\t\t\t\t\tself.moveRow(row, true);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(self.toRow !== row || self.toRowAfter){\r\n\t\t\t\t\trowEl.parentNode.insertBefore(self.placeholderElement, rowEl);\r\n\t\t\t\t\tself.moveRow(row, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}.bind(self);\r\n\r\n\r\n\t\tif(!this.hasHandle){\r\n\r\n\t\t\trowEl = row.getElement();\r\n\r\n\t\t\trowEl.addEventListener(\"mousedown\", function(e){\r\n\t\t\t\tif(e.which === 1){\r\n\t\t\t\t\tself.checkTimeout = setTimeout(function(){\r\n\t\t\t\t\t\tself.startMove(e, row);\r\n\t\t\t\t\t}, self.checkPeriod);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\trowEl.addEventListener(\"mouseup\", function(e){\r\n\t\t\t\tif(e.which === 1){\r\n\t\t\t\t\tif(self.checkTimeout){\r\n\t\t\t\t\t\tclearTimeout(self.checkTimeout);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.bindTouchEvents(row, row.getElement());\r\n\t\t}\r\n\r\n\t\trow.modules.moveRow = config;\r\n\t}\r\n\r\n\tinitializeColumn(column){\r\n\t\tif(column.definition.rowHandle && this.table.options.movableRows !== false){\r\n\t\t\tthis.hasHandle = true;\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeCell(cell){\r\n\t\tif(cell.column.definition.rowHandle && this.table.options.movableRows !== false){\r\n\t\t\tvar self = this,\r\n\t\t\tcellEl = cell.getElement(true);\r\n\r\n\t\t\tcellEl.addEventListener(\"mousedown\", function(e){\r\n\t\t\t\tif(e.which === 1){\r\n\t\t\t\t\tself.checkTimeout = setTimeout(function(){\r\n\t\t\t\t\t\tself.startMove(e, cell.row);\r\n\t\t\t\t\t}, self.checkPeriod);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcellEl.addEventListener(\"mouseup\", function(e){\r\n\t\t\t\tif(e.which === 1){\r\n\t\t\t\t\tif(self.checkTimeout){\r\n\t\t\t\t\t\tclearTimeout(self.checkTimeout);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.bindTouchEvents(cell.row, cellEl);\r\n\t\t}\r\n\t}\r\n\r\n\tbindTouchEvents(row, element){\r\n\t\tvar startYMove = false, //shifting center position of the cell\r\n\t\tdir = false,\r\n\t\tcurrentRow, nextRow, prevRow, nextRowHeight, prevRowHeight, nextRowHeightLast, prevRowHeightLast;\r\n\r\n\t\telement.addEventListener(\"touchstart\", (e) => {\r\n\t\t\tthis.checkTimeout = setTimeout(() => {\r\n\t\t\t\tthis.touchMove = true;\r\n\t\t\t\tcurrentRow = row;\r\n\t\t\t\tnextRow = row.nextRow();\r\n\t\t\t\tnextRowHeight = nextRow ? nextRow.getHeight()/2 : 0;\r\n\t\t\t\tprevRow = row.prevRow();\r\n\t\t\t\tprevRowHeight = prevRow ? prevRow.getHeight()/2 : 0;\r\n\t\t\t\tnextRowHeightLast = 0;\r\n\t\t\t\tprevRowHeightLast = 0;\r\n\t\t\t\tstartYMove = false;\r\n\r\n\t\t\t\tthis.startMove(e, row);\r\n\t\t\t}, this.checkPeriod);\r\n\t\t}, {passive: true});\r\n\t\tthis.moving, this.toRow, this.toRowAfter\r\n\t\telement.addEventListener(\"touchmove\", (e) => {\r\n\r\n\t\t\tvar halfCol, diff, moveToRow;\r\n\r\n\t\t\tif(this.moving){\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.moveHover(e);\r\n\r\n\t\t\t\tif(!startYMove){\r\n\t\t\t\t\tstartYMove = e.touches[0].pageY;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdiff = e.touches[0].pageY - startYMove;\r\n\r\n\t\t\t\tif(diff > 0){\r\n\t\t\t\t\tif(nextRow && diff - nextRowHeightLast > nextRowHeight){\r\n\t\t\t\t\t\tmoveToRow = nextRow;\r\n\r\n\t\t\t\t\t\tif(moveToRow !== row){\r\n\t\t\t\t\t\t\tstartYMove = e.touches[0].pageY\r\n\t\t\t\t\t\t\tmoveToRow.getElement().parentNode.insertBefore(this.placeholderElement, moveToRow.getElement().nextSibling);\r\n\t\t\t\t\t\t\tthis.moveRow(moveToRow, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(prevRow && -diff - prevRowHeightLast > prevRowHeight){\r\n\t\t\t\t\t\tmoveToRow = prevRow;\r\n\r\n\t\t\t\t\t\tif(moveToRow !== row){\r\n\t\t\t\t\t\t\tstartYMove = e.touches[0].pageY;\r\n\t\t\t\t\t\t\tmoveToRow.getElement().parentNode.insertBefore(this.placeholderElement, moveToRow.getElement());\r\n\t\t\t\t\t\t\tthis.moveRow(moveToRow, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(moveToRow){\r\n\t\t\t\t\tcurrentRow = moveToRow;\r\n\t\t\t\t\tnextRow = moveToRow.nextRow();\r\n\t\t\t\t\tnextRowHeightLast = nextRowHeight;\r\n\t\t\t\t\tnextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;\r\n\t\t\t\t\tprevRow = moveToRow.prevRow();\r\n\t\t\t\t\tprevRowHeightLast = prevRowHeight;\r\n\t\t\t\t\tprevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\telement.addEventListener(\"touchend\", (e) => {\r\n\t\t\tif(this.checkTimeout){\r\n\t\t\t\tclearTimeout(this.checkTimeout);\r\n\t\t\t}\r\n\t\t\tif(this.moving){\r\n\t\t\t\tthis.endMove(e);\r\n\t\t\t\tthis.touchMove = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_bindMouseMove(){\r\n\t\tthis.table.rowManager.getDisplayRows().forEach((row) => {\r\n\t\t\tif((row.type === \"row\" || row.type === \"group\") && row.modules.moveRow && row.modules.moveRow.mousemove){\r\n\t\t\t\trow.getElement().addEventListener(\"mousemove\", row.modules.moveRow.mousemove);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_unbindMouseMove(){\r\n\t\tthis.table.rowManager.getDisplayRows().forEach((row) => {\r\n\t\t\tif((row.type === \"row\" || row.type === \"group\") && row.modules.moveRow && row.modules.moveRow.mousemove){\r\n\t\t\t\trow.getElement().removeEventListener(\"mousemove\", row.modules.moveRow.mousemove);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstartMove(e, row){\r\n\t\tvar element = row.getElement();\r\n\r\n\t\tthis.setStartPosition(e, row);\r\n\r\n\t\tthis.moving = row;\r\n\r\n\t\tthis.table.element.classList.add(\"tabulator-block-select\");\r\n\r\n\t\t//create placeholder\r\n\t\tthis.placeholderElement.style.width = row.getWidth() + \"px\";\r\n\t\tthis.placeholderElement.style.height = row.getHeight() + \"px\";\r\n\r\n\t\tif(!this.connection){\r\n\t\t\telement.parentNode.insertBefore(this.placeholderElement, element);\r\n\t\t\telement.parentNode.removeChild(element);\r\n\t\t}else{\r\n\t\t\tthis.table.element.classList.add(\"tabulator-movingrow-sending\");\r\n\t\t\tthis.connectToTables(row);\r\n\t\t}\r\n\r\n\t\t//create hover element\r\n\t\tthis.hoverElement = element.cloneNode(true);\r\n\t\tthis.hoverElement.classList.add(\"tabulator-moving\");\r\n\r\n\t\tif(this.connection){\r\n\t\t\tdocument.body.appendChild(this.hoverElement);\r\n\t\t\tthis.hoverElement.style.left = \"0\";\r\n\t\t\tthis.hoverElement.style.top = \"0\";\r\n\t\t\tthis.hoverElement.style.width = this.table.element.clientWidth + \"px\";\r\n\t\t\tthis.hoverElement.style.whiteSpace = \"nowrap\";\r\n\t\t\tthis.hoverElement.style.overflow = \"hidden\";\r\n\t\t\tthis.hoverElement.style.pointerEvents = \"none\";\r\n\t\t}else{\r\n\t\t\tthis.table.rowManager.getTableElement().appendChild(this.hoverElement);\r\n\r\n\t\t\tthis.hoverElement.style.left = \"0\";\r\n\t\t\tthis.hoverElement.style.top = \"0\";\r\n\r\n\t\t\tthis._bindMouseMove();\r\n\t\t}\r\n\r\n\t\tdocument.body.addEventListener(\"mousemove\", this.moveHover);\r\n\t\tdocument.body.addEventListener(\"mouseup\", this.endMove);\r\n\r\n\t\tthis.moveHover(e);\r\n\t}\r\n\r\n\tsetStartPosition(e, row){\r\n\t\tvar pageX = this.touchMove ? e.touches[0].pageX : e.pageX,\r\n\t\tpageY = this.touchMove ? e.touches[0].pageY : e.pageY,\r\n\t\telement, position;\r\n\r\n\t\telement = row.getElement();\r\n\t\tif(this.connection){\r\n\t\t\tposition = element.getBoundingClientRect();\r\n\r\n\t\t\tthis.startX = position.left - pageX + window.pageXOffset;\r\n\t\t\tthis.startY = position.top - pageY + window.pageYOffset;\r\n\t\t}else{\r\n\t\t\tthis.startY = (pageY - element.getBoundingClientRect().top);\r\n\t\t}\r\n\t}\r\n\r\n\tendMove(e){\r\n\t\tif(!e || e.which === 1 || this.touchMove){\r\n\t\t\tthis._unbindMouseMove();\r\n\r\n\t\t\tif(!this.connection){\r\n\t\t\t\tthis.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);\r\n\t\t\t\tthis.placeholderElement.parentNode.removeChild(this.placeholderElement);\r\n\t\t\t}\r\n\r\n\t\t\tthis.hoverElement.parentNode.removeChild(this.hoverElement);\r\n\r\n\t\t\tthis.table.element.classList.remove(\"tabulator-block-select\");\r\n\r\n\t\t\tif(this.toRow){\r\n\t\t\t\tthis.table.rowManager.moveRow(this.moving, this.toRow, this.toRowAfter);\r\n\t\t\t}\r\n\r\n\t\t\tthis.moving = false;\r\n\t\t\tthis.toRow = false;\r\n\t\t\tthis.toRowAfter = false;\r\n\r\n\t\t\tdocument.body.removeEventListener(\"mousemove\", this.moveHover);\r\n\t\t\tdocument.body.removeEventListener(\"mouseup\", this.endMove);\r\n\r\n\t\t\tif(this.connection){\r\n\t\t\t\tthis.table.element.classList.remove(\"tabulator-movingrow-sending\");\r\n\t\t\t\tthis.disconnectFromTables();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tmoveRow(row, after){\r\n\t\tthis.toRow = row;\r\n\t\tthis.toRowAfter = after;\r\n\t}\r\n\r\n\tmoveHover(e){\r\n\t\tif(this.connection){\r\n\t\t\tthis.moveHoverConnections.call(this, e);\r\n\t\t}else{\r\n\t\t\tthis.moveHoverTable.call(this, e);\r\n\t\t}\r\n\t}\r\n\r\n\tmoveHoverTable(e){\r\n\t\tvar rowHolder = this.table.rowManager.getElement(),\r\n\t\tscrollTop = rowHolder.scrollTop,\r\n\t\tyPos = ((this.touchMove ? e.touches[0].pageY : e.pageY) - rowHolder.getBoundingClientRect().top) + scrollTop,\r\n\t\tscrollPos;\r\n\r\n\t\tthis.hoverElement.style.top = (yPos - this.startY) + \"px\";\r\n\t}\r\n\r\n\tmoveHoverConnections(e){\r\n\t\tthis.hoverElement.style.left = (this.startX + (this.touchMove ? e.touches[0].pageX : e.pageX)) + \"px\";\r\n\t\tthis.hoverElement.style.top = (this.startY + (this.touchMove ? e.touches[0].pageY : e.pageY)) + \"px\";\r\n\t}\r\n\r\n\telementRowDrop(e, element, row){\r\n\t\tthis.dispatchExternal(\"movableRowsElementDrop\", e, element, row ? row.getComponent() : false);\r\n\t}\r\n\r\n\t//establish connection with other tables\r\n\tconnectToTables(row){\r\n\t\tvar connectionTables;\r\n\r\n\t\tif(this.connectionSelectorsTables){\r\n\t\t\tconnectionTables = this.commsConnections(this.connectionSelectorsTables);\r\n\r\n\t\t\tthis.dispatchExternal(\"movableRowsSendingStart\", connectionTables);\r\n\r\n\t\t\tthis.commsSend(this.connectionSelectorsTables, \"moveRow\", \"connect\", {\r\n\t\t\t\trow:row,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(this.connectionSelectorsElements){\r\n\r\n\t\t\tthis.connectionElements = [];\r\n\r\n\t\t\tif(!Array.isArray(this.connectionSelectorsElements)){\r\n\t\t\t\tthis.connectionSelectorsElements = [this.connectionSelectorsElements];\r\n\t\t\t}\r\n\r\n\t\t\tthis.connectionSelectorsElements.forEach((query) => {\r\n\t\t\t\tif(typeof query === \"string\"){\r\n\t\t\t\t\tthis.connectionElements = this.connectionElements.concat(Array.prototype.slice.call(document.querySelectorAll(query)));\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.connectionElements.push(query);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.connectionElements.forEach((element) => {\r\n\t\t\t\tvar dropEvent = (e) => {\r\n\t\t\t\t\tthis.elementRowDrop(e, element, this.moving);\r\n\t\t\t\t};\r\n\r\n\t\t\t\telement.addEventListener(\"mouseup\", dropEvent);\r\n\t\t\t\telement.tabulatorElementDropEvent = dropEvent;\r\n\r\n\t\t\t\telement.classList.add(\"tabulator-movingrow-receiving\");\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t//disconnect from other tables\r\n\tdisconnectFromTables(){\r\n\t\tvar connectionTables;\r\n\r\n\t\tif(this.connectionSelectorsTables){\r\n\t\t\tconnectionTables = this.commsConnections(this.connectionSelectorsTables);\r\n\r\n\t\t\tthis.dispatchExternal(\"movableRowsSendingStop\", connectionTables);\r\n\r\n\t\t\tthis.commsSend(this.connectionSelectorsTables, \"moveRow\", \"disconnect\");\r\n\t\t}\r\n\r\n\t\tthis.connectionElements.forEach((element) => {\r\n\t\t\telement.classList.remove(\"tabulator-movingrow-receiving\");\r\n\t\t\telement.removeEventListener(\"mouseup\", element.tabulatorElementDropEvent);\r\n\t\t\tdelete element.tabulatorElementDropEvent;\r\n\t\t});\r\n\t}\r\n\r\n\t//accept incomming connection\r\n\tconnect(table, row){\r\n\t\tif(!this.connectedTable){\r\n\t\t\tthis.connectedTable = table;\r\n\t\t\tthis.connectedRow = row;\r\n\r\n\t\t\tthis.table.element.classList.add(\"tabulator-movingrow-receiving\");\r\n\r\n\t\t\tthis.table.rowManager.getDisplayRows().forEach((row) => {\r\n\t\t\t\tif(row.type === \"row\" && row.modules.moveRow && row.modules.moveRow.mouseup){\r\n\t\t\t\t\trow.getElement().addEventListener(\"mouseup\", row.modules.moveRow.mouseup);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.tableRowDropEvent = this.tableRowDrop.bind(this);\r\n\r\n\t\t\tthis.table.element.addEventListener(\"mouseup\", this.tableRowDropEvent);\r\n\r\n\t\t\tthis.dispatchExternal(\"movableRowsReceivingStart\", row, table);\r\n\r\n\t\t\treturn true;\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Move Row Error - Table cannot accept connection, already connected to table:\", this.connectedTable);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t//close incomming connection\r\n\tdisconnect(table){\r\n\t\tif(table === this.connectedTable){\r\n\t\t\tthis.connectedTable = false;\r\n\t\t\tthis.connectedRow = false;\r\n\r\n\t\t\tthis.table.element.classList.remove(\"tabulator-movingrow-receiving\");\r\n\r\n\t\t\tthis.table.rowManager.getDisplayRows().forEach((row) =>{\r\n\t\t\t\tif(row.type === \"row\" && row.modules.moveRow && row.modules.moveRow.mouseup){\r\n\t\t\t\t\trow.getElement().removeEventListener(\"mouseup\", row.modules.moveRow.mouseup);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.table.element.removeEventListener(\"mouseup\", this.tableRowDropEvent);\r\n\r\n\t\t\tthis.dispatchExternal(\"movableRowsReceivingStop\", table);\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Move Row Error - trying to disconnect from non connected table\")\r\n\t\t}\r\n\t}\r\n\r\n\tdropComplete(table, row, success){\r\n\t\tvar sender = false;\r\n\r\n\t\tif(success){\r\n\r\n\t\t\tswitch(typeof this.table.options.movableRowsSender){\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\tsender = this.senders[this.table.options.movableRowsSender];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\tsender = this.table.options.movableRowsSender;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif(sender){\r\n\t\t\t\tsender.call(this, this.moving.getComponent(), row ? row.getComponent() : undefined, table)\r\n\t\t\t}else{\r\n\t\t\t\tif(this.table.options.movableRowsSender){\r\n\t\t\t\t\tconsole.warn(\"Mover Row Error - no matching sender found:\", this.table.options.movableRowsSender);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchExternal(\"movableRowsSent\", this.moving.getComponent(), row ? row.getComponent() : undefined, table);\r\n\t\t}else{\r\n\t\t\tthis.dispatchExternal(\"movableRowsSentFailed\", this.moving.getComponent(), row ? row.getComponent() : undefined, table);\r\n\t\t}\r\n\r\n\t\tthis.endMove();\r\n\t}\r\n\r\n\ttableRowDrop(e, row){\r\n\t\tvar receiver = false,\r\n\t\tsuccess = false;\r\n\r\n\t\te.stopImmediatePropagation();\r\n\r\n\t\tswitch(typeof this.table.options.movableRowsReceiver){\r\n\t\t\tcase \"string\":\r\n\t\t\treceiver = this.receivers[this.table.options.movableRowsReceiver];\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\treceiver = this.table.options.movableRowsReceiver;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif(receiver){\r\n\t\t\tsuccess = receiver.call(this, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable)\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Mover Row Error - no matching receiver found:\", this.table.options.movableRowsReceiver)\r\n\t\t}\r\n\r\n\t\tif(success){\r\n\t\t\tthis.dispatchExternal(\"movableRowsReceived\", this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);\r\n\t\t}else{\r\n\t\t\tthis.dispatchExternal(\"movableRowsReceivedFailed\", this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);\r\n\t\t}\r\n\r\n\t\tthis.commsSend(this.connectedTable, \"moveRow\", \"dropcomplete\", {\r\n\t\t\trow:row,\r\n\t\t\tsuccess:success,\r\n\t\t});\r\n\t}\r\n\r\n\tcommsReceived(table, action, data){\r\n\t\tswitch(action){\r\n\t\t\tcase \"connect\":\r\n\t\t\treturn this.connect(table, data.row);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"disconnect\":\r\n\t\t\treturn this.disconnect(table);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"dropcomplete\":\r\n\t\t\treturn this.dropComplete(table, data.row, data.success);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nMoveRows.prototype.receivers = {\r\n\tinsert:function(fromRow, toRow, fromTable){\r\n\t\tthis.table.addRow(fromRow.getData(), undefined, toRow);\r\n\t\treturn true;\r\n\t},\r\n\r\n\tadd:function(fromRow, toRow, fromTable){\r\n\t\tthis.table.addRow(fromRow.getData());\r\n\t\treturn true;\r\n\t},\r\n\r\n\tupdate:function(fromRow, toRow, fromTable){\r\n\t\tif(toRow){\r\n\t\t\ttoRow.update(fromRow.getData());\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\treplace:function(fromRow, toRow, fromTable){\r\n\t\tif(toRow){\r\n\t\t\tthis.table.addRow(fromRow.getData(), undefined, toRow);\r\n\t\t\ttoRow.delete();\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n};\r\n\r\nMoveRows.prototype.senders = {\r\n\tdelete:function(fromRow, toRow, toTable){\r\n\t\tfromRow.delete();\r\n\t}\r\n};\r\n\r\nMoveRows.moduleName = \"moveRow\";\r\n\r\nexport default MoveRows;","export default {};","import Module from '../../core/Module.js';\r\n\r\nimport defaultMutators from './defaults/mutators.js';\r\n\r\nclass Mutator extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.allowedTypes = [\"\", \"data\", \"edit\", \"clipboard\"]; //list of muatation types\r\n\t\tthis.enabled = true;\r\n\r\n\t\tthis.registerColumnOption(\"mutator\");\r\n\t\tthis.registerColumnOption(\"mutatorParams\");\r\n\t\tthis.registerColumnOption(\"mutatorData\");\r\n\t\tthis.registerColumnOption(\"mutatorDataParams\");\r\n\t\tthis.registerColumnOption(\"mutatorEdit\");\r\n\t\tthis.registerColumnOption(\"mutatorEditParams\");\r\n\t\tthis.registerColumnOption(\"mutatorClipboard\");\r\n\t\tthis.registerColumnOption(\"mutatorClipboardParams\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"cell-value-changing\", this.transformCell.bind(this));\r\n\t\tthis.subscribe(\"column-layout\", this.initializeColumn.bind(this));\r\n\t\tthis.subscribe(\"row-data-init-before\", this.rowDataChanged.bind(this));\r\n\t\tthis.subscribe(\"row-data-changing\", this.rowDataChanged.bind(this));\r\n\t}\r\n\r\n\trowDataChanged(row, tempData, updatedData){\r\n\t\treturn this.transformRow(tempData, \"data\", updatedData);\r\n\t}\r\n\r\n\t//initialize column mutator\r\n\tinitializeColumn(column){\r\n\t\tvar match = false,\r\n\t\tconfig = {};\r\n\r\n\t\tthis.allowedTypes.forEach((type) => {\r\n\t\t\tvar key = \"mutator\" + (type.charAt(0).toUpperCase() + type.slice(1)),\r\n\t\t\tmutator;\r\n\r\n\t\t\tif(column.definition[key]){\r\n\t\t\t\tmutator = this.lookupMutator(column.definition[key]);\r\n\r\n\t\t\t\tif(mutator){\r\n\t\t\t\t\tmatch = true;\r\n\r\n\t\t\t\t\tconfig[key] = {\r\n\t\t\t\t\t\tmutator:mutator,\r\n\t\t\t\t\t\tparams: column.definition[key + \"Params\"] || {},\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif(match){\r\n\t\t\tcolumn.modules.mutate = config;\r\n\t\t}\r\n\t}\r\n\r\n\tlookupMutator(value){\r\n\t\tvar mutator = false;\r\n\r\n\t\t//set column mutator\r\n\t\tswitch(typeof value){\r\n\t\t\tcase \"string\":\r\n\t\t\tif(Mutator.mutators[value]){\r\n\t\t\t\tmutator = Mutator.mutators[value];\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Mutator Error - No such mutator found, ignoring: \", value);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tmutator = value;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn mutator;\r\n\t}\r\n\r\n\t//apply mutator to row\r\n\ttransformRow(data, type, updatedData){\r\n\t\tvar key = \"mutator\" + (type.charAt(0).toUpperCase() + type.slice(1)),\r\n\t\tvalue;\r\n\r\n\t\tif(this.enabled){\r\n\r\n\t\t\tthis.table.columnManager.traverse((column) => {\r\n\t\t\t\tvar mutator, params, component;\r\n\r\n\t\t\t\tif(column.modules.mutate){\r\n\t\t\t\t\tmutator = column.modules.mutate[key] || column.modules.mutate.mutator || false;\r\n\r\n\t\t\t\t\tif(mutator){\r\n\t\t\t\t\t\tvalue = column.getFieldValue(typeof updatedData !== \"undefined\" ? updatedData : data);\r\n\r\n\t\t\t\t\t\tif(type == \"data\" || typeof value !== \"undefined\"){\r\n\t\t\t\t\t\t\tcomponent = column.getComponent();\r\n\t\t\t\t\t\t\tparams = typeof mutator.params === \"function\" ? mutator.params(value, data, type, component) : mutator.params;\r\n\t\t\t\t\t\t\tcolumn.setFieldValue(data, mutator.mutator(value, data, type, params, component));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\t//apply mutator to new cell value\r\n\ttransformCell(cell, value){\r\n\t\tif(cell.column.modules.mutate){\r\n\t\t\tvar mutator = cell.column.modules.mutate.mutatorEdit || cell.column.modules.mutate.mutator || false,\r\n\t\t\ttempData = {};\r\n\r\n\t\t\tif(mutator){\r\n\t\t\t\ttempData = Object.assign(tempData, cell.row.getData());\r\n\t\t\t\tcell.column.setFieldValue(tempData, value);\r\n\t\t\t\treturn mutator.mutator(value, tempData, \"edit\", mutator.params, cell.getComponent());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\tenable(){\r\n\t\tthis.enabled = true;\r\n\t}\r\n\r\n\tdisable(){\r\n\t\tthis.enabled = false;\r\n\t}\r\n}\r\n\r\nMutator.moduleName = \"mutator\";\r\n\r\n//load defaults\r\nMutator.mutators = defaultMutators;\r\n\r\nexport default Mutator;","import Module from '../../core/Module.js';\r\n\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nclass Page extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.mode = \"local\";\r\n\t\tthis.progressiveLoad = false;\r\n\r\n\t\tthis.size = 0;\r\n\t\tthis.page = 1;\r\n\t\tthis.count = 5;\r\n\t\tthis.max = 1;\r\n\r\n\t\tthis.displayIndex = 0; //index in display pipeline\r\n\r\n\t\tthis.initialLoad = true;\r\n\t\tthis.dataChanging = false; //flag to check if data is being changed by this module\r\n\r\n\t\tthis.pageSizes = [];\r\n\r\n\t\tthis.dataReceivedNames = {}; //TODO - remove once pagimation update is complete\r\n\t\tthis.dataSentNames = {}; //TODO - remove once pagimation update is complete\r\n\r\n\t\tthis.registerTableOption(\"pagination\", false); //set pagination type\r\n\t\tthis.registerTableOption(\"paginationMode\", \"local\"); //local or remote pagination\r\n\t\tthis.registerTableOption(\"paginationSize\", false); //set number of rows to a page\r\n\t\tthis.registerTableOption(\"paginationInitialPage\", 1); //initail page to show on load\r\n\t\tthis.registerTableOption(\"paginationButtonCount\", 5); // set count of page button\r\n\t\tthis.registerTableOption(\"paginationSizeSelector\", false); //add pagination size selector element\r\n\t\tthis.registerTableOption(\"paginationElement\", false); //element to hold pagination numbers\r\n\t\t// this.registerTableOption(\"paginationDataSent\", {}); //pagination data sent to the server\r\n\t\t// this.registerTableOption(\"paginationDataReceived\", {}); //pagination data received from the server\r\n\t\tthis.registerTableOption(\"paginationAddRow\", \"page\"); //add rows on table or page\r\n\r\n\t\tthis.registerTableOption(\"progressiveLoad\", false); //progressive loading\r\n\t\tthis.registerTableOption(\"progressiveLoadDelay\", 0); //delay between requests\r\n\t\tthis.registerTableOption(\"progressiveLoadScrollMargin\", 0); //margin before scroll begins\r\n\r\n\t\tthis.registerTableFunction(\"setMaxPage\", this.setMaxPage.bind(this));\r\n\t\tthis.registerTableFunction(\"setPage\", this.setPage.bind(this));\r\n\t\tthis.registerTableFunction(\"setPageToRow\", this.userSetPageToRow.bind(this));\r\n\t\tthis.registerTableFunction(\"setPageSize\", this.userSetPageSize.bind(this));\r\n\t\tthis.registerTableFunction(\"getPageSize\", this.getPageSize.bind(this));\r\n\t\tthis.registerTableFunction(\"previousPage\", this.previousPage.bind(this));\r\n\t\tthis.registerTableFunction(\"nextPage\", this.nextPage.bind(this));\r\n\t\tthis.registerTableFunction(\"getPage\", this.getPage.bind(this));\r\n\t\tthis.registerTableFunction(\"getPageMax\", this.getPageMax.bind(this));\r\n\r\n\t\t//register component functions\r\n\t\tthis.registerComponentFunction(\"row\", \"pageTo\", this.setPageToRow.bind(this));\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.pagination){\r\n\t\t\tthis.subscribe(\"row-deleted\", this.rowsUpdated.bind(this));\r\n\t\t\tthis.subscribe(\"row-adding-position\", this.rowAddingPosition.bind(this));\r\n\t\t\tthis.subscribe(\"row-added\", this.rowsUpdated.bind(this));\r\n\t\t\tthis.subscribe(\"data-processed\", this.initialLoadComplete.bind(this));\r\n\t\t\tthis.subscribe(\"table-built\", this.calculatePageSizes.bind(this));\r\n\r\n\t\t\tif(this.table.options.paginationMode === \"remote\"){\r\n\t\t\t\tthis.subscribe(\"data-params\", this.remotePageParams.bind(this));\r\n\t\t\t\tthis.subscribe(\"data-loaded\", this._parseRemoteData.bind(this));\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.options.progressiveLoad){\r\n\t\t\t\tconsole.error(\"Progressive Load Error - Pagination and progressive load cannot be used at the same time\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.registerDisplayHandler(this.restOnRenderBefore.bind(this), 40);\r\n\t\t\tthis.registerDisplayHandler(this.getRows.bind(this), 50);\r\n\r\n\t\t\tthis.createElements();\r\n\t\t\tthis.initializePaginator();\r\n\t\t}else if(this.table.options.progressiveLoad){\r\n\r\n\t\t\tthis.subscribe(\"data-params\", this.remotePageParams.bind(this));\r\n\t\t\tthis.subscribe(\"data-loaded\", this._parseRemoteData.bind(this));\r\n\t\t\tthis.subscribe(\"table-built\", this.calculatePageSizes.bind(this));\r\n\r\n\t\t\tthis.initializeProgressive(this.table.options.progressiveLoad)\r\n\r\n\t\t\tif(this.table.options.progressiveLoad === \"scroll\"){\r\n\t\t\t\tthis.subscribe(\"scroll-vertical\", this.scrollVertical.bind(this));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trowAddingPosition(row, top){\r\n\t\tvar rowManager = this.table.rowManager,\r\n\t\tdispRows = rowManager.getDisplayRows(),\r\n\t\tindex;\r\n\r\n\t\tif(top){\r\n\t\t\tif(dispRows.length){\r\n\t\t\t\tindex = dispRows[0];\r\n\t\t\t}else{\r\n\t\t\t\tif(rowManager.activeRows.length){\r\n\t\t\t\t\tindex = rowManager.activeRows[rowManager.activeRows.length-1];\r\n\t\t\t\t\ttop = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(dispRows.length){\r\n\t\t\t\tindex = dispRows[dispRows.length - 1];\r\n\t\t\t\ttop = dispRows.length < this.size ? false : true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {index, top}\r\n\t}\r\n\r\n\tcalculatePageSizes(){\r\n\t\tvar testElRow, testElCell;\r\n\r\n\t\tif(this.table.options.paginationSize){\r\n\t\t\tthis.size = this.table.options.paginationSize;\r\n\t\t}else{\r\n\t\t\ttestElRow = document.createElement(\"div\");\r\n\t\t\ttestElRow.classList.add(\"tabulator-row\");\r\n\t\t\ttestElRow.style.visibility = \"hidden\";\r\n\r\n\t\t\ttestElCell = document.createElement(\"div\");\r\n\t\t\ttestElCell.classList.add(\"tabulator-cell\");\r\n\t\t\ttestElCell.innerHTML = \"Page Row Test\";\r\n\r\n\t\t\ttestElRow.appendChild(testElCell);\r\n\r\n\t\t\tthis.table.rowManager.getTableElement().appendChild(testElRow);\r\n\r\n\t\t\tthis.size = Math.floor(this.table.rowManager.getElement().clientHeight / testElRow.offsetHeight);\r\n\r\n\t\t\tthis.table.rowManager.getTableElement().removeChild(testElRow);\r\n\t\t}\r\n\r\n\t\tthis.generatePageSizeSelectList();\r\n\t}\r\n\r\n\tinitialLoadComplete(){\r\n\t\tthis.initialLoad = false;\r\n\t}\r\n\r\n\tremotePageParams(data, config, silent, params){\r\n\t\tif(!this.initialLoad){\r\n\t\t\tif((this.progressiveLoad && !silent) || (!this.progressiveLoad && !this.dataChanging)){\r\n\t\t\t\tthis.reset(true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//configure request params\r\n\t\tparams.page = this.page;\r\n\r\n\t\t//set page size if defined\r\n\t\tif(this.size){\r\n\t\t\tparams.size = this.size;\r\n\t\t}\r\n\r\n\t\treturn params;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\tuserSetPageToRow(row){\r\n\t\tif(this.table.options.pagination){\r\n\t\t\trow = this.rowManager.findRow(row);\r\n\r\n\t\t\tif(row){\r\n\t\t\t\treturn this.setPageToRow(row)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn Promise.reject();\r\n\t}\r\n\r\n\tuserSetPageSize(size){\r\n\t\tif(this.table.options.pagination){\r\n\t\t\tthis.setPageSize(size);\r\n\t\t\treturn this.setPage(1);\r\n\t\t}else{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\tscrollVertical(top, dir){\r\n\t\tvar element, diff, margin;\r\n\t\tif(!dir && !this.table.dataLoader.loading){\r\n\t\t\telement = this.table.rowManager.getElement();\r\n\t\t\tdiff = element.scrollHeight - element.clientHeight - top;\r\n\t\t\tmargin = this.table.options.progressiveLoadScrollMargin || (element.clientHeight * 2);\r\n\r\n\t\t\tif(diff < margin){\r\n\t\t\t\tthis.nextPage();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trestOnRenderBefore(rows, renderInPosition){\r\n\t\tif(!renderInPosition){\r\n\t\t\tif(this.mode === \"local\"){\r\n\t\t\t\tthis.reset();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn rows;\r\n\t}\r\n\r\n\trowsUpdated(){\r\n\t\tthis.refreshData(true, \"all\");\r\n\t}\r\n\r\n\tcreateElements(){\r\n\t\tvar button;\r\n\r\n\t\tthis.element = document.createElement(\"span\");\r\n\t\tthis.element.classList.add(\"tabulator-paginator\");\r\n\r\n\t\tthis.pagesElement = document.createElement(\"span\");\r\n\t\tthis.pagesElement.classList.add(\"tabulator-pages\");\r\n\r\n\t\tbutton = document.createElement(\"button\");\r\n\t\tbutton.classList.add(\"tabulator-page\");\r\n\t\tbutton.setAttribute(\"type\", \"button\");\r\n\t\tbutton.setAttribute(\"role\", \"button\");\r\n\t\tbutton.setAttribute(\"aria-label\", \"\");\r\n\t\tbutton.setAttribute(\"title\", \"\");\r\n\r\n\t\tthis.firstBut = button.cloneNode(true);\r\n\t\tthis.firstBut.setAttribute(\"data-page\", \"first\");\r\n\r\n\t\tthis.prevBut = button.cloneNode(true);\r\n\t\tthis.prevBut.setAttribute(\"data-page\", \"prev\");\r\n\r\n\t\tthis.nextBut = button.cloneNode(true);\r\n\t\tthis.nextBut.setAttribute(\"data-page\", \"next\");\r\n\r\n\t\tthis.lastBut = button.cloneNode(true);\r\n\t\tthis.lastBut.setAttribute(\"data-page\", \"last\");\r\n\r\n\t\tif(this.table.options.paginationSizeSelector){\r\n\t\t\tthis.pageSizeSelect = document.createElement(\"select\");\r\n\t\t\tthis.pageSizeSelect.classList.add(\"tabulator-page-size\");\r\n\t\t}\r\n\t}\r\n\r\n\tgeneratePageSizeSelectList(){\r\n\t\tvar pageSizes = [];\r\n\r\n\t\tif(this.pageSizeSelect){\r\n\r\n\t\t\tif(Array.isArray(this.table.options.paginationSizeSelector)){\r\n\t\t\t\tpageSizes = this.table.options.paginationSizeSelector;\r\n\t\t\t\tthis.pageSizes = pageSizes;\r\n\r\n\t\t\t\tif(this.pageSizes.indexOf(this.size) == -1){\r\n\t\t\t\t\tpageSizes.unshift(this.size);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\r\n\t\t\t\tif(this.pageSizes.indexOf(this.size) == -1){\r\n\t\t\t\t\tpageSizes = [];\r\n\r\n\t\t\t\t\tfor (let i = 1; i < 5; i++){\r\n\t\t\t\t\t\tpageSizes.push(this.size * i);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.pageSizes = pageSizes;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tpageSizes = this.pageSizes;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\twhile(this.pageSizeSelect.firstChild) this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);\r\n\r\n\t\t\tpageSizes.forEach((item) => {\r\n\t\t\t\tvar itemEl = document.createElement(\"option\");\r\n\t\t\t\titemEl.value = item;\r\n\r\n\t\t\t\tif(item === true){\r\n\t\t\t\t\tthis.langBind(\"pagination|all\", function(value){\r\n\t\t\t\t\t\titemEl.innerHTML = value;\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\titemEl.innerHTML = item;\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\tthis.pageSizeSelect.appendChild(itemEl);\r\n\t\t\t});\r\n\r\n\t\t\tthis.pageSizeSelect.value = this.size;\r\n\t\t}\r\n\t}\r\n\r\n\t//setup pageination\r\n\tinitializePaginator(hidden){\r\n\t\tvar pageSelectLabel;\r\n\r\n\t\tif(!hidden){\r\n\t\t\t//build pagination element\r\n\r\n\t\t\t//bind localizations\r\n\t\t\tthis.langBind(\"pagination|first\", (value) => {\r\n\t\t\t\tthis.firstBut.innerHTML = value;\r\n\t\t\t});\r\n\r\n\t\t\tthis.langBind(\"pagination|first_title\", (value) => {\r\n\t\t\t\tthis.firstBut.setAttribute(\"aria-label\", value);\r\n\t\t\t\tthis.firstBut.setAttribute(\"title\", value);\r\n\t\t\t});\r\n\r\n\t\t\tthis.langBind(\"pagination|prev\", (value) => {\r\n\t\t\t\tthis.prevBut.innerHTML = value;\r\n\t\t\t});\r\n\r\n\t\t\tthis.langBind(\"pagination|prev_title\", (value) => {\r\n\t\t\t\tthis.prevBut.setAttribute(\"aria-label\", value);\r\n\t\t\t\tthis.prevBut.setAttribute(\"title\", value);\r\n\t\t\t});\r\n\r\n\t\t\tthis.langBind(\"pagination|next\", (value) => {\r\n\t\t\t\tthis.nextBut.innerHTML = value;\r\n\t\t\t});\r\n\r\n\t\t\tthis.langBind(\"pagination|next_title\", (value) => {\r\n\t\t\t\tthis.nextBut.setAttribute(\"aria-label\", value);\r\n\t\t\t\tthis.nextBut.setAttribute(\"title\", value);\r\n\t\t\t});\r\n\r\n\t\t\tthis.langBind(\"pagination|last\", (value) => {\r\n\t\t\t\tthis.lastBut.innerHTML = value;\r\n\t\t\t});\r\n\r\n\t\t\tthis.langBind(\"pagination|last_title\", (value) => {\r\n\t\t\t\tthis.lastBut.setAttribute(\"aria-label\", value);\r\n\t\t\t\tthis.lastBut.setAttribute(\"title\", value);\r\n\t\t\t});\r\n\r\n\t\t\t//click bindings\r\n\t\t\tthis.firstBut.addEventListener(\"click\", () => {\r\n\t\t\t\tthis.setPage(1)\r\n\t\t\t});\r\n\r\n\t\t\tthis.prevBut.addEventListener(\"click\", () => {\r\n\t\t\t\tthis.previousPage()\r\n\t\t\t});\r\n\r\n\t\t\tthis.nextBut.addEventListener(\"click\", () => {\r\n\t\t\t\tthis.nextPage()\r\n\t\t\t});\r\n\r\n\t\t\tthis.lastBut.addEventListener(\"click\", () => {\r\n\t\t\t\tthis.setPage(this.max)\r\n\t\t\t});\r\n\r\n\t\t\tif(this.table.options.paginationElement){\r\n\t\t\t\tthis.element = this.table.options.paginationElement;\r\n\t\t\t}\r\n\r\n\t\t\tif(this.pageSizeSelect){\r\n\t\t\t\tpageSelectLabel = document.createElement(\"label\");\r\n\r\n\t\t\t\tthis.langBind(\"pagination|page_size\", (value) => {\r\n\t\t\t\t\tthis.pageSizeSelect.setAttribute(\"aria-label\", value);\r\n\t\t\t\t\tthis.pageSizeSelect.setAttribute(\"title\", value);\r\n\t\t\t\t\tpageSelectLabel.innerHTML = value;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.element.appendChild(pageSelectLabel);\r\n\t\t\t\tthis.element.appendChild(this.pageSizeSelect);\r\n\r\n\t\t\t\tthis.pageSizeSelect.addEventListener(\"change\", (e) => {\r\n\t\t\t\t\tthis.setPageSize(this.pageSizeSelect.value == \"true\" ? true : this.pageSizeSelect.value);\r\n\t\t\t\t\tthis.setPage(1)\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t//append to DOM\r\n\t\t\tthis.element.appendChild(this.firstBut);\r\n\t\t\tthis.element.appendChild(this.prevBut);\r\n\t\t\tthis.element.appendChild(this.pagesElement);\r\n\t\t\tthis.element.appendChild(this.nextBut);\r\n\t\t\tthis.element.appendChild(this.lastBut);\r\n\r\n\t\t\tif(!this.table.options.paginationElement && !hidden){\r\n\t\t\t\tthis.table.footerManager.append(this.element, this);\r\n\t\t\t}\r\n\r\n\t\t\tthis.page = this.table.options.paginationInitialPage;\r\n\t\t\tthis.count = this.table.options.paginationButtonCount;\r\n\t\t}\r\n\r\n\t\t//set default values\r\n\t\tthis.mode = this.table.options.paginationMode;\r\n\t}\r\n\r\n\tinitializeProgressive(mode){\r\n\t\tthis.initializePaginator(true);\r\n\t\tthis.mode = \"progressive_\" + mode;\r\n\t\tthis.progressiveLoad = true;\r\n\t}\r\n\r\n\ttrackChanges(){\r\n\t\tthis.dispatch(\"page-changed\");\r\n\t}\r\n\r\n\tsetDisplayIndex(index){\r\n\t\tthis.displayIndex = index;\r\n\t}\r\n\r\n\tgetDisplayIndex(){\r\n\t\treturn this.displayIndex;\r\n\t}\r\n\r\n\t//calculate maximum page from number of rows\r\n\tsetMaxRows(rowCount){\r\n\t\tif(!rowCount){\r\n\t\t\tthis.max = 1;\r\n\t\t}else{\r\n\t\t\tthis.max = this.size === true ? 1 : Math.ceil(rowCount/this.size);\r\n\t\t}\r\n\r\n\t\tif(this.page > this.max){\r\n\t\t\tthis.page = this.max;\r\n\t\t}\r\n\t}\r\n\r\n\t//reset to first page without triggering action\r\n\treset(force){\r\n\t\tif(!this.initialLoad){\r\n\t\t\tif(this.mode == \"local\" || force){\r\n\t\t\t\tthis.page = 1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//set the maxmum page\r\n\tsetMaxPage(max){\r\n\r\n\t\tmax = parseInt(max);\r\n\r\n\t\tthis.max = max || 1;\r\n\r\n\t\tif(this.page > this.max){\r\n\t\t\tthis.page = this.max;\r\n\t\t\tthis.trigger();\r\n\t\t}\r\n\t}\r\n\r\n\t//set current page number\r\n\tsetPage(page){\r\n\t\tswitch(page){\r\n\t\t\tcase \"first\":\r\n\t\t\treturn this.setPage(1);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"prev\":\r\n\t\t\treturn this.previousPage();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"next\":\r\n\t\t\treturn this.nextPage();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"last\":\r\n\t\t\treturn this.setPage(this.max);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\r\n\t\tpage = parseInt(page);\r\n\r\n\t\tif((page > 0 && page <= this.max) || this.mode !== \"local\"){\r\n\t\t\tthis.page = page;\r\n\r\n\t\t\tthis.trackChanges();\r\n\r\n\t\t\treturn this.trigger();\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Pagination Error - Requested page is out of range of 1 - \" + this.max + \":\", page);\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\tsetPageToRow(row){\r\n\t\tvar rows = this.table.rowManager.getDisplayRows(this.displayIndex - 1);\r\n\t\tvar index = rows.indexOf(row);\r\n\r\n\t\tif(index > -1){\r\n\t\t\tvar page = this.size === true ? 1 : Math.ceil((index + 1) / this.size);\r\n\r\n\t\t\treturn this.setPage(page)\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Pagination Error - Requested row is not visible\");\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\tsetPageSize(size){\r\n\t\tif(size !== true){\r\n\t\t\tsize = parseInt(size);\r\n\t\t}\r\n\r\n\t\tif(size > 0){\r\n\t\t\tthis.size = size;\r\n\t\t}\r\n\r\n\t\tif(this.pageSizeSelect){\r\n\t\t\t// this.pageSizeSelect.value = size;\r\n\t\t\tthis.generatePageSizeSelectList();\r\n\t\t}\r\n\r\n\t\tthis.trackChanges();\r\n\t}\r\n\r\n\t//setup the pagination buttons\r\n\t_setPageButtons(){\r\n\t\tlet leftSize = Math.floor((this.count-1) / 2);\r\n\t\tlet rightSize = Math.ceil((this.count-1) / 2);\r\n\t\tlet min = this.max - this.page + leftSize + 1 < this.count ? this.max-this.count+1: Math.max(this.page-leftSize,1);\r\n\t\tlet max = this.page <= rightSize? Math.min(this.count, this.max) :Math.min(this.page+rightSize, this.max);\r\n\r\n\t\twhile(this.pagesElement.firstChild) this.pagesElement.removeChild(this.pagesElement.firstChild);\r\n\r\n\t\tif(this.page == 1){\r\n\t\t\tthis.firstBut.disabled = true;\r\n\t\t\tthis.prevBut.disabled = true;\r\n\t\t}else{\r\n\t\t\tthis.firstBut.disabled = false;\r\n\t\t\tthis.prevBut.disabled = false;\r\n\t\t}\r\n\r\n\t\tif(this.page == this.max){\r\n\t\t\tthis.lastBut.disabled = true;\r\n\t\t\tthis.nextBut.disabled = true;\r\n\t\t}else{\r\n\t\t\tthis.lastBut.disabled = false;\r\n\t\t\tthis.nextBut.disabled = false;\r\n\t\t}\r\n\r\n\t\tfor(let i = min; i <= max; i++){\r\n\t\t\tif(i>0 && i <= this.max){\r\n\t\t\t\tthis.pagesElement.appendChild(this._generatePageButton(i));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.footerRedraw();\r\n\t}\r\n\r\n\t_generatePageButton(page){\r\n\t\tvar button = document.createElement(\"button\");\r\n\r\n\t\tbutton.classList.add(\"tabulator-page\");\r\n\t\tif(page == this.page){\r\n\t\t\tbutton.classList.add(\"active\");\r\n\t\t}\r\n\r\n\t\tbutton.setAttribute(\"type\", \"button\");\r\n\t\tbutton.setAttribute(\"role\", \"button\");\r\n\r\n\t\tthis.langBind(\"pagination|page_title\", (value) => {\r\n\t\t\tbutton.setAttribute(\"aria-label\", value + \" \" + page);\r\n\t\t\tbutton.setAttribute(\"title\", value + \" \" + page);\r\n\t\t});\r\n\r\n\t\tbutton.setAttribute(\"data-page\", page);\r\n\t\tbutton.textContent = page;\r\n\r\n\t\tbutton.addEventListener(\"click\", (e) => {\r\n\t\t\tthis.setPage(page)\r\n\t\t});\r\n\r\n\t\treturn button;\r\n\t}\r\n\r\n\t//previous page\r\n\tpreviousPage(){\r\n\t\tif(this.page > 1){\r\n\t\t\tthis.page--;\r\n\r\n\t\t\tthis.trackChanges();\r\n\r\n\t\t\treturn this.trigger()\r\n\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Pagination Error - Previous page would be less than page 1:\", 0);\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\t//next page\r\n\tnextPage(){\r\n\t\tif(this.page < this.max){\r\n\t\t\tthis.page++;\r\n\r\n\t\t\tthis.trackChanges();\r\n\r\n\t\t\treturn this.trigger();\r\n\r\n\t\t}else{\r\n\t\t\tif(!this.progressiveLoad){\r\n\t\t\t\tconsole.warn(\"Pagination Error - Next page would be greater than maximum page of \" + this.max + \":\", this.max + 1);\r\n\t\t\t}\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\t//return current page number\r\n\tgetPage(){\r\n\t\treturn this.page;\r\n\t}\r\n\r\n\t//return max page number\r\n\tgetPageMax(){\r\n\t\treturn this.max;\r\n\t}\r\n\r\n\tgetPageSize(size){\r\n\t\treturn this.size;\r\n\t}\r\n\r\n\tgetMode(){\r\n\t\treturn this.mode;\r\n\t}\r\n\r\n\t//return appropriate rows for current page\r\n\tgetRows(data){\r\n\t\tvar output, start, end;\r\n\r\n\t\tif(this.mode == \"local\"){\r\n\t\t\toutput = [];\r\n\r\n\t\t\tthis.setMaxRows(data.length);\r\n\r\n\t\t\tif(this.size === true){\r\n\t\t\t\tstart = 0;\r\n\t\t\t\tend = data.length;\r\n\t\t\t}else{\r\n\t\t\t\tstart = this.size * (this.page - 1);\r\n\t\t\t\tend = start + parseInt(this.size);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._setPageButtons();\r\n\r\n\t\t\tfor(let i = start; i < end; i++){\r\n\t\t\t\tif(data[i]){\r\n\t\t\t\t\toutput.push(data[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn output;\r\n\t\t}else{\r\n\t\t\tthis._setPageButtons();\r\n\r\n\t\t\treturn data.slice(0);\r\n\t\t}\r\n\t}\r\n\r\n\ttrigger(){\r\n\t\tvar left;\r\n\r\n\t\tswitch(this.mode){\r\n\t\t\tcase \"local\":\r\n\t\t\tleft = this.table.rowManager.scrollLeft;\r\n\r\n\t\t\tthis.refreshData();\r\n\t\t\tthis.table.rowManager.scrollHorizontal(left);\r\n\r\n\t\t\tthis.dispatchExternal(\"pageLoaded\", this.getPage());\r\n\r\n\t\t\treturn Promise.resolve();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"remote\":\r\n\t\t\tthis.dataChanging = true;\r\n\t\t\treturn this.reloadData(null)\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.dataChanging = false;\r\n\t\t\t})\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"progressive_load\":\r\n\t\t\tcase \"progressive_scroll\":\r\n\t\t\treturn this.reloadData(null, true);\r\n\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\tconsole.warn(\"Pagination Error - no such pagination mode:\", this.mode);\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\t_parseRemoteData(data){\r\n\t\tvar left, data, margin;\r\n\r\n\t\tif(typeof data.last_page === \"undefined\"){\r\n\t\t\tconsole.warn(\"Remote Pagination Error - Server response missing '\" + this.dataReceivedNames.last_page + \"' property\");\r\n\t\t}\r\n\r\n\t\tif(data.data){\r\n\t\t\tthis.max = parseInt(data.last_page) || 1;\r\n\r\n\t\t\tif(this.progressiveLoad){\r\n\t\t\t\tswitch(this.mode){\r\n\t\t\t\t\tcase \"progressive_load\":\r\n\r\n\t\t\t\t\tif(this.page == 1){\r\n\t\t\t\t\t\tthis.table.rowManager.setData(data.data, false, this.page == 1)\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.table.rowManager.addRows(data.data);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(this.page < this.max){\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.nextPage();\r\n\t\t\t\t\t\t}, this.table.options.progressiveLoadDelay);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"progressive_scroll\":\r\n\t\t\t\t\tdata = this.table.rowManager.getData().concat(data.data);\r\n\r\n\t\t\t\t\tthis.table.rowManager.setData(data, this.page !== 1, this.page == 1);\r\n\r\n\t\t\t\t\tmargin = this.table.options.progressiveLoadScrollMargin || (this.table.rowManager.element.clientHeight * 2);\r\n\r\n\t\t\t\t\tif(this.table.rowManager.element.scrollHeight <= (this.table.rowManager.element.clientHeight + margin)){\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.nextPage();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}else{\r\n\t\t\t\t// left = this.table.rowManager.scrollLeft;\r\n\t\t\t\tthis.dispatchExternal(\"pageLoaded\", this.getPage());\r\n\t\t\t\t// this.table.rowManager.scrollHorizontal(left);\r\n\t\t\t\t// this.table.columnManager.scrollHorizontal(left);\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Remote Pagination Error - Server response missing '\" + this.dataReceivedNames.data + \"' property\");\r\n\t\t}\r\n\r\n\t\treturn data.data;\r\n\t}\r\n\r\n\t//handle the footer element being redrawn\r\n\tfooterRedraw(){\r\n\t\tvar footer = this.table.footerManager.element;\r\n\r\n\t\tif((Math.ceil(footer.clientWidth) - footer.scrollWidth) < 0){\r\n\t\t\tthis.pagesElement.style.display = 'none';\r\n\t\t}else{\r\n\t\t\tthis.pagesElement.style.display = '';\r\n\r\n\t\t\tif((Math.ceil(footer.clientWidth) - footer.scrollWidth) < 0){\r\n\t\t\t\tthis.pagesElement.style.display = 'none';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nPage.moduleName = \"page\";\r\n\r\nexport default Page;","// read peristence information from storage\r\nexport default {\r\n\tlocal:function(id, type){\r\n\t\tvar data = localStorage.getItem(id + \"-\" + type);\r\n\r\n\t\treturn data ? JSON.parse(data) : false;\r\n\t},\r\n\tcookie:function(id, type){\r\n\t\tvar cookie = document.cookie,\r\n\t\tkey = id + \"-\" + type,\r\n\t\tcookiePos = cookie.indexOf(key + \"=\"),\r\n\t\tend, data;\r\n\r\n\t\t//if cookie exists, decode and load column data into tabulator\r\n\t\tif(cookiePos > -1){\r\n\t\t\tcookie = cookie.substr(cookiePos);\r\n\r\n\t\t\tend = cookie.indexOf(\";\");\r\n\r\n\t\t\tif(end > -1){\r\n\t\t\t\tcookie = cookie.substr(0, end);\r\n\t\t\t}\r\n\r\n\t\t\tdata = cookie.replace(key + \"=\", \"\");\r\n\t\t}\r\n\r\n\t\treturn data ? JSON.parse(data) : false;\r\n\t}\r\n};","//write persistence information to storage\r\nexport default {\r\n\tlocal:function(id, type, data){\r\n\t\tlocalStorage.setItem(id + \"-\" + type, JSON.stringify(data));\r\n\t},\r\n\tcookie:function(id, type, data){\r\n\t\tvar expireDate = new Date();\r\n\r\n\t\texpireDate.setDate(expireDate.getDate() + 10000);\r\n\r\n\t\tdocument.cookie = id + \"-\" + type + \"=\" + JSON.stringify(data) + \"; expires=\" + expireDate.toUTCString();\r\n\t}\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultReaders from './defaults/readers.js';\r\nimport defaultWriters from './defaults/writers.js';\r\n\r\nclass Persistence extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.mode = \"\";\r\n\t\tthis.id = \"\";\r\n\t\t// this.persistProps = [\"field\", \"width\", \"visible\"];\r\n\t\tthis.defWatcherBlock = false;\r\n\t\tthis.config = {};\r\n\t\tthis.readFunc = false;\r\n\t\tthis.writeFunc = false;\r\n\r\n\t\tthis.registerTableOption(\"persistence\", false);\r\n\t\tthis.registerTableOption(\"persistenceID\", \"\"); //key for persistent storage\r\n\t\tthis.registerTableOption(\"persistenceMode\", true); //mode for storing persistence information\r\n\t\tthis.registerTableOption(\"persistenceReaderFunc\", false); //function for handling persistence data reading\r\n\t\tthis.registerTableOption(\"persistenceWriterFunc\", false); //function for handling persistence data writing\r\n\t}\r\n\r\n\t// Test for whether localStorage is available for use.\r\n\tlocalStorageTest() {\r\n\t\tvar testKey = \"_tabulator_test\";\r\n\r\n\t\ttry {\r\n\t\t\twindow.localStorage.setItem( testKey, testKey);\r\n\t\t\twindow.localStorage.removeItem( testKey );\r\n\t\t\treturn true;\r\n\t\t} catch(e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t//setup parameters\r\n\tinitialize(){\r\n\t\tif(this.table.options.persistence){\r\n\t\t\t//determine persistent layout storage type\r\n\t\t\tvar mode = this.table.options.persistenceMode,\r\n\t\t\tid = this.table.options.persistenceID,\r\n\t\t\tretreivedData;\r\n\r\n\t\t\tthis.mode = mode !== true ? mode : (this.localStorageTest() ? \"local\" : \"cookie\");\r\n\r\n\t\t\tif(this.table.options.persistenceReaderFunc){\r\n\t\t\t\tif(typeof this.table.options.persistenceReaderFunc === \"function\"){\r\n\t\t\t\t\tthis.readFunc = this.table.options.persistenceReaderFunc;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(Persistence.readers[this.table.options.persistenceReaderFunc]){\r\n\t\t\t\t\t\tthis.readFunc = Persistence.readers[this.table.options.persistenceReaderFunc];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.warn(\"Persistence Read Error - invalid reader set\", this.table.options.persistenceReaderFunc);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(Persistence.readers[this.mode]){\r\n\t\t\t\t\tthis.readFunc = Persistence.readers[this.mode];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Persistence Read Error - invalid reader set\", this.mode);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(this.table.options.persistenceWriterFunc){\r\n\t\t\t\tif(typeof this.table.options.persistenceWriterFunc === \"function\"){\r\n\t\t\t\t\tthis.writeFunc = this.table.options.persistenceWriterFunc;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(Persistence.writers[this.table.options.persistenceWriterFunc]){\r\n\t\t\t\t\t\tthis.writeFunc = Persistence.writers[this.table.options.persistenceWriterFunc];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.warn(\"Persistence Write Error - invalid reader set\", this.table.options.persistenceWriterFunc);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(Persistence.writers[this.mode]){\r\n\t\t\t\t\tthis.writeFunc = Persistence.writers[this.mode];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Persistence Write Error - invalid writer set\", this.mode);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//set storage tag\r\n\t\t\tthis.id = \"tabulator-\" + (id || (this.table.element.getAttribute(\"id\") || \"\"));\r\n\r\n\t\t\tthis.config = {\r\n\t\t\t\tsort:this.table.options.persistence === true || this.table.options.persistence.sort,\r\n\t\t\t\tfilter:this.table.options.persistence === true || this.table.options.persistence.filter,\r\n\t\t\t\tgroup:this.table.options.persistence === true || this.table.options.persistence.group,\r\n\t\t\t\tpage:this.table.options.persistence === true || this.table.options.persistence.page,\r\n\t\t\t\tcolumns:this.table.options.persistence === true ? [\"title\", \"width\", \"visible\"] : this.table.options.persistence.columns,\r\n\t\t\t};\r\n\r\n\t\t\t//load pagination data if needed\r\n\t\t\tif(this.config.page){\r\n\t\t\t\tretreivedData = this.retreiveData(\"page\");\r\n\r\n\t\t\t\tif(retreivedData){\r\n\t\t\t\t\tif(typeof retreivedData.paginationSize !== \"undefined\" && (this.config.page === true || this.config.page.size)){\r\n\t\t\t\t\t\tthis.table.options.paginationSize = retreivedData.paginationSize;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(typeof retreivedData.paginationInitialPage !== \"undefined\" && (this.config.page === true || this.config.page.page)){\r\n\t\t\t\t\t\tthis.table.options.paginationInitialPage = retreivedData.paginationInitialPage;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//load group data if needed\r\n\t\t\tif(this.config.group){\r\n\t\t\t\tretreivedData = this.retreiveData(\"group\");\r\n\r\n\t\t\t\tif(retreivedData){\r\n\t\t\t\t\tif(typeof retreivedData.groupBy !== \"undefined\" && (this.config.group === true || this.config.group.groupBy)){\r\n\t\t\t\t\t\tthis.table.options.groupBy = retreivedData.groupBy;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof retreivedData.groupStartOpen !== \"undefined\" && (this.config.group === true || this.config.group.groupStartOpen)){\r\n\t\t\t\t\t\tthis.table.options.groupStartOpen = retreivedData.groupStartOpen;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof retreivedData.groupHeader !== \"undefined\" && (this.config.group === true || this.config.group.groupHeader)){\r\n\t\t\t\t\t\tthis.table.options.groupHeader = retreivedData.groupHeader;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(this.config.columns){\r\n\t\t\t\tthis.table.options.columns = this.load(\"columns\", this.table.options.columns);\r\n\t\t\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t\t\t\tthis.subscribe(\"column-show\", this.save.bind(this, \"columns\"));\r\n\t\t\t\tthis.subscribe(\"column-hide\", this.save.bind(this, \"columns\"));\r\n\t\t\t\tthis.subscribe(\"column-moved\", this.save.bind(this, \"columns\"));\r\n\t\t\t\tthis.subscribe(\"table-built\", this.tableBuilt.bind(this), 0);\r\n\t\t\t}\r\n\r\n\t\t\tthis.subscribe(\"table-redraw\", this.tableRedraw.bind(this));\r\n\r\n\r\n\t\t\tthis.subscribe(\"filter-changed\", this.eventSave.bind(this, \"filter\"));\r\n\t\t\tthis.subscribe(\"sort-changed\", this.eventSave.bind(this, \"sort\"));\r\n\t\t\tthis.subscribe(\"group-changed\", this.eventSave.bind(this, \"group\"));\r\n\t\t\tthis.subscribe(\"page-changed\", this.eventSave.bind(this, \"page\"));\r\n\t\t\tthis.subscribe(\"column-resized\", this.eventSave.bind(this, \"columns\"));\r\n\t\t\tthis.subscribe(\"layout-refreshed\", this.eventSave.bind(this, \"columns\"));\r\n\t\t}\r\n\r\n\t\tthis.registerTableFunction(\"getColumnLayout\", this.getColumnLayout.bind(this));\r\n\t\tthis.registerTableFunction(\"setColumnLayout\", this.setColumnLayout.bind(this));\r\n\t}\r\n\r\n\teventSave(type){\r\n\t\tif(this.config[type]){\r\n\t\t\tthis.save(type);\r\n\t\t}\r\n\t}\r\n\r\n\ttableBuilt(){\r\n\t\tvar options = this.table.options,\r\n\t\tsorters, filters;\r\n\r\n\t\tif(this.config.sort){\r\n\t\t\tsorters = this.load(\"sort\");\r\n\r\n\t\t\tif(!sorters === false){\r\n\t\t\t\tthis.table.initialSort = sorters;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(this.config.filter){\r\n\t\t\tfilters = this.load(\"filter\");\r\n\r\n\t\t\tif(!filters === false){\r\n\t\t\t\tthis.table.initialFilter = filters;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\ttableRedraw(force){\r\n\t\tif(force && this.config.columns){\r\n\t\t\tthis.save(\"columns\");\r\n\t\t}\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\tgetColumnLayout(){\r\n\t\treturn this.parseColumns(this.table.columnManager.getColumns());\r\n\t}\r\n\r\n\tsetColumnLayout(layout){\r\n\t\tthis.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout))\r\n\t\treturn true;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\tinitializeColumn(column){\r\n\t\tvar def, keys;\r\n\r\n\t\tif(this.config.columns){\r\n\t\t\tthis.defWatcherBlock = true;\r\n\r\n\t\t\tdef = column.getDefinition();\r\n\r\n\t\t\tkeys = this.config.columns === true ? Object.keys(def) : this.config.columns;\r\n\r\n\t\t\tkeys.forEach((key)=>{\r\n\t\t\t\tvar props = Object.getOwnPropertyDescriptor(def, key);\r\n\t\t\t\tvar value = def[key];\r\n\t\t\t\tif(props){\r\n\t\t\t\t\tObject.defineProperty(def, key, {\r\n\t\t\t\t\t\tset: function(newValue){\r\n\t\t\t\t\t\t\tvalue = newValue;\r\n\r\n\t\t\t\t\t\t\tif(!this.defWatcherBlock){\r\n\t\t\t\t\t\t\t\tthis.save(\"columns\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(props.set){\r\n\t\t\t\t\t\t\t\tprops.set(newValue);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tget:function(){\r\n\t\t\t\t\t\t\tif(props.get){\r\n\t\t\t\t\t\t\t\tprops.get();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.defWatcherBlock = false;\r\n\t\t}\r\n\t}\r\n\r\n\t//load saved definitions\r\n\tload(type, current){\r\n\t\tvar data = this.retreiveData(type);\r\n\r\n\t\tif(current){\r\n\t\t\tdata = data ? this.mergeDefinition(current, data) : current;\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\t//retreive data from memory\r\n\tretreiveData(type){\r\n\t\treturn this.readFunc ? this.readFunc(this.id, type) : false;\r\n\t}\r\n\r\n\t//merge old and new column definitions\r\n\tmergeDefinition(oldCols, newCols){\r\n\t\tvar output = [];\r\n\r\n\t\tnewCols = newCols || [];\r\n\r\n\t\tnewCols.forEach((column, to) => {\r\n\t\t\tvar from = this._findColumn(oldCols, column),\r\n\t\t\tkeys;\r\n\r\n\t\t\tif(from){\r\n\t\t\t\tif(this.config.columns === true || this.config.columns == undefined){\r\n\t\t\t\t\tkeys = Object.keys(from);\r\n\t\t\t\t\tkeys.push(\"width\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tkeys = this.config.columns;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkeys.forEach((key)=>{\r\n\t\t\t\t\tif(key !== \"columns\" && typeof column[key] !== \"undefined\"){\r\n\t\t\t\t\t\tfrom[key] = column[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(from.columns){\r\n\t\t\t\t\tfrom.columns = this.mergeDefinition(from.columns, column.columns);\r\n\t\t\t\t}\r\n\r\n\t\t\t\toutput.push(from);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\toldCols.forEach((column, i) => {\r\n\t\t\tvar from = this._findColumn(newCols, column);\r\n\r\n\t\t\tif (!from) {\r\n\t\t\t\tif(output.length>i){\r\n\t\t\t\t\toutput.splice(i, 0, column);\r\n\t\t\t\t}else{\r\n\t\t\t\t\toutput.push(column);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\t//find matching columns\r\n\t_findColumn(columns, subject){\r\n\t\tvar type = subject.columns ? \"group\" : (subject.field ? \"field\" : \"object\");\r\n\r\n\t\treturn columns.find(function(col){\r\n\t\t\tswitch(type){\r\n\t\t\t\tcase \"group\":\r\n\t\t\t\treturn col.title === subject.title && col.columns.length === subject.columns.length;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"field\":\r\n\t\t\t\treturn col.field === subject.field;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"object\":\r\n\t\t\t\treturn col === subject;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//save data\r\n\tsave(type){\r\n\t\tvar data = {};\r\n\r\n\t\tswitch(type){\r\n\t\t\tcase \"columns\":\r\n\t\t\tdata = this.parseColumns(this.table.columnManager.getColumns())\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"filter\":\r\n\t\t\tdata = this.table.modules.filter.getFilters();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"sort\":\r\n\t\t\tdata = this.validateSorters(this.table.modules.sort.getSort());\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"group\":\r\n\t\t\tdata = this.getGroupConfig();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"page\":\r\n\t\t\tdata = this.getPageConfig();\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif(this.writeFunc){\r\n\t\t\tthis.writeFunc(this.id, type, data);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t//ensure sorters contain no function data\r\n\tvalidateSorters(data){\r\n\t\tdata.forEach(function(item){\r\n\t\t\titem.column = item.field;\r\n\t\t\tdelete item.field;\r\n\t\t});\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tgetGroupConfig(){\r\n\t\tvar data = {};\r\n\r\n\t\tif(this.config.group){\r\n\t\t\tif(this.config.group === true || this.config.group.groupBy){\r\n\t\t\t\tdata.groupBy = this.table.options.groupBy;\r\n\t\t\t}\r\n\r\n\t\t\tif(this.config.group === true || this.config.group.groupStartOpen){\r\n\t\t\t\tdata.groupStartOpen = this.table.options.groupStartOpen;\r\n\t\t\t}\r\n\r\n\t\t\tif(this.config.group === true || this.config.group.groupHeader){\r\n\t\t\t\tdata.groupHeader = this.table.options.groupHeader;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tgetPageConfig(){\r\n\t\tvar data = {};\r\n\r\n\t\tif(this.config.page){\r\n\t\t\tif(this.config.page === true || this.config.page.size){\r\n\t\t\t\tdata.paginationSize = this.table.modules.page.getPageSize();\r\n\t\t\t}\r\n\r\n\t\t\tif(this.config.page === true || this.config.page.page){\r\n\t\t\t\tdata.paginationInitialPage = this.table.modules.page.getPage();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\r\n\t//parse columns for data to store\r\n\tparseColumns(columns){\r\n\t\tvar definitions = [],\r\n\t\texcludedKeys = [\"headerContextMenu\", \"headerMenu\", \"contextMenu\", \"clickMenu\"];\r\n\r\n\t\tcolumns.forEach((column) => {\r\n\t\t\tvar defStore = {},\r\n\t\t\tcolDef = column.getDefinition(),\r\n\t\t\tkeys;\r\n\r\n\t\t\tif(column.isGroup){\r\n\t\t\t\tdefStore.title = colDef.title;\r\n\t\t\t\tdefStore.columns = this.parseColumns(column.getColumns());\r\n\t\t\t}else{\r\n\t\t\t\tdefStore.field = column.getField();\r\n\r\n\t\t\t\tif(this.config.columns === true || this.config.columns == undefined){\r\n\t\t\t\t\tkeys = Object.keys(colDef);\r\n\t\t\t\t\tkeys.push(\"width\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tkeys = this.config.columns;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkeys.forEach((key)=>{\r\n\t\t\t\t\tswitch(key){\r\n\t\t\t\t\t\tcase \"width\":\r\n\t\t\t\t\t\tdefStore.width = column.getWidth();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase \"visible\":\r\n\t\t\t\t\t\tdefStore.visible = column.visible;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif(typeof colDef[key] !== \"function\" && excludedKeys.indexOf(key) === -1){\r\n\t\t\t\t\t\t\tdefStore[key] = colDef[key];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tdefinitions.push(defStore);\r\n\t\t});\r\n\r\n\t\treturn definitions;\r\n\t}\r\n}\r\n\r\nPersistence.moduleName = \"persistence\";\r\n\r\n//load defaults\r\nPersistence.readers = defaultReaders;\r\nPersistence.writers = defaultWriters;\r\n\r\nexport default Persistence;","import Module from '../../core/Module.js';\r\n\r\nclass Print extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.element = false;\r\n\t\tthis.manualBlock = false;\r\n\r\n\t\tthis.registerTableOption(\"printAsHtml\", false); //enable print as html\r\n\t\tthis.registerTableOption(\"printFormatter\", false); //printing page formatter\r\n\t\tthis.registerTableOption(\"printHeader\", false); //page header contents\r\n\t\tthis.registerTableOption(\"printFooter\", false); //page footer contents\r\n\t\tthis.registerTableOption(\"printStyled\", true); //enable print as html styling\r\n\t\tthis.registerTableOption(\"printRowRange\", \"visible\"); //restrict print to visible rows only\r\n\t\tthis.registerTableOption(\"printConfig\", {}); //print config options\r\n\r\n\t\tthis.registerColumnOption(\"print\");\r\n\t\tthis.registerColumnOption(\"titlePrint\");\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.printAsHtml){\r\n\t\t\twindow.addEventListener(\"beforeprint\", this.replaceTable.bind(this));\r\n\t\t\twindow.addEventListener(\"afterprint\", this.cleanup.bind(this));\r\n\t\t}\r\n\r\n\t\tthis.registerTableFunction(\"print\", this.printFullscreen.bind(this));\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\treplaceTable(){\r\n\t\tif(!this.manualBlock){\r\n\t\t\tthis.element = document.createElement(\"div\");\r\n\t\t\tthis.element.classList.add(\"tabulator-print-table\");\r\n\r\n\t\t\tthis.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig, this.table.options.printStyled, this.table.options.printRowRange, \"print\"));\r\n\r\n\t\t\tthis.table.element.style.display = \"none\";\r\n\r\n\t\t\tthis.table.element.parentNode.insertBefore(this.element, this.table.element);\r\n\t\t}\r\n\t}\r\n\r\n\tcleanup(){\r\n\t\tdocument.body.classList.remove(\"tabulator-print-fullscreen-hide\");\r\n\r\n\t\tif(this.element && this.element.parentNode){\r\n\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t\tthis.table.element.style.display = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tprintFullscreen(visible, style, config){\r\n\t\tvar scrollX = window.scrollX,\r\n\t\tscrollY = window.scrollY,\r\n\t\theaderEl = document.createElement(\"div\"),\r\n\t\tfooterEl = document.createElement(\"div\"),\r\n\t\ttableEl = this.table.modules.export.genereateTable(typeof config != \"undefined\" ? config : this.table.options.printConfig, typeof style != \"undefined\" ? style : this.table.options.printStyled, visible || this.table.options.printRowRange, \"print\"),\r\n\t\theaderContent, footerContent;\r\n\r\n\t\tthis.manualBlock = true;\r\n\r\n\t\tthis.element = document.createElement(\"div\");\r\n\t\tthis.element.classList.add(\"tabulator-print-fullscreen\");\r\n\r\n\t\tif(this.table.options.printHeader){\r\n\t\t\theaderEl.classList.add(\"tabulator-print-header\");\r\n\r\n\t\t\theaderContent = typeof this.table.options.printHeader == \"function\" ? this.table.options.printHeader.call(this.table) : this.table.options.printHeader;\r\n\r\n\t\t\tif(typeof headerContent == \"string\"){\r\n\t\t\t\theaderEl.innerHTML = headerContent;\r\n\t\t\t}else{\r\n\t\t\t\theaderEl.appendChild(headerContent);\r\n\t\t\t}\r\n\r\n\t\t\tthis.element.appendChild(headerEl);\r\n\t\t}\r\n\r\n\t\tthis.element.appendChild(tableEl);\r\n\r\n\t\tif(this.table.options.printFooter){\r\n\t\t\tfooterEl.classList.add(\"tabulator-print-footer\");\r\n\r\n\t\t\tfooterContent = typeof this.table.options.printFooter == \"function\" ? this.table.options.printFooter.call(this.table) : this.table.options.printFooter;\r\n\r\n\r\n\t\t\tif(typeof footerContent == \"string\"){\r\n\t\t\t\tfooterEl.innerHTML = footerContent;\r\n\t\t\t}else{\r\n\t\t\t\tfooterEl.appendChild(footerContent);\r\n\t\t\t}\r\n\r\n\t\t\tthis.element.appendChild(footerEl);\r\n\t\t}\r\n\r\n\t\tdocument.body.classList.add(\"tabulator-print-fullscreen-hide\");\r\n\t\tdocument.body.appendChild(this.element);\r\n\r\n\t\tif(this.table.options.printFormatter){\r\n\t\t\tthis.table.options.printFormatter(this.element, tableEl);\r\n\t\t}\r\n\r\n\t\twindow.print();\r\n\r\n\t\tthis.cleanup();\r\n\r\n\t\twindow.scrollTo(scrollX, scrollY);\r\n\r\n\t\tthis.manualBlock = false;\r\n\t}\r\n}\r\n\r\nPrint.moduleName = \"print\";\r\n\r\nexport default Print;","import Module from '../../core/Module.js';\r\n\r\nclass ReactiveData extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.data = false;\r\n\t\tthis.blocked = false; //block reactivity while performing update\r\n\t\tthis.origFuncs = {}; // hold original data array functions to allow replacement after data is done with\r\n\t\tthis.currentVersion = 0;\r\n\r\n\t\tthis.registerTableOption(\"reactiveData\", false); //enable data reactivity\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.reactiveData){\r\n\t\t\tthis.subscribe(\"cell-value-save-before\", this.block.bind(this));\r\n\t\t\tthis.subscribe(\"cell-value-save-after\", this.unblock.bind(this));\r\n\t\t\tthis.subscribe(\"row-data-save-before\", this.block.bind(this));\r\n\t\t\tthis.subscribe(\"row-data-save-after\", this.unblock.bind(this));\r\n\t\t\tthis.subscribe(\"row-data-init-after\", this.watchRow.bind(this));\r\n\t\t\tthis.subscribe(\"data-processing\", this.watchData.bind(this));\r\n\t\t\tthis.subscribe(\"table-destroy\", this.unwatchData.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\twatchData(data){\r\n\t\tvar self = this,\r\n\t\tpushFunc, version;\r\n\r\n\t\tthis.currentVersion ++;\r\n\r\n\t\tversion = this.currentVersion;\r\n\r\n\t\tthis.unwatchData();\r\n\r\n\t\tthis.data = data;\r\n\r\n\t\t//override array push function\r\n\t\tthis.origFuncs.push = data.push;\r\n\r\n\t\tObject.defineProperty(this.data, \"push\", {\r\n\t\t\tenumerable: false,\r\n\t\t\tconfigurable: true,\r\n\t\t\tvalue: function(){\r\n\t\t\t\tvar args = Array.from(arguments);\r\n\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\tself.table.rowManager.addRowActual(arg, false);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn self.origFuncs.push.apply(data, arguments);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//override array unshift function\r\n\t\tthis.origFuncs.unshift = data.unshift;\r\n\r\n\t\tObject.defineProperty(this.data, \"unshift\", {\r\n\t\t\tenumerable: false,\r\n\t\t\tconfigurable: true,\r\n\t\t\tvalue: function(){\r\n\t\t\t\tvar args = Array.from(arguments);\r\n\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\tself.table.rowManager.addRowActual(arg, true);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn self.origFuncs.unshift.apply(data, arguments);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t//override array shift function\r\n\t\tthis.origFuncs.shift = data.shift;\r\n\r\n\t\tObject.defineProperty(this.data, \"shift\", {\r\n\t\t\tenumerable: false,\r\n\t\t\tconfigurable: true,\r\n\t\t\tvalue: function(){\r\n\t\t\t\tvar row;\r\n\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\tif(self.data.length){\r\n\t\t\t\t\t\trow = self.table.rowManager.getRowFromDataObject(self.data[0]);\r\n\r\n\t\t\t\t\t\tif(row){\r\n\t\t\t\t\t\t\trow.deleteActual();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn self.origFuncs.shift.call(data);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//override array pop function\r\n\t\tthis.origFuncs.pop = data.pop;\r\n\r\n\t\tObject.defineProperty(this.data, \"pop\", {\r\n\t\t\tenumerable: false,\r\n\t\t\tconfigurable: true,\r\n\t\t\tvalue: function(){\r\n\t\t\t\tvar row;\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\tif(self.data.length){\r\n\t\t\t\t\t\trow = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]);\r\n\r\n\t\t\t\t\t\tif(row){\r\n\t\t\t\t\t\t\trow.deleteActual();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn self.origFuncs.pop.call(data);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t//override array splice function\r\n\t\tthis.origFuncs.splice = data.splice;\r\n\r\n\t\tObject.defineProperty(this.data, \"splice\", {\r\n\t\t\tenumerable: false,\r\n\t\t\tconfigurable: true,\r\n\t\t\tvalue: function(){\r\n\t\t\t\tvar args = Array.from(arguments),\r\n\t\t\t\tstart = args[0] < 0 ? data.length + args[0] : args[0],\r\n\t\t\t\tend = args[1],\r\n\t\t\t\tnewRows = args[2] ? args.slice(2) : false,\r\n\t\t\t\tstartRow;\r\n\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\r\n\t\t\t\t\t//add new rows\r\n\t\t\t\t\tif(newRows){\r\n\t\t\t\t\t\tstartRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false;\r\n\r\n\t\t\t\t\t\tif(startRow){\r\n\t\t\t\t\t\t\tnewRows.forEach((rowData) => {\r\n\t\t\t\t\t\t\t\tself.table.rowManager.addRowActual(rowData, true, startRow, true);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tnewRows = newRows.slice().reverse();\r\n\r\n\t\t\t\t\t\t\tnewRows.forEach((rowData) => {\r\n\t\t\t\t\t\t\t\tself.table.rowManager.addRowActual(rowData, true, false, true);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//delete removed rows\r\n\t\t\t\t\tif(end !== 0){\r\n\t\t\t\t\t\tvar oldRows = data.slice(start, typeof args[1] === \"undefined\" ? args[1] : start + end);\r\n\r\n\t\t\t\t\t\toldRows.forEach((rowData, i) => {\r\n\t\t\t\t\t\t\tvar row = self.table.rowManager.getRowFromDataObject(rowData);\r\n\r\n\t\t\t\t\t\t\tif(row){\r\n\t\t\t\t\t\t\t\trow.deleteActual(i !== oldRows.length - 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(newRows || end !== 0){\r\n\t\t\t\t\t\tself.table.rowManager.reRenderInPosition();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn self.origFuncs.splice.apply(data, arguments);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tunwatchData(){\r\n\t\tif(this.data !== false){\r\n\t\t\tfor(var key in this.origFuncs){\r\n\t\t\t\tObject.defineProperty(this.data, key, {\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\tconfigurable:true,\r\n\t\t\t\t\twritable:true,\r\n\t\t\t\t\tvalue: this.origFuncs.key,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\twatchRow(row){\r\n\t\tvar data = row.getData();\r\n\r\n\t\tthis.blocked = true;\r\n\r\n\t\tfor(var key in data){\r\n\t\t\tthis.watchKey(row, data, key);\r\n\t\t}\r\n\r\n\t\tif(this.table.options.dataTree){\r\n\t\t\tthis.watchTreeChildren(row);\r\n\t\t}\r\n\r\n\t\tthis.blocked = false;\r\n\t}\r\n\r\n\twatchTreeChildren (row){\r\n\t\tvar childField = row.getData()[this.table.options.dataTreeChildField],\r\n\t\torigFuncs = {};\r\n\r\n\t\tfunction rebuildTree(){\r\n\t\t\tthis.table.modules.dataTree.initializeRow(row);\r\n\t\t\tthis.table.modules.dataTree.layoutRow(row);\r\n\t\t\tthis.table.rowManager.refreshActiveData(\"tree\", false, true);\r\n\t\t}\r\n\r\n\t\tif(childField){\r\n\r\n\t\t\torigFuncs.push = childField.push;\r\n\r\n\t\t\tObject.defineProperty(childField, \"push\", {\r\n\t\t\t\tenumerable: false,\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tvalue: () => {\r\n\t\t\t\t\tvar result = origFuncs.push.apply(childField, arguments);\r\n\r\n\t\t\t\t\trebuildTree();\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\torigFuncs.unshift = childField.unshift;\r\n\r\n\t\t\tObject.defineProperty(childField, \"unshift\", {\r\n\t\t\t\tenumerable: false,\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tvalue: () => {\r\n\t\t\t\t\tvar result = origFuncs.unshift.apply(childField, arguments);\r\n\r\n\t\t\t\t\trebuildTree();\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\torigFuncs.shift = childField.shift;\r\n\r\n\t\t\tObject.defineProperty(childField, \"shift\", {\r\n\t\t\t\tenumerable: false,\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tvalue: () => {\r\n\t\t\t\t\tvar result = origFuncs.shift.call(childField);\r\n\r\n\t\t\t\t\trebuildTree();\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\torigFuncs.pop = childField.pop;\r\n\r\n\t\t\tObject.defineProperty(childField, \"pop\", {\r\n\t\t\t\tenumerable: false,\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tvalue: () => {\r\n\t\t\t\t\tvar result = origFuncs.pop.call(childField);\r\n\r\n\t\t\t\t\trebuildTree();\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\torigFuncs.splice = childField.splice;\r\n\r\n\t\t\tObject.defineProperty(childField, \"splice\", {\r\n\t\t\t\tenumerable: false,\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tvalue: () => {\r\n\t\t\t\t\tvar result = origFuncs.splice.apply(childField, arguments);\r\n\r\n\t\t\t\t\trebuildTree();\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\twatchKey(row, data, key){\r\n\t\tvar props = Object.getOwnPropertyDescriptor(data, key),\r\n\t\tvalue = data[key],\r\n\t\tversion = this.currentVersion;\r\n\r\n\t\tObject.defineProperty(data, key, {\r\n\t\t\tset: (newValue) => {\r\n\t\t\t\tvalue = newValue;\r\n\t\t\t\tif(!this.blocked && version === this.currentVersion){\r\n\t\t\t\t\tvar update = {};\r\n\t\t\t\t\tupdate[key] = newValue;\r\n\t\t\t\t\trow.updateData(update);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(props.set){\r\n\t\t\t\t\tprops.set(newValue);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tget:() => {\r\n\r\n\t\t\t\tif(props.get){\r\n\t\t\t\t\tprops.get();\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tunwatchRow(row){\r\n\t\tvar data = row.getData();\r\n\r\n\t\tfor(var key in data){\r\n\t\t\tObject.defineProperty(data, key, {\r\n\t\t\t\tvalue:data[key],\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tblock(){\r\n\t\tthis.blocked = true;\r\n\t}\r\n\r\n\tunblock(){\r\n\t\tthis.blocked = false;\r\n\t}\r\n}\r\n\r\nReactiveData.moduleName = \"reactiveData\";\r\n\r\nexport default ReactiveData;\r\n\r\n\r\n\r\n","import Module from '../../core/Module.js';\r\n\r\nclass ResizeColumns extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.startColumn = false;\r\n\t\tthis.startX = false;\r\n\t\tthis.startWidth = false;\r\n\t\tthis.handle = null;\r\n\t\tthis.prevHandle = null;\r\n\r\n\t\tthis.registerColumnOption(\"resizable\", true);\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\t// if(this.table.options.resizableColumns){\r\n\t\t\tthis.subscribe(\"cell-layout\", this.layoutCellHandles.bind(this));\r\n\t\t\tthis.subscribe(\"column-init\", this.layoutColumnHeader.bind(this));\r\n\t\t// }\r\n\t}\r\n\r\n\tlayoutCellHandles(cell){\r\n\t\tif(cell.row.type === \"row\"){\r\n\t\t\tthis.initializeColumn(\"cell\", cell.column, cell.element);\r\n\t\t}\r\n\t}\r\n\r\n\tlayoutColumnHeader(column){\r\n\t\tthis.initializeColumn(\"header\", column, column.element);\r\n\t}\r\n\r\n\tinitializeColumn(type, column, element){\r\n\t\tvar self = this,\r\n\t\tvariableHeight = false,\r\n\t\tmode = column.definition.resizable;\r\n\r\n\t\t//set column resize mode\r\n\t\tif(type === \"header\"){\r\n\t\t\tvariableHeight = column.definition.formatter == \"textarea\" || column.definition.variableHeight;\r\n\t\t\tcolumn.modules.resize = {variableHeight:variableHeight};\r\n\t\t}\r\n\r\n\t\tif(mode === true || mode == type){\r\n\r\n\t\t\tvar handle = document.createElement('div');\r\n\t\t\thandle.className = \"tabulator-col-resize-handle\";\r\n\r\n\r\n\t\t\tvar prevHandle = document.createElement('div');\r\n\t\t\tprevHandle.className = \"tabulator-col-resize-handle prev\";\r\n\r\n\t\t\thandle.addEventListener(\"click\", function(e){\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\r\n\t\t\tvar handleDown = function(e){\r\n\t\t\t\tvar nearestColumn = column.getLastColumn();\r\n\r\n\t\t\t\tif(nearestColumn && self._checkResizability(nearestColumn)){\r\n\t\t\t\t\tself.startColumn = column;\r\n\t\t\t\t\tself._mouseDown(e, nearestColumn, handle);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\thandle.addEventListener(\"mousedown\", handleDown);\r\n\t\t\thandle.addEventListener(\"touchstart\", handleDown, {passive: true});\r\n\r\n\t\t\t//reszie column on double click\r\n\t\t\thandle.addEventListener(\"dblclick\", function(e){\r\n\t\t\t\tvar col = column.getLastColumn();\r\n\r\n\t\t\t\tif(col && self._checkResizability(col)){\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tcol.reinitializeWidth(true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tprevHandle.addEventListener(\"click\", function(e){\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\r\n\t\t\tvar prevHandleDown = function(e){\r\n\t\t\t\tvar nearestColumn, colIndex, prevColumn;\r\n\r\n\t\t\t\tnearestColumn = column.getFirstColumn();\r\n\r\n\t\t\t\tif(nearestColumn){\r\n\t\t\t\t\tcolIndex = self.table.columnManager.findColumnIndex(nearestColumn);\r\n\t\t\t\t\tprevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;\r\n\r\n\t\t\t\t\tif(prevColumn && self._checkResizability(prevColumn)){\r\n\t\t\t\t\t\tself.startColumn = column;\r\n\t\t\t\t\t\tself._mouseDown(e, prevColumn, prevHandle);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tprevHandle.addEventListener(\"mousedown\", prevHandleDown);\r\n\t\t\tprevHandle.addEventListener(\"touchstart\", prevHandleDown, {passive: true});\r\n\r\n\t\t\t//resize column on double click\r\n\t\t\tprevHandle.addEventListener(\"dblclick\", function(e){\r\n\t\t\t\tvar nearestColumn, colIndex, prevColumn;\r\n\r\n\t\t\t\tnearestColumn = column.getFirstColumn();\r\n\r\n\t\t\t\tif(nearestColumn){\r\n\t\t\t\t\tcolIndex = self.table.columnManager.findColumnIndex(nearestColumn);\r\n\t\t\t\t\tprevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;\r\n\r\n\t\t\t\t\tif(prevColumn && self._checkResizability(prevColumn)){\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tprevColumn.reinitializeWidth(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\telement.appendChild(handle);\r\n\t\t\telement.appendChild(prevHandle);\r\n\t\t}\r\n\t}\r\n\r\n\t_checkResizability(column){\r\n\t\treturn column.definition.resizable;\r\n\t}\r\n\r\n\t_mouseDown(e, column, handle){\r\n\t\tvar self = this;\r\n\r\n\t\tself.table.element.classList.add(\"tabulator-block-select\");\r\n\r\n\t\tfunction mouseMove(e){\r\n\t\t\t// self.table.columnManager.tempScrollBlock();\r\n\r\n\t\t\tif(self.table.rtl){\r\n\t\t\t\tcolumn.setWidth(self.startWidth - ((typeof e.screenX === \"undefined\" ? e.touches[0].screenX : e.screenX) - self.startX));\r\n\t\t\t}else{\r\n\t\t\t\tcolumn.setWidth(self.startWidth + ((typeof e.screenX === \"undefined\" ? e.touches[0].screenX : e.screenX) - self.startX));\r\n\t\t\t}\r\n\r\n\t\t\tself.table.columnManager.renderer.rerenderColumns(true);\r\n\r\n\t\t\tif(!self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight){\r\n\t\t\t\tcolumn.checkCellHeights();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction mouseUp(e){\r\n\r\n\t\t\t//block editor from taking action while resizing is taking place\r\n\t\t\tif(self.startColumn.modules.edit){\r\n\t\t\t\tself.startColumn.modules.edit.blocked = false;\r\n\t\t\t}\r\n\r\n\t\t\tif(self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight){\r\n\t\t\t\tcolumn.checkCellHeights();\r\n\t\t\t}\r\n\r\n\t\t\tdocument.body.removeEventListener(\"mouseup\", mouseUp);\r\n\t\t\tdocument.body.removeEventListener(\"mousemove\", mouseMove);\r\n\r\n\t\t\thandle.removeEventListener(\"touchmove\", mouseMove);\r\n\t\t\thandle.removeEventListener(\"touchend\", mouseUp);\r\n\r\n\t\t\tself.table.element.classList.remove(\"tabulator-block-select\");\r\n\r\n\t\t\tself.dispatch(\"column-resized\", column);\r\n\t\t\tself.table.externalEvents.dispatch(\"columnResized\", column.getComponent());\r\n\t\t}\r\n\r\n\t\te.stopPropagation(); //prevent resize from interfereing with movable columns\r\n\r\n\t\t//block editor from taking action while resizing is taking place\r\n\t\tif(self.startColumn.modules.edit){\r\n\t\t\tself.startColumn.modules.edit.blocked = true;\r\n\t\t}\r\n\r\n\t\tself.startX = typeof e.screenX === \"undefined\" ? e.touches[0].screenX : e.screenX;\r\n\t\tself.startWidth = column.getWidth();\r\n\r\n\t\tdocument.body.addEventListener(\"mousemove\", mouseMove);\r\n\t\tdocument.body.addEventListener(\"mouseup\", mouseUp);\r\n\t\thandle.addEventListener(\"touchmove\", mouseMove, {passive: true});\r\n\t\thandle.addEventListener(\"touchend\", mouseUp);\r\n\t}\r\n}\r\n\r\nResizeColumns.moduleName = \"resizeColumns\";\r\n\r\nexport default ResizeColumns;","import Module from '../../core/Module.js';\r\n\r\nclass ResizeRows extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.startColumn = false;\r\n\t\tthis.startY = false;\r\n\t\tthis.startHeight = false;\r\n\t\tthis.handle = null;\r\n\t\tthis.prevHandle = null;\r\n\r\n\t\tthis.registerTableOption(\"resizableRows\", false); //resizable rows\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.resizableRows){\r\n\t\t\tthis.subscribe(\"row-layout-after\", this.initializeRow.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeRow(row){\r\n\t\tvar self = this,\r\n\t\trowEl = row.getElement();\r\n\r\n\t\tvar handle = document.createElement('div');\r\n\t\thandle.className = \"tabulator-row-resize-handle\";\r\n\r\n\t\tvar prevHandle = document.createElement('div');\r\n\t\tprevHandle.className = \"tabulator-row-resize-handle prev\";\r\n\r\n\t\thandle.addEventListener(\"click\", function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t\tvar handleDown = function(e){\r\n\t\t\tself.startRow = row;\r\n\t\t\tself._mouseDown(e, row, handle);\r\n\t\t};\r\n\r\n\t\thandle.addEventListener(\"mousedown\", handleDown);\r\n\t\thandle.addEventListener(\"touchstart\", handleDown, {passive: true});\r\n\r\n\t\tprevHandle.addEventListener(\"click\", function(e){\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t\tvar prevHandleDown = function(e){\r\n\t\t\tvar prevRow = self.table.rowManager.prevDisplayRow(row);\r\n\r\n\t\t\tif(prevRow){\r\n\t\t\t\tself.startRow = prevRow;\r\n\t\t\t\tself._mouseDown(e, prevRow, prevHandle);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tprevHandle.addEventListener(\"mousedown\",prevHandleDown);\r\n\t\tprevHandle.addEventListener(\"touchstart\",prevHandleDown, {passive: true});\r\n\r\n\t\trowEl.appendChild(handle);\r\n\t\trowEl.appendChild(prevHandle);\r\n\t}\r\n\r\n\t_mouseDown(e, row, handle){\r\n\t\tvar self = this;\r\n\r\n\t\tself.table.element.classList.add(\"tabulator-block-select\");\r\n\r\n\t\tfunction mouseMove(e){\r\n\t\t\trow.setHeight(self.startHeight + ((typeof e.screenY === \"undefined\" ? e.touches[0].screenY : e.screenY) - self.startY));\r\n\t\t}\r\n\r\n\t\tfunction mouseUp(e){\r\n\r\n\t\t\t// //block editor from taking action while resizing is taking place\r\n\t\t\t// if(self.startColumn.modules.edit){\r\n\t\t\t// \tself.startColumn.modules.edit.blocked = false;\r\n\t\t\t// }\r\n\r\n\t\t\tdocument.body.removeEventListener(\"mouseup\", mouseMove);\r\n\t\t\tdocument.body.removeEventListener(\"mousemove\", mouseMove);\r\n\r\n\t\t\thandle.removeEventListener(\"touchmove\", mouseMove);\r\n\t\t\thandle.removeEventListener(\"touchend\", mouseUp);\r\n\r\n\t\t\tself.table.element.classList.remove(\"tabulator-block-select\");\r\n\r\n\t\t\tthis.dispatchExternal(\"rowResized\", row.getComponent());\r\n\t\t}\r\n\r\n\t\te.stopPropagation(); //prevent resize from interfereing with movable columns\r\n\r\n\t\t//block editor from taking action while resizing is taking place\r\n\t\t// if(self.startColumn.modules.edit){\r\n\t\t// \tself.startColumn.modules.edit.blocked = true;\r\n\t\t// }\r\n\r\n\t\tself.startY = typeof e.screenY === \"undefined\" ? e.touches[0].screenY : e.screenY;\r\n\t\tself.startHeight = row.getHeight();\r\n\r\n\t\tdocument.body.addEventListener(\"mousemove\", mouseMove);\r\n\t\tdocument.body.addEventListener(\"mouseup\", mouseUp);\r\n\r\n\t\thandle.addEventListener(\"touchmove\", mouseMove, {passive: true});\r\n\t\thandle.addEventListener(\"touchend\", mouseUp);\r\n\t}\r\n}\r\n\r\nResizeRows.moduleName = \"resizeRows\";\r\n\r\nexport default ResizeRows;","import Module from '../../core/Module.js';\r\n\r\nclass ResizeTable extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.binding = false;\r\n\t\tthis.observer = false;\r\n\t\tthis.containerObserver = false;\r\n\r\n\t\tthis.tableHeight = 0;\r\n\t\tthis.tableWidth = 0;\r\n\t\tthis.containerHeight = 0;\r\n\t\tthis.containerWidth = 0;\r\n\r\n\t\tthis.autoResize = false;\r\n\r\n\t\tthis.registerTableOption(\"autoResize\", true); //auto resize table\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.autoResize){\r\n\t\t\tvar table = this.table,\r\n\t\t\ttableStyle;\r\n\r\n\t\t\tthis.tableHeight = table.element.clientHeight;\r\n\t\t\tthis.tableWidth = table.element.clientWidth;\r\n\r\n\t\t\tif(table.element.parentNode){\r\n\t\t\t\tthis.containerHeight = table.element.parentNode.clientHeight;\r\n\t\t\t\tthis.containerWidth = table.element.parentNode.clientWidth;\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof ResizeObserver !== \"undefined\" && table.rowManager.getRenderMode() === \"virtual\"){\r\n\r\n\t\t\t\tthis.autoResize = true;\r\n\r\n\t\t\t\tthis.observer = new ResizeObserver((entry) => {\r\n\t\t\t\t\tif(!table.browserMobile || (table.browserMobile &&!table.modules.edit.currentCell)){\r\n\r\n\t\t\t\t\t\tvar nodeHeight = Math.floor(entry[0].contentRect.height);\r\n\t\t\t\t\t\tvar nodeWidth = Math.floor(entry[0].contentRect.width);\r\n\r\n\t\t\t\t\t\tif(this.tableHeight != nodeHeight || this.tableWidth != nodeWidth){\r\n\t\t\t\t\t\t\tthis.tableHeight = nodeHeight;\r\n\t\t\t\t\t\t\tthis.tableWidth = nodeWidth;\r\n\r\n\t\t\t\t\t\t\tif(table.element.parentNode){\r\n\t\t\t\t\t\t\t\tthis.containerHeight = table.element.parentNode.clientHeight;\r\n\t\t\t\t\t\t\t\tthis.containerWidth = table.element.parentNode.clientWidth;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.table.columnManager.renderer.rerenderColumns(true);\r\n\r\n\t\t\t\t\t\t\ttable.redraw();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.observer.observe(table.element);\r\n\r\n\t\t\t\ttableStyle = window.getComputedStyle(table.element);\r\n\r\n\t\t\t\tif(this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue(\"max-height\") || tableStyle.getPropertyValue(\"min-height\"))){\r\n\r\n\t\t\t\t\tthis.containerObserver = new ResizeObserver((entry) => {\r\n\t\t\t\t\t\tif(!table.browserMobile || (table.browserMobile &&!table.modules.edit.currentCell)){\r\n\r\n\t\t\t\t\t\t\tvar nodeHeight = Math.floor(entry[0].contentRect.height);\r\n\t\t\t\t\t\t\tvar nodeWidth = Math.floor(entry[0].contentRect.width);\r\n\r\n\t\t\t\t\t\t\tif(this.containerHeight != nodeHeight || this.containerWidth != nodeWidth){\r\n\t\t\t\t\t\t\t\tthis.containerHeight = nodeHeight;\r\n\t\t\t\t\t\t\t\tthis.containerWidth = nodeWidth;\r\n\t\t\t\t\t\t\t\tthis.tableHeight = table.element.clientHeight;\r\n\t\t\t\t\t\t\t\tthis.tableWidth = table.element.clientWidth;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttable.columnManager.renderer.rerenderColumns(true);\r\n\r\n\t\t\t\t\t\t\ttable.redraw();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis.containerObserver.observe(this.table.element.parentNode);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.subscribe(\"table-resize\", this.tableResized.bind(this));\r\n\r\n\t\t\t}else{\r\n\t\t\t\tthis.binding = function(){\r\n\t\t\t\t\tif(!table.browserMobile || (table.browserMobile && !table.modules.edit.currentCell)){\r\n\r\n\t\t\t\t\t\ttable.columnManager.renderer.rerenderColumns(true);\r\n\r\n\t\t\t\t\t\ttable.redraw();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\twindow.addEventListener(\"resize\", this.binding);\r\n\t\t\t}\r\n\r\n\t\t\tthis.subscribe(\"table-destroy\", this.clearBindings.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\ttableResized(){\r\n\t\tthis.table.rowManager.redraw();\r\n\t}\r\n\r\n\tclearBindings(){\r\n\t\tif(this.binding){\r\n\t\t\twindow.removeEventListener(\"resize\", this.binding);\r\n\t\t}\r\n\r\n\t\tif(this.observer){\r\n\t\t\tthis.observer.unobserve(this.table.element);\r\n\t\t}\r\n\r\n\t\tif(this.containerObserver){\r\n\t\t\tthis.containerObserver.unobserve(this.table.element.parentNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nResizeTable.moduleName = \"resizeTable\";\r\n\r\nexport default ResizeTable;","import Module from '../../core/Module.js';\r\n\r\nclass ResponsiveLayout extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.columns = [];\r\n\t\tthis.hiddenColumns = [];\r\n\t\tthis.mode = \"\";\r\n\t\tthis.index = 0;\r\n\t\tthis.collapseFormatter = [];\r\n\t\tthis.collapseStartOpen = true;\r\n\t\tthis.collapseHandleColumn = false;\r\n\r\n\t\tthis.registerTableOption(\"responsiveLayout\", false); //responsive layout flags\r\n\t\tthis.registerTableOption(\"responsiveLayoutCollapseStartOpen\", true); //start showing collapsed data\r\n\t\tthis.registerTableOption(\"responsiveLayoutCollapseUseFormatters\", true); //responsive layout collapse formatter\r\n\t\tthis.registerTableOption(\"responsiveLayoutCollapseFormatter\", false); //responsive layout collapse formatter\r\n\r\n\t\tthis.registerColumnOption(\"responsive\");\r\n\t}\r\n\r\n\t//generate resposive columns list\r\n\tinitialize(){\r\n\t\tvar self = this,\r\n\t\tcolumns = [];\r\n\r\n\t\tif(this.table.options.responsiveLayout){\r\n\t\t\tthis.subscribe(\"column-layout\", this.initializeColumn.bind(this));\r\n\t\t\tthis.subscribe(\"column-show\", this.updateColumnVisibility.bind(this));\r\n\t\t\tthis.subscribe(\"column-hide\", this.updateColumnVisibility.bind(this));\r\n\t\t\tthis.subscribe(\"columns-loaded\", this.initializeResponsivity.bind(this));\r\n\t\t\tthis.subscribe(\"column-moved\", this.initializeResponsivity.bind(this));\r\n\t\t\tthis.subscribe(\"column-add\", this.initializeResponsivity.bind(this));\r\n\t\t\tthis.subscribe(\"column-delete\", this.initializeResponsivity.bind(this));\r\n\r\n\t\t\tthis.subscribe(\"table-redrawing\", this.tableRedraw.bind(this));\r\n\r\n\t\t\tif(this.table.options.responsiveLayout === \"collapse\"){\r\n\t\t\t\tthis.subscribe(\"row-init\", this.initializeRow.bind(this));\r\n\t\t\t\tthis.subscribe(\"row-layout\", this.layoutRow.bind(this));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\ttableRedraw(force){\r\n\t\tif([\"fitColumns\", \"fitDataStretch\"].indexOf(this.layoutMode()) === -1){\r\n\t\t\tif(!force){\r\n\t\t\t\tthis.update();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeResponsivity(){\r\n\t\tvar columns = [];\r\n\r\n\t\tthis.mode = this.table.options.responsiveLayout;\r\n\t\tthis.collapseFormatter = this.table.options.responsiveLayoutCollapseFormatter || this.formatCollapsedData;\r\n\t\tthis.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen;\r\n\t\tthis.hiddenColumns = [];\r\n\r\n\t\t//detemine level of responsivity for each column\r\n\t\tthis.table.columnManager.columnsByIndex.forEach(function(column, i){\r\n\t\t\tif(column.modules.responsive){\r\n\t\t\t\tif(column.modules.responsive.order && column.modules.responsive.visible){\r\n\t\t\t\t\tcolumn.modules.responsive.index = i;\r\n\t\t\t\t\tcolumns.push(column);\r\n\r\n\t\t\t\t\tif(!column.visible && self.mode === \"collapse\"){\r\n\t\t\t\t\t\tself.hiddenColumns.push(column);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//sort list by responsivity\r\n\t\tcolumns = columns.reverse();\r\n\t\tcolumns = columns.sort(function(a, b){\r\n\t\t\tvar diff = b.modules.responsive.order - a.modules.responsive.order;\r\n\t\t\treturn diff || (b.modules.responsive.index - a.modules.responsive.index);\r\n\t\t});\r\n\r\n\t\tthis.columns = columns;\r\n\r\n\t\tif(this.mode === \"collapse\"){\r\n\t\t\tthis.generateCollapsedContent();\r\n\t\t}\r\n\r\n\t\t//assign collapse column\r\n\t\tfor (let col of this.table.columnManager.columnsByIndex){\r\n\t\t\tif(col.definition.formatter == \"responsiveCollapse\"){\r\n\t\t\t\tthis.collapseHandleColumn = col;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(this.collapseHandleColumn){\r\n\t\t\tif(this.hiddenColumns.length){\r\n\t\t\t\tthis.collapseHandleColumn.show();\r\n\t\t\t}else{\r\n\t\t\t\tthis.collapseHandleColumn.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//define layout information\r\n\tinitializeColumn(column){\r\n\t\tvar def = column.getDefinition();\r\n\r\n\t\tcolumn.modules.responsive = {order: typeof def.responsive === \"undefined\" ? 1 : def.responsive, visible:def.visible === false ? false : true};\r\n\t}\r\n\r\n\tinitializeRow(row){\r\n\t\tvar el;\r\n\r\n\t\tif(row.type !== \"calc\"){\r\n\t\t\tel = document.createElement(\"div\");\r\n\t\t\tel.classList.add(\"tabulator-responsive-collapse\");\r\n\r\n\t\t\trow.modules.responsiveLayout = {\r\n\t\t\t\telement:el,\r\n\t\t\t\topen:this.collapseStartOpen,\r\n\t\t\t};\r\n\r\n\t\t\tif(!this.collapseStartOpen){\r\n\t\t\t\tel.style.display = 'none';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tlayoutRow(row){\r\n\t\tvar rowEl = row.getElement();\r\n\r\n\t\tif(row.modules.responsiveLayout){\r\n\t\t\trowEl.appendChild(row.modules.responsiveLayout.element);\r\n\t\t\tthis.generateCollapsedRowContent(row);\r\n\t\t}\r\n\t}\r\n\r\n\t//update column visibility\r\n\tupdateColumnVisibility(column, responsiveToggle){\r\n\t\tif(!responsiveToggle && column.modules.responsive){\r\n\t\t\tcolumn.modules.responsive.visible = column.visible;\r\n\t\t\tthis.initialize();\r\n\t\t}\r\n\r\n\t\t//this.update();\r\n\t}\r\n\r\n\thideColumn(column){\r\n\t\tvar colCount = this.hiddenColumns.length;\r\n\r\n\t\tcolumn.hide(false, true);\r\n\r\n\t\tif(this.mode === \"collapse\"){\r\n\t\t\tthis.hiddenColumns.unshift(column);\r\n\t\t\tthis.generateCollapsedContent();\r\n\r\n\t\t\tif(this.collapseHandleColumn && !colCount){\r\n\t\t\t\tthis.collapseHandleColumn.show();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tshowColumn(column){\r\n\t\tvar index;\r\n\r\n\t\tcolumn.show(false, true);\r\n\t\t//set column width to prevent calculation loops on uninitialized columns\r\n\t\tcolumn.setWidth(column.getWidth());\r\n\r\n\t\tif(this.mode === \"collapse\"){\r\n\t\t\tindex = this.hiddenColumns.indexOf(column);\r\n\r\n\t\t\tif(index > -1){\r\n\t\t\t\tthis.hiddenColumns.splice(index, 1);\r\n\t\t\t}\r\n\r\n\t\t\tthis.generateCollapsedContent();\r\n\r\n\t\t\tif(this.collapseHandleColumn && !this.hiddenColumns.length){\r\n\t\t\t\tthis.collapseHandleColumn.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//redraw columns to fit space\r\n\tupdate(){\r\n\t\tvar self = this,\r\n\t\tworking = true;\r\n\r\n\t\twhile(working){\r\n\r\n\t\t\tlet width = self.table.modules.layout.getMode() == \"fitColumns\" ? self.table.columnManager.getFlexBaseWidth() : self.table.columnManager.getWidth();\r\n\r\n\t\t\tlet diff = (self.table.options.headerVisible ? self.table.columnManager.element.clientWidth : self.table.element.clientWidth) - width;\r\n\r\n\t\t\tif(diff < 0){\r\n\t\t\t\t//table is too wide\r\n\t\t\t\tlet column = self.columns[self.index];\r\n\r\n\t\t\t\tif(column){\r\n\t\t\t\t\tself.hideColumn(column);\r\n\t\t\t\t\tself.index ++;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tworking = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\r\n\t\t\t\t//table has spare space\r\n\t\t\t\tlet column = self.columns[self.index -1];\r\n\r\n\t\t\t\tif(column){\r\n\t\t\t\t\tif(diff > 0){\r\n\t\t\t\t\t\tif(diff >= column.getWidth()){\r\n\t\t\t\t\t\t\tself.showColumn(column);\r\n\t\t\t\t\t\t\tself.index --;\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tworking = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tworking = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tworking = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!self.table.rowManager.activeRowsCount){\r\n\t\t\t\tself.table.rowManager.renderEmptyScroll();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgenerateCollapsedContent(){\r\n\t\tvar self = this,\r\n\t\trows = this.table.rowManager.getDisplayRows();\r\n\r\n\t\trows.forEach(function(row){\r\n\t\t\tself.generateCollapsedRowContent(row);\r\n\t\t});\r\n\t}\r\n\r\n\tgenerateCollapsedRowContent(row){\r\n\t\tvar el, contents;\r\n\r\n\t\tif(row.modules.responsiveLayout){\r\n\t\t\tel = row.modules.responsiveLayout.element;\r\n\r\n\t\t\twhile(el.firstChild) el.removeChild(el.firstChild);\r\n\r\n\t\t\tcontents = this.collapseFormatter(this.generateCollapsedRowData(row));\r\n\t\t\tif(contents){\r\n\t\t\t\tel.appendChild(contents);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgenerateCollapsedRowData(row){\r\n\t\tvar self = this,\r\n\t\tdata = row.getData(),\r\n\t\toutput = [],\r\n\t\tmockCellComponent;\r\n\r\n\t\tthis.hiddenColumns.forEach(function(column){\r\n\t\t\tvar value = column.getFieldValue(data);\r\n\r\n\t\t\tif(column.definition.title && column.field){\r\n\t\t\t\tif(column.modules.format && self.table.options.responsiveLayoutCollapseUseFormatters){\r\n\r\n\t\t\t\t\tmockCellComponent = {\r\n\t\t\t\t\t\tvalue:false,\r\n\t\t\t\t\t\tdata:{},\r\n\t\t\t\t\t\tgetValue:function(){\r\n\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tgetData:function(){\r\n\t\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tgetElement:function(){\r\n\t\t\t\t\t\t\treturn document.createElement(\"div\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tgetRow:function(){\r\n\t\t\t\t\t\t\treturn row.getComponent();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tgetColumn:function(){\r\n\t\t\t\t\t\t\treturn column.getComponent();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction onRendered(callback){\r\n\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\toutput.push({\r\n\t\t\t\t\t\tfield: column.field,\r\n\t\t\t\t\t\ttitle: column.definition.title,\r\n\t\t\t\t\t\tvalue: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params, onRendered)\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\toutput.push({\r\n\t\t\t\t\t\tfield: column.field,\r\n\t\t\t\t\t\ttitle: column.definition.title,\r\n\t\t\t\t\t\tvalue: value\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tformatCollapsedData(data){\r\n\t\tvar list = document.createElement(\"table\");\r\n\r\n\t\tdata.forEach(function(item){\r\n\t\t\tvar row = document.createElement(\"tr\");\r\n\t\t\tvar titleData = document.createElement(\"td\");\r\n\t\t\tvar valueData = document.createElement(\"td\");\r\n\t\t\tvar node_content;\r\n\r\n\t\t\tvar titleHighlight = document.createElement(\"strong\");\r\n\t\t\ttitleData.appendChild(titleHighlight);\r\n\t\t\tthis.langBind(\"columns|\" + item.field, function(text){\r\n\t\t\t\ttitleHighlight.innerText = text || item.title;\r\n\t\t\t});\r\n\r\n\t\t\tif(item.value instanceof Node){\r\n\t\t\t\tnode_content = document.createElement(\"div\");\r\n\t\t\t\tnode_content.appendChild(item.value);\r\n\t\t\t\tvalueData.appendChild(node_content);\r\n\t\t\t}else{\r\n\t\t\t\tvalueData.innerHTML = item.value;\r\n\t\t\t}\r\n\r\n\t\t\trow.appendChild(titleData);\r\n\t\t\trow.appendChild(valueData);\r\n\t\t\tlist.appendChild(row);\r\n\t\t}, this);\r\n\r\n\t\treturn Object.keys(data).length ? list : \"\";\r\n\t}\r\n}\r\n\r\nResponsiveLayout.moduleName = \"responsiveLayout\";\r\n\r\nexport default ResponsiveLayout;","import Module from '../../core/Module.js';\r\n\r\nclass SelectRow extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.selecting = false; //flag selecting in progress\r\n\t\tthis.lastClickedRow = false; //last clicked row\r\n\t\tthis.selectPrev = []; //hold previously selected element for drag drop selection\r\n\t\tthis.selectedRows = []; //hold selected rows\r\n\t\tthis.headerCheckboxElement = null; // hold header select element\r\n\r\n\t\tthis.registerTableOption(\"selectable\", \"highlight\"); //highlight rows on hover\r\n\t\tthis.registerTableOption(\"selectableRangeMode\", \"drag\"); //highlight rows on hover\r\n\t\tthis.registerTableOption(\"selectableRollingSelection\", true); //roll selection once maximum number of selectable rows is reached\r\n\t\tthis.registerTableOption(\"selectablePersistence\", true); // maintain selection when table view is updated\r\n\t\tthis.registerTableOption(\"selectableCheck\", function(data, row){return true;}); //check wheather row is selectable\r\n\r\n\t\tthis.registerTableFunction(\"selectRow\", this.selectRows.bind(this));\r\n\t\tthis.registerTableFunction(\"deselectRow\", this.deselectRows.bind(this));\r\n\t\tthis.registerTableFunction(\"toggleSelectRow\", this.toggleRow.bind(this));\r\n\t\tthis.registerTableFunction(\"getSelectedRows\", this.getSelectedRows.bind(this));\r\n\t\tthis.registerTableFunction(\"getSelectedData\", this.getSelectedData.bind(this));\r\n\r\n\t\t//register component functions\r\n\t\tthis.registerComponentFunction(\"row\", \"select\", this.selectRows.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"deselect\", this.deselectRows.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"toggleSelect\", this.toggleRow.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"isSelected\", this.isRowSelected.bind(this));\r\n\t}\r\n\r\n\tinitialize(){\r\n\t\tif(this.table.options.selectable !== false){\r\n\t\t\tthis.subscribe(\"row-init\", this.initializeRow.bind(this));\r\n\t\t\tthis.subscribe(\"row-deleting\", this.rowDeleted.bind(this));\r\n\t\t\tthis.subscribe(\"rows-wipe\", this.clearSelectionData.bind(this));\r\n\t\t\tthis.subscribe(\"rows-retrieve\", this.rowRetrieve.bind(this));\r\n\r\n\t\t\tif(this.table.options.selectable && this.table.options.selectablePersistence){\r\n\t\t\t\tthis.subscribe(\"data-refeshing\", this.deselectRows.bind(this));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trowRetrieve(type, prevValue){\r\n\t\treturn type === \"selected\" ? this.selectedRows : prevValue;\r\n\t}\r\n\r\n\trowDeleted(row){\r\n\t\tthis._deselectRow(row, true);\r\n\t}\r\n\r\n\tclearSelectionData(silent){\r\n\t\tthis.selecting = false;\r\n\t\tthis.lastClickedRow = false;\r\n\t\tthis.selectPrev = [];\r\n\t\tthis.selectedRows = [];\r\n\r\n\t\tif(silent !== true){\r\n\t\t\tthis._rowSelectionChanged();\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeRow(row){\r\n\t\tvar self = this,\r\n\t\telement = row.getElement();\r\n\r\n\t\t// trigger end of row selection\r\n\t\tvar endSelect = function(){\r\n\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\tself.selecting = false;\r\n\t\t\t}, 50);\r\n\r\n\t\t\tdocument.body.removeEventListener(\"mouseup\", endSelect);\r\n\t\t};\r\n\r\n\t\trow.modules.select = {selected:false};\r\n\r\n\t\t//set row selection class\r\n\t\tif(self.table.options.selectableCheck.call(this.table, row.getComponent())){\r\n\t\t\telement.classList.add(\"tabulator-selectable\");\r\n\t\t\telement.classList.remove(\"tabulator-unselectable\");\r\n\r\n\t\t\tif(self.table.options.selectable && self.table.options.selectable != \"highlight\"){\r\n\t\t\t\tif(self.table.options.selectableRangeMode === \"click\"){\r\n\t\t\t\t\telement.addEventListener(\"click\", function(e){\r\n\t\t\t\t\t\tif(e.shiftKey){\r\n\t\t\t\t\t\t\tself.table._clearSelection();\r\n\t\t\t\t\t\t\tself.lastClickedRow = self.lastClickedRow || row;\r\n\r\n\t\t\t\t\t\t\tvar lastClickedRowIdx = self.table.rowManager.getDisplayRowIndex(self.lastClickedRow);\r\n\t\t\t\t\t\t\tvar rowIdx = self.table.rowManager.getDisplayRowIndex(row);\r\n\r\n\t\t\t\t\t\t\tvar fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx;\r\n\t\t\t\t\t\t\tvar toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx;\r\n\r\n\t\t\t\t\t\t\tvar rows = self.table.rowManager.getDisplayRows().slice(0);\r\n\t\t\t\t\t\t\tvar toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1);\r\n\r\n\t\t\t\t\t\t\tif(e.ctrlKey || e.metaKey){\r\n\t\t\t\t\t\t\t\ttoggledRows.forEach(function(toggledRow){\r\n\t\t\t\t\t\t\t\t\tif(toggledRow !== self.lastClickedRow){\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(self.table.options.selectable !== true && !self.isRowSelected(row)){\r\n\t\t\t\t\t\t\t\t\t\t\tif(self.selectedRows.length < self.table.options.selectable){\r\n\t\t\t\t\t\t\t\t\t\t\t\tself.toggleRow(toggledRow);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\t\t\tself.toggleRow(toggledRow);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tself.lastClickedRow = row;\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\tself.deselectRows(undefined, true);\r\n\r\n\t\t\t\t\t\t\t\tif(self.table.options.selectable !== true){\r\n\t\t\t\t\t\t\t\t\tif(toggledRows.length > self.table.options.selectable){\r\n\t\t\t\t\t\t\t\t\t\ttoggledRows = toggledRows.slice(0, self.table.options.selectable)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tself.selectRows(toggledRows);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tself.table._clearSelection();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(e.ctrlKey || e.metaKey){\r\n\t\t\t\t\t\t\tself.toggleRow(row);\r\n\t\t\t\t\t\t\tself.lastClickedRow = row;\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tself.deselectRows(undefined, true);\r\n\t\t\t\t\t\t\tself.selectRows(row);\r\n\t\t\t\t\t\t\tself.lastClickedRow = row;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\telement.addEventListener(\"click\", function(e){\r\n\t\t\t\t\t\tif(!self.table.modExists(\"edit\") || !self.table.modules.edit.getCurrentCell()){\r\n\t\t\t\t\t\t\tself.table._clearSelection();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(!self.selecting){\r\n\t\t\t\t\t\t\tself.toggleRow(row);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\telement.addEventListener(\"mousedown\", function(e){\r\n\t\t\t\t\t\tif(e.shiftKey){\r\n\t\t\t\t\t\t\tself.table._clearSelection();\r\n\r\n\t\t\t\t\t\t\tself.selecting = true;\r\n\r\n\t\t\t\t\t\t\tself.selectPrev = [];\r\n\r\n\t\t\t\t\t\t\tdocument.body.addEventListener(\"mouseup\", endSelect);\r\n\t\t\t\t\t\t\tdocument.body.addEventListener(\"keyup\", endSelect);\r\n\r\n\t\t\t\t\t\t\tself.toggleRow(row);\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\telement.addEventListener(\"mouseenter\", function(e){\r\n\t\t\t\t\t\tif(self.selecting){\r\n\t\t\t\t\t\t\tself.table._clearSelection();\r\n\t\t\t\t\t\t\tself.toggleRow(row);\r\n\r\n\t\t\t\t\t\t\tif(self.selectPrev[1] == row){\r\n\t\t\t\t\t\t\t\tself.toggleRow(self.selectPrev[0]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\telement.addEventListener(\"mouseout\", function(e){\r\n\t\t\t\t\t\tif(self.selecting){\r\n\t\t\t\t\t\t\tself.table._clearSelection();\r\n\t\t\t\t\t\t\tself.selectPrev.unshift(row);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\t\t\telement.classList.add(\"tabulator-unselectable\");\r\n\t\t\telement.classList.remove(\"tabulator-selectable\");\r\n\t\t}\r\n\t}\r\n\r\n\t//toggle row selection\r\n\ttoggleRow(row){\r\n\t\tif(this.table.options.selectableCheck.call(this.table, row.getComponent())){\r\n\t\t\tif(row.modules.select && row.modules.select.selected){\r\n\t\t\t\tthis._deselectRow(row);\r\n\t\t\t}else{\r\n\t\t\t\tthis._selectRow(row);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//select a number of rows\r\n\tselectRows(rows){\r\n\t\tvar rowMatch;\r\n\r\n\t\tswitch(typeof rows){\r\n\t\t\tcase \"undefined\":\r\n\t\t\tthis.table.rowManager.rows.forEach((row) => {\r\n\t\t\t\tthis._selectRow(row, true, true);\r\n\t\t\t});\r\n\r\n\t\t\tthis._rowSelectionChanged();\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"string\":\r\n\r\n\t\t\trowMatch = this.table.rowManager.findRow(rows);\r\n\r\n\t\t\tif(rowMatch){\r\n\t\t\t\tthis._selectRow(rowMatch, true, true);\r\n\t\t\t}else{\r\n\t\t\t\tthis.table.rowManager.getRows(rows).forEach((row) => {\r\n\t\t\t\t\tthis._selectRow(row, true, true);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis._rowSelectionChanged();\r\n\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\tif(Array.isArray(rows)){\r\n\t\t\t\trows.forEach((row) => {\r\n\t\t\t\t\tthis._selectRow(row, true, true);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis._rowSelectionChanged();\r\n\t\t\t}else{\r\n\t\t\t\tthis._selectRow(rows, false, true);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t//select an individual row\r\n\t_selectRow(rowInfo, silent, force){\r\n\t\tvar index;\r\n\r\n\t\t//handle max row count\r\n\t\tif(!isNaN(this.table.options.selectable) && this.table.options.selectable !== true && !force){\r\n\t\t\tif(this.selectedRows.length >= this.table.options.selectable){\r\n\t\t\t\tif(this.table.options.selectableRollingSelection){\r\n\t\t\t\t\tthis._deselectRow(this.selectedRows[0]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar row = this.table.rowManager.findRow(rowInfo);\r\n\r\n\t\tif(row){\r\n\t\t\tif(this.selectedRows.indexOf(row) == -1){\r\n\t\t\t\trow.getElement().classList.add(\"tabulator-selected\");\r\n\t\t\t\tif(!row.modules.select){\r\n\t\t\t\t\trow.modules.select = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\trow.modules.select.selected = true;\r\n\t\t\t\tif(row.modules.select.checkboxEl){\r\n\t\t\t\t\trow.modules.select.checkboxEl.checked = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.selectedRows.push(row);\r\n\r\n\t\t\t\tif(this.table.options.dataTreeSelectPropagate){\r\n\t\t\t\t\tthis.childRowSelection(row, true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(!silent){\r\n\t\t\t\t\tthis.dispatchExternal(\"rowSelected\", row.getComponent());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._rowSelectionChanged(silent);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(!silent){\r\n\t\t\t\tconsole.warn(\"Selection Error - No such row found, ignoring selection:\" + rowInfo);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisRowSelected(row){\r\n\t\treturn this.selectedRows.indexOf(row) !== -1;\r\n\t}\r\n\r\n\t//deselect a number of rows\r\n\tdeselectRows(rows, silent){\r\n\t\tvar self = this,\r\n\t\trowCount;\r\n\r\n\t\tif(typeof rows == \"undefined\"){\r\n\r\n\t\t\trowCount = self.selectedRows.length;\r\n\r\n\t\t\tfor(let i = 0; i < rowCount; i++){\r\n\t\t\t\tself._deselectRow(self.selectedRows[0], true);\r\n\t\t\t}\r\n\r\n\t\t\tself._rowSelectionChanged(silent);\r\n\r\n\t\t}else{\r\n\t\t\tif(Array.isArray(rows)){\r\n\t\t\t\trows.forEach(function(row){\r\n\t\t\t\t\tself._deselectRow(row, true);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself._rowSelectionChanged(silent);\r\n\t\t\t}else{\r\n\t\t\t\tself._deselectRow(rows, silent);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//deselect an individual row\r\n\t_deselectRow(rowInfo, silent){\r\n\t\tvar self = this,\r\n\t\trow = self.table.rowManager.findRow(rowInfo),\r\n\t\tindex;\r\n\r\n\t\tif(row){\r\n\t\t\tindex = self.selectedRows.findIndex(function(selectedRow){\r\n\t\t\t\treturn selectedRow == row;\r\n\t\t\t});\r\n\r\n\t\t\tif(index > -1){\r\n\r\n\t\t\t\trow.getElement().classList.remove(\"tabulator-selected\");\r\n\t\t\t\tif(!row.modules.select){\r\n\t\t\t\t\trow.modules.select = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\trow.modules.select.selected = false;\r\n\t\t\t\tif(row.modules.select.checkboxEl){\r\n\t\t\t\t\trow.modules.select.checkboxEl.checked = false;\r\n\t\t\t\t}\r\n\t\t\t\tself.selectedRows.splice(index, 1);\r\n\r\n\t\t\t\tif(this.table.options.dataTreeSelectPropagate){\r\n\t\t\t\t\tthis.childRowSelection(row, false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(!silent){\r\n\t\t\t\t\tthis.dispatchExternal(\"rowDeselected\", row.getComponent());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself._rowSelectionChanged(silent);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(!silent){\r\n\t\t\t\tconsole.warn(\"Deselection Error - No such row found, ignoring selection:\" + rowInfo);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedData(){\r\n\t\tvar data = [];\r\n\r\n\t\tthis.selectedRows.forEach(function(row){\r\n\t\t\tdata.push(row.getData());\r\n\t\t});\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tgetSelectedRows(){\r\n\r\n\t\tvar rows = [];\r\n\r\n\t\tthis.selectedRows.forEach(function(row){\r\n\t\t\trows.push(row.getComponent());\r\n\t\t});\r\n\r\n\t\treturn rows;\r\n\t}\r\n\r\n\t_rowSelectionChanged(silent){\r\n\t\tif(this.headerCheckboxElement){\r\n\t\t\tif(this.selectedRows.length === 0){\r\n\t\t\t\tthis.headerCheckboxElement.checked = false;\r\n\t\t\t\tthis.headerCheckboxElement.indeterminate = false;\r\n\t\t\t} else if(this.table.rowManager.rows.length === this.selectedRows.length){\r\n\t\t\t\tthis.headerCheckboxElement.checked = true;\r\n\t\t\t\tthis.headerCheckboxElement.indeterminate = false;\r\n\t\t\t} else {\r\n\t\t\t\tthis.headerCheckboxElement.indeterminate = true;\r\n\t\t\t\tthis.headerCheckboxElement.checked = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(!silent){\r\n\t\t\tthis.dispatchExternal(\"rowSelectionChanged\", this.getSelectedData(), this.getSelectedRows());\r\n\t\t}\r\n\t}\r\n\r\n\tregisterRowSelectCheckbox (row, element) {\r\n\t\tif(!row._row.modules.select){\r\n\t\t\trow._row.modules.select = {};\r\n\t\t}\r\n\r\n\t\trow._row.modules.select.checkboxEl = element;\r\n\t}\r\n\r\n\tregisterHeaderSelectCheckbox (element) {\r\n\t\tthis.headerCheckboxElement = element;\r\n\t}\r\n\r\n\tchildRowSelection(row, select){\r\n\t\tvar children = this.table.modules.dataTree.getChildren(row, true);\r\n\r\n\t\tif(select){\r\n\t\t\tfor(let child of children){\r\n\t\t\t\tthis._selectRow(child, true);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tfor(let child of children){\r\n\t\t\t\tthis._deselectRow(child, true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nSelectRow.moduleName = \"selectRow\";\r\n\r\nexport default SelectRow;","//sort numbers\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tvar alignEmptyValues = params.alignEmptyValues;\r\n\tvar decimal = params.decimalSeparator;\r\n\tvar thousand = params.thousandSeparator;\r\n\tvar emptyAlign = 0;\r\n\r\n\ta = String(a);\r\n\tb = String(b);\r\n\r\n\tif(thousand){\r\n\t\ta = a.split(thousand).join(\"\");\r\n\t\tb = b.split(thousand).join(\"\");\r\n\t}\r\n\r\n\tif(decimal){\r\n\t\ta = a.split(decimal).join(\".\");\r\n\t\tb = b.split(decimal).join(\".\");\r\n\t}\r\n\r\n\ta = parseFloat(a);\r\n\tb = parseFloat(b);\r\n\r\n\t//handle non numeric values\r\n\tif(isNaN(a)){\r\n\t\temptyAlign = isNaN(b) ? 0 : -1;\r\n\t}else if(isNaN(b)){\r\n\t\temptyAlign = 1;\r\n\t}else{\r\n\t\t//compare valid values\r\n\t\treturn a - b;\r\n\t}\r\n\r\n\t//fix empty values in position\r\n\tif((alignEmptyValues === \"top\" && dir === \"desc\") || (alignEmptyValues === \"bottom\" && dir === \"asc\")){\r\n\t\temptyAlign *= -1;\r\n\t}\r\n\r\n\treturn emptyAlign;\r\n};","//sort strings\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tvar alignEmptyValues = params.alignEmptyValues;\r\n\tvar emptyAlign = 0;\r\n\tvar locale;\r\n\r\n\t//handle empty values\r\n\tif(!a){\r\n\t\temptyAlign = !b ? 0 : -1;\r\n\t}else if(!b){\r\n\t\temptyAlign = 1;\r\n\t}else{\r\n\t\t//compare valid values\r\n\t\tswitch(typeof params.locale){\r\n\t\t\tcase \"boolean\":\r\n\t\t\tif(params.locale){\r\n\t\t\t\tlocale = this.langLocale();\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\tcase \"string\":\r\n\t\t\tlocale = params.locale;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);\r\n\t}\r\n\r\n\t//fix empty values in position\r\n\tif((alignEmptyValues === \"top\" && dir === \"desc\") || (alignEmptyValues === \"bottom\" && dir === \"asc\")){\r\n\t\temptyAlign *= -1;\r\n\t}\r\n\r\n\treturn emptyAlign;\r\n};","//sort datetime\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tvar DT = window.DateTime || luxon.DateTime;\r\n\tvar format = params.format || \"dd/MM/yyyy HH:mm:ss\",\r\n\talignEmptyValues = params.alignEmptyValues,\r\n\temptyAlign = 0;\r\n\r\n\tif(typeof DT != \"undefined\"){\r\n\t\ta = DT.fromFormat(a, format);\r\n\t\tb = DT.fromFormat(b, format);\r\n\t\tif(!a.isValid){\r\n\t\t\temptyAlign = !b.isValid ? 0 : -1;\r\n\t\t}else if(!b.isValid){\r\n\t\t\temptyAlign = 1;\r\n\t\t}else{\r\n\t\t\t//compare valid values\r\n\t\t\treturn a - b;\r\n\t\t}\r\n\r\n\t\t//fix empty values in position\r\n\t\tif((alignEmptyValues === \"top\" && dir === \"desc\") || (alignEmptyValues === \"bottom\" && dir === \"asc\")){\r\n\t\t\temptyAlign *= -1;\r\n\t\t}\r\n\r\n\t\treturn emptyAlign;\r\n\r\n\t}else{\r\n\t\tconsole.error(\"Sort Error - 'datetime' sorter is dependant on luxon.js\");\r\n\t}\r\n};","import datetime from './datetime.js';\r\n\r\n//sort date\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tif(!params.format){\r\n\t\tparams.format = \"dd/MM/yyyy\";\r\n\t}\r\n\r\n\treturn datetime.call(this, a, b, aRow, bRow, column, dir, params);\r\n};","import datetime from './datetime.js';\r\n\r\n//sort times\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tif(!params.format){\r\n\t\tparams.format = \"HH:mm\";\r\n\t}\r\n\r\n\treturn datetime.call(this, a, b, aRow, bRow, column, dir, params);\r\n};","//sort booleans\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tvar el1 = a === true || a === \"true\" || a === \"True\" || a === 1 ? 1 : 0;\r\n\tvar el2 = b === true || b === \"true\" || b === \"True\" || b === 1 ? 1 : 0;\r\n\r\n\treturn el1 - el2;\r\n};","//sort if element contains any data\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tvar el1 = 0;\r\n\tvar el2 = 0;\r\n\tvar type = params.type || \"length\";\r\n\tvar alignEmptyValues = params.alignEmptyValues;\r\n\tvar emptyAlign = 0;\r\n\r\n\tfunction calc(value){\r\n\r\n\t\tswitch(type){\r\n\t\t\tcase \"length\":\r\n\t\t\treturn value.length;\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"sum\":\r\n\t\t\treturn value.reduce(function(c, d){\r\n\t\t\t\treturn c + d;\r\n\t\t\t});\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"max\":\r\n\t\t\treturn Math.max.apply(null, value) ;\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"min\":\r\n\t\t\treturn Math.min.apply(null, value) ;\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"avg\":\r\n\t\t\treturn value.reduce(function(c, d){\r\n\t\t\t\treturn c + d;\r\n\t\t\t}) / value.length;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t//handle non array values\r\n\tif(!Array.isArray(a)){\r\n\t\talignEmptyValues = !Array.isArray(b) ? 0 : -1;\r\n\t}else if(!Array.isArray(b)){\r\n\t\talignEmptyValues = 1;\r\n\t}else{\r\n\r\n\t\t//compare valid values\r\n\t\tel1 = a ? calc(a) : 0;\r\n\t\tel2 = b ? calc(b) : 0;\r\n\r\n\t\treturn el1 - el2;\r\n\t}\r\n\r\n\t//fix empty values in position\r\n\tif((alignEmptyValues === \"top\" && dir === \"desc\") || (alignEmptyValues === \"bottom\" && dir === \"asc\")){\r\n\t\temptyAlign *= -1;\r\n\t}\r\n\r\n\treturn emptyAlign;\r\n};","//sort if element contains any data\r\nexport default function(a, b, aRow, bRow, column, dir, params){\r\n\tvar el1 = typeof a == \"undefined\" ? 0 : 1;\r\n\tvar el2 = typeof b == \"undefined\" ? 0 : 1;\r\n\r\n\treturn el1 - el2;\r\n};","//sort alpha numeric strings\r\nexport default function(as, bs, aRow, bRow, column, dir, params){\r\n\tvar a, b, a1, b1, i= 0, L, rx = /(\\d+)|(\\D+)/g, rd = /\\d/;\r\n\tvar alignEmptyValues = params.alignEmptyValues;\r\n\tvar emptyAlign = 0;\r\n\r\n\t//handle empty values\r\n\tif(!as && as!== 0){\r\n\t\temptyAlign = !bs && bs!== 0 ? 0 : -1;\r\n\t}else if(!bs && bs!== 0){\r\n\t\temptyAlign = 1;\r\n\t}else{\r\n\r\n\t\tif(isFinite(as) && isFinite(bs)) return as - bs;\r\n\t\ta = String(as).toLowerCase();\r\n\t\tb = String(bs).toLowerCase();\r\n\t\tif(a === b) return 0;\r\n\t\tif(!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;\r\n\t\ta = a.match(rx);\r\n\t\tb = b.match(rx);\r\n\t\tL = a.length > b.length ? b.length : a.length;\r\n\t\twhile(i < L){\r\n\t\t\ta1= a[i];\r\n\t\t\tb1= b[i++];\r\n\t\t\tif(a1 !== b1){\r\n\t\t\t\tif(isFinite(a1) && isFinite(b1)){\r\n\t\t\t\t\tif(a1.charAt(0) === \"0\") a1 = \".\" + a1;\r\n\t\t\t\t\tif(b1.charAt(0) === \"0\") b1 = \".\" + b1;\r\n\t\t\t\t\treturn a1 - b1;\r\n\t\t\t\t}\r\n\t\t\t\telse return a1 > b1 ? 1 : -1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn a.length > b.length;\r\n\t}\r\n\r\n\t//fix empty values in position\r\n\tif((alignEmptyValues === \"top\" && dir === \"desc\") || (alignEmptyValues === \"bottom\" && dir === \"asc\")){\r\n\t\temptyAlign *= -1;\r\n\t}\r\n\r\n\treturn emptyAlign;\r\n};","import number from './sorters/number.js';\r\nimport string from './sorters/string.js';\r\nimport date from './sorters/date.js';\r\nimport time from './sorters/time.js';\r\nimport datetime from './sorters/datetime.js';\r\nimport boolean from './sorters/boolean.js';\r\nimport array from './sorters/array.js';\r\nimport exists from './sorters/exists.js';\r\nimport alphanum from './sorters/alphanum.js';\r\n\r\nexport default {\r\n\tnumber:number,\r\n\tstring:string,\r\n\tdate:date,\r\n\ttime:time,\r\n\tdatetime:datetime,\r\n\tboolean:boolean,\r\n\tarray:array,\r\n\texists:exists,\r\n\talphanum:alphanum\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultSorters from './defaults/sorters.js';\r\n\r\nclass Sort extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t \tthis.sortList = []; //holder current sort\r\n\t \tthis.changed = false; //has the sort changed since last render\r\n\r\n\t \tthis.registerTableOption(\"sortMode\", \"local\"); //local or remote sorting\r\n\r\n\t \tthis.registerTableOption(\"initialSort\", false); //initial sorting criteria\r\n\t \tthis.registerTableOption(\"columnHeaderSortMulti\", true); //multiple or single column sorting\r\n\t \tthis.registerTableOption(\"sortOrderReverse\", false); //reverse internal sort ordering\r\n\t \tthis.registerTableOption(\"headerSortElement\", \"<div class='tabulator-arrow'></div>\"); //header sort element\r\n\r\n\t \tthis.registerColumnOption(\"sorter\");\r\n\t \tthis.registerColumnOption(\"sorterParams\");\r\n\r\n\t \tthis.registerColumnOption(\"headerSort\", true);\r\n\t \tthis.registerColumnOption(\"headerSortStartingDir\");\r\n\t \tthis.registerColumnOption(\"headerSortTristate\");\r\n\r\n\t }\r\n\r\n\t initialize(){\r\n\t \tthis.subscribe(\"column-layout\", this.initializeColumn.bind(this));\r\n\t \tthis.subscribe(\"table-built\", this.tableBuilt.bind(this));\r\n\t \tthis.registerDataHandler(this.sort.bind(this), 20);\r\n\r\n\t \tthis.registerTableFunction(\"setSort\", this.userSetSort.bind(this));\r\n\t \tthis.registerTableFunction(\"getSorters\", this.getSort.bind(this));\r\n\t \tthis.registerTableFunction(\"clearSort\", this.clearSort.bind(this));\r\n\r\n\t \tif(this.table.options.sortMode === \"remote\"){\r\n\t \t\tthis.subscribe(\"data-params\", this.remoteSortParams.bind(this));\r\n\t \t}\r\n\t }\r\n\r\n\t tableBuilt(){\r\n\t \tif(this.table.options.initialSort){\r\n\t \t\tthis.setSort(this.table.options.initialSort);\r\n\t \t}\r\n\t }\r\n\r\n\t remoteSortParams(data, config, silent, params){\r\n\t \tvar sorters = this.getSort();\r\n\r\n\t \tsorters.forEach((item) => {\r\n\t \t\tdelete item.column;\r\n\t \t});\r\n\r\n\t \tparams.sort = sorters;\r\n\r\n\t \treturn params;\r\n\t }\r\n\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\tuserSetSort(sortList, dir){\r\n\t\tthis.setSort(sortList, dir);\r\n\t\t// this.table.rowManager.sorterRefresh();\r\n\t\tthis.refreshSort();\r\n\t}\r\n\r\n\tclearSort(){\r\n\t\tthis.clear();\r\n\t\t// this.table.rowManager.sorterRefresh();\r\n\t\tthis.refreshSort();\r\n\t}\r\n\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\t//initialize column header for sorting\r\n\tinitializeColumn(column){\r\n\t\tvar sorter = false,\r\n\t\tcolEl,\r\n\t\tarrowEl;\r\n\r\n\t\tswitch(typeof column.definition.sorter){\r\n\t\t\tcase \"string\":\r\n\t\t\tif(Sort.sorters[column.definition.sorter]){\r\n\t\t\t\tsorter = Sort.sorters[column.definition.sorter];\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Sort Error - No such sorter found: \", column.definition.sorter);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\tsorter = column.definition.sorter;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tcolumn.modules.sort = {\r\n\t\t\tsorter:sorter, dir:\"none\",\r\n\t\t\tparams:column.definition.sorterParams || {},\r\n\t\t\tstartingDir:column.definition.headerSortStartingDir || \"asc\",\r\n\t\t\ttristate: column.definition.headerSortTristate,\r\n\t\t};\r\n\r\n\t\tif(column.definition.headerSort !== false){\r\n\r\n\t\t\tcolEl = column.getElement();\r\n\r\n\t\t\tcolEl.classList.add(\"tabulator-sortable\");\r\n\r\n\r\n\t\t\tarrowEl = document.createElement(\"div\");\r\n\t\t\tarrowEl.classList.add(\"tabulator-col-sorter\");\r\n\r\n\t\t\tif(typeof this.table.options.headerSortElement == \"object\"){\r\n\t\t\t\tarrowEl.appendChild(this.table.options.headerSortElement);\r\n\t\t\t}else{\r\n\t\t\t\tarrowEl.innerHTML = this.table.options.headerSortElement;\r\n\t\t\t}\r\n\r\n\t\t\t//create sorter arrow\r\n\t\t\tcolumn.titleHolderElement.appendChild(arrowEl);\r\n\r\n\t\t\tcolumn.modules.sort.element = arrowEl;\r\n\r\n\t\t\t//sort on click\r\n\t\t\tcolEl.addEventListener(\"click\", (e) => {\r\n\t\t\t\tvar dir = \"\",\r\n\t\t\t\tsorters=[],\r\n\t\t\t\tmatch = false;\r\n\r\n\t\t\t\tif(column.modules.sort){\r\n\t\t\t\t\tif(column.modules.sort.tristate){\r\n\t\t\t\t\t\tif(column.modules.sort.dir == \"none\"){\r\n\t\t\t\t\t\t\tdir = column.modules.sort.startingDir;\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tif(column.modules.sort.dir == column.modules.sort.startingDir){\r\n\t\t\t\t\t\t\t\tdir = column.modules.sort.dir == \"asc\" ? \"desc\" : \"asc\";\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\tdir = \"none\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tswitch(column.modules.sort.dir){\r\n\t\t\t\t\t\t\tcase \"asc\":\r\n\t\t\t\t\t\t\tdir = \"desc\";\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase \"desc\":\r\n\t\t\t\t\t\t\tdir = \"asc\";\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tdir = column.modules.sort.startingDir;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tif (this.table.options.columnHeaderSortMulti && (e.shiftKey || e.ctrlKey)) {\r\n\t\t\t\t\t\tsorters = this.getSort();\r\n\r\n\t\t\t\t\t\tmatch = sorters.findIndex((sorter) => {\r\n\t\t\t\t\t\t\treturn sorter.field === column.getField();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif(match > -1){\r\n\t\t\t\t\t\t\tsorters[match].dir = dir;\r\n\r\n\t\t\t\t\t\t\tif(match != sorters.length -1){\r\n\t\t\t\t\t\t\t\tmatch = sorters.splice(match, 1)[0];\r\n\t\t\t\t\t\t\t\tif(dir != \"none\"){\r\n\t\t\t\t\t\t\t\t\tsorters.push(match);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tif(dir != \"none\"){\r\n\t\t\t\t\t\t\t\tsorters.push({column:column, dir:dir});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//add to existing sort\r\n\t\t\t\t\t\tthis.setSort(sorters);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(dir == \"none\"){\r\n\t\t\t\t\t\t\tthis.clear();\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//sort by column only\r\n\t\t\t\t\t\t\tthis.setSort(column, dir);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// this.table.rowManager.sorterRefresh(!this.sortList.length);\r\n\t\t\t\t\tthis.refreshSort();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\trefreshSort(){\r\n\t\tif(this.table.options.sortMode === \"remote\"){\r\n\t\t\tthis.reloadData();\r\n\t\t}else{\r\n\t\t\tthis.refreshData()\r\n\t\t}\r\n\r\n\t\t//TODO - Persist left position of row manager\r\n\t\t// left = this.scrollLeft;\r\n\t\t// this.scrollHorizontal(left);\r\n\t}\r\n\r\n\t//check if the sorters have changed since last use\r\n\thasChanged(){\r\n\t\tvar changed = this.changed;\r\n\t\tthis.changed = false;\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t//return current sorters\r\n\tgetSort(){\r\n\t\tvar self = this,\r\n\t\tsorters = [];\r\n\r\n\t\tself.sortList.forEach(function(item){\r\n\t\t\tif(item.column){\r\n\t\t\t\tsorters.push({column:item.column.getComponent(), field:item.column.getField(), dir:item.dir});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn sorters;\r\n\t}\r\n\r\n\t//change sort list and trigger sort\r\n\tsetSort(sortList, dir){\r\n\t\tvar self = this,\r\n\t\tnewSortList = [];\r\n\r\n\t\tif(!Array.isArray(sortList)){\r\n\t\t\tsortList = [{column: sortList, dir:dir}];\r\n\t\t}\r\n\r\n\t\tsortList.forEach(function(item){\r\n\t\t\tvar column;\r\n\r\n\t\t\tcolumn = self.table.columnManager.findColumn(item.column);\r\n\r\n\t\t\tif(column){\r\n\t\t\t\titem.column = column;\r\n\t\t\t\tnewSortList.push(item);\r\n\t\t\t\tself.changed = true;\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Sort Warning - Sort field does not exist and is being ignored: \", item.column);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tself.sortList = newSortList;\r\n\r\n\t\tthis.dispatch(\"sort-changed\");\r\n\t}\r\n\r\n\t//clear sorters\r\n\tclear(){\r\n\t\tthis.setSort([]);\r\n\t}\r\n\r\n\t//find appropriate sorter for column\r\n\tfindSorter(column){\r\n\t\tvar row = this.table.rowManager.activeRows[0],\r\n\t\tsorter = \"string\",\r\n\t\tfield, value;\r\n\r\n\t\tif(row){\r\n\t\t\trow = row.getData();\r\n\t\t\tfield = column.getField();\r\n\r\n\t\t\tif(field){\r\n\r\n\t\t\t\tvalue = column.getFieldValue(row);\r\n\r\n\t\t\t\tswitch(typeof value){\r\n\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\tsorter = \"string\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"boolean\":\r\n\t\t\t\t\tsorter = \"boolean\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\tif(!isNaN(value) && value !== \"\"){\r\n\t\t\t\t\t\tsorter = \"number\";\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)){\r\n\t\t\t\t\t\t\tsorter = \"alphanum\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn Sort.sorters[sorter];\r\n\t}\r\n\r\n\t//work through sort list sorting data\r\n\tsort(data){\r\n\t\tvar self = this,\r\n\t\tsortList = this.table.options.sortOrderReverse ? self.sortList.slice().reverse() : self.sortList,\r\n\t\tsortListActual = [],\r\n\t\trowComponents = [],\r\n\t\tlastSort;\r\n\r\n\t\tif(this.subscribedExternal(\"dataSorting\")){\r\n\t\t\tthis.dispatchExternal(\"dataSorting\", self.getSort());\r\n\t\t}\r\n\r\n\t\tself.clearColumnHeaders();\r\n\r\n\t\tif(this.table.options.sortMode !== \"remote\"){\r\n\r\n\t\t\t//build list of valid sorters and trigger column specific callbacks before sort begins\r\n\t\t\tsortList.forEach(function(item, i){\r\n\t\t\t\tvar sortObj = item.column.modules.sort;\r\n\r\n\t\t\t\tif(item.column && sortObj){\r\n\r\n\t\t\t\t\t//if no sorter has been defined, take a guess\r\n\t\t\t\t\tif(!sortObj.sorter){\r\n\t\t\t\t\t\tsortObj.sorter = self.findSorter(item.column);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\titem.params = typeof sortObj.params === \"function\" ? sortObj.params(item.column.getComponent(), item.dir) : sortObj.params;\r\n\r\n\t\t\t\t\tsortListActual.push(item);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.setColumnHeader(item.column, item.dir);\r\n\t\t\t});\r\n\r\n\t\t\t//sort data\r\n\t\t\tif (sortListActual.length) {\r\n\t\t\t\tself._sortItems(data, sortListActual);\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\t\t\tsortList.forEach(function(item, i){\r\n\t\t\t\tself.setColumnHeader(item.column, item.dir);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(this.subscribedExternal(\"dataSorted\")){\r\n\t\t\tdata.forEach((row) => {\r\n\t\t\t\trowComponents.push(row.getComponent());\r\n\t\t\t});\r\n\r\n\t\t\tthis.dispatchExternal(\"dataSorted\", self.getSort(), rowComponents);\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\t//clear sort arrows on columns\r\n\tclearColumnHeaders(){\r\n\t\tthis.table.columnManager.getRealColumns().forEach(function(column){\r\n\t\t\tif(column.modules.sort){\r\n\t\t\t\tcolumn.modules.sort.dir = \"none\";\r\n\t\t\t\tcolumn.getElement().setAttribute(\"aria-sort\", \"none\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//set the column header sort direction\r\n\tsetColumnHeader(column, dir){\r\n\t\tcolumn.modules.sort.dir = dir;\r\n\t\tcolumn.getElement().setAttribute(\"aria-sort\", dir);\r\n\t}\r\n\r\n\t//sort each item in sort list\r\n\t_sortItems(data, sortList){\r\n\t\tvar sorterCount = sortList.length - 1;\r\n\r\n\t\tdata.sort((a, b) => {\r\n\t\t\tvar result;\r\n\r\n\t\t\tfor(var i = sorterCount; i>= 0; i--){\r\n\t\t\t\tlet sortItem = sortList[i];\r\n\r\n\t\t\t\tresult = this._sortRow(a, b, sortItem.column, sortItem.dir, sortItem.params);\r\n\r\n\t\t\t\tif(result !== 0){\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t});\r\n\t}\r\n\r\n\t//process individual rows for a sort function on active data\r\n\t_sortRow(a, b, column, dir, params){\r\n\t\tvar el1Comp, el2Comp, colComp;\r\n\r\n\t\t//switch elements depending on search direction\r\n\t\tvar el1 = dir == \"asc\" ? a : b;\r\n\t\tvar el2 = dir == \"asc\" ? b : a;\r\n\r\n\t\ta = column.getFieldValue(el1.getData());\r\n\t\tb = column.getFieldValue(el2.getData());\r\n\r\n\t\ta = typeof a !== \"undefined\" ? a : \"\";\r\n\t\tb = typeof b !== \"undefined\" ? b : \"\";\r\n\r\n\t\tel1Comp = el1.getComponent();\r\n\t\tel2Comp = el2.getComponent();\r\n\r\n\t\treturn column.modules.sort.sorter.call(this, a, b, el1Comp, el2Comp, column.getComponent(), dir, params);\r\n\t}\r\n}\r\n\r\nSort.moduleName = \"sort\";\r\n\r\n//load defaults\r\nSort.sorters = defaultSorters;\r\n\r\nexport default Sort;","export default {\r\n\t//is integer\r\n\tinteger: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvalue = Number(value);\r\n\t\treturn typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\r\n\t},\r\n\r\n\t//is float\r\n\tfloat: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvalue = Number(value);\r\n\t\treturn typeof value === 'number' && isFinite(value) && value % 1 !== 0;\r\n\t},\r\n\r\n\t//must be a number\r\n\tnumeric: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn !isNaN(value);\r\n\t},\r\n\r\n\t//must be a string\r\n\tstring: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn isNaN(value);\r\n\t},\r\n\r\n\t//maximum value\r\n\tmax: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn parseFloat(value) <= parameters;\r\n\t},\r\n\r\n\t//minimum value\r\n\tmin: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn parseFloat(value) >= parameters;\r\n\t},\r\n\r\n\t//starts with value\r\n\tstarts: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn String(value).toLowerCase().startsWith(String(parameters).toLowerCase());\r\n\t},\r\n\r\n\t//ends with value\r\n\tends: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn String(value).toLowerCase().endsWith(String(parameters).toLowerCase());\r\n\t},\r\n\r\n\r\n\t//minimum string length\r\n\tminLength: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn String(value).length >= parameters;\r\n\t},\r\n\r\n\t//maximum string length\r\n\tmaxLength: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn String(value).length <= parameters;\r\n\t},\r\n\r\n\t//in provided value list\r\n\tin: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif(typeof parameters == \"string\"){\r\n\t\t\tparameters = parameters.split(\"|\");\r\n\t\t}\r\n\r\n\t\treturn value === \"\" || parameters.indexOf(value) > -1;\r\n\t},\r\n\r\n\t//must match provided regex\r\n\tregex: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar reg = new RegExp(parameters);\r\n\r\n\t\treturn reg.test(value);\r\n\t},\r\n\r\n\t//value must be unique in this column\r\n\tunique: function(cell, value, parameters){\r\n\t\tif(value === \"\" || value === null || typeof value === \"undefined\"){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar unique = true;\r\n\r\n\t\tvar cellData = cell.getData();\r\n\t\tvar column = cell.getColumn()._getSelf();\r\n\r\n\t\tthis.table.rowManager.rows.forEach(function(row){\r\n\t\t\tvar data = row.getData();\r\n\r\n\t\t\tif(data !== cellData){\r\n\t\t\t\tif(value == column.getFieldValue(data)){\r\n\t\t\t\t\tunique = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn unique;\r\n\t},\r\n\r\n\t//must have a value\r\n\trequired:function(cell, value, parameters){\r\n\t\treturn value !== \"\" && value !== null && typeof value !== \"undefined\";\r\n\t},\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultValidators from './defaults/validators.js';\r\n\r\nclass Validate extends Module{\r\n\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\r\n\t\tthis.invalidCells = [];\r\n\r\n\t\tthis.registerTableOption(\"validationMode\", \"blocking\");\r\n\r\n\t\tthis.registerColumnOption(\"validator\");\r\n\r\n\t\tthis.registerTableFunction(\"getInvalidCells\", this.getInvalidCells.bind(this));\r\n\t\tthis.registerTableFunction(\"clearCellValidation\", this.userClearCellValidation.bind(this));\r\n\t\tthis.registerTableFunction(\"validate\", this.userValidate.bind(this));\r\n\r\n\t\tthis.registerComponentFunction(\"cell\", \"isValid\", this.cellIsValid.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"clearValidation\", this.clearValidation.bind(this));\r\n\t\tthis.registerComponentFunction(\"cell\", \"validate\", this.cellValidate.bind(this));\r\n\r\n\t\tthis.registerComponentFunction(\"column\", \"validate\", this.columnValidate.bind(this));\r\n\t\tthis.registerComponentFunction(\"row\", \"validate\", this.rowValidate.bind(this));\r\n\t}\r\n\r\n\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"cell-delete\", this.clearValidation.bind(this));\r\n\t\tthis.subscribe(\"column-layout\", this.initializeColumnCheck.bind(this));\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t////////// Cell Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\tcellIsValid(cell){\r\n\t\treturn cell.modules.validate ? !cell.modules.validate.invalid : true;\r\n\t}\r\n\r\n\tcellValidate(cell){\r\n\t\treturn this.validate(cell.column.modules.validate, cell, cell.getValue());\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Column Functions ////////\r\n\t///////////////////////////////////\r\n\r\n\tcolumnValidate(column){\r\n\t\tvar invalid = [];\r\n\r\n\t\tcolumn.cells.forEach(function(cell){\r\n\t\t\tif(!this.cellValidate(cell)){\r\n\t\t\t\tinvalid.push(cell.getComponent());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn invalid.length ? invalid : true;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t////////// Row Functions //////////\r\n\t///////////////////////////////////\r\n\r\n\trowValidate(row){\r\n\t\tvar invalid = [];\r\n\r\n\t\trow.cells.forEach(function(cell){\r\n\t\t\tif(!this.cellValidate(cell)){\r\n\t\t\t\tinvalid.push(cell.getComponent());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn invalid.length ? invalid : true;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\r\n\r\n\tuserClearCellValidation(cells){\r\n\t\tif(!cells){\r\n\t\t\tcells = this.getInvalidCells();\r\n\t\t}\r\n\r\n\t\tif(!Array.isArray(cells)){\r\n\t\t\tcells = [cells];\r\n\t\t}\r\n\r\n\t\tcells.forEach((cell) => {\r\n\t\t\tthis.clearValidation(cell._getSelf());\r\n\t\t});\r\n\t}\r\n\r\n\tuserValidate(cells){\r\n\t\tvar output = [];\r\n\r\n\t\t//clear row data\r\n\t\tthis.table.rowManager.rows.forEach(function(row){\r\n\t\t\tvar valid = row.validate();\r\n\r\n\t\t\tif(valid !== true){\r\n\t\t\t\toutput = output.concat(valid);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn output.length ? output : true;\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\r\n\tinitializeColumnCheck(column){\r\n\t\tif(typeof column.definition.validator !== \"undefined\"){\r\n\t\t\tthis.initializeColumn(column);\r\n\t\t}\r\n\t}\r\n\r\n\t//validate\r\n\tinitializeColumn(column){\r\n\t\tvar self = this,\r\n\t\tconfig = [],\r\n\t\tvalidator;\r\n\r\n\t\tif(column.definition.validator){\r\n\r\n\t\t\tif(Array.isArray(column.definition.validator)){\r\n\t\t\t\tcolumn.definition.validator.forEach(function(item){\r\n\t\t\t\t\tvalidator = self._extractValidator(item);\r\n\r\n\t\t\t\t\tif(validator){\r\n\t\t\t\t\t\tconfig.push(validator);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}else{\r\n\t\t\t\tvalidator = this._extractValidator(column.definition.validator);\r\n\r\n\t\t\t\tif(validator){\r\n\t\t\t\t\tconfig.push(validator);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tcolumn.modules.validate = config.length ? config : false;\r\n\t\t}\r\n\t}\r\n\r\n\t_extractValidator(value){\r\n\t\tvar type, params, pos;\r\n\r\n\t\tswitch(typeof value){\r\n\t\t\tcase \"string\":\r\n\t\t\tpos = value.indexOf(':');\r\n\r\n\t\t\tif(pos > -1){\r\n\t\t\t\ttype = value.substring(0,pos);\r\n\t\t\t\tparams = value.substring(pos+1);\r\n\t\t\t}else{\r\n\t\t\t\ttype = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn this._buildValidator(type, params);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\treturn this._buildValidator(value);\r\n\t\t\tbreak;\r\n\r\n\t\t\tcase \"object\":\r\n\t\t\treturn this._buildValidator(value.type, value.parameters);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t_buildValidator(type, params){\r\n\r\n\t\tvar func = typeof type == \"function\" ? type : Validate.validators[type];\r\n\r\n\t\tif(!func){\r\n\t\t\tconsole.warn(\"Validator Setup Error - No matching validator found:\", type);\r\n\t\t\treturn false;\r\n\t\t}else{\r\n\t\t\treturn {\r\n\t\t\t\ttype:typeof type == \"function\" ? \"function\" : type,\r\n\t\t\t\tfunc:func,\r\n\t\t\t\tparams:params,\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tvalidate(validators, cell, value){\r\n\t\tvar self = this,\r\n\t\tvalid = [],\r\n\t\tinvalidIndex = this.invalidCells.indexOf(cell);\r\n\r\n\t\tif(validators){\r\n\t\t\tvalidators.forEach(function(item){\r\n\t\t\t\tif(!item.func.call(self, cell.getComponent(), value, item.params)){\r\n\t\t\t\t\tvalid.push({\r\n\t\t\t\t\t\ttype:item.type,\r\n\t\t\t\t\t\tparameters:item.params\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvalid = valid.length ? valid : true;\r\n\r\n\t\tif(!cell.modules.validate){\r\n\t\t\tcell.modules.validate = {};\r\n\t\t}\r\n\r\n\t\tif(valid === true){\r\n\t\t\tcell.modules.validate.invalid = false;\r\n\t\t\tcell.getElement().classList.remove(\"tabulator-validation-fail\");\r\n\r\n\t\t\tif(invalidIndex > -1){\r\n\t\t\t\tthis.invalidCells.splice(invalidIndex, 1);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tcell.modules.validate.invalid = true;\r\n\r\n\t\t\tif(this.table.options.validationMode !== \"manual\"){\r\n\t\t\t\tcell.getElement().classList.add(\"tabulator-validation-fail\");\r\n\t\t\t}\r\n\r\n\t\t\tif(invalidIndex == -1){\r\n\t\t\t\tthis.invalidCells.push(cell);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn valid;\r\n\t}\r\n\r\n\tgetInvalidCells(){\r\n\t\tvar output = [];\r\n\r\n\t\tthis.invalidCells.forEach((cell) => {\r\n\t\t\toutput.push(cell.getComponent());\r\n\t\t});\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tclearValidation(cell){\r\n\t\tvar invalidIndex;\r\n\r\n\t\tif(cell.modules.validate && cell.modules.validate.invalid){\r\n\r\n\t\t\tcell.getElement().classList.remove(\"tabulator-validation-fail\");\r\n\t\t\tcell.modules.validate.invalid = false;\r\n\r\n\t\t\tinvalidIndex = this.invalidCells.indexOf(cell);\r\n\r\n\t\t\tif(invalidIndex > -1){\r\n\t\t\t\tthis.invalidCells.splice(invalidIndex, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nValidate.moduleName = \"validate\";\r\n\r\n//load defaults\r\nValidate.validators = defaultValidators;\r\n\r\nexport default Validate;","//tabulator with all modules installed\r\nimport {default as Tabulator} from './Tabulator.js';\r\nimport * as modules from '../core/modules/optional.js';\r\nimport ModuleBinder from './tools/ModuleBinder.js';\r\n\r\nclass TabulatorFull extends Tabulator {};\r\n\r\n//bind modules and static functionality\r\nnew ModuleBinder(TabulatorFull, modules);\r\n\r\nexport default TabulatorFull;"],"names":["debugEventsExternal","debugEventsInternal","debugInvalidOptions","height","minHeight","maxHeight","columnMaxWidth","columnHeaderVertAlign","columns","columnDefaults","data","autoColumns","autoColumnsDefinitions","nestedFieldSeparator","tooltipGenerationMode","footerElement","index","textDirection","addRowPos","headerVisible","renderVertical","renderHorizontal","renderVerticalBuffer","scrollToRowPosition","scrollToRowIfVisible","scrollToColumnPosition","scrollToColumnIfVisible","rowFormatter","rowFormatterPrint","rowFormatterClipboard","rowFormatterHtmlOutput","placeholder","dataLoader","dataLoaderLoading","dataLoaderError","dataSendParams","dataReceiveParams","CoreFeature","table","silent","load","undefined","modules","localize","getText","arguments","bind","getLocale","comms","getConnections","send","layout","getMode","eventBus","subscribe","unsubscribe","key","subscribed","subscriptionChange","dispatch","chain","confirm","externalEvents","value","options","module","ColumnComponent","column","_column","type","Proxy","get","target","name","receiver","componentFunctionBinder","handle","getElement","getDefinition","getField","cells","forEach","cell","push","getComponent","visible","isGroup","show","hide","output","length","parent","Column","columnManager","scrollToColumn","to","after","toColumn","findColumn","moveColumn","console","warn","nextCol","nextColumn","prevCol","prevColumn","updates","updateDefinition","getWidth","width","result","reinitializeWidth","setWidth","renderer","rerenderColumns","CellComponent","_cell","getValue","getOldValue","initialValue","row","getData","mutate","setValue","setValueActual","checkHeight","Cell","element","oldValue","minWidth","component","loaded","build","generateElement","_configureCell","getFieldValue","document","createElement","className","setAttribute","field","vertAligns","top","bottom","middle","hozAligns","left","right","center","style","textAlign","hozAlign","vertAlign","display","alignItems","justifyContent","definition","cssClass","classNames","split","classList","add","addEventListener","e","_generateTooltip","val","innerHTML","Node","firstChild","removeChild","appendChild","tooltip","containerOnly","layoutElement","changed","setValueProcessData","cellRendered","dispatchExternal","subscribedExternal","rowManager","setFieldValue","_generateContents","widthStyled","offsetWidth","minWidthStyled","maxWidth","maxWidthStyled","reinitializeHeight","heightStyled","offsetHeight","redrawBlock","parentNode","deleteCell","calcs","getCellIndex","def","contentElement","titleHolderElement","titleElement","groupElement","createGroupElement","fieldStructure","titleFormatterRendered","mapDefinitions","setField","widthFixed","i","newCol","attachColumn","checkColumnVisibility","registerColumnField","_initialize","bindModuleColumns","el","defaults","optionsList","generate","defaultOptionList","Object","keys","indexOf","title","_getNestedData","_getFlatData","_setNestedData","_setFlatData","registerColumnPosition","reRegisterPosition","headerTooltip","langBind","headerVertical","_bindEvents","_buildColumnHeaderContent","_buildGroupHeader","_buildColumnHeader","setTooltip","dblTap","tapHold","tap","headerClick","headerDblClick","headerContext","headerTap","passive","headerDblTap","clearTimeout","setTimeout","headerTapHold","classeNames","setMinWidth","parseInt","setMaxWidth","headerHozAlign","_buildColumnHeaderTitle","editableTitle","stopPropagation","focus","text","_formatColumnHeaderTitle","contents","dataObj","structure","alignment","parentHeight","getGroupElement","clientHeight","getHeadersElement","paddingTop","verticalAlign","clearVerticalAlign","formatter","rowNumColumn","getFirstColumn","getLastColumn","getTopColumn","updateBranches","colDefs","responsiveToggle","verticalAlignHeaders","matchChildWidths","childWidth","child","splice","setWidthActual","isNaN","Math","floor","clientWidth","max","min","rows","heightInitialized","offsetParent","clearCellHeight","calcHeight","setCellHeight","Promise","resolve","reject","cellCount","deregisterColumn","findColumnIndex","_nextVisibleColumn","getColumnByIndex","_prevVisibleColumn","force","fitToData","clearWidth","assign","addColumn","then","error","defaultOptions","Helpers","box","getBoundingClientRect","window","pageYOffset","documentElement","clientTop","pageXOffset","clientLeft","obj","clone","list","objectProto","__proto__","arrayProto","Array","isArray","subject","match","copy","findIndex","item","unshift","deepClone","OptionsList","msgType","registeredDefaults","option","userOptions","hasOwnProperty","Renderer","elementVertical","elementHorizontal","tableElement","verticalFillMode","callback","update","blockRedraw","dir","includingBuffer","getDisplayRows","rowEl","remove","clearRows","clearColumns","renderRows","renderColumns","rerenderRows","position","ifVisible","rowIndex","offset","elVisible","elOffset","scrollToRowNearestTop","scrollToRow","scrollHeight","scrollTop","offsetTop","BaiscHorizontal","VirtualDomHorizontal","leftCol","rightCol","scrollLeft","vDomScrollPosLeft","vDomScrollPosRight","vDomPadLeft","vDomPadRight","fitDataColAvg","initialized","compatabilityCheck","frozen","ok","find","col","dataChange","scroll","old","cols","clear","colPos","columnsByIndex","config","leftPos","rightPos","fitDataCheck","vdomHoz","paddingLeft","paddingRight","reinitChanged","renitializeRows","initializeRow","reinitializeRow","change","collsWidth","colEnd","generateCells","layoutRefresh","getVisibleRows","diff","addColRight","removeColLeft","addColLeft","removeColRight","start","end","getCell","fitDataColActualWidthCheck","prepend","newWidth","widthDiff","colPositionAdjust","ColumnManager","blockHozScrollEvent","headersElement","columnsByField","initializeRenderer","createHeadersElement","createHeaderElement","insertBefore","scrollHorizontal","renderClass","renderers","RendererVirtualDomHorizontal","RendererBasicHorizontal","initialize","hozAdjust","scrollWidth","marginLeft","scrollColumns","definitions","sorter","call","setColumns","_addColumn","_reIndexColumns","redraw","before","nextToColumn","colEl","topColumn","parentIndex","nextEl","nextSibling","columnRendered","getHeight","adjustTableSize","_getSelf","HTMLElement","root","matches","fieldRoot","active","structured","from","moveColumnActual","reinitialize","_moveColumnInArray","getComponents","updateRows","fromIndex","toIndex","concat","adjust","offsetLeft","generateCell","totalWidth","fixedWidth","colWidth","layoutMode","resetScroll","footerManager","RowComponent","_row","transform","getCells","getRowPosition","moveToRow","updateData","normalizeHeight","nextRow","prevRow","Row","manualHeight","outerHeight","created","setData","create","deleteCells","renderRowCells","rerenderRowCells","children","resizableRows","setHeight","clearHeight","updatedData","tempData","newRowData","JSON","parse","attrname","getColumnsByFieldRoot","findCell","nextDisplayRow","prevDisplayRow","toRow","findRow","moveRowActual","refreshActiveData","deleteActual","getRowIndex","detatchModules","deleteRow","group","BaiscVertical","visibility","onlyGroupHeaders","styleRow","render","rowTop","abs","VirtualDomVertical","vDomRowHeight","vDomTop","vDomBottom","vDomScrollPosTop","vDomScrollPosBottom","vDomTopPad","vDomBottomPad","vDomMaxRenderChain","vDomWindowBuffer","vDomWindowMinTotalRows","vDomWindowMinMarginRows","vDomTopNewRows","vDomBottomNewRows","paddingBottom","_virtualRenderFill","topRow","topOffset","deinitializeHeight","topDiff","bottomDiff","margin","_addTopRow","vDomScrollHeight","_removeBottomRow","_addBottomRow","_removeTopRow","topEdge","bottomEdge","topFound","bottomRow","slice","forceMove","holder","topPad","rowsHeight","heightOccupied","topPadHeight","rowsCount","containerHeight","ceil","rowHeight","fillableSpace","addedRows","paddingAdjust","_quickNormalizeRowHeight","removableRows","RowManager","createHolderElement","createTableElement","heightFixer","firstRender","renderMode","fixedHeight","activeRowsPipeline","activeRows","activeRowsCount","displayRows","displayRowsCount","redrawBlockRestoreConfig","redrawBlockRederInPosition","dataPipeline","displayPipeline","leftDir","topDir","scrollRows","renderInPosition","columnsChanged","pagination","_setDataActual","reRenderInPosition","generateColumnsFromRowData","_wipeElements","wipe","allIndex","activeIndex","setActiveRows","displayRowIterator","displayIndex","regenerateRowNumbers","_showPlaceholder","pos","addRowActual","findAddRowPos","reverse","addRow","_clearPlaceholder","chainResult","moveRowInArray","findRowIndex","rowOnly","getDisplayRowIndex","getRows","handler","priority","sort","a","b","skipStage","stage","cascadeOrder","resetDisplayRows","setDisplayRows","renderTable","layoutColumnsOnNewData","viewable","visibleRows","RendererVirtualDomVertical","RendererBasicVertical","_clearTable","renderEmptyScroll","initialHeight","otherHeight","external","resize","tableWidth","browser","event","createEvent","initEvent","dispatchEvent","Event","FooterManager","links","initializeElement","querySelector","activate","deactivate","link","footerRedraw","InteractionManager","abortClasses","previousTargets","listeners","componentMap","buildListenerMap","bindSubscriptionWatchers","listenerMap","listener","components","values","comp","subscriptionChanged","added","updateEventListeners","track","removeEventListener","path","composedPath","targets","findTargets","bindComponents","triggerEvents","abort","filter","includes","elTargets","targetMatches","previousTarget","ComponentFuctionBinder","bindings","funcName","hanlder","startsWith","DataLoader","loaderElement","createLoaderElement","msgElement","createMsgElement","loadingElement","errorElement","requestOrder","loading","template","trim","firstElementChild","params","replace","requestNo","showLoader","mapParams","response","objectInvert","rowData","hideLoader","showError","map","shouldLoad","langText","ExternalEventBus","debug","events","subscriptionNotifiers","_debugDispatch","_dispatch","_notifiySubscriptionChange","notifiers","args","shift","callResult","apply","log","InternalEventBus","_debugChain","_chain","_debugConfirm","_confirm","fallback","subscriber","confirmed","TableRegistry","tables","query","results","querySelectorAll","matchElement","Tabulator","lookupTable","Module","_handler","register","func","registerDataPipelineHandler","registerDisplayPipelineHandler","reinitializeColumnWidths","responsiveLayout","modExists","colsWidth","gap","lastCol","responsive","flexWidth","flexGrowUnits","flexColWidth","flexColumns","fixedShrinkColumns","flexShrinkUnits","overflowWidth","gapFill","calcWidth","scaleColumns","freeSpace","shrinkCols","oversizeCols","oversizeSpace","remainingSpace","nextColWidth","remainingFlexGrowUnits","changeUnits","undersizeCols","calcGrow","widthGrow","calcShrink","widthShrink","fitData","fitDataFill","fitDataGeneral","fitDataTable","fitDataStretch","fitColumns","Layout","mode","registerTableOption","registerColumnOption","modes","moduleName","defaultModes","Localize","locale","lang","langList","langs","headerFilterPlaceholder","setHeaderFilterPlaceholder","installLang","setLocale","registerTableFunction","getLang","headerFilters","_setLangProp","desiredLocale","traverseLang","trans","prop","navigator","language","toLowerCase","prefix","_executeBindings","pathArray","_getLangElement","level","rootPath","binding","defaultLangs","Comms","receive","selectors","connections","connection","con","action","tableComms","commsReceived","ModuleBinder","tabulator","bindStaticFuctionality","bindModules","coreModules","moduleBindings","extendModule","property","source","registerModule","mod","registerModuleBinding","findTable","prototype","moduleCore","modulesCore","modulesRegular","core","mods","interactionMonitor","browserSlow","browserMobile","rtl","originalElement","initialzeCoreSystems","_create","_clearObjectPointers","_mapDepricatedFunctionality","InteractionMonitor","getSelection","empty","removeAllRanges","selection","_rtlCheck","_buildElement","_initializeTable","_loadInitialData","getComputedStyle","direction","reactiveData","newElement","tagName","attributes","replaceChild","_detectBrowser","span","deregister","ua","userAgent","vendor","opera","test","substr","restoreRedraw","extensions","input","accept","file","files","reader","FileReader","readAsText","onload","err","onerror","click","blockActiveLoad","clearData","getDataCount","responses","addRows","newRows","getRowFromPosition","foundRows","fromRow","getDefinitionTree","fromColumn","plugin","required","Accessor","allowedTypes","initializeColumn","transformRow","charAt","toUpperCase","accessor","lookupAccessor","accessors","rowComponent","traverse","colCompnent","defautlAccessors","method","generateParamsList","serializeParams","encoded","encodeURIComponent","join","url","contentType","urlGenerator","ajaxContentType","contentTypeFormatters","headers","body","Accept","location","origin","credentials","fetch","json","status","statusText","stringify","form","FormData","append","Ajax","loaderPromise","ajaxRequestFunc","defaultLoaderPromise","ajaxURLGenerator","defaultURLGenerator","ajaxParams","setParams","ajaxConfig","setConfig","ajaxURL","setUrl","getUrl","requestDataCheck","requestData","previousData","sendRequest","_loadDefaultConfig","defaultConfig","ajaxRequesting","ajaxResponse","defaultContentTypeFormatters","updateOrAddData","insert","addData","clipboard","headerFindSuccess","columnMap","Clipboard","pasteParser","pasteAction","customSelection","rowRange","blocked","clipboardCopyRowRange","plain","html","preventDefault","clipboardCopyFormatter","generateExportList","clipboardCopyConfig","clipboardCopyStyled","genereateHTMLTable","generatePlainContent","clipboardData","originalEvent","reset","paste","setPasteParser","clipboardPasteParser","setPasteAction","clipboardPasteAction","getKey","range","internal","sel","textRange","createRange","selectNodeContents","toString","addRange","createTextRange","moveToElementText","select","execCommand","pasteActions","parser","pasteParsers","checkPaseOrigin","getPasteData","mutateData","mutator","valid","edit","currentCell","defaultPasteActions","defaultPasteParsers","CalcComponent","calcParams","precision","reduce","sum","Number","toFixed","parseFloat","String","ColumnCalcs","topCalcs","botCalcs","genColumn","topElement","botElement","botRow","topInitialized","botInitialized","cellValueChanged","initializeColumnCheck","rowsUpdated","recalcActiveRows","tableRedraw","getResults","userRecalc","recalc","groupBy","recalcRowGroup","topCalc","bottomCalc","columnCalcs","topCalcParams","botCalcParams","bottomCalcParams","calculations","initializeTopRow","botCalc","initializeBottomRow","rowsToData","generateRow","frozenColumns","recalcGroup","groupRows","getRowGroup","groups","getChildGroups","generateRowData","dataTree","dataTreeChildColumnCalcs","open","getFilteredTreeChildren","disable","enable","format","getFormatter","paramKey","getGroups","getGroupResults","groupObj","subGroups","getSubGroups","subGroupResults","subgroup","defaultCalculations","DataTree","indent","collapseEl","expandEl","branchEl","elementField","startOpen","registerComponentFunction","collapseRow","expandRow","toggleRow","getTreeParent","getRowChildren","addTreeChildRow","dummyEl","firstCol","getFirstVisibileColumn","dataTreeChildField","dataTreeChildIndent","dataTreeElementColumn","dataTreeBranchElement","dataTreeCollapseElement","tabIndex","dataTreeExpandElement","dataTreeStartExpanded","layoutRow","rowDelete","rowDataChanged","columnMoving","registerDisplayHandler","getTreeChildren","redrawNeeded","refreshData","childArray","controlEl","generateControlElement","cloneNode","marginRight","getPropertyValue","oldControl","getChildren","allChildren","generateChildren","dataTreeFilter","dataTreeSort","subChildren","sub","childData","childRow","childIndex","findChildIndex","recurse","setFileContents","delimiter","fileContents","depth","bom","header","autoTableParams","rowGroupStyles","fontStyle","fontSize","cellPadding","fillColor","rowCalcStyles","jsPDFParams","jsPDF","orientation","unit","parseRow","styles","content","colSpan","rowSpan","doc","jspdf","autoTable","didDrawPage","head","documentProcessing","self","sheetName","workbook","XLSX","utils","book_new","tableFeatures","SheetNames","Sheets","generateSheet","merges","worksheet","s","c","r","j","Date","sheet_add_aoa","encode_range","sheetOnly","sheets","sheet","commsSend","intercept","s2ab","buf","ArrayBuffer","view","Uint8Array","charCodeAt","write","bookType","bookSST","csv","pdf","xlsx","Download","blob","download","downloadToTab","filename","interceptCallback","downloadFunc","buildLink","mime","triggerDownload","downloaders","downloadConfig","downloadRowRange","groupHeader","groupHeaderDownload","_group","getRowCount","newTab","Blob","downloadReady","URL","createObjectURL","msSaveOrOpenBlob","defaultDownloaders","maskInput","mask","maskLetter","maskLetterChar","maskNumber","maskNumberChar","maskWildcard","maskWildcardChar","fillSymbols","symbol","char","keyCode","maskAutoFill","onRendered","success","cancel","editorParams","cellValue","search","padding","boxSizing","elementAttributes","getAttribute","preventScroll","onChange","vertNav","verticalNavigation","count","whiteSpace","getRow","heightNow","selectionStart","stopImmediatePropagation","step","blurFunc","cellEl","initialDisplayValue","defaultValue","listEl","multiselect","dataItems","currentItem","displayItems","currentItems","blurable","blockListShow","searchWord","searchWordTimeout","getUniqueColumnValues","getColumnByField","getColumn","parseItems","inputValues","curentValues","dataList","displayList","processComplexListItem","label","itemParams","setItem","sortValuesList","fillList","listItemFormatter","toggleItem","chooseItem","setCurrentItem","scrollIntoView","behavior","block","inline","fillInput","unsetItem","hideList","chooseItems","unsetItems","len","cancelItem","showList","removeScrollListener","scrollTovalue","character","fromCharCode","cursor","readOnly","uniqueColumnValues","genUniqueColumnValues","filterList","term","intialLoad","items","searchFunc","addNotice","searchingPlaceholder","fillListIfNotEmpty","showListOnEmpty","notice","searchEl","clearList","itemList","emptyPlaceholder","current","freetext","allowEmpty","showInputValue","maxStars","getElementsByTagName","size","stars","starsHolder","star","createElementNS","starChange","buildStar","starHolder","nextStar","blur","changeValue","overflow","textOverflow","percent","bar","mouseDrag","mouseDragWidth","updateValue","calcVal","round","backgroundColor","screenX","tristate","indetermValue","indeterminateValue","indetermState","marginTop","indeterminate","checked","textarea","number","autocomplete","progress","tickCross","Edit","mouseClick","recursionBlock","invalidEdit","editedCells","editors","getEditedCells","clearCellEdited","navigatePrev","navigateNext","navigateLeft","navigateRight","navigateUp","navigateDown","cellisEdited","clearEdited","editCell","cellCancelEdit","bindEditor","columnDeleteCheck","rowDeleteCheck","cancelEdit","keybindingNavigateNext","newRow","nav","next","edited","nextCell","findNextEditableCell","getIndex","findPrevEditableCell","allowEdit","check","prevCell","editor","editable","validate","clearEditor","variableHeight","cellEditCancelled","contains","button","forceEdit","focusCellNoEvent","getRenderMode","leftEdge","rightEdge","leftMargin","rightMargin","rendered","cellEditor","validationMode","checkForRestyle","focusScrollAdjust","cellClick","cellEditing","editIndex","invalid","defaultEditors","ExportRow","ExportColumn","Export","cloneTableStyle","colVisProp","getHtml","columnHeaders","headersToExportRows","generateColumnGroupHeaders","bodyToExportRows","rowLookup","genereateTableElement","selectRow","selectedRows","columnGroups","colData","processColumnGroup","maxDepth","groupData","subGroup","subGroupData","columnVisCheck","headerDepth","exportRows","parseColumnGroup","rowGroups","exportCols","headerEl","bodyEl","lookupTableStyles","setup","treeElementField","mapElementStyles","genereateHeaderElement","genereateGroupElement","genereateCalcElement","genereateRowElement","evenRow","oddRow","calcRow","firstRow","firstGroup","getElementsByClassName","styleCells","firstCell","lastCell","generator","isVisible","cellWrapper","formatCells","formatExportValue","align","renderedCallback","htmlOutputConfig","props","lookup","fromStyle","filterVal","rowVal","filterParams","RegExp","keywords","separator","keyword","matchAll","endsWith","Filter","headerFilterColumns","prevHeaderFilterChangeCheck","tableInitialized","searchRows","searchData","userSetFilter","userRefreshFilter","userAddFilter","getFilters","userSetHeaderFilterFocus","userGetHeaderFilterValue","userSetHeaderFilterValue","getHeaderFilters","userRemoveFilter","userClearFilter","userClearHeaderFilter","setHeaderFilterFocus","reloadHeaderFilter","getHeaderFilterValue","setHeaderFilterValue","initializeColumnHeaderFilter","hideHeaderFilterElements","showHeaderFilterElements","tableBuilt","filterMode","remoteFilterParams","registerDataHandler","initialFilter","setFilter","initialHeaderFilter","refreshFilter","addFilter","removeFilter","all","clearFilter","clearHeaderFilter","headerFilter","setHeaderFilterColumnPlaceholder","filterType","tagType","attrType","filterChangeCheck","filterFunc","prevSuccess","emptyFunc","headerFilterFunc","filters","headerFilterFuncParams","fieldVal","colVal","trackChanges","generateHeaderFilterElement","filterElement","editorElement","typingTimer","searchTrigger","headerElement","headerFilterEmptyCheck","headerFilterParams","headerFilterLiveFilterDelay","hasAttribute","headerFilterLiveFilter","reloadData","findFilter","findSubFilters","ajax","filtersToArray","searchType","filterRecurse","rowList","activeRowComponents","filterRow","subFilter","defaultFilters","formatterParams","emptyToSpace","sanitizeHTML","floatVal","sign","integer","decimal","rgx","decimalSym","thousandSym","thousand","negativeSign","symbolAfter","urlPrefix","labelField","urlField","src","urlSuffix","truthy","allowTruthy","tick","tickElement","cross","crossElement","DT","DateTime","luxon","inputFormat","outputFormat","invalidPlaceholder","newDatetime","fromFormat","isValid","timezone","shiftTimezone","toFormat","suffix","humanize","date","now","starActive","starInactive","colors","color","percentValue","legendAlign","legend","legendColor","barEl","barContainer","legendEl","holderEl","toggleList","isOpen","checkbox","toggleSelect","isSelected","registerRowSelectCheckbox","deselectRow","registerHeaderSelectCheckbox","plaintext","money","image","datetime","datetimediff","traffic","buttonTick","buttonCross","rownum","responsiveCollapse","rowSelection","Format","formatValue","formatHeader","lookupFormatter","formatterPrint","print","formatterClipboard","formatterHtmlOutput","htmlOutput","formatters","mockCell","titleFormatter","titleFormatterParams","entityMap","defaultFormatters","FrozenColumns","leftColumns","rightColumns","rightPadding","initializationMode","scrollEndTimer","layoutCell","edge","frozenCheck","calcMargins","layoutColumnPosition","layoutCalcRows","_calcSpace","layoutGroupCalcs","groupList","allCells","leftParents","parentEl","getColGroupParentElement","FrozenRows","freezeRow","unfreezeRow","isRowFrozen","detachRow","styleRows","GroupComponent","toggleVisibility","groupManager","Group","oldGroup","hasSubGroups","groupIDLookups","_addRowToGroup","_addRow","elementContents","arrowElement","createElements","addBindings","createValueGroups","arrow","movableRows","moveRow","initializeGroupHeader","allowedValues","_createGroup","toggleElement","groupContextMenu","groupClickMenu","menu","initializeGroup","groupTap","groupDblTap","groupTapHold","groupToggleElement","groupID","groupKey","headerGenerator","conformRowData","generateGroupHeaderContents","updateGroupRows","scrollHeader","groupValues","removeGroup","noCalc","_visSet","getHeadersAndRows","hasTopCalcs","detachElement","generateTopRow","hasBottomCalcs","generateBottomRow","groupClosedShowCalcs","getDisplayIndex","checkClassicModeGroupHeaderWidth","prev","compoment","getPath","addBindingsd","childNodes","GroupRows","displayHandler","setGroupBy","setGroupValues","setGroupStartOpen","setGroupHeader","userGetGroups","userGetGroupedData","rowGetGroup","configureGroupSetup","groupUpdateOnCellEdit","cellUpdated","reassignRowToGroup","rowDeleting","scrollHeaders","rowMoving","rowAddingIndex","rowSample","virtualRenderFill","groupStartOpen","langValue","removeCalcs","getRealColumns","lookupFunc","prevValue","assignRowToGroup","getGroupedData","toGroup","fromGroup","removeRow","insertRow","generateGroups","groupComponents","groupListData","rowCount","headerContent","pullGroupListData","oldGroups","createGroup","assignRowToExistingGroup","newGroupNeeded","oldRowGroup","oldGroupPath","newGroupPath","getExpectedPath","samePath","every","groupPath","groupId","cellEdit","rowAdd","_rebindRow","rowMove","posFrom","newValue","posTo","History","history","clearComponentHistory","rowDeleted","rowAdded","rowMoved","undo","redo","getHistoryUndoSize","getHistoryRedoSize","getGroup","undoers","redoers","oldRow","defaultUndoers","defaultRedoers","HtmlTableImport","fieldIndex","hasIndex","tableElementCheck","parseTable","_extractOptions","_extractHeaders","_generateBlankHeaders","optionsArr","attrib","_attribValue","exists","_findCol","textContent","Interaction","eventMap","rowClick","rowDblClick","rowContext","rowMouseEnter","rowMouseLeave","rowMouseOver","rowMouseOut","rowMouseMove","rowTap","rowDblTap","rowTapHold","cellDblClick","cellContext","cellMouseEnter","cellMouseLeave","cellMouseOver","cellMouseOut","cellMouseMove","cellTap","cellDblTap","cellTapHold","headerMouseEnter","headerMouseLeave","headerMouseOver","headerMouseOut","headerMouseMove","groupClick","groupDblClick","groupContext","groupMouseEnter","groupMouseLeave","groupMouseOver","groupMouseOut","groupMouseMove","subscribers","touchSubscribers","columnSubscribers","touchWatchers","tapDbl","initializeExternalEvents","cellContentsSelectionFixer","selectNode","subscriptionChangeExternal","subscribeTouchEvents","unsubscribeTouchEvents","handleTouch","notouch","watchers","componentObj","navPrev","navNext","navUp","navDown","scrollPageUp","scrollPageDown","scrollToStart","scrollToEnd","copyToClipboard","keyBlock","newPos","scrollMax","navLeft","navRight","Keybindings","watchKeys","pressedKeys","keyupBinding","keydownBinding","keybindings","mergedBindings","mapBindings","bindEvents","clearBindings","actions","mapBinding","symbolsList","ctrl","meta","symbols","code","checkBinding","ctrlKey","shiftKey","metaKey","defaultBindings","defaultActions","Menu","menuElements","blurEvent","hideMenu","escEvent","escMenu","nestedMenuBlock","positionReversedX","contextMenu","clickMenu","initializeCell","headerContextMenu","headerClickMenu","headerMenu","initializeColumnHeader","headerMenuEl","LoadMenuEvent","loadMenu","rowContextMenu","rowClickMenu","touch","MouseEvent","menuEl","itemEl","disabled","hideOldSubMenus","positionMenu","pop","docHeight","innerHeight","x","y","parentOffset","touches","pageX","pageY","MoveColumns","placeholderElement","createPlaceholderElement","hoverElement","checkTimeout","checkPeriod","moving","toCol","toColAfter","startX","autoScrollMargin","autoScrollStep","autoScrollTimeout","touchMove","moveHover","endMove","mousemove","which","startMove","bindTouchEvents","startXMove","prevColWidth","nextColWidthLast","prevColWidthLast","moveToCol","_bindMouseMove","movingCells","_unbindMouseMove","columnHolder","xPos","scrollPos","MoveRows","toRowAfter","hasHandle","startY","tableRowDropEvent","connectionSelectorsTables","connectionSelectorsElements","connectionElements","connectedTable","connectedRow","movableRowsConnectedTables","movableRowsConnectedElements","mouseup","tableRowDrop","previousSibling","rowHandle","startYMove","nextRowHeight","prevRowHeight","nextRowHeightLast","prevRowHeightLast","setStartPosition","connectToTables","pointerEvents","getTableElement","disconnectFromTables","moveHoverConnections","moveHoverTable","rowHolder","yPos","connectionTables","commsConnections","dropEvent","elementRowDrop","tabulatorElementDropEvent","sender","movableRowsSender","senders","movableRowsReceiver","receivers","connect","disconnect","dropComplete","fromTable","toTable","Mutator","enabled","transformCell","lookupMutator","mutators","mutatorEdit","defaultMutators","Page","progressiveLoad","page","initialLoad","dataChanging","pageSizes","dataReceivedNames","dataSentNames","setMaxPage","setPage","userSetPageToRow","userSetPageSize","getPageSize","previousPage","nextPage","getPage","getPageMax","setPageToRow","rowAddingPosition","initialLoadComplete","calculatePageSizes","paginationMode","remotePageParams","_parseRemoteData","restOnRenderBefore","initializePaginator","initializeProgressive","scrollVertical","dispRows","testElRow","testElCell","paginationSize","generatePageSizeSelectList","setPageSize","progressiveLoadScrollMargin","pagesElement","firstBut","prevBut","nextBut","lastBut","paginationSizeSelector","pageSizeSelect","hidden","pageSelectLabel","paginationElement","paginationInitialPage","paginationButtonCount","trigger","leftSize","rightSize","_generatePageButton","setMaxRows","_setPageButtons","last_page","progressiveLoadDelay","footer","local","id","localStorage","getItem","cookie","cookiePos","expireDate","setDate","getDate","toUTCString","Persistence","defWatcherBlock","readFunc","writeFunc","testKey","removeItem","persistence","persistenceMode","persistenceID","retreivedData","localStorageTest","persistenceReaderFunc","readers","persistenceWriterFunc","writers","retreiveData","save","eventSave","getColumnLayout","setColumnLayout","sorters","initialSort","parseColumns","getColumns","mergeDefinition","getOwnPropertyDescriptor","defineProperty","set","oldCols","newCols","_findColumn","validateSorters","getSort","getGroupConfig","getPageConfig","excludedKeys","defStore","colDef","defaultReaders","defaultWriters","Print","manualBlock","printAsHtml","replaceTable","cleanup","printFullscreen","genereateTable","printConfig","printStyled","printRowRange","scrollX","scrollY","footerEl","tableEl","footerContent","printHeader","printFooter","printFormatter","scrollTo","ReactiveData","origFuncs","currentVersion","unblock","watchRow","watchData","unwatchData","version","enumerable","configurable","arg","getRowFromDataObject","startRow","oldRows","writable","watchKey","watchTreeChildren","childField","rebuildTree","ResizeColumns","startColumn","startWidth","prevHandle","layoutCellHandles","layoutColumnHeader","resizable","handleDown","nearestColumn","_checkResizability","_mouseDown","prevHandleDown","colIndex","mouseMove","checkCellHeights","mouseUp","ResizeRows","startHeight","screenY","ResizeTable","observer","containerObserver","tableHeight","containerWidth","autoResize","tableStyle","ResizeObserver","entry","nodeHeight","contentRect","nodeWidth","observe","tableResized","unobserve","ResponsiveLayout","hiddenColumns","collapseFormatter","collapseStartOpen","collapseHandleColumn","updateColumnVisibility","initializeResponsivity","responsiveLayoutCollapseFormatter","formatCollapsedData","responsiveLayoutCollapseStartOpen","order","generateCollapsedContent","generateCollapsedRowContent","colCount","working","getFlexBaseWidth","hideColumn","showColumn","generateCollapsedRowData","mockCellComponent","responsiveLayoutCollapseUseFormatters","titleData","valueData","node_content","titleHighlight","innerText","SelectRow","selecting","lastClickedRow","selectPrev","headerCheckboxElement","selectRows","deselectRows","getSelectedRows","getSelectedData","isRowSelected","selectable","clearSelectionData","rowRetrieve","selectablePersistence","_deselectRow","_rowSelectionChanged","endSelect","selected","selectableCheck","selectableRangeMode","_clearSelection","lastClickedRowIdx","rowIdx","fromRowIdx","toRowIdx","toggledRows","toggledRow","getCurrentCell","_selectRow","rowMatch","rowInfo","selectableRollingSelection","checkboxEl","dataTreeSelectPropagate","childRowSelection","selectedRow","aRow","bRow","alignEmptyValues","decimalSeparator","thousandSeparator","emptyAlign","langLocale","localeCompare","el1","el2","calc","d","as","bs","a1","b1","L","rx","rd","isFinite","string","time","boolean","array","alphanum","Sort","sortList","userSetSort","clearSort","sortMode","remoteSortParams","setSort","refreshSort","arrowEl","sorterParams","startingDir","headerSortStartingDir","headerSortTristate","headerSort","headerSortElement","columnHeaderSortMulti","newSortList","sortOrderReverse","sortListActual","rowComponents","clearColumnHeaders","sortObj","findSorter","setColumnHeader","_sortItems","sorterCount","sortItem","_sortRow","el1Comp","el2Comp","defaultSorters","parameters","numeric","starts","ends","minLength","maxLength","regex","reg","unique","cellData","Validate","invalidCells","getInvalidCells","userClearCellValidation","userValidate","cellIsValid","clearValidation","cellValidate","columnValidate","rowValidate","validator","_extractValidator","substring","_buildValidator","validators","invalidIndex","defaultValidators","TabulatorFull"],"mappings":"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"}
|