@holoviz/panel 0.14.4 → 1.0.0-a.2
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/@microsoft/fast-components@2.30.6/dist/fast-components.iife.min.js +217 -0
- package/dist/bundled/@microsoft/fast-components@2.30.6/dist/fast-components.js +28286 -0
- package/dist/bundled/@microsoft/fast-components@2.30.6/dist/fast-components.min.js +217 -0
- package/dist/bundled/bootstrap/css/bootstrap.css +688 -0
- package/dist/bundled/bootstrap5/css/bootstrap-grid.css +4226 -0
- package/dist/bundled/bootstrap5/css/bootstrap-grid.min.css +6 -0
- package/dist/bundled/bootstrap5/css/bootstrap-grid.rtl.css +4225 -0
- package/dist/bundled/bootstrap5/css/bootstrap-grid.rtl.min.css +6 -0
- package/dist/bundled/bootstrap5/css/bootstrap-reboot.css +591 -0
- package/dist/bundled/bootstrap5/css/bootstrap-reboot.min.css +6 -0
- package/dist/bundled/bootstrap5/css/bootstrap-reboot.rtl.css +588 -0
- package/dist/bundled/bootstrap5/css/bootstrap-reboot.rtl.min.css +6 -0
- package/dist/bundled/bootstrap5/css/bootstrap-utilities.css +5099 -0
- package/dist/bundled/bootstrap5/css/bootstrap-utilities.min.css +6 -0
- package/dist/bundled/bootstrap5/css/bootstrap-utilities.rtl.css +5090 -0
- package/dist/bundled/bootstrap5/css/bootstrap-utilities.rtl.min.css +6 -0
- package/dist/bundled/bootstrap5/css/bootstrap.css +11783 -0
- package/dist/bundled/bootstrap5/css/bootstrap.min.css +6 -0
- package/dist/bundled/bootstrap5/css/bootstrap.rtl.css +11747 -0
- package/dist/bundled/bootstrap5/css/bootstrap.rtl.min.css +6 -0
- package/dist/bundled/bootstrap5/js/bootstrap.bundle.js +6295 -0
- package/dist/bundled/bootstrap5/js/bootstrap.bundle.js.map +1 -0
- package/dist/bundled/bootstrap5/js/bootstrap.bundle.min.js +7 -0
- package/dist/bundled/bootstrap5/js/bootstrap.bundle.min.js.map +1 -0
- package/dist/bundled/bootstrap5/js/bootstrap.esm.js +4422 -0
- package/dist/bundled/bootstrap5/js/bootstrap.esm.js.map +1 -0
- package/dist/bundled/bootstrap5/js/bootstrap.esm.min.js +7 -0
- package/dist/bundled/bootstrap5/js/bootstrap.esm.min.js.map +1 -0
- package/dist/bundled/bootstrap5/js/bootstrap.js +4468 -0
- package/dist/bundled/bootstrap5/js/bootstrap.js.map +1 -0
- package/dist/bundled/bootstrap5/js/bootstrap.min.js +7 -0
- package/dist/bundled/bootstrap5/js/bootstrap.min.js.map +1 -0
- package/dist/bundled/bootstrapdarktheme/bootstrap_dark.css +170 -0
- package/dist/bundled/bootstrapdefaulttheme/bootstrap_default.css +120 -0
- package/dist/bundled/bootstraptemplate/bootstrap.css +119 -77
- package/dist/bundled/darktheme/dark.css +33 -106
- package/dist/bundled/datatabulator/luxon/build/global/luxon.min.js.map +1 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_bootstrap3.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_bootstrap4.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_bulma.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_fast.min.css +1 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_materialize.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_midnight.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_modern.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_semanticui.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_simple.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/css/tabulator_site.min.css +2 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/js/tabulator.js +26077 -0
- package/dist/bundled/datatabulator/tabulator-tables@5.4.4/dist/js/tabulator.js.map +1 -0
- package/dist/bundled/defaulttheme/default.css +33 -2
- package/dist/bundled/fast/css/fast.css +919 -0
- package/dist/bundled/fast/js/fast_design.js +87 -0
- package/dist/bundled/fastbasetemplate/fast.css +335 -0
- package/dist/bundled/fastgridtemplate/fast_grid_template.css +256 -232
- package/dist/bundled/golden-layout@1.5.9/dist/css/goldenlayout-base.css +1 -0
- package/dist/bundled/golden-layout@1.5.9/dist/css/theme/goldenlayout-dark-theme.css +1 -0
- package/dist/bundled/goldentemplate/golden.css +2 -22
- package/dist/bundled/material/css/material.css +443 -0
- package/dist/bundled/materialtemplate/dark.css +2 -20
- package/dist/bundled/materialtemplate/default.css +2 -17
- package/dist/bundled/materialtemplate/material.css +119 -114
- package/dist/bundled/materialthememixin/material_variables.css +19 -0
- package/dist/bundled/native/css/native.css +34 -0
- package/dist/bundled/notificationarea/panel/1.0.0-a.2/dist/bundled/font-awesome/css/all.min.css +2 -0
- package/dist/bundled/panel/1.0.0-a.2/dist/bundled/bootstrap5/css/bootstrap.min.css +2 -0
- package/dist/bundled/panel/1.0.0-a.2/dist/bundled/bootstrap5/js/bootstrap.bundle.min.js +2 -0
- package/dist/bundled/panel/1.0.0-a.2/dist/bundled/font-awesome/css/all.min.css +2 -0
- package/dist/bundled/panel/1.0.0-a.2/dist/bundled/jquery/jquery.slim.min.js +2 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/fonts.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/material-dark.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/material.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/monokai.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/solarized-dark.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/solarized.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/themes.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/vaporwave.css +1 -0
- package/dist/bundled/perspective/@finos/perspective-viewer@1.9.3/dist/css/variables.css +0 -0
- package/dist/bundled/plotlyplot/panel/1.0.0-a.2/dist/bundled/jquery/jquery.slim.min.js +2 -0
- package/dist/bundled/react-dom@17/umd/react-dom.production.min.js +245 -0
- package/dist/bundled/react@17/umd/react.production.min.js +31 -0
- package/dist/bundled/reacttemplate/react.css +0 -12
- package/dist/bundled/vanillatemplate/vanilla.css +129 -134
- package/dist/css/alerts.css +64 -64
- package/dist/css/booleanstatus.css +48 -0
- package/dist/css/card.css +55 -39
- package/dist/css/dataframe.css +7 -2
- package/dist/css/debugger.css +16 -10
- package/dist/css/divider.css +10 -0
- package/dist/css/editable_slider.css +22 -0
- package/dist/css/katex.css +3 -0
- package/dist/css/loading.css +5 -6
- package/dist/css/loadingspinner.css +119 -0
- package/dist/css/markdown.css +2 -1
- package/dist/css/perspective-datatable.css +504 -0
- package/dist/css/plotly.css +246 -0
- package/dist/css/progress.css +209 -0
- package/dist/css/widgetbox.css +9 -0
- package/dist/css/widgets.css +0 -305
- package/dist/dts/styles/alerts.css.d.ts +3 -0
- package/dist/dts/styles/booleanstatus.css.d.ts +3 -0
- package/dist/dts/styles/card.css.d.ts +3 -0
- package/dist/dts/styles/dataframe.css.d.ts +3 -0
- package/dist/dts/styles/debugger.css.d.ts +3 -0
- package/dist/dts/styles/divider.css.d.ts +4 -0
- package/dist/dts/styles/editable_slider.css.d.ts +8 -0
- package/dist/dts/styles/json.css.d.ts +3 -0
- package/dist/dts/styles/katex.css.d.ts +3 -0
- package/dist/dts/styles/loading.css.d.ts +3 -0
- package/dist/dts/styles/loadingspinner.css.d.ts +3 -0
- package/dist/dts/styles/markdown.css.d.ts +3 -0
- package/dist/dts/styles/perspective-datatable.css.d.ts +3 -0
- package/dist/dts/styles/plotly.css.d.ts +3 -0
- package/dist/dts/styles/progress.css.d.ts +3 -0
- package/dist/dts/styles/widgetbox.css.d.ts +3 -0
- package/dist/dts/styles/widgets.css.d.ts +4 -0
- package/dist/lib/models/ace.d.ts +3 -5
- package/dist/lib/models/ace.js +24 -23
- package/dist/lib/models/ace.js.map +1 -1
- package/dist/lib/models/audio.d.ts +2 -4
- package/dist/lib/models/audio.js +18 -18
- package/dist/lib/models/audio.js.map +1 -1
- package/dist/lib/models/card.d.ts +3 -3
- package/dist/lib/models/card.js +54 -63
- package/dist/lib/models/card.js.map +1 -1
- package/dist/lib/models/comm_manager.d.ts +2 -2
- package/dist/lib/models/comm_manager.js +20 -19
- package/dist/lib/models/comm_manager.js.map +1 -1
- package/dist/lib/models/data.js +1 -1
- package/dist/lib/models/data.js.map +1 -1
- package/dist/lib/models/datetime_picker.d.ts +8 -7
- package/dist/lib/models/datetime_picker.js +130 -36
- package/dist/lib/models/datetime_picker.js.map +1 -1
- package/dist/lib/models/deckgl.d.ts +2 -4
- package/dist/lib/models/deckgl.js +24 -25
- package/dist/lib/models/deckgl.js.map +1 -1
- package/dist/lib/models/echarts.d.ts +3 -2
- package/dist/lib/models/echarts.js +22 -12
- package/dist/lib/models/echarts.js.map +1 -1
- package/dist/lib/models/file_download.d.ts +2 -2
- package/dist/lib/models/file_download.js +20 -19
- package/dist/lib/models/file_download.js.map +1 -1
- package/dist/lib/models/html.d.ts +4 -4
- package/dist/lib/models/html.js +23 -17
- package/dist/lib/models/html.js.map +1 -1
- package/dist/lib/models/index.d.ts +1 -2
- package/dist/lib/models/index.js +1 -2
- package/dist/lib/models/index.js.map +1 -1
- package/dist/lib/models/ipywidget.d.ts +2 -6
- package/dist/lib/models/ipywidget.js +14 -24
- package/dist/lib/models/ipywidget.js.map +1 -1
- package/dist/lib/models/json.d.ts +1 -1
- package/dist/lib/models/json.js +14 -12
- package/dist/lib/models/json.js.map +1 -1
- package/dist/lib/models/jsoneditor.d.ts +8 -7
- package/dist/lib/models/jsoneditor.js +30 -19
- package/dist/lib/models/jsoneditor.js.map +1 -1
- package/dist/lib/models/katex.d.ts +0 -1
- package/dist/lib/models/katex.js +7 -6
- package/dist/lib/models/katex.js.map +1 -1
- package/dist/lib/models/layout.d.ts +25 -22
- package/dist/lib/models/layout.js +75 -81
- package/dist/lib/models/layout.js.map +1 -1
- package/dist/lib/models/location.d.ts +0 -1
- package/dist/lib/models/location.js +15 -14
- package/dist/lib/models/location.js.map +1 -1
- package/dist/lib/models/mathjax.d.ts +0 -3
- package/dist/lib/models/mathjax.js +6 -16
- package/dist/lib/models/mathjax.js.map +1 -1
- package/dist/lib/models/pdf.d.ts +24 -0
- package/dist/lib/models/pdf.js +62 -0
- package/dist/lib/models/pdf.js.map +1 -0
- package/dist/lib/models/perspective.d.ts +5 -10
- package/dist/lib/models/perspective.js +75 -87
- package/dist/lib/models/perspective.js.map +1 -1
- package/dist/lib/models/player.d.ts +0 -1
- package/dist/lib/models/player.js +18 -17
- package/dist/lib/models/player.js.map +1 -1
- package/dist/lib/models/plotly.d.ts +3 -7
- package/dist/lib/models/plotly.js +60 -67
- package/dist/lib/models/plotly.js.map +1 -1
- package/dist/lib/models/progress.d.ts +4 -7
- package/dist/lib/models/progress.js +28 -32
- package/dist/lib/models/progress.js.map +1 -1
- package/dist/lib/models/quill.d.ts +3 -6
- package/dist/lib/models/quill.js +25 -24
- package/dist/lib/models/quill.js.map +1 -1
- package/dist/lib/models/reactive_html.d.ts +6 -12
- package/dist/lib/models/reactive_html.js +45 -121
- package/dist/lib/models/reactive_html.js.map +1 -1
- package/dist/lib/models/singleselect.d.ts +0 -1
- package/dist/lib/models/singleselect.js +11 -10
- package/dist/lib/models/singleselect.js.map +1 -1
- package/dist/lib/models/speech_to_text.d.ts +1 -2
- package/dist/lib/models/speech_to_text.js +27 -26
- package/dist/lib/models/speech_to_text.js.map +1 -1
- package/dist/lib/models/state.d.ts +0 -2
- package/dist/lib/models/state.js +12 -13
- package/dist/lib/models/state.js.map +1 -1
- package/dist/lib/models/tabulator.d.ts +9 -16
- package/dist/lib/models/tabulator.js +111 -196
- package/dist/lib/models/tabulator.js.map +1 -1
- package/dist/lib/models/terminal.d.ts +5 -8
- package/dist/lib/models/terminal.js +23 -27
- package/dist/lib/models/terminal.js.map +1 -1
- package/dist/lib/models/text_to_speech.d.ts +1 -2
- package/dist/lib/models/text_to_speech.js +16 -15
- package/dist/lib/models/text_to_speech.js.map +1 -1
- package/dist/lib/models/trend.d.ts +1 -2
- package/dist/lib/models/trend.js +24 -23
- package/dist/lib/models/trend.js.map +1 -1
- package/dist/lib/models/vega.d.ts +6 -7
- package/dist/lib/models/vega.js +34 -37
- package/dist/lib/models/vega.js.map +1 -1
- package/dist/lib/models/video.d.ts +2 -4
- package/dist/lib/models/video.js +18 -18
- package/dist/lib/models/video.js.map +1 -1
- package/dist/lib/models/videostream.d.ts +2 -4
- package/dist/lib/models/videostream.js +19 -19
- package/dist/lib/models/videostream.js.map +1 -1
- package/dist/lib/models/vtk/util.d.ts +4 -4
- package/dist/lib/models/vtk/vtkaxes.d.ts +1 -2
- package/dist/lib/models/vtk/vtkaxes.js +15 -14
- package/dist/lib/models/vtk/vtkaxes.js.map +1 -1
- package/dist/lib/models/vtk/vtkjs.d.ts +0 -1
- package/dist/lib/models/vtk/vtkjs.js +9 -8
- package/dist/lib/models/vtk/vtkjs.js.map +1 -1
- package/dist/lib/models/vtk/vtklayout.d.ts +2 -5
- package/dist/lib/models/vtk/vtklayout.js +24 -30
- package/dist/lib/models/vtk/vtklayout.js.map +1 -1
- package/dist/lib/models/vtk/vtksynchronized.d.ts +0 -1
- package/dist/lib/models/vtk/vtksynchronized.js +17 -16
- package/dist/lib/models/vtk/vtksynchronized.js.map +1 -1
- package/dist/lib/models/vtk/vtkvolume.d.ts +0 -1
- package/dist/lib/models/vtk/vtkvolume.js +27 -26
- package/dist/lib/models/vtk/vtkvolume.js.map +1 -1
- package/dist/lib/styles/alerts.css.d.ts +1 -2
- package/dist/lib/styles/alerts.css.js +1 -139
- package/dist/lib/styles/booleanstatus.css.d.ts +1 -0
- package/dist/lib/styles/booleanstatus.css.js +1 -0
- package/dist/lib/styles/card.css.d.ts +1 -2
- package/dist/lib/styles/card.css.js +1 -43
- package/dist/lib/styles/dataframe.css.d.ts +1 -2
- package/dist/lib/styles/dataframe.css.js +1 -44
- package/dist/lib/styles/debugger.css.d.ts +1 -2
- package/dist/lib/styles/debugger.css.js +1 -68
- package/dist/lib/styles/divider.css.d.ts +2 -0
- package/dist/lib/styles/divider.css.js +2 -0
- package/dist/lib/styles/editable_slider.css.d.ts +6 -0
- package/dist/lib/styles/editable_slider.css.js +6 -0
- package/dist/lib/styles/json.css.d.ts +1 -2
- package/dist/lib/styles/json.css.js +1 -197
- package/dist/lib/styles/katex.css.d.ts +1 -0
- package/dist/lib/styles/katex.css.js +1 -0
- package/dist/lib/styles/loading.css.d.ts +1 -2
- package/dist/lib/styles/loading.css.js +1 -31
- package/dist/lib/styles/loadingspinner.css.d.ts +1 -0
- package/dist/lib/styles/loadingspinner.css.js +17 -0
- package/dist/lib/styles/markdown.css.d.ts +1 -2
- package/dist/lib/styles/markdown.css.js +1 -91
- package/dist/lib/styles/perspective-datatable.css.d.ts +1 -0
- package/dist/lib/styles/perspective-datatable.css.js +1 -0
- package/dist/lib/styles/plotly.css.d.ts +1 -0
- package/dist/lib/styles/plotly.css.js +1 -0
- package/dist/lib/styles/progress.css.d.ts +1 -0
- package/dist/lib/styles/progress.css.js +22 -0
- package/dist/lib/styles/widgetbox.css.d.ts +1 -0
- package/dist/lib/styles/widgetbox.css.js +1 -0
- package/dist/lib/styles/widgets.css.d.ts +2 -2
- package/dist/lib/styles/widgets.css.js +2 -320
- package/dist/panel.js +4648 -6067
- package/dist/panel.js.map +1 -1
- package/dist/panel.json +1 -1
- package/dist/panel.min.js +65 -102
- package/dist/wheels/bokeh-3.1.0rc1-py3-none-any.whl +0 -0
- package/dist/wheels/{panel-0.14.4-py3-none-any.whl → panel-1.0.0a2-py3-none-any.whl} +0 -0
- package/package.json +5 -4
- package/dist/bundled/bootstraptemplate/dark.css +0 -19
- package/dist/bundled/css/golden-layout@1.5.9/src/css/goldenlayout-base.css +0 -1
- package/dist/bundled/css/panel/0.14.4/dist/bundled/bootstrap4/css/bootstrap.min.css +0 -2
- package/dist/bundled/css/panel/0.14.4/dist/bundled/font-awesome/css/all.min.css +0 -2
- package/dist/bundled/datatabulator/@holoviz/panel@0.14.4/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/fast/tabulator_fast.min.css +0 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/fast/tabulator_fast.min.css +0 -1
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_bootstrap3.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_bootstrap4.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_bulma.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_materialize.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_midnight.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_modern.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_semanticui.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_simple.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/css/tabulator_site.min.css +0 -2
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/js/tabulator.js +0 -27481
- package/dist/bundled/datatabulator/tabulator-tables@5.3.2/dist/js/tabulator.js.map +0 -1
- package/dist/bundled/fastbasetemplate/fast_awesome.css +0 -13
- package/dist/bundled/fastbasetemplate/fast_bokeh.css +0 -1646
- package/dist/bundled/fastbasetemplate/fast_bokeh_slickgrid.css +0 -200
- package/dist/bundled/fastbasetemplate/fast_panel.css +0 -53
- package/dist/bundled/fastbasetemplate/fast_panel_dataframe.css +0 -14
- package/dist/bundled/fastbasetemplate/fast_panel_markdown.css +0 -23
- package/dist/bundled/fastbasetemplate/fast_panel_widgets.css +0 -301
- package/dist/bundled/fastbasetemplate/fast_root.css +0 -41
- package/dist/bundled/fastdarktheme/fast_root_dark.css +0 -4
- package/dist/bundled/fastdefaulttheme/fast_root_default.css +0 -4
- package/dist/bundled/fastgridtemplate/dark.css +0 -26
- package/dist/bundled/fastgridtemplate/default.css +0 -4
- package/dist/bundled/fastlisttemplate/dark.css +0 -13
- package/dist/bundled/fastlisttemplate/default.css +0 -1
- package/dist/bundled/fastlisttemplate/fast_list_template.css +0 -237
- package/dist/bundled/goldentemplate/dark.css +0 -26
- package/dist/bundled/goldentemplate/default.css +0 -23
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/array-pixel-blob.js +0 -39
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-blending.js +0 -270
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-converters.js +0 -524
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-hsl.js +0 -42
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-hsv.js +0 -42
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-interpolation.js +0 -133
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-lab.js +0 -47
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-lch.js +0 -50
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-palette.js +0 -285
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-quantization.js +0 -135
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-rgba-64.js +0 -95
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-scale.js +0 -176
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/color-xyz.js +0 -50
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/component-state-color-palette.js +0 -113
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/histogram.js +0 -76
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/index.js +0 -19
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/math-utilities.js +0 -138
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/named-colors.js +0 -743
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/palette-extractor.js +0 -134
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/parse-color.js +0 -219
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/pixel-blob.js +0 -72
- package/dist/bundled/js/@microsoft/fast-colors@5.3.1/dist/pixel-box.js +0 -249
- package/dist/bundled/js/@microsoft/fast-components@1.21.8/__test__/harness.js +0 -33
- package/dist/bundled/js/@microsoft/fast-components@1.21.8/__test__/server.js +0 -36
- package/dist/bundled/js/@microsoft/fast-components@1.21.8/dist/fast-components.iife.min.js +0 -19
- package/dist/bundled/js/@microsoft/fast-components@1.21.8/dist/fast-components.js +0 -25813
- package/dist/bundled/js/@microsoft/fast-components@1.21.8/dist/fast-components.min.js +0 -19
- package/dist/bundled/js/panel/0.14.4/dist/bundled/bootstrap4/js/bootstrap.bundle.min.js +0 -2
- package/dist/bundled/js/panel/0.14.4/dist/bundled/jquery/jquery.slim.min.js +0 -2
- package/dist/bundled/js/react-dom@18/umd/react-dom.production.min.js +0 -267
- package/dist/bundled/js/react@18/umd/react.production.min.js +0 -31
- package/dist/bundled/notificationarea/panel/0.14.4/dist/bundled/font-awesome/css/all.min.css +0 -2
- package/dist/bundled/plotlyplot/panel/0.14.4/dist/bundled/jquery/jquery.slim.min.js +0 -2
- package/dist/bundled/reacttemplate/dark.css +0 -18
- package/dist/bundled/reacttemplate/default.css +0 -12
- package/dist/bundled/theme/dark.css +0 -107
- package/dist/bundled/theme/default.css +0 -3
- package/dist/bundled/vanillatemplate/default.css +0 -8
- package/dist/idom/package.json +0 -38
- package/dist/lib/models/idom.d.ts +0 -36
- package/dist/lib/models/idom.js +0 -239
- package/dist/lib/models/idom.js.map +0 -1
- package/dist/lib/models/tabs.d.ts +0 -24
- package/dist/lib/models/tabs.js +0 -231
- package/dist/lib/models/tabs.js.map +0 -1
- package/dist/wheels/bokeh-2.4.3-py3-none-any.whl +0 -0
- /package/dist/bundled/{js/babel-standalone@latest → babel-standalone@latest}/babel.min.js +0 -0
- /package/dist/bundled/{js/golden-layout@1.5.9 → golden-layout@1.5.9}/dist/goldenlayout.min.js +0 -0
- /package/dist/bundled/{css/material-components-web@7.0.0 → material-components-web@7.0.0}/dist/material-components-web.min.css +0 -0
- /package/dist/bundled/{js/material-components-web@7.0.0 → material-components-web@7.0.0}/dist/material-components-web.min.js +0 -0
- /package/dist/bundled/{js/react-grid-layout@1.3.4 → react-grid-layout@1.3.4}/dist/react-grid-layout.min.js +0 -0
- /package/dist/bundled/{js/react-grid-layout@1.3.4 → react-grid-layout@1.3.4}/dist/react-grid-layout.min.js.map +0 -0
|
@@ -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/ComponentFunctionBinder.js","../../src/js/core/tools/DataLoader.js","../../src/js/core/tools/ExternalEventBus.js","../../src/js/core/tools/InternalEventBus.js","../../src/js/core/tools/DeprecationAdvisor.js","../../src/js/core/tools/TableRegistry.js","../../src/js/core/tools/Popup.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/tools/Alert.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/jsonLines.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/date.js","../../src/js/modules/Edit/defaults/editors/time.js","../../src/js/modules/Edit/defaults/editors/datetime.js","../../src/js/modules/Edit/List.js","../../src/js/modules/Edit/defaults/editors/select.js","../../src/js/modules/Edit/defaults/editors/list.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/Import/defaults/importers/csv.js","../../src/js/modules/Import/defaults/importers/json.js","../../src/js/modules/Import/defaults/importers/array.js","../../src/js/modules/Import/defaults/importers.js","../../src/js/modules/Import/Import.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/defaults/pageCounters/rows.js","../../src/js/modules/Page/defaults/pageCounters/pages.js","../../src/js/modules/Page/defaults/pageCounters.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/Popup/Popup.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/Tooltip/Tooltip.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\tdebugInvalidComponentFuncs:true, //allow toggling of invalid component warnings\r\n\tdebugInitialization:true, //allow toggling of pre initialization function call warnings\r\n\tdebugDeprecation:true, //allow toggling of deprecation 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\tcolumnHeaderVertAlign:\"top\", //vertical alignment of column headers\r\n\r\n\tpopupContainer:false,\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:\".\", //separator for nested data\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\trowHeight:null,\r\n\r\n\tplaceholder:false,\r\n\r\n\tdataLoader:true,\r\n\tdataLoaderLoading:false,\r\n\tdataLoaderError:false,\r\n\tdataLoaderErrorTimeout:3000,\r\n\r\n\tdataSendParams:{},\r\n\r\n\tdataReceiveParams:{},\r\n};\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, columnsChanged){\r\n\t\treturn this.table.dataLoader.load(data, undefined, undefined, undefined, silent, columnsChanged);\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(force){\r\n\t\treturn this.table.modules.layout.layout(force);\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){\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\t//////////////////////////////////////////\r\n\t/////////// Deprecation Checks ///////////\r\n\t//////////////////////////////////////////\r\n\r\n\tdeprecationCheck(oldOption, newOption){\r\n\t\treturn this.table.deprecationAdvisor.check(oldOption, newOption);\r\n\t}\r\n\r\n\tdeprecationCheckMsg(oldOption, msg){\r\n\t\treturn this.table.deprecationAdvisor.checkMsg(oldOption, msg);\r\n\t}\r\n\r\n\tdeprecationMsg(msg){\r\n\t\treturn this.table.deprecationAdvisor.msg(msg);\r\n\t}\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}","import Column from './Column.js';\r\n\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\tgetTitleDownload() {\r\n\t\treturn this._column.getTitleDownload();\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.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\"maxInitialWidth\": undefined,\r\n\t\"cssClass\": undefined,\r\n\t\"variableHeight\": 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}\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\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\t\tif(val instanceof Node){\r\n\r\n\t\t\t\t\t//clear previous cell contents\r\n\t\t\t\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\r\n\t\t\t\t\tthis.element.appendChild(val);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.element.innerHTML = \"\";\r\n\r\n\t\t\t\t\tif(val != null){\r\n\t\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\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"undefined\":\r\n\t\t\t\tthis.element.innerHTML = \"\";\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\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//////////////////// 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, force){\r\n\t\tvar changed = this.setValueProcessData(value, mutate, force);\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\tif(this.column.definition.cellEdited){\r\n\t\t\t\tthis.column.definition.cellEdited.call(this.table, this.getComponent());\r\n\t\t\t}\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, force){\r\n\t\tvar changed = false;\r\n\r\n\t\tif(this.value !== value || force){\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\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\r\n\t\tthis.dispatch(\"cell-height\", this, \"\");\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\r\n\t\tthis.dispatch(\"cell-height\", this, 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}\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.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.titleDownload = null;\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 pre-styled to improve render efficiency\r\n\t\tthis.maxWidth = null; //column maximum width\r\n\t\tthis.maxWidthStyled = \"\"; //column maximum pre-styled to improve render efficiency\r\n\t\tthis.maxInitialWidth = null;\r\n\t\tthis.minWidth = null; //column minimum width\r\n\t\tthis.minWidthStyled = \"\"; //column minimum pre-styled 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\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\tswitch(this.table.options.columnHeaderVertAlign){\r\n\t\t\tcase \"middle\":\r\n\t\t\t\tel.style.justifyContent = \"center\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom\":\r\n\t\t\t\tel.style.justifyContent = \"flex-end\";\r\n\t\t\t\tbreak;\r\n\t\t}\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//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._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.dispatch(\"column-init\", this);\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\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//assign additional css classes to column header\r\n\t\tif(def.cssClass){\r\n\t\t\tvar classNames = def.cssClass.split(\" \");\r\n\t\t\tclassNames.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.maxInitialWidth) {\r\n\t\t\tthis.maxInitialWidth = parseInt(def.maxInitialWidth);\r\n\t\t}\r\n\t\t\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 horizontal 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 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\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\t\tif(contents instanceof Node){\r\n\t\t\t\t\tel.appendChild(contents);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tel.innerHTML = \"\";\r\n\t\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\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"undefined\":\r\n\t\t\t\tel.innerHTML = \"\";\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\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 classNames = this.definition.cssClass.split(\" \");\r\n\t\t\tclassNames.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\r\n\t\t\tcolumn.columnRendered();\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\tthis.dispatch(\"column-height\", this, this.element.style.height);\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\t// if(!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 alignment\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\r\n\t\tthis.dispatch(\"column-height\", this, \"\");\r\n\t}\r\n\r\n\t//// Retrieve 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 column 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\tgetTitleDownload() {\r\n\t\treturn this.titleDownload;\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(traverse){\r\n\t\tvar columns = [];\r\n\r\n\t\tif(traverse){\r\n\t\t\tthis.columns.forEach((column) => {\r\n\t\t\t\tcolumns.push(column);\r\n\t\t\t\t\t\r\n\t\t\t\tcolumns = columns.concat(column.getColumns(true));\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tcolumns = this.columns;\r\n\t\t}\r\n\t\t\r\n\t\treturn 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//retrieve 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.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, responsiveToggle);\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.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 Math.ceil(this.element.getBoundingClientRect().height);\r\n\t}\r\n\r\n\tsetMinWidth(minWidth){\r\n\t\tif(this.maxWidth && minWidth > this.maxWidth){\r\n\t\t\tminWidth = this.maxWidth;\r\n\r\n\t\t\tconsole.warn(\"the minWidth (\"+ minWidth + \"px) for column '\" + this.field + \"' cannot be bigger that its maxWidth (\"+ this.maxWidthStyled + \")\");\r\n\t\t}\r\n\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\tif(this.minWidth && maxWidth < this.minWidth){\r\n\t\t\tmaxWidth = this.minWidth;\r\n\r\n\t\t\tconsole.warn(\"the maxWidth (\"+ maxWidth + \"px) for column '\" + this.field + \"' cannot be smaller that its minWidth (\"+ this.minWidthStyled + \")\");\r\n\t\t}\r\n\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\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.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\r\n\t\tthis.dispatch(\"column-rendered\", this);\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\t// maxInitialWidth ignored here as width specified\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(force);\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(force){\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\tvar setTo = maxWidth + 1;\r\n\t\t\t\tif (this.maxInitialWidth && !force) {\r\n\t\t\t\t\tsetTo = Math.min(setTo, this.maxInitialWidth);\r\n\t\t\t\t}\r\n\t\t\t\tthis.setWidthActual(setTo);\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\t.then((column) => {\r\n\r\n\t\t\t\t\t\tif(definition.field == this.field){\r\n\t\t\t\t\t\t\tthis.field = false; //clear field name to prevent deletion of duplicate column from arrays\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn this.delete()\r\n\t\t\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\t\t\treturn column.getComponent();\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\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;\r\n","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, defaults = {}){\r\n\t\tthis.table = table;\r\n\t\tthis.msgType = msgType;\r\n\t\tthis.registeredDefaults = Object.assign({}, defaults);\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 (let 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 (let 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 determine how to size the render area (\"fit\" - fits container to the contents, \"fill\" - fills the container 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 scrolling\r\n\t}\r\n\r\n\tresize(){\r\n\t\t//container has resized, 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//determine weather the row is nearest the top or bottom of the table, return 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\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(offset > 0 && offset < this.elementVertical.clientHeight - rowEl.offsetHeight){\r\n\t\t\t\t\t\t\tresolve();\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\t\tif(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){\r\n\t\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\t}else{\r\n\t\t\t\t\t\t\tthis.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.clientHeight / 2);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"bottom\":\r\n\r\n\t\t\t\t\t\tif(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){\r\n\t\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\t}else{\r\n\t\t\t\t\t\t\tthis.elementVertical.scrollTop = this.elementVertical.scrollTop - this.elementVertical.clientHeight + rowEl.offsetHeight;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"top\":\r\n\t\t\t\t\t\tthis.elementVertical.scrollTop = rowEl.offsetTop;\t\t\t\t\t\r\n\t\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\n\r\nexport default class BasicHorizontal 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\n\r\nexport default class VirtualDomHorizontal extends Renderer{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.leftCol = 0;\r\n\t\tthis.rightCol = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\t\t\r\n\t\tthis.vDomScrollPosLeft = 0;\r\n\t\tthis.vDomScrollPosRight = 0;\r\n\t\t\r\n\t\tthis.vDomPadLeft = 0;\r\n\t\tthis.vDomPadRight = 0;\r\n\t\t\r\n\t\tthis.fitDataColAvg = 0;\r\n\t\t\r\n\t\tthis.windowBuffer = 200; //pixel margin to make column visible before it is shown on screen\r\n\t\t\r\n\t\tthis.visibleRows = null;\r\n\r\n\t\tthis.initialized = false;\r\n\t\tthis.isFitData = false;\r\n\t\t\r\n\t\tthis.columns = [];\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tthis.compatibilityCheck();\r\n\t\tthis.layoutCheck();\r\n\t\tthis.vertScrollListen();\r\n\t}\r\n\t\r\n\tcompatibilityCheck(){\r\n\t\tvar columns = this.options(\"columns\"),\r\n\t\tfrozen = false,\r\n\t\tok = true;\r\n\t\t\r\n\t\tif(this.options(\"layout\") == \"fitDataTable\"){\r\n\t\t\tconsole.warn(\"Horizontal Virtual DOM is not compatible with fitDataTable layout mode\");\r\n\t\t\tok = false;\r\n\t\t}\r\n\t\t\r\n\t\tif(this.options(\"responsiveLayout\")){\r\n\t\t\tconsole.warn(\"Horizontal Virtual DOM is not compatible with responsive columns\");\r\n\t\t\tok = false;\r\n\t\t}\r\n\t\t\r\n\t\tif(this.options(\"rtl\")){\r\n\t\t\tconsole.warn(\"Horizontal Virtual DOM is not currently compatible with RTL text direction\");\r\n\t\t\tok = false;\r\n\t\t}\r\n\t\t\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\t\t\t\r\n\t\t\tif(frozen){\r\n\t\t\t\tconsole.warn(\"Horizontal Virtual 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\t\t\r\n\t\t// if(!ok){\r\n\t\t// \toptions.virtualDomHoz = false;\r\n\t\t// }\r\n\t\t\r\n\t\treturn ok;\r\n\t}\r\n\t\r\n\tlayoutCheck(){\r\n\t\tthis.isFitData = this.options(\"layout\").startsWith('fitData');\r\n\t}\r\n\r\n\tvertScrollListen(){\r\n\t\tthis.subscribe(\"scroll-vertical\", this.clearVisRowCache.bind(this));\r\n\t\tthis.subscribe(\"data-refreshed\", this.clearVisRowCache.bind(this));\r\n\t}\r\n\r\n\tclearVisRowCache(){\r\n\t\tthis.visibleRows = null;\r\n\t}\r\n\t\r\n\t//////////////////////////////////////\r\n\t///////// Public Functions ///////////\r\n\t//////////////////////////////////////\r\n\t\r\n\trenderColumns(row, force){\r\n\t\tthis.dataChange();\r\n\t}\r\n\r\n\t\r\n\tscrollColumns(left, dir){\r\n\t\tif(this.scrollLeft != left){\r\n\t\t\tthis.scrollLeft = left;\r\n\t\t\t\r\n\t\t\tthis.scroll(left - (this.vDomScrollPosLeft + this.windowBuffer));\r\n\t\t}\r\n\t}\r\n\t\r\n\tcalcWindowBuffer(){\r\n\t\tvar buffer = this.elementVertical.clientWidth;\r\n\t\t\r\n\t\tthis.table.columnManager.columnsByIndex.forEach((column) => {\r\n\t\t\tif(column.visible){\r\n\t\t\t\tvar width = column.getWidth();\r\n\t\t\t\t\r\n\t\t\t\tif(width > buffer){\r\n\t\t\t\t\tbuffer = width;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\tthis.windowBuffer = buffer * 2;\r\n\t}\r\n\t\r\n\trerenderColumns(update, blockRedraw){\t\t\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\t\tcolPos = 0;\r\n\t\t\r\n\t\t\r\n\t\tif(update && !this.initialized){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tthis.clear();\r\n\t\t\r\n\t\tthis.calcWindowBuffer();\r\n\t\t\r\n\t\tthis.scrollLeft = this.elementVertical.scrollLeft;\r\n\t\t\r\n\t\tthis.vDomScrollPosLeft = this.scrollLeft - this.windowBuffer;\r\n\t\tthis.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.windowBuffer;\r\n\t\t\r\n\t\tthis.table.columnManager.columnsByIndex.forEach((column) => {\r\n\t\t\tvar config = {};\r\n\t\t\t\r\n\t\t\tif(column.visible){\r\n\t\t\t\tvar width = column.getWidth();\r\n\t\t\t\t\r\n\t\t\t\tconfig.leftPos = colPos;\r\n\t\t\t\tconfig.rightPos = colPos + width;\r\n\t\t\t\t\r\n\t\t\t\tconfig.width = width;\r\n\t\t\t\t\r\n\t\t\t\tif (this.isFitData) {\r\n\t\t\t\t\tconfig.fitDataCheck = column.modules.vdomHoz ? column.modules.vdomHoz.fitDataCheck : true;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif((colPos + width > this.vDomScrollPosLeft) && (colPos < this.vDomScrollPosRight)){\r\n\t\t\t\t\t//column is visible\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(this.leftCol == -1){\r\n\t\t\t\t\t\tthis.leftCol = this.columns.length;\r\n\t\t\t\t\t\tthis.vDomPadLeft = colPos;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.rightCol = this.columns.length;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t// column is hidden\r\n\t\t\t\t\tif(this.leftCol !== -1){\r\n\t\t\t\t\t\tthis.vDomPadRight += width;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.columns.push(column);\r\n\t\t\t\t\r\n\t\t\t\tcolumn.modules.vdomHoz = config;\r\n\t\t\t\t\r\n\t\t\t\tcolPos += width;\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\tthis.tableElement.style.paddingLeft = this.vDomPadLeft + \"px\";\r\n\t\tthis.tableElement.style.paddingRight = this.vDomPadRight + \"px\";\r\n\t\t\r\n\t\tthis.initialized = true;\r\n\t\t\r\n\t\tif(!blockRedraw){\r\n\t\t\tif(!update || this.reinitChanged(old)){\r\n\t\t\t\tthis.reinitializeRows();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tthis.elementVertical.scrollLeft = this.scrollLeft;\r\n\t}\r\n\t\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\t\r\n\trerenderRowCells(row, force){\r\n\t\tthis.reinitializeRow(row, force);\r\n\t}\r\n\t\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\t\r\n\t//////////////////////////////////////\r\n\t//////// Internal Rendering //////////\r\n\t//////////////////////////////////////\r\n\t\r\n\tdeinitialize(){\r\n\t\tthis.initialized = false;\r\n\t}\r\n\t\r\n\tclear(){\r\n\t\tthis.columns = [];\r\n\t\t\r\n\t\tthis.leftCol = -1;\r\n\t\tthis.rightCol = 0;\r\n\t\t\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\t\r\n\tdataChange(){\r\n\t\tvar change = false,\r\n\t\trow, rowEl;\r\n\t\t\r\n\t\tif(this.isFitData){\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\t\t\t\r\n\t\t\tif(change && this.table.rowManager.getDisplayRows().length){\r\n\t\t\t\tthis.vDomScrollPosRight = this.scrollLeft + this.elementVertical.clientWidth + this.windowBuffer;\r\n\t\t\t\t\r\n\t\t\t\trow = this.chain(\"rows-sample\", [1], [], () => {\r\n\t\t\t\t\treturn this.table.rowManager.getDisplayRows();\r\n\t\t\t\t})[0];\r\n\t\t\t\t\r\n\t\t\t\tif(row){\r\n\t\t\t\t\trowEl = row.getElement();\r\n\t\t\t\t\t\r\n\t\t\t\t\trow.generateCells();\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.tableElement.appendChild(rowEl);\r\n\t\t\t\t\t\r\n\t\t\t\t\tfor(let colEnd = 0; colEnd < row.cells.length; colEnd++){\r\n\t\t\t\t\t\tlet cell = row.cells[colEnd];\r\n\t\t\t\t\t\trowEl.appendChild(cell.getElement());\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tcell.column.reinitializeWidth();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\trowEl.parentNode.removeChild(rowEl);\r\n\r\n\t\t\t\t\tthis.rerenderColumns(false, true);\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\t\r\n\treinitChanged(old){\r\n\t\tvar match = true;\r\n\t\t\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\t\t\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\t\t\r\n\t\treturn !match;\r\n\t}\r\n\t\r\n\treinitializeRows(){\r\n\t\tvar rows = this.getVisibleRows();\r\n\t\trows.forEach((row) => {\r\n\t\t\tthis.reinitializeRow(row, true);\r\n\t\t});\r\n\t}\r\n\t\r\n\tgetVisibleRows(){\r\n\t\tif (!this.visibleRows){\r\n\t\t\tthis.visibleRows = this.table.rowManager.getVisibleRows();\r\n\t\t}\r\n\r\n\t\treturn this.visibleRows;\t\r\n\t}\r\n\t\r\n\tscroll(diff){\r\n\t\tthis.vDomScrollPosLeft += diff;\r\n\t\tthis.vDomScrollPosRight += diff;\r\n\r\n\t\tif(Math.abs(diff) > (this.windowBuffer / 2)){\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\t\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\t\t\t\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\t\r\n\taddColRight(){\r\n\t\tvar changes = false,\r\n\t\tworking = true;\r\n\t\t\r\n\t\twhile(working){\r\n\t\t\t\r\n\t\t\tlet column = this.columns[this.rightCol + 1];\r\n\t\t\t\r\n\t\t\tif(column){\r\n\t\t\t\tif(column.modules.vdomHoz.leftPos <= this.vDomScrollPosRight){\r\n\t\t\t\t\tchanges = true;\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.getVisibleRows().forEach((row) => {\r\n\t\t\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\t\t\trow.getElement().appendChild(cell.getElement());\r\n\t\t\t\t\t\t\tcell.cellRendered();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.fitDataColActualWidthCheck(column);\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.rightCol++; // Don't move this below the >= check below\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(this.rightCol >= (this.columns.length - 1)){\r\n\t\t\t\t\t\tthis.vDomPadRight = 0;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.vDomPadRight -= column.getWidth();\r\n\t\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}else{\r\n\t\t\t\tworking = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(changes){\r\n\t\t\tthis.tableElement.style.paddingRight = this.vDomPadRight + \"px\";\r\n\t\t}\r\n\t}\r\n\t\r\n\taddColLeft(){\r\n\t\tvar changes = false,\r\n\t\tworking = true;\r\n\t\t\r\n\t\twhile(working){\r\n\t\t\tlet column = this.columns[this.leftCol - 1];\r\n\t\t\t\r\n\t\t\tif(column){\r\n\t\t\t\tif(column.modules.vdomHoz.rightPos >= this.vDomScrollPosLeft){\r\n\t\t\t\t\tchanges = true;\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.getVisibleRows().forEach((row) => {\r\n\t\t\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\t\t\trow.getElement().prepend(cell.getElement());\r\n\t\t\t\t\t\t\tcell.cellRendered();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.leftCol--; // don't move this below the <= check below\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(this.leftCol <= 0){ // replicating logic in addColRight\r\n\t\t\t\t\t\tthis.vDomPadLeft = 0;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.vDomPadLeft -= column.getWidth();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tlet diff = this.fitDataColActualWidthCheck(column);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(diff){\r\n\t\t\t\t\t\tthis.scrollLeft = this.elementVertical.scrollLeft = this.elementVertical.scrollLeft + diff;\r\n\t\t\t\t\t\tthis.vDomPadRight -= diff;\r\n\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\tworking = false;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tworking = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(changes){\r\n\t\t\tthis.tableElement.style.paddingLeft = this.vDomPadLeft + \"px\";\r\n\t\t}\r\n\t}\r\n\t\r\n\tremoveColRight(){\r\n\t\tvar changes = false,\r\n\t\tworking = true;\r\n\t\t\r\n\t\twhile(working){\r\n\t\t\tlet column = this.columns[this.rightCol];\r\n\t\t\t\r\n\t\t\tif(column){\r\n\t\t\t\tif(column.modules.vdomHoz.leftPos > this.vDomScrollPosRight){\r\n\t\t\t\t\tchanges = true;\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.getVisibleRows().forEach((row) => {\r\n\t\t\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\trow.getElement().removeChild(cell.getElement());\r\n\t\t\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\t\t\tconsole.warn(\"Could not removeColRight\", ex.message);\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\t\r\n\t\t\t\t\tthis.vDomPadRight += column.getWidth();\r\n\t\t\t\t\tthis.rightCol --;\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}else{\r\n\t\t\t\tworking = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(changes){\r\n\t\t\tthis.tableElement.style.paddingRight = this.vDomPadRight + \"px\";\r\n\t\t}\r\n\t}\r\n\t\r\n\tremoveColLeft(){\r\n\t\tvar changes = false,\r\n\t\tworking = true;\r\n\t\t\r\n\t\twhile(working){\r\n\t\t\tlet column = this.columns[this.leftCol];\r\n\t\t\t\r\n\t\t\tif(column){\r\n\t\t\t\tif(column.modules.vdomHoz.rightPos < this.vDomScrollPosLeft){\r\n\t\t\t\t\tchanges = true;\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.getVisibleRows().forEach((row) => {\t\t\t\t\t\r\n\t\t\t\t\t\tif(row.type !== \"group\"){\r\n\t\t\t\t\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\trow.getElement().removeChild(cell.getElement());\r\n\t\t\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\t\t\tconsole.warn(\"Could not removeColLeft\", ex.message);\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\t\r\n\t\t\t\t\tthis.vDomPadLeft += column.getWidth();\r\n\t\t\t\t\tthis.leftCol ++;\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}else{\r\n\t\t\t\tworking = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(changes){\r\n\t\t\tthis.tableElement.style.paddingLeft = this.vDomPadLeft + \"px\";\r\n\t\t}\r\n\t}\r\n\t\r\n\tfitDataColActualWidthCheck(column){\r\n\t\tvar newWidth, widthDiff;\r\n\t\t\r\n\t\tif(column.modules.vdomHoz.fitDataCheck){\r\n\t\t\tcolumn.reinitializeWidth();\r\n\t\t\t\r\n\t\t\tnewWidth = column.getWidth();\r\n\t\t\twidthDiff = newWidth - column.modules.vdomHoz.width;\r\n\t\t\t\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.columns.indexOf(column) + 1, this.columns.length, widthDiff);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tcolumn.modules.vdomHoz.fitDataCheck = false;\r\n\t\t}\r\n\t\t\r\n\t\treturn widthDiff;\r\n\t}\r\n\t\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\t\t\t\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\t\t\t\t\r\n\t\t\t\tif(column && column.visible){\r\n\t\t\t\t\tlet cell = row.getCell(column);\r\n\t\t\t\t\t\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\t\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\t\t\t\t\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\nimport defaultColumnOptions from './column/defaults/options.js';\r\n\r\nexport default class ColumnManager extends CoreFeature {\r\n\t\r\n\tconstructor (table){\r\n\t\tsuper(table);\r\n\t\t\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\", defaultColumnOptions);\r\n\t\t\r\n\t\tthis.redrawBlock = false; //prevent redraws to allow multiple data manipulations before continuing\r\n\t\tthis.redrawBlockUpdate = null; //store latest redraw update only status\r\n\t\t\r\n\t\tthis.renderer = null;\r\n\t}\r\n\t\r\n\t////////////// Setup Functions /////////////////\r\n\t\r\n\tinitialize(){\r\n\t\tthis.initializeRenderer();\r\n\t\t\r\n\t\tthis.headersElement = this.createHeadersElement();\r\n\t\tthis.element = this.createHeaderElement();\r\n\t\t\r\n\t\tthis.element.insertBefore(this.headersElement, this.element.firstChild);\r\n\t\t\r\n\t\tthis.subscribe(\"scroll-horizontal\", this.scrollHorizontal.bind(this));\r\n\t}\r\n\t\r\n\tinitializeRenderer(){\r\n\t\tvar renderClass;\r\n\t\t\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\t\t\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\t\t\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:\", this.table.options.renderHorizontal);\r\n\t\t}\r\n\t}\r\n\t\r\n\t\r\n\tcreateHeadersElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\t\r\n\t\tel.classList.add(\"tabulator-headers\");\r\n\t\tel.setAttribute(\"role\", \"row\");\r\n\t\t\r\n\t\treturn el;\r\n\t}\r\n\t\r\n\tcreateHeaderElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\t\r\n\t\tel.classList.add(\"tabulator-header\");\r\n\t\tel.setAttribute(\"role\", \"rowgroup\");\r\n\t\t\r\n\t\tif(!this.table.options.headerVisible){\r\n\t\t\tel.classList.add(\"tabulator-header-hidden\");\r\n\t\t}\r\n\t\t\r\n\t\treturn el;\r\n\t}\r\n\t\r\n\t//return containing element\r\n\tgetElement(){\r\n\t\treturn this.element;\r\n\t}\r\n\t\r\n\t//return header containing element\r\n\tgetHeadersElement(){\r\n\t\treturn this.headersElement;\r\n\t}\r\n\t\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\t\t\r\n\t\t// this.tempScrollBlock();\r\n\t\tthis.element.scrollLeft = left;\r\n\t\t\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\t\t\r\n\t\tthis.scrollLeft = left;\r\n\t\t\r\n\t\tthis.renderer.scrollColumns(left);\r\n\t}\r\n\t\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\t\t\r\n\t\tif(data && data.length){\r\n\t\t\t\r\n\t\t\trow = data[0];\r\n\t\t\t\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\t\t\t\t\r\n\t\t\t\tlet value = row[key];\r\n\t\t\t\t\r\n\t\t\t\tswitch(typeof value){\r\n\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\t\tsorter = \"string\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tcase \"boolean\":\r\n\t\t\t\t\t\tsorter = \"boolean\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\t\tif(Array.isArray(value)){\r\n\t\t\t\t\t\t\tsorter = \"array\";\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\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif(!isNaN(value) && value !== \"\"){\r\n\t\t\t\t\t\t\tsorter = \"number\";\r\n\t\t\t\t\t\t}else{\r\n\t\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\t\tsorter = \"alphanum\";\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\tsorter = \"string\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tcol.sorter = sorter;\r\n\t\t\t\t\r\n\t\t\t\tcols.push(col);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(definitions){\r\n\t\t\t\t\r\n\t\t\t\tswitch(typeof definitions){\r\n\t\t\t\t\tcase \"function\":\r\n\t\t\t\t\t\tthis.table.options.columns = definitions.call(this.table, cols);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tcase \"object\":\r\n\t\t\t\t\t\tif(Array.isArray(definitions)){\r\n\t\t\t\t\t\t\tcols.forEach((col) => {\r\n\t\t\t\t\t\t\t\tvar match = definitions.find((def) => {\r\n\t\t\t\t\t\t\t\t\treturn def.field === col.field;\r\n\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\tif(match){\r\n\t\t\t\t\t\t\t\t\tObject.assign(col, 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\t\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tcols.forEach((col) => {\r\n\t\t\t\t\t\t\t\tif(definitions[col.field]){\r\n\t\t\t\t\t\t\t\t\tObject.assign(col, definitions[col.field]);\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\t\r\n\t\t\t\t\t\tthis.table.options.columns = cols;\r\n\t\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\t\t\t\r\n\t\t\tthis.setColumns(this.table.options.columns);\r\n\t\t}\r\n\t}\r\n\t\r\n\tsetColumns(cols, row){\r\n\t\twhile(this.headersElement.firstChild) this.headersElement.removeChild(this.headersElement.firstChild);\r\n\t\t\r\n\t\tthis.columns = [];\r\n\t\tthis.columnsByIndex = [];\r\n\t\tthis.columnsByField = {};\r\n\t\t\r\n\t\tthis.dispatch(\"columns-loading\");\r\n\t\t\r\n\t\tcols.forEach((def, i) => {\r\n\t\t\tthis._addColumn(def);\r\n\t\t});\r\n\t\t\r\n\t\tthis._reIndexColumns();\r\n\t\t\r\n\t\tthis.dispatch(\"columns-loaded\");\r\n\t\t\r\n\t\tthis.rerenderColumns(false, true);\r\n\t\t\r\n\t\tthis.redraw(true);\r\n\t}\r\n\t\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\t\t\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\t\t\t\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\t\t\r\n\t\tcolumn.columnRendered();\r\n\t\t\r\n\t\treturn column;\r\n\t}\r\n\t\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\t\r\n\tregisterColumnPosition(col){\r\n\t\tthis.columnsByIndex.push(col);\r\n\t}\r\n\t\r\n\t_reIndexColumns(){\r\n\t\tthis.columnsByIndex = [];\r\n\t\t\r\n\t\tthis.columns.forEach(function(column){\r\n\t\t\tcolumn.reRegisterPosition();\r\n\t\t});\r\n\t}\r\n\t\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\t\t\r\n\t\tif(!this.redrawBlock){\r\n\t\t\t\r\n\t\t\tthis.columns.forEach((column) => {\r\n\t\t\t\tcolumn.clearVerticalAlign();\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.columns.forEach((column) => {\r\n\t\t\t\tvar height = column.getHeight();\r\n\t\t\t\t\r\n\t\t\t\tif(height > minHeight){\r\n\t\t\t\t\tminHeight = height;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.columns.forEach((column) => {\r\n\t\t\t\tcolumn.verticalAlign(this.table.options.columnHeaderVertAlign, minHeight);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.table.rowManager.adjustTableSize();\r\n\t\t}\r\n\t}\r\n\t\r\n\t//////////////// Column Details /////////////////\r\n\tfindColumn(subject){\r\n\t\tvar columns;\r\n\r\n\t\tif(typeof subject == \"object\"){\r\n\t\t\t\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\r\n\t\t\t\tcolumns = [];\r\n\r\n\t\t\t\tthis.columns.forEach((column) => {\r\n\t\t\t\t\tcolumns.push(column);\r\n\t\t\t\t\tcolumns = columns.concat(column.getColumns(true));\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//subject is a HTML element of the column header\r\n\t\t\t\tlet match = columns.find((column) => {\r\n\t\t\t\t\treturn column.element === subject;\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\treturn match || false;\r\n\t\t\t}\r\n\t\t\t\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\t\t\r\n\t\t//catch all for any other type of input\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tgetColumnByField(field){\r\n\t\treturn this.columnsByField[field];\r\n\t}\r\n\t\r\n\tgetColumnsByFieldRoot(root){\r\n\t\tvar matches = [];\r\n\t\t\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\t\t\r\n\t\treturn matches;\r\n\t}\r\n\t\r\n\tgetColumnByIndex(index){\r\n\t\treturn this.columnsByIndex[index];\r\n\t}\r\n\t\r\n\tgetFirstVisibleColumn(){\r\n\t\tvar index = this.columnsByIndex.findIndex((col) => {\r\n\t\t\treturn col.visible;\r\n\t\t});\r\n\t\t\r\n\t\treturn index > -1 ? this.columnsByIndex[index] : false;\r\n\t}\r\n\t\r\n\tgetColumns(){\r\n\t\treturn this.columns;\r\n\t}\r\n\t\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\t\r\n\t//return all columns that are not groups\r\n\tgetRealColumns(){\r\n\t\treturn this.columnsByIndex;\r\n\t}\r\n\t\r\n\t//traverse 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\t\r\n\t//get definitions of actual columns\r\n\tgetDefinitions(active){\r\n\t\tvar output = [];\r\n\t\t\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\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\t//get full nested definition tree\r\n\tgetDefinitionTree(){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\tthis.columns.forEach((column) => {\r\n\t\t\toutput.push(column.getDefinition(true));\r\n\t\t});\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgetComponents(structured){\r\n\t\tvar output = [],\r\n\t\tcolumns = structured ? this.columns : this.columnsByIndex;\r\n\t\t\r\n\t\tcolumns.forEach((column) => {\r\n\t\t\toutput.push(column.getComponent());\r\n\t\t});\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgetWidth(){\r\n\t\tvar width = 0;\r\n\t\t\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\t\t\r\n\t\treturn width;\r\n\t}\r\n\t\r\n\tmoveColumn(from, to, after){\r\n\t\tto.element.parentNode.insertBefore(from.element, to.element);\r\n\t\t\r\n\t\tif(after){\r\n\t\t\tto.element.parentNode.insertBefore(to.element, from.element);\r\n\t\t}\r\n\t\t\r\n\t\tthis.moveColumnActual(from, to, after);\r\n\r\n\t\tthis.verticalAlignHeaders();\r\n\t\t\r\n\t\tthis.table.rowManager.reinitialize();\r\n\t}\r\n\t\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\t\t\r\n\t\tthis._moveColumnInArray(this.columnsByIndex, from, to, after, true);\r\n\t\t\r\n\t\tthis.rerenderColumns(true);\r\n\t\t\r\n\t\tthis.dispatch(\"column-moved\", from, to, after);\r\n\t\t\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\t\r\n\t_moveColumnInArray(columns, from, to, after, updateRows){\r\n\t\tvar\tfromIndex = columns.indexOf(from),\r\n\t\ttoIndex, rows = [];\r\n\t\t\r\n\t\tif (fromIndex > -1) {\r\n\t\t\t\r\n\t\t\tcolumns.splice(fromIndex, 1);\r\n\t\t\t\r\n\t\t\ttoIndex = columns.indexOf(to);\r\n\t\t\t\r\n\t\t\tif (toIndex > -1) {\r\n\t\t\t\t\r\n\t\t\t\tif(after){\r\n\t\t\t\t\ttoIndex = toIndex+1;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\ttoIndex = fromIndex;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tcolumns.splice(toIndex, 0, from);\r\n\t\t\t\r\n\t\t\tif(updateRows){\r\n\t\t\t\t\r\n\t\t\t\trows = this.chain(\"column-moving-rows\", [from, to, after], null, []) || [];\r\n\t\t\t\t\r\n\t\t\t\trows = rows.concat(this.table.rowManager.rows);\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\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\t\t\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tif(column.visible){\r\n\t\t\t\t\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\t\tadjust = -this.element.clientWidth / 2;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tcase \"right\":\r\n\t\t\t\t\t\tadjust = colEl.clientWidth - this.headersElement.clientWidth;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//check column visibility\r\n\t\t\t\tif(!ifVisible){\r\n\t\t\t\t\t\r\n\t\t\t\t\toffset = colEl.offsetLeft;\r\n\t\t\t\t\t\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\t\t\t\t\r\n\t\t\t\t//calculate scroll position\r\n\t\t\t\tleft = colEl.offsetLeft + adjust;\r\n\t\t\t\t\r\n\t\t\t\tleft = Math.max(Math.min(left, this.table.rowManager.element.scrollWidth - this.table.rowManager.element.clientWidth),0);\r\n\t\t\t\t\r\n\t\t\t\tthis.table.rowManager.scrollHorizontal(left);\r\n\t\t\t\tthis.scrollHorizontal(left);\r\n\t\t\t\t\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\t\t\t\r\n\t\t});\r\n\t}\r\n\t\r\n\t//////////////// Cell Management /////////////////\r\n\tgenerateCells(row){\r\n\t\tvar cells = [];\r\n\t\t\r\n\t\tthis.columnsByIndex.forEach((column) => {\r\n\t\t\tcells.push(column.generateCell(row));\r\n\t\t});\r\n\t\t\r\n\t\treturn cells;\r\n\t}\r\n\t\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\t\t\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\t\t\r\n\t\tthis.columnsByIndex.forEach(function(column){\r\n\t\t\tvar width, minWidth, colWidth;\r\n\t\t\t\r\n\t\t\tif(column.visible){\r\n\t\t\t\t\r\n\t\t\t\twidth = column.definition.width || 0;\r\n\t\t\t\t\r\n\t\t\t\tminWidth = parseInt(column.minWidth);\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tfixedWidth += colWidth > minWidth ? colWidth : minWidth;\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\treturn fixedWidth;\r\n\t}\r\n\t\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\t\t\t\r\n\t\t\tthis._reIndexColumns();\r\n\t\t\t\r\n\t\t\tthis.dispatch(\"column-add\", definition, before, nextToColumn);\r\n\t\t\t\r\n\t\t\tif(this.layoutMode() != \"fitColumns\"){\r\n\t\t\t\tcolumn.reinitializeWidth();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.redraw(true);\r\n\t\t\t\r\n\t\t\tthis.table.rowManager.reinitialize();\r\n\t\t\t\r\n\t\t\tthis.rerenderColumns();\r\n\t\t\t\r\n\t\t\tresolve(column);\r\n\t\t});\r\n\t}\r\n\t\r\n\t//remove column from system\r\n\tderegisterColumn(column){\r\n\t\tvar field = column.getField(),\r\n\t\tindex;\r\n\t\t\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\t\t\r\n\t\t//remove from index list\r\n\t\tindex = this.columnsByIndex.indexOf(column);\r\n\t\t\r\n\t\tif(index > -1){\r\n\t\t\tthis.columnsByIndex.splice(index, 1);\r\n\t\t}\r\n\t\t\r\n\t\t//remove from column list\r\n\t\tindex = this.columns.indexOf(column);\r\n\t\t\r\n\t\tif(index > -1){\r\n\t\t\tthis.columns.splice(index, 1);\r\n\t\t}\r\n\t\t\r\n\t\tthis.verticalAlignHeaders();\r\n\t\t\r\n\t\tthis.redraw();\r\n\t}\r\n\t\r\n\trerenderColumns(update, silent){\r\n\t\tif(!this.redrawBlock){\r\n\t\t\tthis.renderer.rerenderColumns(update, silent);\r\n\t\t}else{\r\n\t\t\tif(update === false || (update === true && this.redrawBlockUpdate === null)){\r\n\t\t\t\tthis.redrawBlockUpdate = update;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tblockRedraw(){\r\n\t\tthis.redrawBlock = true;\r\n\t\tthis.redrawBlockUpdate = null;\r\n\t}\r\n\t\r\n\trestoreRedraw(){\r\n\t\tthis.redrawBlock = false;\r\n\t\tthis.verticalAlignHeaders();\r\n\t\tthis.renderer.rerenderColumns(this.redrawBlockUpdate);\r\n\t\t\r\n\t}\r\n\t\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\t\t\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\t\t\r\n\t\tif(!this.confirm(\"table-redrawing\", force)){\r\n\t\t\tthis.layoutRefresh(force);\r\n\t\t}\r\n\t\t\r\n\t\tthis.dispatch(\"table-redraw\", force);\r\n\t\t\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(){\r\n\t\treturn this._row.getPosition();\r\n\t}\r\n\r\n\twatchPosition(callback){\r\n\t\treturn this._row.watchPosition(callback);\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\t\t\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 pre-styled to improve render efficiency\r\n\t\tthis.manualHeight = false; //user has manually set row height\r\n\t\tthis.outerHeight = 0; //hold elements 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\t\tthis.position = 0; //store position of element in row list\r\n\t\tthis.positionWatchers = [];\r\n\t\t\r\n\t\tthis.component = null;\r\n\t\t\r\n\t\tthis.created = false;\r\n\t\t\r\n\t\tthis.setData(data);\r\n\t}\r\n\t\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\t\r\n\tcreateElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\t\r\n\t\tel.classList.add(\"tabulator-row\");\r\n\t\tel.setAttribute(\"role\", \"row\");\r\n\t\t\r\n\t\tthis.element = el;\r\n\t}\r\n\t\r\n\tgetElement(){\r\n\t\tthis.create();\r\n\t\treturn this.element;\r\n\t}\r\n\t\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\t\r\n\tgenerateElement(){\r\n\t\tthis.createElement();\r\n\t\tthis.dispatch(\"row-init\", this);\r\n\t}\r\n\t\r\n\tgenerateCells(){\r\n\t\tthis.cells = this.table.columnManager.generateCells(this);\r\n\t}\r\n\t\r\n\t//functions to setup on first render\r\n\tinitialize(force){\r\n\t\tthis.create();\r\n\t\t\r\n\t\tif(!this.initialized || force){\r\n\t\t\t\r\n\t\t\tthis.deleteCells();\r\n\t\t\t\r\n\t\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\t\t\t\r\n\t\t\tthis.dispatch(\"row-layout-before\", this);\r\n\t\t\t\r\n\t\t\tthis.generateCells();\r\n\t\t\t\r\n\t\t\tthis.initialized = true;\r\n\t\t\t\r\n\t\t\tthis.table.columnManager.renderer.renderRowCells(this);\r\n\t\t\t\r\n\t\t\tif(force){\r\n\t\t\t\tthis.normalizeHeight();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.dispatch(\"row-layout\", this);\r\n\t\t\t\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\t\t\t\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\t\r\n\treinitializeHeight(){\r\n\t\tthis.heightInitialized = false;\r\n\t\t\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\tdeinitialize(){\r\n\t\tthis.initialized = false;\r\n\t}\r\n\t\r\n\tdeinitializeHeight(){\r\n\t\tthis.heightInitialized = false;\r\n\t}\r\n\t\r\n\treinitialize(children){\r\n\t\tthis.initialized = false;\r\n\t\tthis.heightInitialized = false;\r\n\t\t\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\t\t\r\n\t\tif(this.element && this.element.offsetParent !== null){\r\n\t\t\tthis.initialize(true);\r\n\t\t}\r\n\t\t\r\n\t\tthis.dispatch(\"row-relayout\", this);\r\n\t}\r\n\t\r\n\t//get heights when doing bulk row style calcs in virtual DOM\r\n\tcalcHeight(force){\r\n\t\tvar maxHeight = 0,\r\n\t\tminHeight;\r\n\t\t\r\n\t\tif(this.table.options.rowHeight){\r\n\t\t\tthis.height = this.table.options.rowHeight;\r\n\t\t}else{\r\n\t\t\tminHeight = this.table.options.resizableRows ? this.element.clientHeight : 0;\r\n\t\t\t\r\n\t\t\tthis.cells.forEach(function(cell){\r\n\t\t\t\tvar height = cell.getHeight();\r\n\t\t\t\tif(height > maxHeight){\r\n\t\t\t\t\tmaxHeight = height;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tif(force){\r\n\t\t\t\tthis.height = Math.max(maxHeight, minHeight);\r\n\t\t\t}else{\r\n\t\t\t\tthis.height = this.manualHeight ? this.height : Math.max(maxHeight, minHeight);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tthis.heightStyled = this.height ? this.height + \"px\" : \"\";\r\n\t\tthis.outerHeight = this.element.offsetHeight;\r\n\t}\r\n\t\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\t\t\r\n\t\tthis.heightInitialized = true;\r\n\t}\r\n\t\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\t\r\n\t//normalize the height of elements in the row\r\n\tnormalizeHeight(force){\r\n\t\tif(force && !this.table.options.rowHeight){\r\n\t\t\tthis.clearCellHeight();\r\n\t\t}\r\n\t\t\r\n\t\tthis.calcHeight(force);\r\n\t\t\r\n\t\tthis.setCellHeight();\r\n\t}\r\n\t\r\n\t//set height of rows\r\n\tsetHeight(height, force){\r\n\t\tif(this.height != height || force){\r\n\t\t\t\r\n\t\t\tthis.manualHeight = true;\r\n\t\t\t\r\n\t\t\tthis.height = height;\r\n\t\t\tthis.heightStyled = height ? height + \"px\" : \"\";\r\n\t\t\t\r\n\t\t\tthis.setCellHeight();\r\n\t\t\t\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\t\r\n\t//return rows outer height\r\n\tgetHeight(){\r\n\t\treturn this.outerHeight;\r\n\t}\r\n\t\r\n\t//return rows outer Width\r\n\tgetWidth(){\r\n\t\treturn this.element.offsetWidth;\r\n\t}\r\n\t\r\n\t//////////////// Cell Management /////////////////\r\n\tdeleteCell(cell){\r\n\t\tvar index = this.cells.indexOf(cell);\r\n\t\t\r\n\t\tif(index > -1){\r\n\t\t\tthis.cells.splice(index, 1);\r\n\t\t}\r\n\t}\r\n\t\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\t\t\r\n\t\tthis.dispatch(\"row-data-init-after\", this);\r\n\t}\r\n\t\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\t\t\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\r\n\t\t\tif(typeof updatedData === \"string\"){\r\n\t\t\t\tupdatedData = JSON.parse(updatedData);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.dispatch(\"row-data-save-before\", this);\r\n\t\t\t\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\t\t\t\r\n\t\t\tnewRowData = this.chain(\"row-data-changing\", [this, tempData, updatedData], null, updatedData);\r\n\t\t\t\r\n\t\t\t//set data\r\n\t\t\tfor (let attrname in newRowData) {\r\n\t\t\t\tthis.data[attrname] = newRowData[attrname];\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.dispatch(\"row-data-save-after\", this);\r\n\t\t\t\r\n\t\t\t//update affected cells only\r\n\t\t\tfor (let attrname in updatedData) {\r\n\t\t\t\t\r\n\t\t\t\tlet columns = this.table.columnManager.getColumnsByFieldRoot(attrname);\r\n\t\t\t\t\r\n\t\t\t\tcolumns.forEach((column) => {\r\n\t\t\t\t\tlet cell = this.getCell(column.getField());\r\n\t\t\t\t\t\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\t\t\t\t\t\t\t\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\t\t\t\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\t\t\t\t\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\t\t\t\r\n\t\t\tthis.dispatch(\"row-data-changed\", this, visible, updatedData);\r\n\t\t\t\r\n\t\t\t//this.reinitialize();\r\n\t\t\t\r\n\t\t\tthis.dispatchExternal(\"rowUpdated\", this.getComponent());\r\n\t\t\t\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\t\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\t\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\t\t\r\n\t\treturn this.data;\r\n\t}\r\n\t\r\n\tgetCell(column){\r\n\t\tvar match = false;\r\n\t\t\r\n\t\tcolumn = this.table.columnManager.findColumn(column);\r\n\t\t\r\n\t\tif(!this.initialized){\r\n\t\t\tthis.generateCells();\r\n\t\t}\r\n\t\t\r\n\t\tmatch = this.cells.find(function(cell){\r\n\t\t\treturn cell.column === column;\r\n\t\t});\r\n\t\t\r\n\t\treturn match;\r\n\t}\r\n\t\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\t\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\t\r\n\tgetCells(){\r\n\t\tif(!this.initialized){\r\n\t\t\tthis.generateCells();\r\n\t\t}\r\n\t\t\r\n\t\treturn this.cells;\r\n\t}\r\n\t\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\t\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\t\r\n\tmoveToRow(to, before){\r\n\t\tvar toRow = this.table.rowManager.findRow(to);\r\n\t\t\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\t\r\n\t///////////////////// Actions /////////////////////\r\n\tdelete(){\r\n\t\tthis.dispatch(\"row-delete\", this);\r\n\t\t\r\n\t\tthis.deleteActual();\r\n\t\t\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\t\r\n\tdeleteActual(blockRedraw){\r\n\t\tthis.detachModules();\r\n\t\t\r\n\t\tthis.table.rowManager.deleteRow(this, blockRedraw);\r\n\t\t\r\n\t\tthis.deleteCells();\r\n\t\t\r\n\t\tthis.initialized = false;\r\n\t\tthis.heightInitialized = false;\r\n\t\tthis.element = false;\r\n\t\t\r\n\t\tthis.dispatch(\"row-deleted\", this);\r\n\t}\r\n\t\r\n\tdetachModules(){\r\n\t\tthis.dispatch(\"row-deleting\", this);\r\n\t}\r\n\t\r\n\tdeleteCells(){\r\n\t\tvar cellCount = this.cells.length;\r\n\t\t\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\t\r\n\twipe(){\r\n\t\tthis.detachModules();\r\n\t\tthis.deleteCells();\r\n\t\t\r\n\t\tif(this.element){\r\n\t\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\t\t\t\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\t\t\r\n\t\tthis.element = false;\r\n\t\tthis.modules = {};\r\n\t}\r\n\r\n\tisDisplayed(){\r\n\t\treturn this.table.rowManager.getDisplayRows().includes(this);\r\n\t}\r\n\r\n\tgetPosition(){\r\n\t\treturn this.isDisplayed() ? this.position : false;\r\n\t}\r\n\r\n\tsetPosition(position){\r\n\t\tif(position != this.position){\r\n\t\t\tthis.position = position;\r\n\r\n\t\t\tthis.positionWatchers.forEach((callback) => {\r\n\t\t\t\tcallback(this.position);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\twatchPosition(callback){\r\n\t\tthis.positionWatchers.push(callback);\r\n\r\n\t\tcallback(this.position);\r\n\t}\r\n\t\r\n\tgetGroup(){\r\n\t\treturn this.modules.group || false;\r\n\t}\r\n\t\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\t\t\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 BasicVertical 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.clearRows();\r\n\t\tthis.renderRows();\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 position 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\t// element.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\tif(this.rows().length){\r\n\t\t\tthis._virtualRenderFill((topRow === false ? this.rows.length - 1 : topRow), true, topOffset || 0);\r\n\t\t}else{\r\n\t\t\tthis.clear();\r\n\t\t\tthis.table.rowManager._showPlaceholder();\r\n\t\t}\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 row height 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\t\tworking = true;\r\n\r\n\t\twhile(working){\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\tworking = false;\r\n\t\t\t\t\t}\r\n\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\t\t\t\tworking = false;\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\t\tworking = true;\r\n\r\n\t\twhile(working){\r\n\t\t\tlet row = rows[this.vDomTop],\r\n\t\t\trowHeight;\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\tworking = false;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tworking = false;\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\t\tworking = true;\r\n\r\n\t\twhile(working){\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\tworking = false;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tworking = false;\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\t\tworking = true;\r\n\r\n\t\twhile(working){\r\n\t\t\tlet row = rows[this.vDomBottom],\r\n\t\t\trowHeight;\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\tworking = false;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tworking = false;\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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\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\t\tthis.placeholder = null; //placeholder element\r\n\t\tthis.placeholderContents = null; //placeholder element\r\n\t\t\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\t\t\r\n\t\tthis.rows = []; //hold row data objects\r\n\t\tthis.activeRowsPipeline = []; //hold calculation 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\t\t\r\n\t\tthis.displayRows = []; //rows currently on display in the table\r\n\t\tthis.displayRowsCount = 0; //count of display rows\r\n\t\t\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\t\t\r\n\t\tthis.redrawBlock = false; //prevent redraws to allow multiple data manipulations before continuing\r\n\t\tthis.redrawBlockRestoreConfig = false; //store latest redraw function calls for when redraw is needed\r\n\t\tthis.redrawBlockRenderInPosition = false; //store latest redraw function calls for when redraw is needed\r\n\t\t\r\n\t\tthis.dataPipeline = []; //hold data pipeline tasks\r\n\t\tthis.displayPipeline = []; //hold data display pipeline tasks\r\n\t\t\r\n\t\tthis.renderer = null;\r\n\t}\r\n\t\r\n\t//////////////// Setup Functions /////////////////\r\n\t\r\n\tcreateHolderElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\t\r\n\t\tel.classList.add(\"tabulator-tableholder\");\r\n\t\tel.setAttribute(\"tabindex\", 0);\r\n\t\t// el.setAttribute(\"role\", \"rowgroup\");\r\n\t\t\r\n\t\treturn el;\r\n\t}\r\n\t\r\n\tcreateTableElement (){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\t\r\n\t\tel.classList.add(\"tabulator-table\");\r\n\t\tel.setAttribute(\"role\", \"rowgroup\");\r\n\t\t\r\n\t\treturn el;\r\n\t}\r\n\t\r\n\tinitializePlaceholder(){\r\n\t\t//configure placeholder element\r\n\t\tif(typeof this.table.options.placeholder == \"string\"){\r\n\t\t\tlet el = document.createElement(\"div\");\r\n\t\t\tel.classList.add(\"tabulator-placeholder\");\r\n\t\t\t\r\n\t\t\tlet contents = document.createElement(\"div\");\r\n\t\t\tcontents.classList.add(\"tabulator-placeholder-contents\");\r\n\t\t\tcontents.innerHTML = this.table.options.placeholder;\r\n\t\t\t\r\n\t\t\tel.appendChild(contents);\r\n\t\t\t\r\n\t\t\tthis.placeholderContents = contents;\r\n\t\t\tthis.placeholder = el;\r\n\t\t}\r\n\t}\r\n\t\r\n\t//return containing element\r\n\tgetElement(){\r\n\t\treturn this.element;\r\n\t}\r\n\t\r\n\t//return table element\r\n\tgetTableElement(){\r\n\t\treturn this.tableElement;\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tthis.initializePlaceholder();\r\n\t\tthis.initializeRenderer();\r\n\t\t\r\n\t\t//initialize manager\r\n\t\tthis.element.appendChild(this.tableElement);\r\n\t\t\r\n\t\tthis.firstRender = true;\r\n\t\t\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\t\t\t\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\t\t\t\t\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\t\r\n\t\t\t\tthis._positionPlaceholder();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//handle vertical scrolling\r\n\t\t\tif(this.scrollTop != top){\r\n\t\t\t\tthis.scrollTop = top;\r\n\t\t\t\t\r\n\t\t\t\tthis.renderer.scrollRows(top, topDir);\r\n\t\t\t\t\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\t\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\t\t\t\t\r\n\t\t\t\treturn match || false;\r\n\t\t\t}else if(subject === null){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}else if(typeof subject == \"undefined\"){\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\t\t\t\r\n\t\t\treturn match || false;\r\n\t\t}\r\n\t\t\r\n\t\t//catch all for any other type of input\r\n\t\treturn false;\r\n\t}\r\n\t\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\t\t\r\n\t\treturn match || false;\r\n\t}\r\n\t\r\n\tgetRowFromPosition(position){\r\n\t\treturn this.getDisplayRows().find((row) => {\r\n\t\t\treturn row.getPosition() === position && row.isDisplayed();\r\n\t\t});\r\n\t}\r\n\t\r\n\tscrollToRow(row, position, ifVisible){\r\n\t\treturn this.renderer.scrollToRowPosition(row, position, ifVisible);\r\n\t}\r\n\t\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\t\t\t\t\r\n\t\t\t\tthis._setDataActual(data);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\t\r\n\t_setDataActual(data, renderInPosition){\r\n\t\tthis.dispatchExternal(\"dataProcessing\", data);\r\n\t\t\r\n\t\tthis._wipeElements();\r\n\t\t\r\n\t\tif(Array.isArray(data)){\r\n\t\t\tthis.dispatch(\"data-processing\", data);\r\n\t\t\t\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\t\t\t\r\n\t\t\tthis.refreshActiveData(false, false, renderInPosition);\r\n\t\t\t\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\t\r\n\t_wipeElements(){\r\n\t\tthis.dispatch(\"rows-wipe\");\r\n\t\t\r\n\t\tthis.rows.forEach((row) => {\r\n\t\t\trow.wipe();\r\n\t\t});\r\n\t\t\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\t\t\r\n\t\tthis.adjustTableSize();\r\n\t}\r\n\t\r\n\tdeleteRow(row, blockRedraw){\r\n\t\tvar allIndex = this.rows.indexOf(row),\r\n\t\tactiveIndex = this.activeRows.indexOf(row);\r\n\t\t\r\n\t\tif(activeIndex > -1){\r\n\t\t\tthis.activeRows.splice(activeIndex, 1);\r\n\t\t}\r\n\t\t\r\n\t\tif(allIndex > -1){\r\n\t\t\tthis.rows.splice(allIndex, 1);\r\n\t\t}\r\n\t\t\r\n\t\tthis.setActiveRows(this.activeRows);\r\n\t\t\r\n\t\tthis.displayRowIterator((rows) => {\r\n\t\t\tvar displayIndex = rows.indexOf(row);\r\n\t\t\t\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\t\t\r\n\t\tif(!blockRedraw){\r\n\t\t\tthis.reRenderInPosition();\r\n\t\t}\r\n\t\t\r\n\t\tthis.regenerateRowPositions();\r\n\t\t\r\n\t\tthis.dispatchExternal(\"rowDeleted\", row.getComponent());\r\n\t\t\r\n\t\tif(!this.displayRowsCount){\r\n\t\t\tthis._showPlaceholder();\r\n\t\t}\r\n\t\t\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\t\r\n\taddRow(data, pos, index, blockRedraw){\r\n\t\tvar row = this.addRowActual(data, pos, index, blockRedraw);\r\n\t\treturn row;\r\n\t}\r\n\t\r\n\t//add multiple rows\r\n\taddRows(data, pos, index){\r\n\t\tvar rows = [];\r\n\t\t\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tpos = this.findAddRowPos(pos);\r\n\t\t\t\r\n\t\t\tif(!Array.isArray(data)){\r\n\t\t\t\tdata = [data];\r\n\t\t\t}\r\n\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tthis.refreshActiveData(false, false, true);\r\n\t\t\t\r\n\t\t\tthis.regenerateRowPositions();\r\n\t\t\t\r\n\t\t\tif(rows.length){\r\n\t\t\t\tthis._clearPlaceholder();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tresolve(rows);\r\n\t\t});\r\n\t}\r\n\t\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\t\t\r\n\t\tif(pos === \"pos\"){\r\n\t\t\tpos = true;\r\n\t\t}\r\n\t\t\r\n\t\tif(pos === \"bottom\"){\r\n\t\t\tpos = false;\r\n\t\t}\r\n\t\t\r\n\t\treturn pos;\r\n\t}\r\n\t\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\t\t\r\n\t\tif(!index){\r\n\t\t\tchainResult = this.chain(\"row-adding-position\", [row, top], null, {index, top});\r\n\t\t\t\r\n\t\t\tindex = chainResult.index;\r\n\t\t\ttop = chainResult.top;\r\n\t\t}\r\n\t\t\r\n\t\tif(typeof index !== \"undefined\"){\r\n\t\t\tindex = this.findRow(index);\r\n\t\t}\r\n\t\t\r\n\t\tindex = this.chain(\"row-adding-index\", [row, index, top], null, index);\r\n\t\t\r\n\t\tif(index){\r\n\t\t\tallIndex = this.rows.indexOf(index);\r\n\t\t}\r\n\t\t\r\n\t\tif(index && allIndex > -1){\r\n\t\t\tactiveIndex = this.activeRows.indexOf(index);\r\n\t\t\t\r\n\t\t\tthis.displayRowIterator(function(rows){\r\n\t\t\t\tvar displayIndex = rows.indexOf(index);\r\n\t\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tthis.rows.splice((top ? allIndex : allIndex + 1), 0, row);\r\n\t\t\t\r\n\t\t}else{\r\n\t\t\t\r\n\t\t\tif(top){\r\n\t\t\t\t\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\t\t\t\t\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\t\t\t\t\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\t\t\r\n\t\tthis.setActiveRows(this.activeRows);\r\n\t\t\r\n\t\tthis.dispatchExternal(\"rowAdded\", row.getComponent());\r\n\t\t\r\n\t\tif(this.subscribedExternal(\"dataChanged\")){\r\n\t\t\tthis.dispatchExternal(\"dataChanged\", this.table.rowManager.getData());\r\n\t\t}\r\n\t\t\r\n\t\tif(!blockRedraw){\r\n\t\t\tthis.reRenderInPosition();\r\n\t\t}\r\n\t\t\r\n\t\treturn row;\r\n\t}\r\n\t\r\n\tmoveRow(from, to, after){\r\n\t\tthis.dispatch(\"row-move\", from, to, after);\r\n\t\t\r\n\t\tthis.moveRowActual(from, to, after);\r\n\t\t\r\n\t\tthis.regenerateRowPositions();\r\n\t\t\r\n\t\tthis.dispatch(\"row-moved\", from, to, after);\r\n\t\tthis.dispatchExternal(\"rowMoved\", from.getComponent());\r\n\t}\r\n\t\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\t\t\r\n\t\tthis.displayRowIterator((rows) => {\r\n\t\t\tthis.moveRowInArray(rows, from, to, after);\r\n\t\t});\r\n\t\t\r\n\t\tthis.dispatch(\"row-moving\", from, to, after);\r\n\t}\r\n\t\r\n\tmoveRowInArray(rows, from, to, after){\r\n\t\tvar\tfromIndex, toIndex, start, end;\r\n\t\t\r\n\t\tif(from !== to){\r\n\t\t\t\r\n\t\t\tfromIndex = rows.indexOf(from);\r\n\t\t\t\r\n\t\t\tif (fromIndex > -1) {\r\n\t\t\t\t\r\n\t\t\t\trows.splice(fromIndex, 1);\r\n\t\t\t\t\r\n\t\t\t\ttoIndex = rows.indexOf(to);\r\n\t\t\t\t\r\n\t\t\t\tif (toIndex > -1) {\r\n\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\r\n\t\t\t//restyle rows\r\n\t\t\tif(rows === this.getDisplayRows()){\r\n\t\t\t\t\r\n\t\t\t\tstart = fromIndex < toIndex ? fromIndex : toIndex;\r\n\t\t\t\tend = toIndex > fromIndex ? toIndex : fromIndex +1;\r\n\t\t\t\t\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\t\r\n\tclearData(){\r\n\t\tthis.setData([]);\r\n\t}\r\n\t\r\n\tgetRowIndex(row){\r\n\t\treturn this.findRowIndex(row, this.rows);\r\n\t}\r\n\t\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\t\r\n\tnextDisplayRow(row, rowOnly){\r\n\t\tvar index = this.getDisplayRowIndex(row),\r\n\t\tnextRow = false;\r\n\t\t\r\n\t\t\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\t\t\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\t\t\r\n\t\treturn nextRow;\r\n\t}\r\n\t\r\n\tprevDisplayRow(row, rowOnly){\r\n\t\tvar index = this.getDisplayRowIndex(row),\r\n\t\tprevRow = false;\r\n\t\t\r\n\t\tif(index){\r\n\t\t\tprevRow = this.getDisplayRows()[index-1];\r\n\t\t}\r\n\t\t\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\t\t\r\n\t\treturn prevRow;\r\n\t}\r\n\t\r\n\tfindRowIndex(row, list){\r\n\t\tvar rowIndex;\r\n\t\t\r\n\t\trow = this.findRow(row);\r\n\t\t\r\n\t\tif(row){\r\n\t\t\trowIndex = list.indexOf(row);\r\n\t\t\t\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\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tgetData(active, transform){\r\n\t\tvar output = [],\r\n\t\trows = this.getRows(active);\r\n\t\t\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\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgetComponents(active){\r\n\t\tvar\toutput = [],\r\n\t\trows = this.getRows(active);\r\n\t\t\r\n\t\trows.forEach(function(row){\r\n\t\t\toutput.push(row.getComponent());\r\n\t\t});\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgetDataCount(active){\r\n\t\tvar rows = this.getRows(active);\r\n\t\t\r\n\t\treturn rows.length;\r\n\t}\r\n\t\r\n\tscrollHorizontal(left){\r\n\t\tthis.scrollLeft = left;\r\n\t\tthis.element.scrollLeft = left;\r\n\t\t\r\n\t\tthis.dispatch(\"scroll-horizontal\", left);\r\n\t}\r\n\t\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\t\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\t\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\t\r\n\t\tif(!this.table.destroyed){\r\n\t\t\tif(typeof handler === \"function\"){\r\n\t\t\t\tindex = this.dataPipeline.findIndex((item) => {\r\n\t\t\t\t\treturn item.handler === handler;\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\tstage = \"dataPipeline\";\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(skipStage){\r\n\t\t\t\t\t\tif(index == this.dataPipeline.length - 1){\r\n\t\t\t\t\t\t\tstage = \"display\";\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\tindex = this.displayPipeline.findIndex((item) => {\r\n\t\t\t\t\t\treturn item.handler === handler;\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(index > -1){\r\n\t\t\t\t\t\tstage = \"displayPipeline\";\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(skipStage){\r\n\t\t\t\t\t\t\tif(index == this.displayPipeline.length - 1){\r\n\t\t\t\t\t\t\t\tstage = \"end\";\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\tindex++;\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.error(\"Unable to refresh data, invalid handler provided\", handler);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tstage = handler || \"all\";\r\n\t\t\t\tindex = 0;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(this.redrawBlock){\r\n\t\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\t\tthis.redrawBlockRestoreConfig = {\r\n\t\t\t\t\t\thandler: handler,\r\n\t\t\t\t\t\tskipStage: skipStage,\r\n\t\t\t\t\t\trenderInPosition: renderInPosition,\r\n\t\t\t\t\t\tstage:stage,\r\n\t\t\t\t\t\tindex:index,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\treturn;\r\n\t\t\t}else{\r\n\t\t\t\tif(Helpers.elVisible(this.element)){\r\n\t\t\t\t\tif(renderInPosition){\r\n\t\t\t\t\t\tthis.reRenderInPosition(this.refreshPipelines.bind(this, handler, stage, index, renderInPosition));\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.refreshPipelines(handler, stage, index, renderInPosition);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(!handler){\r\n\t\t\t\t\t\t\tthis.table.columnManager.renderer.renderColumns();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tthis.renderTable();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(table.options.layoutColumnsOnNewData){\r\n\t\t\t\t\t\t\tthis.table.columnManager.redraw(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\tthis.refreshPipelines(handler, stage, index, renderInPosition);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.dispatch(\"data-refreshed\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\trefreshPipelines(handler, stage, index, renderInPosition){\r\n\t\tthis.dispatch(\"data-refreshing\");\r\n\t\t\r\n\t\tif(!handler){\r\n\t\t\tthis.activeRowsPipeline[0] = this.rows.slice(0);\r\n\t\t}\r\n\t\t\r\n\t\t//cascade through data refresh stages\r\n\t\tswitch(stage){\r\n\t\t\tcase \"all\":\r\n\t\t\t//handle case where all data needs refreshing\r\n\t\t\t\r\n\t\t\tcase \"dataPipeline\":\r\n\t\t\t\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\t\t\t\t\t\r\n\t\t\t\t\tthis.activeRowsPipeline[i + 1] = result || this.activeRowsPipeline[i].slice(0);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);\r\n\t\t\t\t\r\n\t\t\tcase \"display\":\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tthis.resetDisplayRows();\r\n\t\t\t\t\r\n\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\t\t\t\r\n\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\tthis.regenerateRowPositions();\r\n\t\t}\r\n\t}\r\n\t\r\n\t//regenerate row positions\r\n\tregenerateRowPositions(){\r\n\t\tvar rows = this.getDisplayRows();\r\n\t\tvar index = 1;\r\n\t\t\r\n\t\trows.forEach((row) => {\r\n\t\t\tif (row.type === \"row\"){\r\n\t\t\t\trow.setPosition(index);\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\tsetActiveRows(activeRows){\r\n\t\tthis.activeRows = activeRows;\r\n\t\tthis.activeRowsCount = this.activeRows.length;\r\n\t}\r\n\t\r\n\t//reset display rows array\r\n\tresetDisplayRows(){\r\n\t\tthis.displayRows = [];\r\n\t\t\r\n\t\tthis.displayRows.push(this.activeRows.slice(0));\r\n\t\t\r\n\t\tthis.displayRowsCount = this.displayRows[0].length;\r\n\t}\r\n\t\r\n\tgetNextDisplayIndex(){\r\n\t\treturn this.displayRows.length;\r\n\t}\r\n\t\r\n\t//set display row pipeline data\r\n\tsetDisplayRows(displayRows, index){\r\n\t\tthis.displayRows[index] = displayRows;\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\t}\r\n\t\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\t\r\n\tgetVisibleRows(chain, viewable){\r\n\t\tvar rows = Object.assign([], this.renderer.visibleRows(!viewable));\r\n\t\t\r\n\t\tif(chain){\r\n\t\t\trows = this.chain(\"rows-visible\", [viewable], rows, rows);\r\n\t\t}\r\n\t\t\r\n\t\treturn rows;\r\n\t}\r\n\t\r\n\t//repeat action across display rows\r\n\tdisplayRowIterator(callback){\r\n\t\tthis.activeRowsPipeline.forEach(callback);\r\n\t\tthis.displayRows.forEach(callback);\r\n\t\t\r\n\t\tthis.displayRowsCount = this.displayRows[this.displayRows.length -1].length;\r\n\t}\r\n\t\r\n\t//return only actual rows (not group headers etc)\r\n\tgetRows(type){\r\n\t\tvar rows;\r\n\t\t\r\n\t\tswitch(type){\r\n\t\t\tcase \"active\":\r\n\t\t\t\trows = this.activeRows;\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase \"display\":\r\n\t\t\t\trows = this.table.rowManager.getDisplayRows();\r\n\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\tcase \"visible\":\r\n\t\t\t\trows = this.getVisibleRows(false, true);\r\n\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\tdefault:\r\n\t\t\t\trows = this.chain(\"rows-retrieve\", type, null, this.rows) || this.rows;\r\n\t\t}\r\n\t\t\r\n\t\treturn rows;\r\n\t}\r\n\t\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.redrawBlockRenderInPosition = true;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.dispatchExternal(\"renderStarted\");\r\n\t\t\t\r\n\t\t\tthis.renderer.rerenderRows(callback);\r\n\r\n\t\t\tif(!this.fixedHeight){\r\n\t\t\t\tthis.adjustTableSize();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.dispatchExternal(\"renderComplete\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeRenderer(){\r\n\t\tvar renderClass;\r\n\t\t\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\t\t\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\t\t\r\n\t\tif(renderClass){\r\n\t\t\tthis.renderMode = this.table.options.renderVertical;\r\n\t\t\t\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\t\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:\", this.table.options.renderVertical);\r\n\t\t}\r\n\t}\r\n\t\r\n\tgetRenderMode(){\r\n\t\treturn this.renderMode;\r\n\t}\r\n\t\r\n\trenderTable(){\r\n\t\tthis.dispatchExternal(\"renderStarted\");\r\n\t\t\r\n\t\tthis.element.scrollTop = 0;\r\n\t\t\r\n\t\tthis._clearTable();\r\n\t\t\r\n\t\tif(this.displayRowsCount){\r\n\t\t\tthis.renderer.renderRows();\r\n\t\t\t\r\n\t\t\tif(this.firstRender){\r\n\t\t\t\tthis.firstRender = false;\r\n\t\t\t\tthis.layoutRefresh(true);\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.renderEmptyScroll();\r\n\t\t}\r\n\t\t\r\n\t\tif(!this.fixedHeight){\r\n\t\t\tthis.adjustTableSize();\r\n\t\t}\r\n\t\t\r\n\t\tthis.dispatch(\"table-layout\");\r\n\t\t\r\n\t\tif(!this.displayRowsCount){\r\n\t\t\tthis._showPlaceholder();\r\n\t\t}\r\n\t\t\r\n\t\tthis.dispatchExternal(\"renderComplete\");\r\n\t}\r\n\t\r\n\t//show scrollbars on empty table div\r\n\trenderEmptyScroll(){\r\n\t\tif(this.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\t\r\n\t_clearTable(){\t\r\n\t\tthis._clearPlaceholder();\r\n\t\t\r\n\t\tthis.scrollTop = 0;\r\n\t\tthis.scrollLeft = 0;\r\n\r\n\t\t// clear empty table placeholder min\r\n\t\tthis.tableElement.style.minWidth = \"\";\r\n\t\t\r\n\t\tthis.renderer.clearRows();\r\n\t}\r\n\t\r\n\t_showPlaceholder(){\r\n\t\tif(this.placeholder){\r\n\t\t\tthis.placeholder.setAttribute(\"tabulator-render-mode\", this.renderMode);\r\n\t\t\t\r\n\t\t\tthis.getElement().appendChild(this.placeholder);\r\n\t\t\tthis._positionPlaceholder();\r\n\t\t}\r\n\t}\r\n\t\r\n\t_clearPlaceholder(){\r\n\t\tif(this.placeholder && this.placeholder.parentNode){\r\n\t\t\tthis.placeholder.parentNode.removeChild(this.placeholder);\r\n\t\t}\r\n\t}\r\n\t\r\n\t_positionPlaceholder(){\r\n\t\tif(this.placeholder && this.placeholder.parentNode){\r\n\t\t\tthis.placeholder.style.width = this.table.columnManager.getWidth() + \"px\";\r\n\t\t\tthis.placeholderContents.style.width = this.table.rowManager.element.clientWidth + \"px\";\r\n\t\t\tthis.placeholderContents.style.marginLeft = this.scrollLeft + \"px\";\r\n\t\t}\r\n\t}\r\n\t\r\n\tstyleRow(row, index){\r\n\t\tvar rowEl = row.getElement();\r\n\t\t\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\t\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\t\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, minHeight;\r\n\t\t\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\t\t\t\r\n\t\t\tif(this.fixedHeight){\r\n\t\t\t\tminHeight = isNaN(this.table.options.minHeight) ? this.table.options.minHeight : this.table.options.minHeight + \"px\";\r\n\t\t\t\t\r\n\t\t\t\tthis.element.style.minHeight = 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\t\t\t\r\n\t\t\tthis.renderer.resize();\r\n\t\t\t\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\t\r\n\t\tthis._positionPlaceholder();\r\n\t}\r\n\t\r\n\t//reinitialize 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\t\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\t\r\n\t//restore table redrawing\r\n\trestoreRedraw (){\r\n\t\tthis.redrawBlock = false;\r\n\t\t\r\n\t\tif(this.redrawBlockRestoreConfig){\r\n\t\t\tthis.refreshActiveData(this.redrawBlockRestoreConfig.handler, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition);\r\n\t\t\t\r\n\t\t\tthis.redrawBlockRestoreConfig = false;\r\n\t\t}else{\r\n\t\t\tif(this.redrawBlockRenderInPosition){\r\n\t\t\t\tthis.reRenderInPosition();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tthis.redrawBlockRenderInPosition = false;\r\n\t}\r\n\t\r\n\t//redraw table\r\n\tredraw (force){\r\n\t\tvar left = this.scrollLeft;\r\n\t\t\r\n\t\tthis.adjustTableSize();\r\n\t\t\r\n\t\tthis.table.tableWidth = this.table.element.clientWidth;\r\n\t\t\r\n\t\tif(!force){\r\n\t\t\tthis.reRenderInPosition();\r\n\t\t\tthis.scrollHorizontal(left);\r\n\t\t}else{\r\n\t\t\tthis.renderTable();\r\n\t\t}\r\n\t}\r\n\t\r\n\tresetScroll(){\r\n\t\tthis.element.scrollLeft = 0;\r\n\t\tthis.element.scrollTop = 0;\r\n\t\t\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.containerElement = this.createContainerElement(); //containing element\r\n\t\tthis.external = false;\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\t\r\n\tcreateContainerElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\r\n\t\tel.classList.add(\"tabulator-footer-contents\");\r\n\r\n\t\tthis.element.appendChild(el);\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\t\tif(this.table.options.footerElement[0] === \"<\"){\r\n\t\t\t\t\t\tthis.containerElement.innerHTML = this.table.options.footerElement;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.external = true;\r\n\t\t\t\t\t\tthis.containerElement = document.querySelector(this.table.options.footerElement);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.element = this.table.options.footerElement;\r\n\t\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){\r\n\t\tthis.activate();\r\n\r\n\t\tthis.containerElement.appendChild(element);\r\n\t\tthis.table.rowManager.adjustTableSize();\r\n\t}\r\n\r\n\tprepend(element){\r\n\t\tthis.activate();\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(){\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\t}\r\n\r\n\tredraw(){\r\n\t\tthis.dispatch(\"footer-redraw\");\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\nimport Row from '../row/Row.js';\r\n\r\nexport default class InteractionManager extends CoreFeature {\r\n\t\r\n\tconstructor (table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.el = null;\r\n\t\t\r\n\t\tthis.abortClasses = [\"tabulator-headers\", \"tabulator-table\"];\r\n\t\t\r\n\t\tthis.previousTargets = {};\r\n\t\t\r\n\t\tthis.listeners = [\r\n\t\t\t\"click\",\r\n\t\t\t\"dblclick\",\r\n\t\t\t\"contextmenu\",\r\n\t\t\t\"mouseenter\",\r\n\t\t\t\"mouseleave\",\r\n\t\t\t\"mouseover\",\r\n\t\t\t\"mouseout\",\r\n\t\t\t\"mousemove\",\r\n\t\t\t\"touchstart\",\r\n\t\t\t\"touchend\",\r\n\t\t];\r\n\t\t\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\t\t\r\n\t\tthis.pseudoTrackers = {\r\n\t\t\t\"row\":{\r\n\t\t\t\tsubscriber:null,\r\n\t\t\t\ttarget:null,\r\n\t\t\t},\r\n\t\t\t\"cell\":{\r\n\t\t\t\tsubscriber:null,\r\n\t\t\t\ttarget:null,\r\n\t\t\t},\r\n\t\t\t\"group\":{\r\n\t\t\t\tsubscriber:null,\r\n\t\t\t\ttarget:null,\r\n\t\t\t},\r\n\t\t\t\"column\":{\r\n\t\t\t\tsubscriber:null,\r\n\t\t\t\ttarget:null,\r\n\t\t\t},\r\n\t\t};\r\n\t\t\r\n\t\tthis.pseudoTracking = false;\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tthis.el = this.table.element;\r\n\t\t\r\n\t\tthis.buildListenerMap();\r\n\t\tthis.bindSubscriptionWatchers();\r\n\t}\r\n\t\r\n\tbuildListenerMap(){\r\n\t\tvar listenerMap = {};\r\n\t\t\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\t\t\r\n\t\tthis.listeners = listenerMap;\r\n\t}\r\n\t\r\n\tbindPseudoEvents(){\r\n\t\tObject.keys(this.pseudoTrackers).forEach((key) => {\r\n\t\t\tthis.pseudoTrackers[key].subscriber = this.pseudoMouseEnter.bind(this, key);\r\n\t\t\tthis.subscribe(key + \"-mouseover\", this.pseudoTrackers[key].subscriber);\r\n\t\t});\r\n\t\t\r\n\t\tthis.pseudoTracking = true;\r\n\t}\r\n\t\r\n\tpseudoMouseEnter(key, e, target){\r\n\t\tif(this.pseudoTrackers[key].target !== target){\r\n\t\t\t\r\n\t\t\tif(this.pseudoTrackers[key].target){\r\n\t\t\t\tthis.dispatch(key + \"-mouseleave\", e, this.pseudoTrackers[key].target);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.pseudoMouseLeave(key, e);\r\n\t\t\t\r\n\t\t\tthis.pseudoTrackers[key].target = target;\r\n\t\t\t\r\n\t\t\tthis.dispatch(key + \"-mouseenter\", e, target);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpseudoMouseLeave(key, e){\r\n\t\tvar leaveList = Object.keys(this.pseudoTrackers),\r\n\t\tlinkedKeys = {\r\n\t\t\t\"row\":[\"cell\"],\r\n\t\t\t\"cell\":[\"row\"],\r\n\t\t};\r\n\t\t\r\n\t\tleaveList = leaveList.filter((item) => {\r\n\t\t\tvar links = linkedKeys[key];\r\n\t\t\treturn item !== key && (!links || (links && !links.includes(item)));\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\tleaveList.forEach((key) => {\r\n\t\t\tvar target = this.pseudoTrackers[key].target;\r\n\t\t\t\r\n\t\t\tif(this.pseudoTrackers[key].target){\r\n\t\t\t\tthis.dispatch(key + \"-mouseleave\", e, target);\r\n\t\t\t\t\r\n\t\t\t\tthis.pseudoTrackers[key].target = null;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\t\r\n\tbindSubscriptionWatchers(){\r\n\t\tvar listeners = Object.keys(this.listeners),\r\n\t\tcomponents = Object.values(this.componentMap);\r\n\t\t\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\t\t\t\t\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\t\r\n\t\tthis.subscribe(\"table-destroy\", this.clearWatchers.bind(this));\r\n\t}\r\n\t\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\t\t\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\t\t\r\n\t\tif((key === \"mouseenter\" || key === \"mouseleave\") && !this.pseudoTracking){\r\n\t\t\tthis.bindPseudoEvents();\r\n\t\t}\r\n\t\t\r\n\t\tif(changed){\r\n\t\t\tthis.updateEventListeners();\r\n\t\t}\r\n\t}\r\n\t\r\n\tupdateEventListeners(){\r\n\t\tfor(let key in this.listeners){\r\n\t\t\tlet listener = this.listeners[key];\r\n\t\t\t\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\t\r\n\ttrack(type, e){\r\n\t\tvar path = (e.composedPath && e.composedPath()) || e.path;\r\n\t\t\r\n\t\tvar targets = this.findTargets(path);\r\n\t\ttargets = this.bindComponents(type, targets);\r\n\t\t\r\n\t\tthis.triggerEvents(type, e, targets);\r\n\t\t\r\n\t\tif(this.pseudoTracking && (type == \"mouseover\" || type == \"mouseleave\") && !Object.keys(targets).length){\r\n\t\t\tthis.pseudoMouseLeave(\"none\", e);\r\n\t\t}\r\n\t}\r\n\t\r\n\tfindTargets(path){\r\n\t\tvar targets = {};\r\n\t\t\r\n\t\tlet componentMap = Object.keys(this.componentMap);\r\n\t\t\r\n\t\tfor (let el of path) {\r\n\t\t\tlet classList = el.classList ? [...el.classList] : [];\r\n\t\t\t\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\t\t\t\r\n\t\t\tif(abort.length){\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\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\t\t\t\r\n\t\t\tfor (let target of elTargets) {\r\n\t\t\t\tif(!targets[this.componentMap[target]]){\r\n\t\t\t\t\ttargets[this.componentMap[target]] = el;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(targets.group && targets.group === targets.row){\r\n\t\t\tdelete targets.row;\r\n\t\t}\r\n\t\t\r\n\t\treturn targets;\r\n\t}\r\n\t\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\tmatches = {},\r\n\t\ttargetMatches = {};\r\n\t\t\r\n\t\tfor(let key of keys){\r\n\t\t\tlet component,\r\n\t\t\ttarget = targets[key],\r\n\t\t\tpreviousTarget = this.previousTargets[key];\r\n\t\t\t\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\t\tif(listener.components.includes(\"row\") || listener.components.includes(\"cell\") || listener.components.includes(\"group\")){\r\n\t\t\t\t\t\t\tlet rows = this.table.rowManager.getVisibleRows(true);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tcomponent = rows.find((row) => {\r\n\t\t\t\t\t\t\t\treturn row.getElement() === target;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif(targets[\"row\"] && targets[\"row\"].parentNode && targets[\"row\"].parentNode.closest(\".tabulator-row\")){\r\n\t\t\t\t\t\t\t\ttargets[key] = 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\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tcase \"column\":\r\n\t\t\t\t\t\tif(listener.components.includes(\"column\")){\r\n\t\t\t\t\t\t\tcomponent = this.table.columnManager.findColumn(target);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tcase \"cell\":\r\n\t\t\t\t\t\tif(listener.components.includes(\"cell\")){\r\n\t\t\t\t\t\t\tif(matches[\"row\"] instanceof Row){\r\n\t\t\t\t\t\t\t\tcomponent = matches[\"row\"].findCell(target);\r\n\t\t\t\t\t\t\t}else{\t\r\n\t\t\t\t\t\t\t\tif(targets[\"row\"]){\r\n\t\t\t\t\t\t\t\t\tconsole.warn(\"Event Target Lookup Error - The row this cell is attached to cannot be found, has the table been reinitialized without being destroyed first?\");\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\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(component){\r\n\t\t\t\tmatches[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\t\t\r\n\t\tthis.previousTargets = targetMatches;\r\n\t\t\r\n\t\treturn matches;\r\n\t}\r\n\t\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\t\r\n\tclearWatchers(){\r\n\t\tfor(let key in this.listeners){\r\n\t\t\tlet listener = this.listeners[key];\r\n\t\t\t\r\n\t\t\tif(listener.handler){\r\n\t\t\t\tthis.el.removeEventListener(key, listener.handler);\r\n\t\t\t\tlistener.handler = null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","export default class ComponentFunctionBinder{\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, handler);\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] && typeof this.bindings[type][name].bind === 'function'){\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\tif(this.table.options.debugInvalidComponentFuncs){\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\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\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.requestOrder = 0; //prevent requests coming 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\r\n\tload(data, params, config, replace, silent, columnsChanged){\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.alertLoader();\r\n\t\t\t}\r\n\r\n\t\t\t//get params for request\r\n\t\t\tparams = this.chain(\"data-params\", [data, config, silent], params || {}, 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], false, Promise.resolve([]));\r\n\t\t\t\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.clearAlert();\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, typeof columnsChanged === \"undefined\" ? !replace : columnsChanged);\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.alertError();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.clearAlert();\r\n\t\t\t\t}, this.table.options.dataLoaderErrorTimeout);\r\n\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tthis.loading = false;\r\n\t\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, typeof columnsChanged === \"undefined\" ? !replace : columnsChanged);\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\talertLoader(){\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.table.alertManager.alert(this.table.options.dataLoaderLoading || this.langText(\"data|loading\"));\r\n\t\t}\r\n\t}\r\n\r\n\talertError(){\r\n\t\tthis.table.alertManager.alert(this.table.options.dataLoaderError || this.langText(\"data|error\"), \"error\");\r\n\t}\r\n\r\n\tclearAlert(){\r\n\t\tthis.table.alertManager.clear();\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._notifySubscriptionChange(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._notifySubscriptionChange(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._notifySubscriptionChange(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_notifySubscriptionChange(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._notifySubscriptionChange(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._notifySubscriptionChange(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._notifySubscriptionChange(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_notifySubscriptionChange(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\tsubscriber.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 CoreFeature from '../CoreFeature.js';\r\n\r\nexport default class DeprecationAdvisor extends CoreFeature{\r\n\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t}\r\n\t\r\n\t_warnUser(){\r\n\t\tif(this.options(\"debugDeprecation\")){\r\n\t\t\tconsole.warn(...arguments);\r\n\t\t}\r\n\t}\r\n\t\r\n\tcheck(oldOption, newOption){\r\n\t\tvar msg = \"\";\r\n\t\t\r\n\t\tif(typeof this.options(oldOption) !== \"undefined\"){\r\n\t\t\tmsg = \"Deprecated Setup Option - Use of the %c\" + oldOption + \"%c option is now deprecated\";\r\n\t\t\t\r\n\t\t\tif(newOption){\r\n\t\t\t\tmsg = msg + \", Please use the %c\" + newOption + \"%c option instead\";\r\n\t\t\t\tthis._warnUser(msg, 'font-weight: bold;', 'font-weight: normal;', 'font-weight: bold;', 'font-weight: normal;');\r\n\t\t\t}else{\r\n\t\t\t\tthis._warnUser(msg, 'font-weight: bold;', 'font-weight: normal;');\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t}else{\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\t\r\n\tcheckMsg(oldOption, msg){\r\n\t\tif(typeof this.options(oldOption) !== \"undefined\"){\r\n\t\t\tthis._warnUser(\"%cDeprecated Setup Option - Use of the %c\" + oldOption + \" %c option is now deprecated, \" + msg, 'font-weight: normal;', 'font-weight: bold;', 'font-weight: normal;');\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t}else{\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\t\r\n\tmsg(msg){\r\n\t\tthis._warnUser(msg);\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\nimport Helpers from './Helpers.js';\r\n\r\nexport default class Popup extends CoreFeature{\r\n\tconstructor(table, element, parent){\r\n\t\tsuper(table);\r\n \r\n\t\tthis.element = element;\r\n\t\tthis.container = this._lookupContainer();\r\n \r\n\t\tthis.parent = parent;\r\n \r\n\t\tthis.reversedX = false;\r\n\t\tthis.childPopup = null;\r\n\t\tthis.blurable = false;\r\n\t\tthis.blurCallback = null;\r\n\t\tthis.renderedCallback = null;\r\n \r\n\t\tthis.visible = false;\r\n\t\tthis.hideable = true;\r\n \r\n\t\tthis.element.classList.add(\"tabulator-popup-container\");\r\n \r\n\t\tthis.blurEvent = this.hide.bind(this, false);\r\n\t\tthis.escEvent = this._escapeCheck.bind(this);\r\n\r\n\t\tthis.destroyBinding = this.tableDestroyed;\r\n\t\tthis.destroyed = false;\r\n\t}\r\n\r\n\ttableDestroyed(){\r\n\t\tthis.destroyed = true;\r\n\t\tthis.hide(true);\r\n\t}\r\n \r\n\t_lookupContainer(){\r\n\t\tvar container = this.table.options.popupContainer;\r\n \r\n\t\tif(typeof container === \"string\"){\r\n\t\t\tcontainer = document.querySelector(container);\r\n \r\n\t\t\tif(!container){\r\n\t\t\t\tconsole.warn(\"Menu Error - no container element found matching selector:\", this.table.options.popupContainer , \"(defaulting to document body)\");\r\n\t\t\t}\r\n\t\t}else if (container === true){\r\n\t\t\tcontainer = this.table.element;\r\n\t\t}\r\n \r\n\t\tif(container && !this._checkContainerIsParent(container)){\r\n\t\t\tcontainer = false;\r\n\t\t\tconsole.warn(\"Menu Error - container element does not contain this table:\", this.table.options.popupContainer , \"(defaulting to document body)\");\r\n\t\t}\r\n \r\n\t\tif(!container){\r\n\t\t\tcontainer = document.body;\r\n\t\t}\r\n \r\n\t\treturn container;\r\n\t}\r\n \r\n\t_checkContainerIsParent(container, element = this.table.element){\r\n\t\tif(container === element){\r\n\t\t\treturn true;\r\n\t\t}else{\r\n\t\t\treturn element.parentNode ? this._checkContainerIsParent(container, element.parentNode) : false;\r\n\t\t}\r\n\t}\r\n \r\n\trenderCallback(callback){\r\n\t\tthis.renderedCallback = callback;\r\n\t}\r\n \r\n\tcontainerEventCoords(e){\r\n\t\tvar touch = !(e instanceof MouseEvent);\r\n \r\n\t\tvar x = touch ? e.touches[0].pageX : e.pageX;\r\n\t\tvar y = touch ? e.touches[0].pageY : e.pageY;\r\n \r\n\t\tif(this.container !== document.body){\r\n\t\t\tlet parentOffset = Helpers.elOffset(this.container);\r\n \r\n\t\t\tx -= parentOffset.left;\r\n\t\t\ty -= parentOffset.top;\r\n\t\t}\r\n \r\n\t\treturn {x, y};\r\n\t}\r\n \r\n\telementPositionCoords(element, position = \"right\"){\r\n\t\tvar offset = Helpers.elOffset(element),\r\n\t\tcontainerOffset, x, y;\r\n \r\n\t\tif(this.container !== document.body){\r\n\t\t\tcontainerOffset = Helpers.elOffset(this.container);\r\n \r\n\t\t\toffset.left -= containerOffset.left;\r\n\t\t\toffset.top -= containerOffset.top;\r\n\t\t}\r\n \r\n\t\tswitch(position){\r\n\t\t\tcase \"right\":\r\n\t\t\t\tx = offset.left + element.offsetWidth;\r\n\t\t\t\ty = offset.top - 1;\r\n\t\t\t\tbreak;\r\n \r\n\t\t\tcase \"bottom\":\r\n\t\t\t\tx = offset.left;\r\n\t\t\t\ty = offset.top + element.offsetHeight;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n \r\n\t\treturn {x, y, offset};\r\n\t}\r\n \r\n\tshow(origin, position){\r\n\t\tvar x, y, parentEl, parentOffset, coords;\r\n\r\n\t\tif(this.destroyed || this.table.destroyed){\r\n\t\t\treturn this;\r\n\t\t}\r\n \r\n\t\tif(origin instanceof HTMLElement){\r\n\t\t\tparentEl = origin;\r\n\t\t\tcoords = this.elementPositionCoords(origin, position);\r\n \r\n\t\t\tparentOffset = coords.offset;\r\n\t\t\tx = coords.x;\r\n\t\t\ty = coords.y;\r\n \r\n\t\t}else if(typeof origin === \"number\"){\r\n\t\t\tparentOffset = {top:0, left:0};\r\n\t\t\tx = origin;\r\n\t\t\ty = position;\r\n\t\t}else{\r\n\t\t\tcoords = this.containerEventCoords(origin);\r\n \r\n\t\t\tx = coords.x;\r\n\t\t\ty = coords.y;\r\n \r\n\t\t\tthis.reversedX = false;\r\n\t\t}\r\n \r\n\t\tthis.element.style.top = y + \"px\";\r\n\t\tthis.element.style.left = x + \"px\";\r\n \r\n\t\tthis.container.appendChild(this.element);\r\n \r\n\t\tif(typeof this.renderedCallback === \"function\"){\r\n\t\t\tthis.renderedCallback();\r\n\t\t}\r\n \r\n\t\tthis._fitToScreen(x, y, parentEl, parentOffset, position);\r\n \r\n\t\tthis.visible = true;\r\n\r\n\t\tthis.subscribe(\"table-destroy\", this.destroyBinding);\r\n\r\n\t\tthis.element.addEventListener(\"mousedown\", (e) => {\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n \r\n\t\treturn this;\r\n\t}\r\n \r\n\t_fitToScreen(x, y, parentEl, parentOffset, position){\r\n\t\tvar scrollTop = this.container === document.body ? document.documentElement.scrollTop : this.container.scrollTop;\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 + this.element.offsetWidth) >= this.container.offsetWidth || this.reversedX){\r\n\t\t\tthis.element.style.left = \"\";\r\n \r\n\t\t\tif(parentEl){\r\n\t\t\t\tthis.element.style.right = (this.container.offsetWidth - parentOffset.left) + \"px\";\r\n\t\t\t}else{\r\n\t\t\t\tthis.element.style.right = (this.container.offsetWidth - x) + \"px\";\r\n\t\t\t}\r\n \r\n\t\t\tthis.reversedX = true;\r\n\t\t}\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 + this.element.offsetHeight) > Math.max(this.container.offsetHeight, scrollTop ? this.container.scrollHeight : 0)) {\r\n\t\t\tif(parentEl){\r\n\t\t\t\tswitch(position){\r\n\t\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\t\tthis.element.style.top = (parseInt(this.element.style.top) - this.element.offsetHeight - parentEl.offsetHeight - 1) + \"px\";\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tthis.element.style.top = (parseInt(this.element.style.top) - this.element.offsetHeight + parentEl.offsetHeight + 1) + \"px\";\r\n\t\t\t\t}\r\n \r\n\t\t\t}else{\r\n\t\t\t\tthis.element.style.top = (parseInt(this.element.style.top) - this.element.offsetHeight) + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n \r\n\tisVisible(){\r\n\t\treturn this.visible;\r\n\t}\r\n \r\n\thideOnBlur(callback){\r\n\t\tthis.blurable = true;\r\n \r\n\t\tif(this.visible){\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.table.rowManager.element.addEventListener(\"scroll\", this.blurEvent);\r\n\t\t\t\tthis.subscribe(\"cell-editing\", this.blurEvent);\r\n\t\t\t\tdocument.body.addEventListener(\"click\", this.blurEvent);\r\n\t\t\t\tdocument.body.addEventListener(\"contextmenu\", this.blurEvent);\r\n\t\t\t\tdocument.body.addEventListener(\"mousedown\", this.blurEvent);\r\n\t\t\t\twindow.addEventListener(\"resize\", this.blurEvent);\r\n\t\t\t\tdocument.body.addEventListener(\"keydown\", this.escEvent);\r\n\r\n\t\t\t}, 100);\r\n \r\n\t\t\tthis.blurCallback = callback;\r\n\t\t}\r\n \r\n\t\treturn this;\r\n\t}\r\n \r\n\t_escapeCheck(e){\r\n\t\tif(e.keyCode == 27){\r\n\t\t\tthis.hide();\r\n\t\t}\r\n\t}\r\n\r\n\tblockHide(){\r\n\t\tthis.hideable = false;\r\n\t}\r\n\r\n\trestoreHide(){\r\n\t\tthis.hideable = true;\r\n\t}\r\n \r\n\thide(silent = false){\r\n\t\tif(this.visible && this.hideable){\r\n\t\t\tif(this.blurable){\r\n\t\t\t\tdocument.body.removeEventListener(\"keydown\", this.escEvent);\r\n\t\t\t\tdocument.body.removeEventListener(\"click\", this.blurEvent);\r\n\t\t\t\tdocument.body.removeEventListener(\"contextmenu\", this.blurEvent);\r\n\t\t\t\tdocument.body.removeEventListener(\"mousedown\", this.blurEvent);\r\n\t\t\t\twindow.removeEventListener(\"resize\", this.blurEvent);\r\n\t\t\t\tthis.table.rowManager.element.removeEventListener(\"scroll\", this.blurEvent);\r\n\t\t\t\tthis.unsubscribe(\"cell-editing\", this.blurEvent);\r\n\t\t\t}\r\n \r\n\t\t\tif(this.childPopup){\r\n\t\t\t\tthis.childPopup.hide();\r\n\t\t\t}\r\n \r\n\t\t\tif(this.parent){\r\n\t\t\t\tthis.parent.childPopup = null;\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.visible = false;\r\n\r\n\t\t\tif(this.blurCallback && !silent){\r\n\t\t\t\tthis.blurCallback();\r\n\t\t\t}\r\n\r\n\t\t\tthis.unsubscribe(\"table-destroy\", this.destroyBinding);\r\n\t\t}\r\n \r\n\t\treturn this;\r\n\t}\r\n \r\n\tchild(element){\r\n\t\tif(this.childPopup){\r\n\t\t\tthis.childPopup.hide();\r\n\t\t}\r\n \r\n\t\tthis.childPopup = new Popup(this.table, element, this);\r\n \r\n\t\treturn this.childPopup;\r\n\t}\r\n}","import CoreFeature from './CoreFeature.js';\r\nimport Popup from './tools/Popup.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 overridden 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 Registration ///\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] = (...args) => {\r\n\t\t\t\tthis.table.initGuard(name);\r\n\r\n\t\t\t\treturn func(...args);\r\n\t\t\t};\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\t///////////////////////////////////\r\n\t//////// Footer Management ////////\r\n\t///////////////////////////////////\r\n\r\n\tfooterAppend(element){\r\n\t\treturn this.table.footerManager.append(element);\r\n\t}\r\n\r\n\tfooterPrepend(element){\r\n\t\treturn this.table.footerManager.prepend(element);\r\n\t}\r\n\r\n\tfooterRemove(element){\r\n\t\treturn this.table.footerManager.remove(element);\r\n\t} \r\n\r\n\t///////////////////////////////////\r\n\t//////// Popups Management ////////\r\n\t///////////////////////////////////\r\n\t\r\n\tpopup(menuEl, menuContainer){\r\n\t\treturn new Popup(this.table, menuEl, menuContainer);\r\n\t}\r\n\r\n\t///////////////////////////////////\r\n\t//////// Alert Management ////////\r\n\t///////////////////////////////////\r\n\r\n\talert(content, type){\r\n\t\treturn this.table.alertManager.alert(content, type);\r\n\t}\r\n\r\n\tclearAlert(){\r\n\t\treturn this.table.alertManager.clear();\r\n\t}\r\n\t\r\n}\r\n\r\nexport default Module;","//resize columns to fit data they contain\r\nexport default function(columns, forced){\r\n\tif(forced){\r\n\t\tthis.table.columnManager.renderer.reinitializeColumnWidths(columns);\r\n\t}\r\n\t\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, forced){\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, forced){\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, forced){\r\n\tvar totalWidth = this.table.rowManager.element.getBoundingClientRect().width; //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 across 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 across 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\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 = 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\tgapFill = 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//calculate 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(gapFill && 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(dataChanged){\r\n\t\tthis.dispatch(\"layout-refreshing\");\r\n\t\tLayout.modes[this.mode].call(this, this.table.columnManager.columnsByIndex, dataChanged);\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\t\"counter\":{\r\n\t\t\t\t\"showing\": \"Showing\",\r\n\t\t\t\t\"of\": \"of\",\r\n\t\t\t\t\"rows\": \"rows\",\r\n\t\t\t\t\"pages\": \"pages\",\r\n\t\t\t}\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 placeholder\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 language 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//determining 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 fillPath = value ? path + \"|\" + value : path,\r\n\t\tpathArray = fillPath.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//iterate 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\t\r\n\tconstructor(tabulator, modules){\r\n\t\tthis.bindStaticFunctionality(tabulator);\r\n\t\tthis.bindModules(tabulator, coreModules, true);\r\n\t\t\r\n\t\tif(modules){\r\n\t\t\tthis.bindModules(tabulator, modules);\r\n\t\t}\r\n\t}\r\n\t\r\n\tbindStaticFunctionality(tabulator){\r\n\t\ttabulator.moduleBindings = {};\r\n\t\t\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\t\t\t\t\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\t\t\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\t\t\t\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\t\t\r\n\t\ttabulator.registerModuleBinding = function(mod){\r\n\t\t\ttabulator.moduleBindings[mod.moduleName] = mod;\r\n\t\t};\r\n\t\t\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\t\t\r\n\t\t//ensure that module are bound to instantiated function\r\n\t\ttabulator.prototype.bindModules = function(){\r\n\t\t\tvar orderedStartMods = [],\r\n\t\t\torderedEndMods = [],\r\n\t\t\tunOrderedMods = [];\r\n\t\t\t\r\n\t\t\tthis.modules = {};\r\n\t\t\t\r\n\t\t\tfor(var name in tabulator.moduleBindings){\r\n\t\t\t\tlet mod = tabulator.moduleBindings[name];\r\n\t\t\t\tlet module = new mod(this);\r\n\t\t\t\t\r\n\t\t\t\tthis.modules[name] = module;\r\n\t\t\t\t\r\n\t\t\t\tif(mod.prototype.moduleCore){\r\n\t\t\t\t\tthis.modulesCore.push(module);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(mod.moduleInitOrder){\r\n\t\t\t\t\t\tif(mod.moduleInitOrder < 0){\r\n\t\t\t\t\t\t\torderedStartMods.push(module);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\torderedEndMods.push(module);\r\n\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\tunOrderedMods.push(module);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\torderedStartMods.sort((a, b) => a.moduleInitOrder > b.moduleInitOrder ? 1 : -1);\r\n\t\t\torderedEndMods.sort((a, b) => a.moduleInitOrder > b.moduleInitOrder ? 1 : -1);\r\n\t\t\t\r\n\t\t\tthis.modulesRegular = orderedStartMods.concat(unOrderedMods.concat(orderedEndMods));\r\n\t\t};\r\n\t}\r\n\t\r\n\tbindModules(tabulator, modules, core){\r\n\t\tvar mods = Object.values(modules);\r\n\t\t\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\t\t\r\n\t\ttabulator.registerModule(mods);\r\n\t}\r\n}","import CoreFeature from '../CoreFeature.js';\r\n\r\nexport default class Alert extends CoreFeature{\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n \r\n\t\tthis.element = this._createAlertElement();\r\n\t\tthis.msgElement = this._createMsgElement();\r\n\t\tthis.type = null;\r\n \r\n\t\tthis.element.appendChild(this.msgElement);\r\n\t}\r\n \r\n\t_createAlertElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\tel.classList.add(\"tabulator-alert\");\r\n\t\treturn el;\r\n\t}\r\n \r\n\t_createMsgElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\tel.classList.add(\"tabulator-alert-msg\");\r\n\t\tel.setAttribute(\"role\", \"alert\");\r\n\t\treturn el;\r\n\t}\r\n \r\n\t_typeClass(){\r\n\t\treturn \"tabulator-alert-state-\" + this.type;\r\n\t}\r\n \r\n\talert(content, type = \"msg\"){\r\n\t\tif(content){\r\n\t\t\tthis.clear();\r\n \r\n\t\t\tthis.type = type;\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.add(this._typeClass());\r\n \r\n\t\t\tif(typeof content === \"function\"){\r\n\t\t\t\tcontent = content();\r\n\t\t\t}\r\n \r\n\t\t\tif(content instanceof HTMLElement){\r\n\t\t\t\tthis.msgElement.appendChild(content);\r\n\t\t\t}else{\r\n\t\t\t\tthis.msgElement.innerHTML = content;\r\n\t\t\t}\r\n \r\n\t\t\tthis.table.element.appendChild(this.element);\r\n\t\t}\r\n\t}\r\n \r\n\tclear(){\r\n\t\tif(this.element.parentNode){\r\n\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t}\r\n \r\n\t\tthis.msgElement.classList.remove(this._typeClass());\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 ComponentFunctionBinder from './tools/ComponentFunctionBinder.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 DeprecationAdvisor from './tools/DeprecationAdvisor.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\nimport Alert from './tools/Alert.js';\r\n\r\nclass Tabulator {\r\n\t\r\n\tconstructor(element, options){\r\n\t\t\r\n\t\tthis.options = {};\r\n\t\t\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.alertManager = null; //hold Alert 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 mobile, prevent resize cancelling edit on keyboard appearance\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\t\t\r\n\t\tthis.componentFunctionBinder = new ComponentFunctionBinder(this); //bind component functions\r\n\t\tthis.dataLoader = false; //bind component functions\r\n\t\t\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\t\t\r\n\t\tthis.deprecationAdvisor = new DeprecationAdvisor(this);\r\n\t\tthis.optionsList = new OptionsList(this, \"table constructor\");\r\n\t\t\r\n\t\tthis.initialized = false;\r\n\t\tthis.destroyed = false;\r\n\t\t\r\n\t\tif(this.initializeElement(element)){\r\n\t\t\t\r\n\t\t\tthis.initializeCoreSystems(options);\r\n\t\t\t\r\n\t\t\t//delay table creation to allow event bindings immediately 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\t\t\r\n\t\tTableRegistry.register(this); //register table for inter-device communication\r\n\t}\r\n\t\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\t\t\t\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\t\r\n\tinitializeCoreSystems(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\t\tthis.alertManager = new Alert(this);\r\n\t\t\r\n\t\tthis.bindModules();\r\n\t\t\r\n\t\tthis.options = this.optionsList.generate(Tabulator.defaultOptions, options);\r\n\t\t\r\n\t\tthis._clearObjectPointers();\r\n\t\t\r\n\t\tthis._mapDeprecatedFunctionality();\r\n\t\t\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\t\t\r\n\t\tthis.interactionMonitor = new InteractionMonitor(this);\r\n\t\t\r\n\t\tthis.dataLoader.initialize();\r\n\t\t// this.columnManager.initialize();\r\n\t\t// this.rowManager.initialize();\r\n\t\tthis.footerManager.initialize();\r\n\t}\r\n\t\r\n\t//convert deprecated functionality to new functions\r\n\t_mapDeprecatedFunctionality(){\r\n\t\t//all previously deprecated functionality removed in the 5.0 release\r\n\t}\r\n\t\r\n\t_clearSelection(){\r\n\t\t\r\n\t\tthis.element.classList.add(\"tabulator-block-select\");\r\n\t\t\r\n\t\tif (window.getSelection) {\r\n\t\t\tif (window.getSelection().empty) { // Chrome\r\n\t\t\t\twindow.getSelection().empty();\r\n\t\t\t} else if (window.getSelection().removeAllRanges) { // Firefox\r\n\t\t\t\twindow.getSelection().removeAllRanges();\r\n\t\t\t}\r\n\t\t} else if (document.selection) { // IE?\r\n\t\t\tdocument.selection.empty();\r\n\t\t}\r\n\t\t\r\n\t\tthis.element.classList.remove(\"tabulator-block-select\");\r\n\t}\r\n\t\r\n\t//create table\r\n\t_create(){\r\n\t\tthis.externalEvents.dispatch(\"tableBuilding\");\r\n\t\tthis.eventBus.dispatch(\"table-building\");\r\n\t\t\r\n\t\tthis._rtlCheck();\r\n\t\t\r\n\t\tthis._buildElement();\r\n\t\t\r\n\t\tthis._initializeTable();\r\n\t\t\r\n\t\tthis._loadInitialData();\r\n\t\t\r\n\t\tthis.initialized = true;\r\n\t\t\r\n\t\tthis.externalEvents.dispatch(\"tableBuilt\");\r\n\t}\r\n\t\r\n\t_rtlCheck(){\r\n\t\tvar style = window.getComputedStyle(this.element);\r\n\t\t\r\n\t\tswitch(this.options.textDirection){\r\n\t\t\tcase\"auto\":\r\n\t\t\t\tif(style.direction !== \"rtl\"){\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\tcase \"rtl\":\r\n\t\t\t\tthis.element.classList.add(\"tabulator-rtl\");\r\n\t\t\t\tthis.rtl = true;\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase \"ltr\":\r\n\t\t\t\tthis.element.classList.add(\"tabulator-ltr\");\r\n\t\t\t\r\n\t\t\tdefault:\r\n\t\t\t\tthis.rtl = false;\r\n\t\t}\r\n\t}\r\n\t\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\t\t\r\n\t\tif(Array.isArray(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\t\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\t\t\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\t\t\t\r\n\t\t\t//transfer attributes to new element\r\n\t\t\tvar attributes = element.attributes;\r\n\t\t\t\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\t\t\t\r\n\t\t\t// replace table with div element\r\n\t\t\telement.parentNode.replaceChild(newElement, element);\r\n\t\t\t\r\n\t\t\tthis.element = element = newElement;\r\n\t\t}\r\n\t\t\r\n\t\telement.classList.add(\"tabulator\");\r\n\t\telement.setAttribute(\"role\", \"grid\");\r\n\t\t\r\n\t\t//empty element\r\n\t\twhile(element.firstChild) element.removeChild(element.firstChild);\r\n\t\t\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\t\t\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\t\t\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\t\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\t\t\r\n\t\tthis.interactionMonitor.initialize();\r\n\t\t\r\n\t\tthis.columnManager.initialize();\r\n\t\tthis.rowManager.initialize();\r\n\t\t\r\n\t\tthis._detectBrowser();\r\n\t\t\r\n\t\t//initialize core modules\r\n\t\tthis.modulesCore.forEach((mod) => {\r\n\t\t\tmod.initialize();\r\n\t\t});\r\n\t\t\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\t\t\r\n\t\tif(options.footerElement){\r\n\t\t\tthis.footerManager.activate();\r\n\t\t}\r\n\t\t\r\n\t\tif(options.autoColumns && options.data){\r\n\t\t\t\r\n\t\t\tthis.columnManager.generateColumnsFromRowData(this.options.data);\r\n\t\t}\r\n\t\t\r\n\t\t//initialize regular modules\r\n\t\tthis.modulesRegular.forEach((mod) => {\r\n\t\t\tmod.initialize();\r\n\t\t});\r\n\t\t\r\n\t\tthis.columnManager.setColumns(options.columns);\r\n\t\t\r\n\t\tthis.eventBus.dispatch(\"table-built\");\r\n\t}\r\n\t\r\n\t_loadInitialData(){\r\n\t\tthis.dataLoader.load(this.options.data);\r\n\t}\r\n\t\r\n\t//deconstructor\r\n\tdestroy(){\r\n\t\tvar element = this.element;\r\n\t\t\r\n\t\tthis.destroyed = true;\r\n\t\t\r\n\t\tTableRegistry.deregister(this); //deregister table from inter-device communication\r\n\t\t\r\n\t\tthis.eventBus.dispatch(\"table-destroy\");\r\n\t\t\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\t\t\r\n\t\tthis.rowManager.rows = [];\r\n\t\tthis.rowManager.activeRows = [];\r\n\t\tthis.rowManager.displayRows = [];\r\n\t\t\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\r\n\t\tthis.externalEvents.dispatch(\"tableDestroyed\");\r\n\t}\r\n\t\r\n\t_detectBrowser(){\r\n\t\tvar ua = navigator.userAgent||navigator.vendor||window.opera;\r\n\t\t\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\t\t\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.slice(0,4));\r\n\t}\r\n\t\r\n\tinitGuard(func, msg){\r\n\t\tvar stack, line;\r\n\t\t\r\n\t\tif(this.options.debugInitialization && !this.initialized){\r\n\t\t\tif(!func){\r\n\t\t\t\tstack = new Error().stack.split(\"\\n\");\r\n\t\t\t\t\r\n\t\t\t\tline = stack[0] == \"Error\" ? stack[2] : stack[1];\r\n\t\t\t\t\r\n\t\t\t\tif(line[0] == \" \"){\r\n\t\t\t\t\tfunc = line.trim().split(\" \")[1].split(\".\")[1];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tfunc = line.trim().split(\"@\")[0];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tconsole.warn(\"Table Not Initialized - Calling the \" + func + \" function before the table is initialized may result in inconsistent behavior, Please wait for the `tableBuilt` event before calling this function.\" + (msg ? \" \" + msg : \"\"));\r\n\t\t}\r\n\t\t\r\n\t\treturn this.initialized;\r\n\t}\r\n\t\r\n\t////////////////// Data Handling //////////////////\r\n\t//block table redrawing\r\n\tblockRedraw(){\r\n\t\tthis.initGuard();\r\n\r\n\t\tthis.eventBus.dispatch(\"redraw-blocking\");\r\n\t\t\r\n\t\tthis.rowManager.blockRedraw();\r\n\t\tthis.columnManager.blockRedraw();\r\n\r\n\t\tthis.eventBus.dispatch(\"redraw-blocked\");\r\n\t}\r\n\t\r\n\t//restore table redrawing\r\n\trestoreRedraw(){\r\n\t\tthis.initGuard();\r\n\r\n\t\tthis.eventBus.dispatch(\"redraw-restoring\");\r\n\r\n\t\tthis.rowManager.restoreRedraw();\r\n\t\tthis.columnManager.restoreRedraw();\r\n\r\n\t\tthis.eventBus.dispatch(\"redraw-restored\");\r\n\t}\r\n\t\r\n\t//load data\r\n\tsetData(data, params, config){\r\n\t\tthis.initGuard(false, \"To set initial data please use the 'data' property in the table constructor.\");\r\n\t\t\r\n\t\treturn this.dataLoader.load(data, params, config, false);\r\n\t}\r\n\t\r\n\t//clear data\r\n\tclearData(){\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\tthis.dataLoader.blockActiveLoad();\r\n\t\tthis.rowManager.clearData();\r\n\t}\r\n\t\r\n\t//get table data array\r\n\tgetData(active){\r\n\t\treturn this.rowManager.getData(active);\r\n\t}\r\n\t\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\t\r\n\t//replace data, keeping table in position with same sort\r\n\treplaceData(data, params, config){\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\treturn this.dataLoader.load(data, params, config, true, true);\r\n\t}\r\n\t\r\n\t//update table data\r\n\tupdateData(data){\r\n\t\tvar responses = 0;\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.dataLoader.blockActiveLoad();\r\n\t\t\t\r\n\t\t\tif(typeof data === \"string\"){\r\n\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(data && data.length > 0){\r\n\t\t\t\tdata.forEach((item) => {\r\n\t\t\t\t\tvar row = this.rowManager.findRow(item[this.options.index]);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(row){\r\n\t\t\t\t\t\tresponses++;\r\n\t\t\t\t\t\t\r\n\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\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}\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Update Error - No data provided\");\r\n\t\t\t\treject(\"Update Error - No data provided\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\taddData(data, pos, index){\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.dataLoader.blockActiveLoad();\r\n\t\t\t\r\n\t\t\tif(typeof data === \"string\"){\r\n\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(data){\r\n\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\t\t\t\t\t\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\t\t\t\t\t\r\n\t\t\t\t\t\tresolve(output);\r\n\t\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Update Error - No data provided\");\r\n\t\t\t\treject(\"Update Error - No data provided\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\t//update table data\r\n\tupdateOrAddData(data){\r\n\t\tvar rows = [],\r\n\t\tresponses = 0;\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.dataLoader.blockActiveLoad();\r\n\t\t\t\r\n\t\t\tif(typeof data === \"string\"){\r\n\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(data && data.length > 0){\r\n\t\t\t\tdata.forEach((item) => {\r\n\t\t\t\t\tvar row = this.rowManager.findRow(item[this.options.index]);\r\n\t\t\t\t\t\r\n\t\t\t\t\tresponses++;\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(row){\r\n\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\t\t\t\t\t\t\t\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}else{\r\n\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\t\t\t\t\t\t\t\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}\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Update Error - No data provided\");\r\n\t\t\t\treject(\"Update Error - No data provided\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\t//get row object\r\n\tgetRow(index){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\t\t\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\t\r\n\t//get row object\r\n\tgetRowFromPosition(position){\r\n\t\tvar row = this.rowManager.getRowFromPosition(position);\r\n\t\t\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\t\r\n\t//delete row from table\r\n\tdeleteRow(index){\r\n\t\tvar foundRows = [];\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\tif(!Array.isArray(index)){\r\n\t\t\tindex = [index];\r\n\t\t}\r\n\t\t\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\t\t\t\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}\r\n\t\t}\r\n\t\t\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\t\t\r\n\t\t//delete rows\r\n\t\tfoundRows.forEach((row) =>{\r\n\t\t\trow.delete();\r\n\t\t});\r\n\t\t\r\n\t\tthis.rowManager.reRenderInPosition();\r\n\t\t\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\t\r\n\t//add row to table\r\n\taddRow(data, pos, index){\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\tif(typeof data === \"string\"){\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\t\t\r\n\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}\r\n\t\r\n\t//update a row if it exists otherwise create it\r\n\tupdateOrAddRow(index, data){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\tif(typeof data === \"string\"){\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\t\t\r\n\t\tif(row){\r\n\t\t\treturn row.updateData(data)\r\n\t\t\t\t.then(()=>{\r\n\t\t\t\t\treturn row.getComponent();\r\n\t\t\t\t});\r\n\t\t}else{\r\n\t\t\treturn this.rowManager.addRows(data)\r\n\t\t\t\t.then((rows)=>{\r\n\t\t\t\t\treturn rows[0].getComponent();\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\t\r\n\t//update row data\r\n\tupdateRow(index, data){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\tif(typeof data === \"string\"){\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\t\t\r\n\t\tif(row){\r\n\t\t\treturn row.updateData(data)\r\n\t\t\t\t.then(()=>{\r\n\t\t\t\t\treturn Promise.resolve(row.getComponent());\r\n\t\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\t\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\t\t\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\t\r\n\tmoveRow(from, to, after){\r\n\t\tvar fromRow = this.rowManager.findRow(from);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\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\t\r\n\tgetRows(active){\r\n\t\treturn this.rowManager.getComponents(active);\t\r\n\t}\r\n\t\r\n\t//get position of row in table\r\n\tgetRowPosition(index){\r\n\t\tvar row = this.rowManager.findRow(index);\r\n\t\t\r\n\t\tif(row){\r\n\t\t\treturn row.getPosition();\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\t\r\n\t/////////////// Column Functions ///////////////\r\n\tsetColumns(definition){\r\n\t\tthis.initGuard(false, \"To set initial columns please use the 'columns' property in the table constructor\");\r\n\t\t\r\n\t\tthis.columnManager.setColumns(definition);\r\n\t}\r\n\t\r\n\tgetColumns(structured){\r\n\t\treturn this.columnManager.getComponents(structured);\r\n\t}\r\n\t\r\n\tgetColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\t\t\r\n\t\tif(column){\r\n\t\t\treturn column.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\t\r\n\tgetColumnDefinitions(){\r\n\t\treturn this.columnManager.getDefinitionTree();\r\n\t}\r\n\t\r\n\tshowColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\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\t\r\n\thideColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field); \r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\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\t\r\n\ttoggleColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\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\t\r\n\taddColumn(definition, before, field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\r\n\t\treturn this.columnManager.addColumn(definition, before, column)\r\n\t\t\t.then((column) => {\r\n\t\t\t\treturn column.getComponent();\r\n\t\t\t});\r\n\t}\r\n\t\r\n\tdeleteColumn(field){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\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\t\r\n\tupdateColumnDefinition(field, definition){\r\n\t\tvar column = this.columnManager.findColumn(field);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\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\t\r\n\tmoveColumn(from, to, after){\r\n\t\tvar fromColumn = this.columnManager.findColumn(from),\r\n\t\ttoColumn = this.columnManager.findColumn(to);\r\n\t\t\r\n\t\tthis.initGuard();\r\n\t\t\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\t\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\t\t\t\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\t\r\n\t//////////// General Public Functions ////////////\r\n\t//redraw list without updating data\r\n\tredraw(force){\r\n\t\tthis.initGuard();\r\n\r\n\t\tthis.columnManager.redraw(force);\r\n\t\tthis.rowManager.redraw(force);\r\n\t}\r\n\t\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\t\r\n\t//////////////////// Event Bus ///////////////////\r\n\t\r\n\ton(key, callback){\r\n\t\tthis.externalEvents.subscribe(key, callback);\r\n\t}\r\n\t\r\n\toff(key, callback){\r\n\t\tthis.externalEvents.unsubscribe(key, callback);\r\n\t}\r\n\t\r\n\tdispatchEvent(){\r\n\t\tvar args = Array.from(arguments);\r\n\t\targs.shift();\r\n\t\t\r\n\t\tthis.externalEvents.dispatch(...arguments);\r\n\t}\r\n\r\n\t//////////////////// Alerts ///////////////////\r\n\r\n\talert(contents, type){\r\n\t\tthis.initGuard();\r\n\r\n\t\tthis.alertManager.alert(contents, type);\r\n\t}\r\n\r\n\tclearAlert(){\r\n\t\tthis.initGuard();\r\n\r\n\t\tthis.alertManager.clear();\r\n\t}\r\n\t\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\t\r\n\tmodule(key){\r\n\t\tvar mod = this.modules[key];\r\n\t\t\r\n\t\tif(!mod){\r\n\t\t\tconsole.error(\"Tabulator module not installed: \" + key);\r\n\t\t}\r\n\t\t\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;\r\n","export default {};","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nimport defaultAccessors 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\t\tif(Accessor.accessors[value]){\r\n\t\t\t\t\taccessor = Accessor.accessors[value];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Accessor Error - No such accessor found, ignoring: \", value);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\taccessor = value;\r\n\t\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, colComponent;\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\tcolComponent = column.getComponent();\r\n\t\t\t\t\t\tparams = typeof accessor.params === \"function\" ? accessor.params(value, data, type, colComponent, rowComponent) : accessor.params;\r\n\t\t\t\t\t\tcolumn.setFieldValue(data, accessor.accessor(value, data, type, params, colComponent, 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 = defaultAccessors;\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\t.then((response)=>{\r\n\t\t\t\t\tif(response.ok) {\r\n\t\t\t\t\t\tresponse.json()\r\n\t\t\t\t\t\t\t.then((data)=>{\r\n\t\t\t\t\t\t\t\tresolve(data);\r\n\t\t\t\t\t\t\t}).catch((error)=>{\r\n\t\t\t\t\t\t\t\treject(error);\r\n\t\t\t\t\t\t\t\tconsole.warn(\"Ajax Load Error - Invalid JSON returned\", error);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.error(\"Ajax Load Error - Connection Error: \" + response.status, response.statusText);\r\n\t\t\t\t\t\treject(response);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error)=>{\r\n\t\t\t\t\tconsole.error(\"Ajax Load Error - Connection Error: \", error);\r\n\t\t\t\t\treject(error);\r\n\t\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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.config = {}; //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\t\t\r\n\t\tthis.loaderPromise = false;\r\n\t\t\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\t\t\r\n\t\tthis.registerTableOption(\"ajaxRequesting\", function(){});\r\n\t\tthis.registerTableOption(\"ajaxResponse\", false);\r\n\t\t\r\n\t\tthis.contentTypeFormatters = Ajax.contentTypeFormatters;\r\n\t}\r\n\t\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\t\t\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\r\n\t\tthis.setDefaultConfig(this.table.options.ajaxConfig);\r\n\t\t\r\n\t\tthis.registerTableFunction(\"getAjaxUrl\", this.getUrl.bind(this));\r\n\t\t\r\n\t\tthis.subscribe(\"data-loading\", this.requestDataCheck.bind(this));\r\n\t\tthis.subscribe(\"data-params\", this.requestParams.bind(this));\r\n\t\tthis.subscribe(\"data-load\", this.requestData.bind(this));\r\n\t}\r\n\t\r\n\trequestParams(data, config, silent, params){\r\n\t\tvar ajaxParams = this.table.options.ajaxParams;\r\n\t\t\r\n\t\tif(ajaxParams){\r\n\t\t\tif(typeof ajaxParams === \"function\"){\r\n\t\t\t\tajaxParams = ajaxParams.call(this.table);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tparams = Object.assign(params, ajaxParams);\r\n\t\t}\t\t\r\n\t\t\r\n\t\treturn params;\r\n\t}\r\n\t\r\n\trequestDataCheck(data, params, config, silent){\r\n\t\treturn !!((!data && this.url) || typeof data === \"string\");\r\n\t}\r\n\t\r\n\trequestData(url, params, config, silent, previousData){\r\n\t\tvar ajaxConfig;\r\n\t\t\r\n\t\tif(!previousData && this.requestDataCheck(url)){\r\n\t\t\tif(url){\r\n\t\t\t\tthis.setUrl(url);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tajaxConfig = this.generateConfig(config);\r\n\t\t\t\r\n\t\t\treturn this.sendRequest(this.url, params, ajaxConfig);\r\n\t\t}else{\r\n\t\t\treturn previousData;\r\n\t\t}\r\n\t}\r\n\t\r\n\tsetDefaultConfig(config = {}){\r\n\t\tthis.config = Object.assign({}, Ajax.defaultConfig);\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\tObject.assign(this.config, config);\r\n\t\t}\r\n\t}\r\n\t\r\n\t//load config object\r\n\tgenerateConfig(config = {}){\r\n\t\tvar ajaxConfig = Object.assign({}, this.config);\r\n\t\t\r\n\t\tif(typeof config == \"string\"){\r\n\t\t\tajaxConfig.method = config;\r\n\t\t}else{\r\n\t\t\tObject.assign(ajaxConfig, config);\r\n\t\t}\r\n\t\t\r\n\t\treturn ajaxConfig;\r\n\t}\r\n\t\r\n\t//set request url\r\n\tsetUrl(url){\r\n\t\tthis.url = url;\r\n\t}\r\n\t\r\n\t//get request url\r\n\tgetUrl(){\r\n\t\treturn this.url;\r\n\t}\r\n\t\r\n\t//send ajax request\r\n\tsendRequest(url, params, config){\r\n\t\tif(this.table.options.ajaxRequesting.call(this.table, url, params) !== false){\r\n\t\t\treturn this.loaderPromise(url, config, params)\r\n\t\t\t\t.then((data)=>{\r\n\t\t\t\t\tif(this.table.options.ajaxResponse){\r\n\t\t\t\t\t\tdata = this.table.options.ajaxResponse.call(this.table, url, params, data);\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\treturn data;\r\n\t\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\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\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); //DEPRECATED - 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\tlist = 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.generateHTMLTable(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\t\tvalue = JSON.stringify(col.value);\r\n\t\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\t\tvalue = \"\";\r\n\t\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\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 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\t\tthis.pasteAction = Clipboard.pasteActions[action];\r\n\r\n\t\t\t\tif(!this.pasteAction){\r\n\t\t\t\t\tconsole.warn(\"Clipboard Error - No such paste action found:\", action);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\tthis.pasteAction = action;\r\n\t\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\t\tthis.pasteParser = Clipboard.pasteParsers[parser];\r\n\r\n\t\t\t\tif(!this.pasteParser){\r\n\t\t\t\t\tconsole.warn(\"Clipboard Error - No such paste parser found:\", parser);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\tthis.pasteParser = parser;\r\n\t\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-refreshed\", this.recalcActiveRowsRefresh.bind(this));\r\n\t\tthis.subscribe(\"table-redraw\", this.tableRedraw.bind(this));\r\n\t\tthis.subscribe(\"rows-visible\", this.visibleRows.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\tvisibleRows(viewable, rows){\r\n\t\tif(this.topRow){\r\n\t\t\trows.unshift(this.topRow);\r\n\t\t}\r\n\r\n\t\tif(this.botRow){\r\n\t\t\trows.push(this.botRow);\r\n\t\t}\r\n\t\r\n\t\treturn rows;\r\n\t}\r\n\r\n\trowsUpdated(row){\r\n\t\tif(this.table.options.groupBy){\r\n\t\t\tthis.recalcRowGroup(row);\r\n\t\t}else{\r\n\t\t\tthis.recalcActiveRows();\r\n\t\t}\r\n\t}\r\n\r\n\trecalcActiveRowsRefresh(){\r\n\t\tif(this.table.options.groupBy && this.table.options.dataTreeStartExpanded && this.table.options.dataTree){\r\n\t\t\tthis.recalcAll();\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\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\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\t\tif(ColumnCalcs.calculations[def.topCalc]){\r\n\t\t\t\t\t\tconfig.topCalc = ColumnCalcs.calculations[def.topCalc];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.warn(\"Column Calc Error - No such calculation found, ignoring: \", def.topCalc);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tconfig.topCalc = def.topCalc;\r\n\t\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\t\tif(ColumnCalcs.calculations[def.bottomCalc]){\r\n\t\t\t\t\t\tconfig.botCalc = ColumnCalcs.calculations[def.bottomCalc];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.warn(\"Column Calc Error - No such calculation found, ignoring: \", def.bottomCalc);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tconfig.botCalc = def.bottomCalc;\r\n\t\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.footerRemove(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.footerPrepend(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\tif(this.table.rtl){\r\n\t\t\t\tthis.botRow.getElement().style.marginRight = (left) + \"px\";\r\n\t\t\t}else{\r\n\t\t\t\tthis.botRow.getElement().style.marginLeft = (-left) + \"px\";\r\n\t\t\t}\t\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\", data);\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\", data);\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\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\t\t\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 && 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(row);\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//set field name of mock column\r\n\t\t\t\tthis.genColumn.setField(column.getField());\r\n\t\t\t\tthis.genColumn.hozAlign = column.hozAlign;\r\n\r\n\t\t\t\tif(column.definition[pos + \"CalcFormatter\"] && this.table.modExists(\"format\")){\r\n\t\t\t\t\tthis.genColumn.modules.format = {\r\n\t\t\t\t\t\tformatter: this.table.modules.format.getFormatter(column.definition[pos + \"CalcFormatter\"]),\r\n\t\t\t\t\t\tparams: column.definition[pos + \"CalcFormatterParams\"] || {},\r\n\t\t\t\t\t};\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.genColumn.modules.format = {\r\n\t\t\t\t\t\tformatter: this.table.modules.format.getFormatter(\"plaintext\"),\r\n\t\t\t\t\t\tparams:{}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//ensure css class definition is replicated to calculation cell\r\n\t\t\t\tthis.genColumn.definition.cssClass = column.definition.cssClass;\r\n\r\n\t\t\t\t//generate cell and assign to correct column\r\n\t\t\t\tvar cell = new Cell(this.genColumn, row);\r\n\t\t\t\tcell.getElement();\r\n\t\t\t\tcell.column = column;\r\n\t\t\t\tcell.setWidth();\r\n\r\n\t\t\t\tcolumn.cells.push(cell);\r\n\t\t\t\tcells.push(cell);\r\n\r\n\t\t\t\tif(!column.visible){\r\n\t\t\t\t\tcell.hide();\r\n\t\t\t\t}\r\n\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\nimport RowComponent from '../../core/row/RowComponent.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);//selecting 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\tthis.registerComponentFunction(\"row\", \"isTreeExpanded\", this.isRowExpanded.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\toptions = this.table.options;\r\n\r\n\t\t\tthis.field = options.dataTreeChildField;\r\n\t\t\tthis.indent = options.dataTreeChildIndent;\r\n\r\n\t\t\tif(this.options(\"movableRows\")){\r\n\t\t\t\tconsole.warn(\"The movableRows option is not available with dataTree enabled, moving of child rows could result in unpredictable behavior\");\r\n\t\t\t}\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\t\tthis.startOpen = function(row, index){\r\n\t\t\t\t\t\treturn options.dataTreeStartExpanded;\r\n\t\t\t\t\t};\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tthis.startOpen = options.dataTreeStartExpanded;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.startOpen = function(row, index){\r\n\t\t\t\t\t\treturn options.dataTreeStartExpanded[index];\r\n\t\t\t\t\t};\r\n\t\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-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(\"cell-value-updated\", this.cellValueChanged.bind(this));\r\n\t\t\tthis.subscribe(\"edit-cancelled\", this.cellValueChanged.bind(this));\r\n\t\t\tthis.subscribe(\"column-moving-rows\", this.columnMoving.bind(this));\r\n\t\t\tthis.subscribe(\"table-built\", this.initializeElementField.bind(this));\r\n\t\t\tthis.subscribe(\"table-redrawing\", this.tableRedrawing.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\ttableRedrawing(force){\r\n\t\tvar rows;\r\n\r\n\t\tif(force){\r\n\t\t\trows = this.table.rowManager.getRows();\r\n\t\t\t\r\n\t\t\trows.forEach((row) => {\r\n\t\t\t\tthis.reinitializeRowChildren(row);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeElementField(){\r\n\t\tvar firstCol = this.table.columnManager.getFirstVisibleColumn();\r\n\r\n\t\tthis.elementField = this.table.options.dataTreeElementColumn || (firstCol ? firstCol.field : false);\r\n\t}\r\n\t\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\tcellValueChanged(cell){\r\n\t\tvar field = cell.column.getField();\r\n\r\n\t\tif(field === this.elementField){\r\n\t\t\tthis.layoutRow(cell.row);\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\toldControl = config.controlEl;\r\n\r\n\t\tel = el || row.getCells()[0].getElement();\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\tisRowExpanded(row){\r\n\t\treturn row.modules.dataTree.open;\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\tgetTreeParentRoot(row){\r\n\t\treturn row.modules.dataTree && row.modules.dataTree.parent ? this.getTreeParentRoot(row.modules.dataTree.parent) : row;\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}else if(subject === null){\r\n\t\t\t\tmatch = false;\r\n\t\t\t}\r\n\r\n\t\t}else if(typeof subject == \"undefined\"){\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\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.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\t\tconsole.warn(\"Download Warning - CSV downloader cannot process row groups\");\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"calc\":\r\n\t\t\t\tconsole.warn(\"Download Warning - CSV downloader cannot process column calculations\");\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"header\":\r\n\t\t\t\trow.columns.forEach((col, i) => {\r\n\t\t\t\t\tif(col && col.depth === 1){\r\n\t\t\t\t\t\theaders[i] = typeof col.value == \"undefined\" || col.value === null ? \"\" : ('\"' + String(col.value).split('\"').join('\"\"') + '\"');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"row\":\r\n\t\t\t\trow.columns.forEach((col) => {\r\n\r\n\t\t\t\t\tif(col){\r\n\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\t\tcol.value = col.value !== null ? JSON.stringify(col.value) : \"\";\r\n\t\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\t\tcol.value = \"\";\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\titem.push('\"' + String(col.value).split('\"').join('\"\"') + '\"');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tfileContents.push(item.join(delimiter));\r\n\t\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}\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\t\tbreak;\r\n\r\n\t\t\tcase \"group\":\r\n\t\t\t\tconsole.warn(\"Download Warning - JSON downloader cannot process row groups\");\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"calc\":\r\n\t\t\t\tconsole.warn(\"Download Warning - JSON downloader cannot process column calculations\");\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"row\":\r\n\t\t\t\trow.columns.forEach((col) => {\r\n\t\t\t\t\tif(col){\r\n\t\t\t\t\t\titem[col.component.getTitleDownload() || col.component.getField()] = col.value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tfileContents.push(item);\r\n\t\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.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\tswitch(row.type){\r\n\t\t\tcase \"header\":\r\n\t\t\t\theader.push(parseRow(row));\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"group\":\r\n\t\t\t\tbody.push(parseRow(row, rowGroupStyles));\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"calc\":\r\n\t\t\t\tbody.push(parseRow(row, rowCalcStyles));\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"row\":\r\n\t\t\t\tbody.push(parseRow(row));\r\n\t\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\t\tcol.value = col.value !== null ? JSON.stringify(col.value) : \"\";\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"undefined\":\r\n\t\t\t\t\t\tcol.value = \"\";\r\n\t\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}\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.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.documentProcessing){\r\n\t\toptions.documentProcessing(doc);\r\n\t}\r\n\r\n\tsetFileContents(doc.output(\"arraybuffer\"), \"application/pdf\");\r\n}\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\tif(col.height > 1 || col.width > 1){\r\n\t\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\t}\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\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\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.generateHTMLTable(list), \"text/html\");\r\n\t}\r\n}","export default function (list, options, setFileContents) {\r\n\tconst fileContents = [];\r\n\r\n\tlist.forEach((row) => {\r\n\t\tconst item = {};\r\n\r\n\t\tswitch (row.type) {\r\n\t\t\tcase \"header\":\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"group\":\r\n\t\t\t\tconsole.warn(\"Download Warning - JSON downloader cannot process row groups\");\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"calc\":\r\n\t\t\t\tconsole.warn(\"Download Warning - JSON downloader cannot process column calculations\");\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"row\":\r\n\t\t\t\trow.columns.forEach((col) => {\r\n\t\t\t\t\tif (col) {\r\n\t\t\t\t\t\titem[col.component.getTitleDownload() || col.component.getField()] = col.value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tfileContents.push(JSON.stringify(item));\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tsetFileContents(fileContents.join(\"\\n\"), \"application/x-ndjson\");\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\nimport jsonLines from './downloaders/jsonLines.js';\r\n\r\nexport default {\r\n\tcsv:csv,\r\n\tjson:json,\r\n\tjsonLines:jsonLines,\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(\"downloadEncoder\", function(data, mimeType){\r\n\t\t\treturn new Blob([data],{type:mimeType});\r\n\t\t}); //function to manipulate download data\r\n\t\tthis.registerTableOption(\"downloadReady\", undefined); //warn of function deprecation\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.deprecatedOptionsCheck();\r\n\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\tdeprecatedOptionsCheck(){\r\n\t\tthis.deprecationCheck(\"downloadReady\", \"downloadEncoder\");\r\n\t}\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 = this.table.options.downloadEncoder(data, mime);\r\n\r\n\t\tif(blob){\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\tfilename = filename || \"Tabulator.\" + (typeof type === \"function\" ? \"txt\" : type);\r\n\t\t\t\t\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\t\tthis.download(data.type, \"\", data.options, data.active, data.intercept);\r\n\t\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\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\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\t\tif(char.toUpperCase() == char.toLowerCase()){\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\te.stopPropagation();\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\tbreak;\r\n\r\n\t\t\t\t\tcase maskNumber:\r\n\t\t\t\t\t\tif(isNaN(char)){\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\te.stopPropagation();\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\tbreak;\r\n\r\n\t\t\t\t\tcase maskWildcard:\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif(char !== mask[index]){\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\treturn false;\r\n\t\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;\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\r\n\t\tif(editorParams.selectContents){\r\n\t\t\tinput.select();\r\n\t\t}\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\t\tonChange(e);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 27:\r\n\t\t\t\tcancel();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\t\te.stopPropagation();\r\n\t\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\tvar cellValue = cell.getValue(),\r\n\tvertNav = editorParams.verticalNavigation || \"hybrid\",\r\n\tvalue = String(cellValue !== null && typeof cellValue !== \"undefined\" ? cellValue : \"\"),\r\n\tinput = document.createElement(\"textarea\"),\r\n\tscrollHeight = 0;\r\n\r\n\t//create and style input\r\n\tinput.style.display = \"block\";\r\n\tinput.style.padding = \"2px\";\r\n\tinput.style.height = \"100%\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\tinput.style.whiteSpace = \"pre-wrap\";\r\n\tinput.style.resize = \"none\";\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\tonRendered(function(){\r\n\t\tinput.focus({preventScroll: true});\r\n\t\tinput.style.height = \"100%\";\r\n\r\n\t\tinput.scrollHeight;\r\n\t\tinput.style.height = input.scrollHeight + \"px\";\r\n\t\tcell.getRow().normalizeHeight();\r\n\r\n\t\tif(editorParams.selectContents){\r\n\t\t\tinput.select();\r\n\t\t}\r\n\t});\r\n\r\n\tfunction onChange(e){\r\n\r\n\t\tif(((cellValue === null || typeof cellValue === \"undefined\") && input.value !== \"\") || input.value !== cellValue){\r\n\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\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\tcell.getRow().normalizeHeight();\r\n\t\t\t},300);\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\tinput.addEventListener(\"keyup\", function(){\r\n\r\n\t\tinput.style.height = \"\";\r\n\r\n\t\tvar heightNow = input.scrollHeight;\r\n\r\n\t\tinput.style.height = heightNow + \"px\";\r\n\r\n\t\tif(heightNow != scrollHeight){\r\n\t\t\tscrollHeight = heightNow;\r\n\t\t\tcell.getRow().normalizeHeight();\r\n\t\t}\r\n\t});\r\n\r\n\tinput.addEventListener(\"keydown\", function(e){\r\n\r\n\t\tswitch(e.keyCode){\r\n\r\n\t\t\tcase 13:\r\n\t\t\t\tif(e.shiftKey && editorParams.shiftEnterSubmit){\r\n\t\t\t\t\tonChange(e);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 27:\r\n\t\t\t\tcancel();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 38: //up arrow\r\n\t\t\t\tif(vertNav == \"editor\" || (vertNav == \"hybrid\" && input.selectionStart)){\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 40: //down arrow\r\n\t\t\t\tif(vertNav == \"editor\" || (vertNav == \"hybrid\" && input.selectionStart !== input.value.length)){\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\t\te.stopPropagation();\r\n\t\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//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\r\n\t\tif(editorParams.selectContents){\r\n\t\t\tinput.select();\r\n\t\t}\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\t\tonChange();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 27:\r\n\t\t\t\tcancel();\r\n\t\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\t\tif(vertNav == \"editor\"){\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\t\te.stopPropagation();\r\n\t\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\t\tonChange();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 27:\r\n\t\t\t\tcancel();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\treturn input;\r\n}","//input element\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar inputFormat = editorParams.format,\r\n\tDT = inputFormat ? (window.DateTime || luxon.DateTime) : null;\r\n\t\r\n\t//create and style input\r\n\tvar cellValue = cell.getValue(),\r\n\tinput = document.createElement(\"input\");\r\n\t\r\n\tfunction convertDate(value){\r\n\t\tvar newDatetime;\r\n\t\t\r\n\t\tif(DT.isDateTime(value)){\r\n\t\t\tnewDatetime = value;\r\n\t\t}else if(inputFormat === \"iso\"){\r\n\t\t\tnewDatetime = DT.fromISO(String(value));\r\n\t\t}else{\r\n\t\t\tnewDatetime = DT.fromFormat(String(value), inputFormat);\r\n\t\t}\r\n\t\t\r\n\t\treturn newDatetime.toFormat(\"yyyy-MM-dd\");\r\n\t}\r\n\t\r\n\tinput.type = \"date\";\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.max){\r\n\t\tinput.setAttribute(\"max\", inputFormat ? convertDate(editorParams.max) : editorParams.max);\r\n\t}\r\n\r\n\tif(editorParams.min){\r\n\t\tinput.setAttribute(\"min\", inputFormat ? convertDate(editorParams.min) : editorParams.min);\r\n\t}\r\n\t\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\t\r\n\tcellValue = typeof cellValue !== \"undefined\" ? cellValue : \"\";\r\n\t\r\n\tif(inputFormat){\r\n\t\tif(DT){\t\t\r\n\t\t\tcellValue = convertDate(cellValue);\t\t\t\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Editor Error - 'date' editor 'inputFormat' param is dependant on luxon.js\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tinput.value = cellValue;\r\n\t\r\n\tonRendered(function(){\r\n\t\tinput.focus({preventScroll: true});\r\n\t\tinput.style.height = \"100%\";\r\n\t\t\r\n\t\tif(editorParams.selectContents){\r\n\t\t\tinput.select();\r\n\t\t}\r\n\t});\r\n\t\r\n\tfunction onChange(e){\r\n\t\tvar value = input.value;\r\n\t\t\r\n\t\tif(((cellValue === null || typeof cellValue === \"undefined\") && value !== \"\") || value !== cellValue){\r\n\t\t\t\r\n\t\t\tif(value && inputFormat){\r\n\t\t\t\tvalue = DT.fromFormat(String(value), \"yyyy-MM-dd\").toFormat(inputFormat);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(success(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\t\r\n\t//submit new value on blur or change\r\n\tinput.addEventListener(\"change\", onChange);\r\n\tinput.addEventListener(\"blur\", onChange);\r\n\t\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\t\tonChange(e);\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 27:\r\n\t\t\t\tcancel();\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\t\r\n\treturn input;\r\n}","//input element\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar inputFormat = editorParams.format,\r\n\tDT = inputFormat ? (window.DateTime || luxon.DateTime) : null, \r\n\tnewDatetime;\r\n\r\n\t//create and style input\r\n\tvar cellValue = cell.getValue(),\r\n\tinput = document.createElement(\"input\");\r\n\t\r\n\tinput.type = \"time\";\r\n\tinput.style.padding = \"4px\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\t\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\t\r\n\tcellValue = typeof cellValue !== \"undefined\" ? cellValue : \"\";\r\n\t\r\n\tif(inputFormat){\r\n\t\tif(DT){\r\n\t\t\tif(DT.isDateTime(cellValue)){\r\n\t\t\t\tnewDatetime = cellValue;\r\n\t\t\t}else if(inputFormat === \"iso\"){\r\n\t\t\t\tnewDatetime = DT.fromISO(String(cellValue));\r\n\t\t\t}else{\r\n\t\t\t\tnewDatetime = DT.fromFormat(String(cellValue), inputFormat);\r\n\t\t\t}\r\n\r\n\t\t\tcellValue = newDatetime.toFormat(\"hh:mm\");\r\n\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Editor Error - 'date' editor 'inputFormat' param is dependant on luxon.js\");\r\n\t\t}\r\n\t}\r\n\r\n\tinput.value = cellValue;\r\n\t\r\n\tonRendered(function(){\r\n\t\tinput.focus({preventScroll: true});\r\n\t\tinput.style.height = \"100%\";\r\n\t\t\r\n\t\tif(editorParams.selectContents){\r\n\t\t\tinput.select();\r\n\t\t}\r\n\t});\r\n\t\r\n\tfunction onChange(e){\r\n\t\tvar value = input.value;\r\n\r\n\t\tif(((cellValue === null || typeof cellValue === \"undefined\") && value !== \"\") || value !== cellValue){\r\n\r\n\t\t\tif(value && inputFormat){\r\n\t\t\t\tvalue = DT.fromFormat(String(value), \"hh:mm\").toFormat(inputFormat);\r\n\t\t\t}\r\n\r\n\t\t\tif(success(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\t\r\n\t//submit new value on blur or change\r\n\tinput.addEventListener(\"change\", onChange);\r\n\tinput.addEventListener(\"blur\", onChange);\r\n\t\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\t\tonChange(e);\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 27:\r\n\t\t\t\tcancel();\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\t\r\n\treturn input;\r\n}","//input element\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar inputFormat = editorParams.format,\r\n\tDT = inputFormat ? (window.DateTime || luxon.DateTime) : null, \r\n\tnewDatetime;\r\n\r\n\t//create and style input\r\n\tvar cellValue = cell.getValue(),\r\n\tinput = document.createElement(\"input\");\r\n\t\r\n\tinput.type = \"datetime-local\";\r\n\tinput.style.padding = \"4px\";\r\n\tinput.style.width = \"100%\";\r\n\tinput.style.boxSizing = \"border-box\";\r\n\t\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\t\r\n\tcellValue = typeof cellValue !== \"undefined\" ? cellValue : \"\";\r\n\t\r\n\tif(inputFormat){\r\n\t\tif(DT){\r\n\t\t\tif(DT.isDateTime(cellValue)){\r\n\t\t\t\tnewDatetime = cellValue;\r\n\t\t\t}else if(inputFormat === \"iso\"){\r\n\t\t\t\tnewDatetime = DT.fromISO(String(cellValue));\r\n\t\t\t}else{\r\n\t\t\t\tnewDatetime = DT.fromFormat(String(cellValue), inputFormat);\r\n\t\t\t}\r\n\r\n\t\t\tcellValue = newDatetime.toFormat(\"yyyy-MM-dd\") + \"T\" + newDatetime.toFormat(\"hh:mm\");\r\n\t\t}else{\r\n\t\t\tconsole.error(\"Editor Error - 'date' editor 'inputFormat' param is dependant on luxon.js\");\r\n\t\t}\r\n\t}\r\n\r\n\tinput.value = cellValue;\r\n\t\r\n\tonRendered(function(){\r\n\t\tinput.focus({preventScroll: true});\r\n\t\tinput.style.height = \"100%\";\r\n\t\t\r\n\t\tif(editorParams.selectContents){\r\n\t\t\tinput.select();\r\n\t\t}\r\n\t});\r\n\t\r\n\tfunction onChange(e){\r\n\t\tvar value = input.value;\r\n\r\n\t\tif(((cellValue === null || typeof cellValue === \"undefined\") && value !== \"\") || value !== cellValue){\r\n\r\n\t\t\tif(value && inputFormat){\r\n\t\t\t\tvalue = DT.fromISO(String(value)).toFormat(inputFormat);\r\n\t\t\t}\r\n\r\n\t\t\tif(success(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\t\r\n\t//submit new value on blur or change\r\n\tinput.addEventListener(\"change\", onChange);\r\n\tinput.addEventListener(\"blur\", onChange);\r\n\t\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\t\tonChange(e);\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 27:\r\n\t\t\t\tcancel();\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 35:\r\n\t\t\tcase 36:\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\t\r\n\treturn input;\r\n}","import maskInput from './inputMask.js';\r\nimport urlBuilder from '../Ajax/defaults/urlGenerator.js';\r\n\r\nexport default class Edit{\r\n\tconstructor(editor, cell, onRendered, success, cancel, editorParams){\r\n\t\tthis.edit = editor;\r\n\t\tthis.table = editor.table;\r\n\t\tthis.cell = cell;\r\n\t\tthis.params = this._initializeParams(editorParams);\r\n\t\t\r\n\t\tthis.data = [];\r\n\t\tthis.displayItems = [];\r\n\t\tthis.currentItems = [];\r\n\t\tthis.focusedItem = null;\r\n\t\t\r\n\t\tthis.input = this._createInputElement();\r\n\t\tthis.listEl = this._createListElement();\r\n\t\t\r\n\t\tthis.initialValues = null; \r\n\t\t\r\n\t\tthis.isFilter = !cell._getSelf;\r\n\t\t\r\n\t\tthis.filterTimeout = null;\r\n\t\tthis.filtered = false;\r\n\t\tthis.typing = false;\r\n\t\t\r\n\t\tthis.values = []; \r\n\t\tthis.popup = null; \r\n\t\t\r\n\t\tthis.listIteration = 0;\r\n\t\t\r\n\t\tthis.lastAction=\"\";\r\n\t\t\r\n\t\tthis.blurable = true;\r\n\t\t\r\n\t\tthis.actions = {\r\n\t\t\tsuccess:success,\r\n\t\t\tcancel:cancel\r\n\t\t};\r\n\t\t\r\n\t\tthis._deprecatedOptionsCheck();\r\n\t\tthis._initializeValue();\r\n\t\t\r\n\t\tonRendered(this._onRendered.bind(this));\r\n\t}\r\n\t\r\n\t_deprecatedOptionsCheck(){\r\n\t\tif(this.params.listItemFormatter){\r\n\t\t\tthis.cell.getTable().deprecationAdvisor.msg(\"The listItemFormatter editor param has been deprecated, please see the latest editor documentation for updated options\");\r\n\t\t}\r\n\t\t\r\n\t\tif(this.params.sortValuesList){\r\n\t\t\tthis.cell.getTable().deprecationAdvisor.msg(\"The sortValuesList editor param has been deprecated, please see the latest editor documentation for updated options\");\r\n\t\t}\r\n\t\t\r\n\t\tif(this.params.searchFunc){\r\n\t\t\tthis.cell.getTable().deprecationAdvisor.msg(\"The searchFunc editor param has been deprecated, please see the latest editor documentation for updated options\");\r\n\t\t}\r\n\t\t\r\n\t\tif(this.params.searchingPlaceholder){\r\n\t\t\tthis.cell.getTable().deprecationAdvisor.msg(\"The searchingPlaceholder editor param has been deprecated, please see the latest editor documentation for updated options\");\r\n\t\t}\r\n\t}\r\n\t\r\n\t_initializeValue(){\r\n\t\tvar initialValue = this.cell.getValue();\r\n\t\t\r\n\t\tif(typeof initialValue === \"undefined\" && typeof this.params.defaultValue !== \"undefined\"){\r\n\t\t\tinitialValue = this.params.defaultValue;\r\n\t\t}\r\n\t\t\r\n\t\tthis.initialValues = this.params.multiselect ? initialValue : [initialValue];\r\n\t\t\r\n\t\tif(this.isFilter){\r\n\t\t\tthis.input.value = this.initialValues ? this.initialValues.join(\",\") : \"\";\r\n\t\t\tthis.headerFilterInitialListGen(); \r\n\t\t}\r\n\t}\r\n\t\r\n\t_onRendered(){\r\n\t\tvar cellEl = this.cell.getElement();\r\n\t\t\r\n\t\tfunction clickStop(e){\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\t\t\r\n\t\tthis.input.style.height = \"100%\";\r\n\t\tthis.input.focus({preventScroll: true});\r\n\t\t\r\n\t\t\r\n\t\tcellEl.addEventListener(\"click\", clickStop);\r\n\t\t\r\n\t\tsetTimeout(() => {\r\n\t\t\tcellEl.removeEventListener(\"click\", clickStop);\r\n\t\t}, 1000);\r\n\t\t\r\n\t\tthis.input.addEventListener(\"mousedown\", this._preventPopupBlur.bind(this));\r\n\t}\r\n\t\r\n\t_createListElement(){\r\n\t\tvar listEl = document.createElement(\"div\");\r\n\t\tlistEl.classList.add(\"tabulator-edit-list\");\r\n\t\t\r\n\t\tlistEl.addEventListener(\"mousedown\", this._preventBlur.bind(this));\r\n\t\tlistEl.addEventListener(\"keydown\", this._inputKeyDown.bind(this));\r\n\t\t\r\n\t\treturn listEl;\r\n\t}\r\n\t\r\n\t_setListWidth(){\r\n\t\tvar element = this.isFilter ? this.input : this.cell.getElement();\r\n\t\t\r\n\t\tthis.listEl.style.minWidth = element.offsetWidth + \"px\";\r\n\t\t\r\n\t\tif(this.params.maxWidth){\r\n\t\t\tif(this.params.maxWidth === true){\r\n\t\t\t\tthis.listEl.style.maxWidth = element.offsetWidth + \"px\";\r\n\t\t\t}else if(typeof this.params.maxWidth === \"number\"){\r\n\t\t\t\tthis.listEl.style.maxWidth = this.params.maxWidth + \"px\";\r\n\t\t\t}else{\r\n\t\t\t\tthis.listEl.style.maxWidth = this.params.maxWidth;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t}\r\n\t\r\n\t_createInputElement(){\r\n\t\tvar attribs = this.params.elementAttributes;\r\n\t\tvar input = document.createElement(\"input\");\r\n\t\t\r\n\t\tinput.setAttribute(\"type\", this.params.clearable ? \"search\" : \"text\");\r\n\t\t\r\n\t\tinput.style.padding = \"4px\";\r\n\t\tinput.style.width = \"100%\";\r\n\t\tinput.style.boxSizing = \"border-box\";\r\n\t\t\r\n\t\tif(!this.params.autocomplete){\r\n\t\t\tinput.style.cursor = \"default\";\r\n\t\t\tinput.style.caretColor = \"transparent\";\r\n\t\t\t// input.readOnly = (this.edit.currentCell != false);\r\n\t\t}\r\n\t\t\r\n\t\tif(attribs && typeof attribs == \"object\"){\r\n\t\t\tfor (let key in attribs){\r\n\t\t\t\tif(key.charAt(0) == \"+\"){\r\n\t\t\t\t\tkey = key.slice(1);\r\n\t\t\t\t\tinput.setAttribute(key, input.getAttribute(key) + attribs[\"+\" + key]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tinput.setAttribute(key, attribs[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(this.params.mask){\r\n\t\t\tmaskInput(input, this.params);\r\n\t\t}\r\n\t\t\r\n\t\tthis._bindInputEvents(input);\r\n\t\t\r\n\t\treturn input;\r\n\t}\r\n\t\r\n\t_initializeParams(params){\r\n\t\tvar valueKeys = [\"values\", \"valuesURL\", \"valuesLookup\"],\r\n\t\tvalueCheck;\r\n\t\t\r\n\t\tparams = Object.assign({}, params);\r\n\t\t\r\n\t\tparams.verticalNavigation = params.verticalNavigation || \"editor\";\r\n\t\tparams.placeholderLoading = typeof params.placeholderLoading === \"undefined\" ? \"Searching ...\" : params.placeholderLoading;\r\n\t\tparams.placeholderEmpty = typeof params.placeholderEmpty === \"undefined\" ? \"No Results Found\" : params.placeholderEmpty;\r\n\t\tparams.filterDelay = typeof params.filterDelay === \"undefined\" ? 300 : params.filterDelay;\r\n\t\t\r\n\t\tparams.emptyValue = Object.keys(params).includes(\"emptyValue\") ? params.emptyValue : \"\";\r\n\t\t\r\n\t\tvalueCheck = Object.keys(params).filter(key => valueKeys.includes(key)).length;\r\n\t\t\r\n\t\tif(!valueCheck){\r\n\t\t\tconsole.warn(\"list editor config error - either the values, valuesURL, or valuesLookup option must be set\");\r\n\t\t}else if(valueCheck > 1){\r\n\t\t\tconsole.warn(\"list editor config error - only one of the values, valuesURL, or valuesLookup options can be set on the same editor\");\r\n\t\t}\r\n\t\t\r\n\t\tif(params.autocomplete){\r\n\t\t\tif(params.multiselect){\r\n\t\t\t\tparams.multiselect = false;\r\n\t\t\t\tconsole.warn(\"list editor config error - multiselect option is not available when autocomplete is enabled\");\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tif(params.freetext){\r\n\t\t\t\tparams.freetext = false;\r\n\t\t\t\tconsole.warn(\"list editor config error - freetext option is only available when autocomplete is enabled\");\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(params.filterFunc){\r\n\t\t\t\tparams.filterFunc = false;\r\n\t\t\t\tconsole.warn(\"list editor config error - filterFunc option is only available when autocomplete is enabled\");\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(params.filterRemote){\r\n\t\t\t\tparams.filterRemote = false;\r\n\t\t\t\tconsole.warn(\"list editor config error - filterRemote option is only available when autocomplete is enabled\");\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(params.mask){\r\n\t\t\t\tparams.mask = false;\r\n\t\t\t\tconsole.warn(\"list editor config error - mask option is only available when autocomplete is enabled\");\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(params.allowEmpty){\r\n\t\t\t\tparams.allowEmpty = false;\r\n\t\t\t\tconsole.warn(\"list editor config error - allowEmpty option is only available when autocomplete is enabled\");\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(params.listOnEmpty){\r\n\t\t\t\tparams.listOnEmpty = false;\r\n\t\t\t\tconsole.warn(\"list editor config error - listOnEmpty option is only available when autocomplete is enabled\");\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(params.filterRemote && !(typeof params.valuesLookup === \"function\" || params.valuesURL)){\r\n\t\t\tparams.filterRemote = false;\r\n\t\t\tconsole.warn(\"list editor config error - filterRemote option should only be used when values list is populated from a remote source\");\r\n\t\t}\r\n\t\treturn params;\r\n\t}\r\n\t//////////////////////////////////////\r\n\t////////// Event Handling ////////////\r\n\t//////////////////////////////////////\r\n\t\r\n\t_bindInputEvents(input){\r\n\t\tinput.addEventListener(\"focus\", this._inputFocus.bind(this));\r\n\t\tinput.addEventListener(\"click\", this._inputClick.bind(this));\r\n\t\tinput.addEventListener(\"blur\", this._inputBlur.bind(this));\r\n\t\tinput.addEventListener(\"keydown\", this._inputKeyDown.bind(this));\r\n\t\tinput.addEventListener(\"search\", this._inputSearch.bind(this));\r\n\t\t\r\n\t\tif(this.params.autocomplete){\r\n\t\t\tinput.addEventListener(\"keyup\", this._inputKeyUp.bind(this));\r\n\t\t}\r\n\t}\r\n\t\r\n\t\r\n\t_inputFocus(e){\r\n\t\tthis.rebuildOptionsList();\r\n\t}\r\n\t\r\n\t_filter(){\r\n\t\tif(this.params.filterRemote){\r\n\t\t\tclearTimeout(this.filterTimeout);\r\n\t\t\t\r\n\t\t\tthis.filterTimeout = setTimeout(() => {\r\n\t\t\t\tthis.rebuildOptionsList();\r\n\t\t\t}, this.params.filterDelay);\r\n\t\t}else{\r\n\t\t\tthis._filterList();\r\n\t\t}\r\n\t}\r\n\t\r\n\t_inputClick(e){\r\n\t\te.stopPropagation();\r\n\t}\r\n\t\r\n\t_inputBlur(e){\r\n\t\tif(this.blurable){\r\n\t\t\tif(this.popup){\r\n\t\t\t\tthis.popup.hide();\r\n\t\t\t}else{\r\n\t\t\t\tthis._resolveValue(true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_inputSearch(){\r\n\t\tthis._clearChoices();\r\n\t}\r\n\t\r\n\t_inputKeyDown(e){\r\n\t\tswitch(e.keyCode){\r\n\t\t\t\r\n\t\t\tcase 38: //up arrow\r\n\t\t\t\tthis._keyUp(e);\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 40: //down arrow\r\n\t\t\t\tthis._keyDown(e);\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 37: //left arrow\r\n\t\t\tcase 39: //right arrow\r\n\t\t\t\tthis._keySide(e);\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 13: //enter\r\n\t\t\t\tthis._keyEnter();\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 27: //escape\r\n\t\t\t\tthis._keyEsc();\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 36: //home\r\n\t\t\tcase 35: //end\r\n\t\t\t\tthis._keyHomeEnd(e);\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase 9: //tab\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tdefault:\r\n\t\t\t\tthis._keySelectLetter(e);\r\n\t\t}\r\n\t}\r\n\t\r\n\t_inputKeyUp(e){\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\t\tbreak;\r\n\t\t\t\r\n\t\t\tdefault:\r\n\t\t\t\tthis._keyAutoCompLetter(e);\r\n\t\t}\r\n\t}\r\n\t\r\n\t_preventPopupBlur(){\r\n\t\tif(this.popup){\r\n\t\t\tthis.popup.blockHide();\r\n\t\t}\r\n\t\t\r\n\t\tsetTimeout(() =>{\r\n\t\t\tif(this.popup){\r\n\t\t\t\tthis.popup.restoreHide();\r\n\t\t\t}\r\n\t\t}, 10);\r\n\t}\r\n\t\r\n\t_preventBlur(){\r\n\t\tthis.blurable = false;\r\n\t\t\r\n\t\tsetTimeout(() =>{\r\n\t\t\tthis.blurable = true;\r\n\t\t}, 10);\r\n\t}\r\n\t\r\n\t//////////////////////////////////////\r\n\t//////// Keyboard Navigation /////////\r\n\t//////////////////////////////////////\r\n\t\r\n\t_keyUp(e){\r\n\t\tvar index = this.displayItems.indexOf(this.focusedItem);\r\n\t\t\r\n\t\tif(this.params.verticalNavigation == \"editor\" || (this.params.verticalNavigation == \"hybrid\" && index)){\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t\t\r\n\t\t\tif(index > 0){\r\n\t\t\t\tthis._focusItem(this.displayItems[index - 1]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_keyDown(e){\r\n\t\tvar index = this.displayItems.indexOf(this.focusedItem);\r\n\t\t\r\n\t\tif(this.params.verticalNavigation == \"editor\" || (this.params.verticalNavigation == \"hybrid\" && index < this.displayItems.length - 1)){\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t\t\r\n\t\t\tif(index < this.displayItems.length - 1){\r\n\t\t\t\tif(index == -1){\r\n\t\t\t\t\tthis._focusItem(this.displayItems[0]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis._focusItem(this.displayItems[index + 1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_keySide(e){\r\n\t\te.stopImmediatePropagation();\r\n\t\te.stopPropagation();\r\n\t\te.preventDefault();\r\n\t}\r\n\t\r\n\t_keyEnter(e){\r\n\t\tif(this.params.autocomplete && this.lastAction === \"typing\"){\r\n\t\t\tthis._resolveValue(true);\r\n\t\t}else{\r\n\t\t\tif(this.focusedItem){\r\n\t\t\t\tthis._chooseItem(this.focusedItem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_keyEsc(e){\r\n\t\tthis._cancel();\r\n\t}\r\n\t\r\n\t_keyHomeEnd(e){\r\n\t\tif(this.params.autocomplete){\r\n\t\t\t//prevent table navigation while using input element\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t}\r\n\t}\r\n\t\r\n\t_keySelectLetter(e){\r\n\t\tif(!this.params.autocomplete){\r\n\t\t\t// if(this.edit.currentCell === false){\r\n\t\t\te.preventDefault();\r\n\t\t\t// }\r\n\t\t\t\r\n\t\t\tif(e.keyCode >= 38 && e.keyCode <= 90){\r\n\t\t\t\tthis._scrollToValue(e.keyCode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_keyAutoCompLetter(e){\r\n\t\tthis._filter();\r\n\t\tthis.lastAction = \"typing\";\r\n\t\tthis.typing = true;\r\n\t}\r\n\t\r\n\t\r\n\t_scrollToValue(char){\r\n\t\tclearTimeout(this.filterTimeout);\r\n\t\t\r\n\t\tvar character = String.fromCharCode(char).toLowerCase();\r\n\t\tthis.filterTerm += character.toLowerCase();\r\n\t\t\r\n\t\tvar match = this.displayItems.find((item) => {\r\n\t\t\treturn typeof item.label !== \"undefined\" && item.label.toLowerCase().startsWith(this.filterTerm);\r\n\t\t});\r\n\t\t\r\n\t\tif(match){\r\n\t\t\tthis._focusItem(match);\r\n\t\t}\r\n\t\t\r\n\t\tthis.filterTimeout = setTimeout(() => {\r\n\t\t\tthis.filterTerm = \"\";\r\n\t\t}, 800);\r\n\t}\r\n\t\r\n\t_focusItem(item){\r\n\t\tthis.lastAction = \"focus\";\r\n\t\t\r\n\t\tif(this.focusedItem && this.focusedItem.element){\r\n\t\t\tthis.focusedItem.element.classList.remove(\"focused\");\r\n\t\t}\r\n\t\t\r\n\t\tthis.focusedItem = item;\r\n\t\t\r\n\t\tif(item && item.element){\r\n\t\t\titem.element.classList.add(\"focused\");\r\n\t\t\titem.element.scrollIntoView({behavior: 'smooth', block: 'nearest', inline: 'start'});\r\n\t\t}\r\n\t}\r\n\t\r\n\t\r\n\t//////////////////////////////////////\r\n\t/////// Data List Generation /////////\r\n\t//////////////////////////////////////\r\n\theaderFilterInitialListGen(){\r\n\t\tthis._generateOptions(true);\r\n\t}\r\n\t\r\n\trebuildOptionsList(){\r\n\t\tthis._generateOptions()\r\n\t\t\t.then(this._sortOptions.bind(this))\r\n\t\t\t.then(this._buildList.bind(this))\r\n\t\t\t.then(this._showList.bind(this))\r\n\t\t\t.catch((e) => {\r\n\t\t\t\tif(!Number.isInteger(e)){\r\n\t\t\t\t\tconsole.error(\"List generation error\", e);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\t\r\n\t_filterList(){\r\n\t\tthis._buildList(this._filterOptions());\r\n\t\tthis._showList();\r\n\t}\r\n\t\r\n\t_generateOptions(silent){\r\n\t\tvar values = [];\r\n\t\tvar iteration = ++ this.listIteration;\r\n\t\t\r\n\t\tthis.filtered = false;\r\n\t\t\r\n\t\tif(this.params.values){\r\n\t\t\tvalues = this.params.values;\r\n\t\t}else if (this.params.valuesURL){\r\n\t\t\tvalues = this._ajaxRequest(this.params.valuesURL, this.input.value);\r\n\t\t}else{\r\n\t\t\tif(typeof this.params.valuesLookup === \"function\"){\r\n\t\t\t\tvalues = this.params.valuesLookup(this.cell, this.input.value);\r\n\t\t\t}else if(this.params.valuesLookup){\r\n\t\t\t\tvalues = this._uniqueColumnValues(this.params.valuesLookupField);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(values instanceof Promise){\r\n\t\t\tif(!silent){\r\n\t\t\t\tthis._addPlaceholder(this.params.placeholderLoading);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn values.then()\r\n\t\t\t\t.then((responseValues) => {\r\n\t\t\t\t\tif(this.listIteration === iteration){\r\n\t\t\t\t\t\treturn this._parseList(responseValues);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\treturn Promise.reject(iteration);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}else{\r\n\t\t\treturn Promise.resolve(this._parseList(values));\r\n\t\t}\r\n\t}\r\n\t\r\n\t_addPlaceholder(contents){\r\n\t\tvar placeholder = document.createElement(\"div\");\r\n\t\t\r\n\t\tif(typeof contents === \"function\"){\r\n\t\t\tcontents = contents(this.cell.getComponent(), this.listEl);\r\n\t\t}\r\n\t\t\r\n\t\tif(contents){\r\n\t\t\tthis._clearList();\r\n\t\t\t\r\n\t\t\tif(contents instanceof HTMLElement){\r\n\t\t\t\tplaceholder = contents;\r\n\t\t\t}else{\r\n\t\t\t\tplaceholder.classList.add(\"tabulator-edit-list-placeholder\");\r\n\t\t\t\tplaceholder.innerHTML = contents;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.listEl.appendChild(placeholder);\r\n\t\t\t\r\n\t\t\tthis._showList();\r\n\t\t}\r\n\t}\r\n\t\r\n\t_ajaxRequest(url, term){\r\n\t\tvar params = this.params.filterRemote ? {term:term} : {};\r\n\t\turl = urlBuilder(url, {}, params);\r\n\t\t\r\n\t\treturn fetch(url)\r\n\t\t\t.then((response)=>{\r\n\t\t\t\tif(response.ok) {\r\n\t\t\t\t\treturn response.json()\r\n\t\t\t\t\t\t.catch((error)=>{\r\n\t\t\t\t\t\t\tconsole.warn(\"List Ajax Load Error - Invalid JSON returned\", error);\r\n\t\t\t\t\t\t\treturn Promise.reject(error);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.error(\"List Ajax Load Error - Connection Error: \" + response.status, response.statusText);\r\n\t\t\t\t\treturn Promise.reject(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(\"List Ajax Load Error - Connection Error: \", error);\r\n\t\t\t\treturn Promise.reject(error);\r\n\t\t\t});\r\n\t}\r\n\t\r\n\t_uniqueColumnValues(field){\r\n\t\tvar output = {},\r\n\t\tdata = this.table.getData(this.params.valuesLookup),\r\n\t\tcolumn;\r\n\t\t\r\n\t\tif(field){\r\n\t\t\tcolumn = this.table.columnManager.getColumnByField(field);\r\n\t\t}else{\r\n\t\t\tcolumn = this.cell.getColumn()._getSelf();\r\n\t\t}\r\n\t\t\r\n\t\tif(column){\r\n\t\t\tdata.forEach((row) => {\r\n\t\t\t\tvar val = column.getFieldValue(row);\r\n\t\t\t\t\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\toutput = [];\r\n\t\t}\r\n\t\t\r\n\t\treturn Object.keys(output);\r\n\t}\r\n\t\r\n\t\r\n\t_parseList(inputValues){\r\n\t\tvar data = [];\r\n\t\t\r\n\t\tif(!Array.isArray(inputValues)){\r\n\t\t\tinputValues = Object.entries(inputValues).map(([key, value]) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tlabel:value,\r\n\t\t\t\t\tvalue:key,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tinputValues.forEach((value) => {\r\n\t\t\tif(typeof value !== \"object\"){\r\n\t\t\t\tvalue = {\r\n\t\t\t\t\tlabel:value,\r\n\t\t\t\t\tvalue:value,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis._parseListItem(value, data, 0);\r\n\t\t});\r\n\t\t\r\n\t\tif(!this.currentItems.length && this.params.freetext){\r\n\t\t\tthis.input.value = this.initialValues;\r\n\t\t\tthis.typing = true;\r\n\t\t\tthis.lastAction = \"typing\";\r\n\t\t}\r\n\t\t\r\n\t\tthis.data = data;\r\n\t\t\r\n\t\treturn data; \r\n\t}\r\n\t\r\n\t_parseListItem(option, data, level){\r\n\t\tvar item = {};\r\n\t\t\r\n\t\tif(option.options){\r\n\t\t\titem = this._parseListGroup(option, level + 1);\r\n\t\t}else{\r\n\t\t\titem = {\r\n\t\t\t\tlabel:option.label,\r\n\t\t\t\tvalue:option.value,\r\n\t\t\t\titemParams:option.itemParams,\r\n\t\t\t\telementAttributes: option.elementAttributes,\r\n\t\t\t\telement:false,\r\n\t\t\t\tselected:false,\r\n\t\t\t\tvisible:true,\r\n\t\t\t\tlevel:level,\r\n\t\t\t\toriginal:option,\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif(this.initialValues && this.initialValues.indexOf(option.value) > -1){\r\n\t\t\t\tthis._chooseItem(item, true);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tdata.push(item);\r\n\t}\r\n\t\r\n\t_parseListGroup(option, level){\r\n\t\tvar item = {\r\n\t\t\tlabel:option.label,\r\n\t\t\tgroup:true,\r\n\t\t\titemParams:option.itemParams,\r\n\t\t\telementAttributes:option.elementAttributes,\r\n\t\t\telement:false,\r\n\t\t\tvisible:true,\r\n\t\t\tlevel:level,\r\n\t\t\toptions:[],\r\n\t\t\toriginal:option,\r\n\t\t};\r\n\t\t\r\n\t\toption.options.forEach((child) => {\r\n\t\t\tthis._parseListItem(child, item.options, level);\r\n\t\t});\r\n\t\t\r\n\t\treturn item;\r\n\t}\r\n\t\r\n\t_sortOptions(options){\r\n\t\tvar sorter;\r\n\t\t\r\n\t\tif(this.params.sort){\r\n\t\t\tsorter = typeof this.params.sort === \"function\" ? this.params.sort : this._defaultSortFunction.bind(this);\r\n\t\t\t\r\n\t\t\tthis._sortGroup(sorter, options);\r\n\t\t}\r\n\t\t\r\n\t\treturn options;\r\n\t}\r\n\t\r\n\t_sortGroup(sorter, options){\r\n\t\toptions.sort((a,b) => {\r\n\t\t\treturn sorter(a.label, b.label, a.value, b.value, a.original, b.original);\r\n\t\t});\r\n\t\t\r\n\t\toptions.forEach((option) => {\r\n\t\t\tif(option.group){\r\n\t\t\t\tthis._sortGroup(sorter, option.options);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\t_defaultSortFunction(as, bs){\r\n\t\tvar a, b, a1, b1, i= 0, L, rx = /(\\d+)|(\\D+)/g, rd = /\\d/;\r\n\t\tvar emptyAlign = 0;\r\n\t\t\r\n\t\tif(this.params.sort === \"desc\"){\r\n\t\t\t[as, bs] = [bs, as];\r\n\t\t}\r\n\t\t\r\n\t\t//handle empty values\r\n\t\tif(!as && as!== 0){\r\n\t\t\temptyAlign = !bs && bs!== 0 ? 0 : -1;\r\n\t\t}else if(!bs && bs!== 0){\r\n\t\t\temptyAlign = 1;\r\n\t\t}else{\r\n\t\t\tif(isFinite(as) && isFinite(bs)) return as - bs;\r\n\t\t\ta = String(as).toLowerCase();\r\n\t\t\tb = String(bs).toLowerCase();\r\n\t\t\tif(a === b) return 0;\r\n\t\t\tif(!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;\r\n\t\t\ta = a.match(rx);\r\n\t\t\tb = b.match(rx);\r\n\t\t\tL = a.length > b.length ? b.length : a.length;\r\n\t\t\twhile(i < L){\r\n\t\t\t\ta1= a[i];\r\n\t\t\t\tb1= b[i++];\r\n\t\t\t\tif(a1 !== b1){\r\n\t\t\t\t\tif(isFinite(a1) && isFinite(b1)){\r\n\t\t\t\t\t\tif(a1.charAt(0) === \"0\") a1 = \".\" + a1;\r\n\t\t\t\t\t\tif(b1.charAt(0) === \"0\") b1 = \".\" + b1;\r\n\t\t\t\t\t\treturn a1 - b1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse return a1 > b1 ? 1 : -1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn a.length > b.length;\r\n\t\t}\r\n\t\t\r\n\t\treturn emptyAlign;\r\n\t}\r\n\t\r\n\t_filterOptions(){\r\n\t\tvar filterFunc = this.params.filterFunc || this._defaultFilterFunc,\r\n\t\tterm = this.input.value;\r\n\t\t\r\n\t\tif(term){\r\n\t\t\tthis.filtered = true;\r\n\t\t\t\r\n\t\t\tthis.data.forEach((item) => {\r\n\t\t\t\tthis._filterItem(filterFunc, term, item);\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tthis.filtered = false;\r\n\t\t}\r\n\t\t\r\n\t\treturn this.data;\r\n\t}\r\n\t\r\n\t_filterItem(func, term, item){\r\n\t\tvar matches = false;\r\n\t\t\r\n\t\tif(!item.group){\r\n\t\t\titem.visible = func(term, item.label, item.value, item.original);\r\n\t\t}else{\r\n\t\t\titem.options.forEach((option) => {\r\n\t\t\t\tif(this._filterItem(func, term, option)){\r\n\t\t\t\t\tmatches = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\titem.visible = matches;\r\n\t\t}\r\n\t\t\r\n\t\treturn item.visible;\r\n\t}\r\n\t\r\n\t_defaultFilterFunc(term, label, value, item){\r\n\t\tterm = String(term).toLowerCase();\r\n\t\t\r\n\t\tif(label !== null && typeof label !== \"undefined\"){\r\n\t\t\tif(String(label).toLowerCase().indexOf(term) > -1 || String(value).toLowerCase().indexOf(term) > -1){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\t//////////////////////////////////////\r\n\t/////////// Display List /////////////\r\n\t//////////////////////////////////////\r\n\t\r\n\t_clearList(){\r\n\t\twhile(this.listEl.firstChild) this.listEl.removeChild(this.listEl.firstChild);\r\n\t\t\r\n\t\tthis.displayItems = [];\r\n\t}\r\n\t\r\n\t_buildList(data){\r\n\t\tthis._clearList();\r\n\t\t\r\n\t\tdata.forEach((option) => {\r\n\t\t\tthis._buildItem(option);\r\n\t\t});\r\n\t\t\r\n\t\tif(!this.displayItems.length){\r\n\t\t\tthis._addPlaceholder(this.params.placeholderEmpty);\r\n\t\t} \r\n\t}\r\n\t\r\n\t_buildItem(item){\r\n\t\tvar el = item.element,\r\n\t\tcontents;\r\n\t\t\r\n\t\tif(!this.filtered || item.visible){\r\n\t\t\t\r\n\t\t\tif(!el){\r\n\t\t\t\tel = document.createElement(\"div\");\r\n\t\t\t\tel.tabIndex = 0;\r\n\t\t\t\t\r\n\t\t\t\tcontents = this.params.itemFormatter ? this.params.itemFormatter(item.label, item.value, item.original, el) : item.label;\r\n\t\t\t\t\r\n\t\t\t\tif(contents instanceof HTMLElement){\r\n\t\t\t\t\tel.appendChild(contents);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tel.innerHTML = contents;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(item.group){\r\n\t\t\t\t\tel.classList.add(\"tabulator-edit-list-group\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tel.classList.add(\"tabulator-edit-list-item\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tel.classList.add(\"tabulator-edit-list-group-level-\" + item.level);\r\n\t\t\t\t\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, this.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\t\r\n\t\t\t\tif(item.group){\r\n\t\t\t\t\tel.addEventListener(\"click\", this._groupClick.bind(this, item));\r\n\t\t\t\t}else{\r\n\t\t\t\t\tel.addEventListener(\"click\", this._itemClick.bind(this, item));\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tel.addEventListener(\"mousedown\", this._preventBlur.bind(this));\r\n\t\t\t\t\r\n\t\t\t\titem.element = el;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis._styleItem(item);\r\n\t\t\t\r\n\t\t\tthis.listEl.appendChild(el);\r\n\t\t\t\r\n\t\t\tif(item.group){\r\n\t\t\t\titem.options.forEach((option) => {\r\n\t\t\t\t\tthis._buildItem(option);\r\n\t\t\t\t});\r\n\t\t\t}else{\r\n\t\t\t\tthis.displayItems.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_showList(){\r\n\t\tvar startVis = this.popup && this.popup.isVisible();\r\n\t\t\r\n\t\tif(this.input.parentNode){\r\n\t\t\tif(this.params.autocomplete && this.input.value === \"\" && !this.params.listOnEmpty){\r\n\t\t\t\tif(this.popup){\r\n\t\t\t\t\tthis.popup.hide(true);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis._setListWidth();\r\n\t\t\t\r\n\t\t\tif(!this.popup){\r\n\t\t\t\tthis.popup = this.edit.popup(this.listEl);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.popup.show(this.cell.getElement(), \"bottom\");\r\n\t\t\t\r\n\t\t\tif(!startVis){\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.popup.hideOnBlur(this._resolveValue.bind(this, true));\r\n\t\t\t\t}, 10);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_styleItem(item){\r\n\t\tif(item && item.element){\r\n\t\t\tif(item.selected){\r\n\t\t\t\titem.element.classList.add(\"active\");\r\n\t\t\t}else{\r\n\t\t\t\titem.element.classList.remove(\"active\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t//////////////////////////////////////\r\n\t///////// User Interaction ///////////\r\n\t//////////////////////////////////////\r\n\t\r\n\t_itemClick(item, e){\r\n\t\te.stopPropagation();\r\n\t\t\r\n\t\tthis._chooseItem(item);\r\n\t}\r\n\t\r\n\t_groupClick(item, e){\r\n\t\te.stopPropagation();\r\n\t}\r\n\t\r\n\t\r\n\t//////////////////////////////////////\r\n\t////// Current Item Management ///////\r\n\t//////////////////////////////////////\r\n\t\r\n\t_cancel(){\r\n\t\tthis.popup.hide(true);\r\n\t\tthis.actions.cancel();\r\n\t}\r\n\t\r\n\t_clearChoices(){\r\n\t\tthis.typing = true;\r\n\t\t\r\n\t\tthis.currentItems.forEach((item) => {\r\n\t\t\titem.selected = false;\r\n\t\t\tthis._styleItem(item);\r\n\t\t});\r\n\t\t\r\n\t\tthis.currentItems = [];\r\n\t\t\r\n\t\tthis.focusedItem = null;\r\n\t}\r\n\t\r\n\t_chooseItem(item, silent){\r\n\t\tvar index;\r\n\t\t\r\n\t\tthis.typing = false;\r\n\t\t\r\n\t\tif(this.params.multiselect){\r\n\t\t\tindex = this.currentItems.indexOf(item);\r\n\t\t\t\r\n\t\t\tif(index > -1){\r\n\t\t\t\tthis.currentItems.splice(index, 1);\r\n\t\t\t\titem.selected = false;\r\n\t\t\t}else{\r\n\t\t\t\tthis.currentItems.push(item);\r\n\t\t\t\titem.selected = true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.input.value = this.currentItems.map(item => item.label).join(\",\");\r\n\t\t\t\r\n\t\t\tthis._styleItem(item);\r\n\t\t\t\r\n\t\t}else{\r\n\t\t\tthis.currentItems = [item];\r\n\t\t\titem.selected = true;\r\n\t\t\t\r\n\t\t\tthis.input.value = item.label;\r\n\t\t\t\r\n\t\t\tthis._styleItem(item);\r\n\t\t\t\r\n\t\t\tif(!silent){\r\n\t\t\t\tthis._resolveValue();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tthis._focusItem(item);\r\n\t}\r\n\t\r\n\t_resolveValue(blur){\r\n\t\tvar output, initialValue;\r\n\r\n\t\tif(this.popup){\r\n\t\t\tthis.popup.hide(true);\r\n\t\t}\r\n\t\t\r\n\t\tif(this.params.multiselect){\r\n\t\t\toutput = this.currentItems.map(item => item.value);\r\n\t\t}else{\r\n\t\t\tif(blur && this.params.autocomplete && this.typing){\r\n\t\t\t\tif(this.params.freetext || (this.params.allowEmpty && this.input.value === \"\")){\r\n\t\t\t\t\toutput = this.input.value;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.actions.cancel();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tif(this.currentItems[0]){\r\n\t\t\t\t\toutput = this.currentItems[0].value;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tinitialValue = this.initialValues[0];\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(initialValue === null || typeof initialValue === \"undefined\" || initialValue === \"\"){\r\n\t\t\t\t\t\toutput = initialValue;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\toutput = this.params.emptyValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(output === \"\"){\r\n\t\t\toutput = this.params.emptyValue;\r\n\t\t}\r\n\t\t\r\n\t\tthis.actions.success(output);\r\n\t\t\r\n\t\tif(this.isFilter){\r\n\t\t\tthis.initialValues = output && !Array.isArray(output) ? [output] : output;\r\n\t\t\tthis.currentItems = [];\r\n\t\t}\r\n\t}\r\n\t\r\n}\r\n","import List from '../../List.js';\r\n\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\r\n\tthis.deprecationMsg(\"The select editor has been deprecated, please use the new list editor\");\r\n\r\n\tvar list = new List(this, cell, onRendered, success, cancel, editorParams);\r\n\r\n\treturn list.input;\r\n}","import List from '../../List.js';\r\n\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\tvar list = new List(this, cell, onRendered, success, cancel, editorParams);\r\n\r\n\treturn list.input;\r\n}","import List from '../../List.js';\r\n\r\nexport default function(cell, onRendered, success, cancel, editorParams){\r\n\r\n\tthis.deprecationMsg(\"The autocomplete editor has been deprecated, please use the new list editor with the 'autocomplete' editorParam\");\r\n\r\n\teditorParams.autocomplete = true;\r\n\r\n\tvar list = new List(this, cell, onRendered, success, cancel, editorParams);\r\n\r\n\treturn list.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\t\tchangeValue(value + 1);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 37: //left arrow\r\n\t\t\t\tchangeValue(value - 1);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 13: //enter\r\n\t\t\t\tsuccess(value);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 27: //escape\r\n\t\t\t\tcancel();\r\n\t\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] && element.getElementsByTagName(\"div\")[0].getAttribute(\"max\")) || 100) : editorParams.max,\r\n\tmin = typeof editorParams.min === \"undefined\" ? ((element.getElementsByTagName(\"div\")[0] && 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\t\te.preventDefault();\r\n\t\t\t\tbar.style.width = (bar.clientWidth + element.clientWidth/100) + \"px\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 37: //left arrow\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tbar.style.width = (bar.clientWidth - element.clientWidth/100) + \"px\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 9: //tab\r\n\t\t\tcase 13: //enter\r\n\t\t\t\tupdateValue();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 27: //escape\r\n\t\t\t\tcancel();\r\n\t\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\ttrueValueSet = Object.keys(editorParams).includes(\"trueValue\"),\r\n\tfalseValueSet = Object.keys(editorParams).includes(\"falseValue\");\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 = trueValueSet ? value === editorParams.trueValue : (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\tvar checkedValue = input.checked;\r\n\r\n\t\tif(trueValueSet && checkedValue){\r\n\t\t\tcheckedValue = editorParams.trueValue;\r\n\t\t}else if(falseValueSet && !checkedValue){\r\n\t\t\tcheckedValue = editorParams.falseValue;\r\n\t\t}\r\n\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 checkedValue;\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 checkedValue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\treturn checkedValue;\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 date from './editors/date.js';\r\nimport time from './editors/time.js';\r\nimport datetime from './editors/datetime.js';\r\nimport select from './editors/select.js';\r\nimport list from './editors/list.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\tnumber:number,\r\n\trange:range,\r\n\tdate:date,\r\n\ttime:time,\r\n\tdatetime:datetime,\r\n\tselect:select,\r\n\tlist:list,\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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.currentCell = false; //hold currently editing cell\r\n\t\tthis.mouseClick = false; //hold mousedown state to prevent click binding being overridden 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\t\t\r\n\t\tthis.editors = Edit.editors;\r\n\t\t\r\n\t\tthis.registerColumnOption(\"editable\");\r\n\t\tthis.registerColumnOption(\"editor\");\r\n\t\tthis.registerColumnOption(\"editorParams\");\r\n\t\t\r\n\t\tthis.registerColumnOption(\"cellEditing\");\r\n\t\tthis.registerColumnOption(\"cellEdited\");\r\n\t\tthis.registerColumnOption(\"cellEditCancelled\");\r\n\t\t\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\t\t\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\t\t\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\t\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(\"cell-value-changed\", this.updateCellClass.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-refreshing\", this.cancelEdit.bind(this));\r\n\t\t\r\n\t\tthis.subscribe(\"keybinding-nav-prev\", this.navigatePrev.bind(this, undefined));\r\n\t\tthis.subscribe(\"keybinding-nav-next\", this.keybindingNavigateNext.bind(this));\r\n\t\tthis.subscribe(\"keybinding-nav-left\", this.navigateLeft.bind(this, undefined));\r\n\t\tthis.subscribe(\"keybinding-nav-right\", this.navigateRight.bind(this, undefined));\r\n\t\tthis.subscribe(\"keybinding-nav-up\", this.navigateUp.bind(this, undefined));\r\n\t\tthis.subscribe(\"keybinding-nav-down\", this.navigateDown.bind(this, undefined));\r\n\t}\r\n\t\r\n\t\r\n\t///////////////////////////////////\r\n\t////// Keybinding Functions ///////\r\n\t///////////////////////////////////\r\n\t\r\n\tkeybindingNavigateNext(e){\r\n\t\tvar cell = this.currentCell,\r\n\t\tnewRow = this.options(\"tabEndNewRow\");\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\tif(!this.navigateNext(cell, e)){\r\n\t\t\t\tif(newRow){\r\n\t\t\t\t\tcell.getElement().firstChild.blur();\r\n\t\t\t\t\t\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\t\t\t\t\t\r\n\t\t\t\t\tnewRow.then(() => {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tcell.getComponent().navigateNext();\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\t\r\n\t///////////////////////////////////\r\n\t///////// Cell Functions //////////\r\n\t///////////////////////////////////\r\n\t\r\n\tcellIsEdited(cell){\r\n\t\treturn !! cell.modules.edit && cell.modules.edit.edited;\r\n\t}\r\n\t\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\t\r\n\t\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\tupdateCellClass(cell){\r\n\t\tif(this.allowEdit(cell)) {\r\n\t\t\tcell.getElement().classList.add(\"tabulator-editable\");\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcell.getElement().classList.remove(\"tabulator-editable\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tclearCellEdited(cells){\r\n\t\tif(!cells){\r\n\t\t\tcells = this.table.modules.edit.getEditedCells();\r\n\t\t}\r\n\t\t\r\n\t\tif(!Array.isArray(cells)){\r\n\t\t\tcells = [cells];\r\n\t\t}\r\n\t\t\r\n\t\tcells.forEach((cell) => {\r\n\t\t\tthis.table.modules.edit.clearEdited(cell._getSelf());\r\n\t\t});\r\n\t}\r\n\t\r\n\tnavigatePrev(cell = this.currentCell, e){\r\n\t\tvar nextCell, prevRow;\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\t\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tnextCell = this.navigateLeft();\r\n\t\t\t\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\t\t\t\t\r\n\t\t\t\tif(prevRow){\r\n\t\t\t\t\tnextCell = this.findNextEditableCell(prevRow, prevRow.cells.length);\r\n\t\t\t\t\t\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\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tnavigateNext(cell = this.currentCell, e){\r\n\t\tvar nextCell, nextRow;\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\t\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tnextCell = this.navigateRight();\r\n\t\t\t\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\t\t\t\t\r\n\t\t\t\tif(nextRow){\r\n\t\t\t\t\tnextCell = this.findNextEditableCell(nextRow, -1);\r\n\t\t\t\t\t\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\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tnavigateLeft(cell = this.currentCell, e){\r\n\t\tvar index, nextCell;\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\t\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextCell = this.findPrevEditableCell(cell.row, index);\r\n\t\t\t\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\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tnavigateRight(cell = this.currentCell, e){\r\n\t\tvar index, nextCell;\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\t\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextCell = this.findNextEditableCell(cell.row, index);\r\n\t\t\t\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\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tnavigateUp(cell = this.currentCell, e){\r\n\t\tvar index, nextRow;\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\t\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextRow = this.table.rowManager.prevDisplayRow(cell.row, true);\r\n\t\t\t\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\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tnavigateDown(cell = this.currentCell, e){\r\n\t\tvar index, nextRow;\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\t\r\n\t\t\tif(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tindex = cell.getIndex();\r\n\t\t\tnextRow = this.table.rowManager.nextDisplayRow(cell.row, true);\r\n\t\t\t\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\t\t\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tfindNextEditableCell(row, index){\r\n\t\tvar nextCell = false;\r\n\t\t\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\t\t\t\t\r\n\t\t\t\tif(cell.column.modules.edit && Helpers.elVisible(cell.getElement())){\r\n\t\t\t\t\tlet allowEdit = this.allowEdit(cell);\r\n\t\t\t\t\t\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\t\t\r\n\t\treturn nextCell;\r\n\t}\r\n\t\r\n\tfindPrevEditableCell(row, index){\r\n\t\tvar prevCell = false;\r\n\t\t\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\t\r\n\t\t\t\tif(cell.column.modules.edit && Helpers.elVisible(cell.getElement())){\r\n\t\t\t\t\tlet allowEdit = this.allowEdit(cell);\r\n\t\t\t\t\t\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\t\t\r\n\t\treturn prevCell;\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\t\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\t\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\t\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\t\r\n\t//initialize column editor\r\n\tinitializeColumn(column){\r\n\t\tvar config = {\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\t\t\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\t\tif(this.editors[column.definition.editor]){\r\n\t\t\t\t\tconfig.editor = this.editors[column.definition.editor];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Editor Error - No such editor found: \", column.definition.editor);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase \"function\":\r\n\t\t\t\tconfig.editor = column.definition.editor;\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase \"boolean\":\r\n\t\t\t\tif(column.definition.editor === true){\r\n\t\t\t\t\tif(typeof column.definition.formatter !== \"function\"){\r\n\t\t\t\t\t\tif(this.editors[column.definition.formatter]){\r\n\t\t\t\t\t\t\tconfig.editor = this.editors[column.definition.formatter];\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tconfig.editor = this.editors[\"input\"];\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(\"Editor Error - Cannot auto lookup editor for a custom formatter: \", column.definition.formatter);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\t\r\n\t\tif(config.editor){\r\n\t\t\tcolumn.modules.edit = config;\r\n\t\t}\r\n\t}\r\n\t\r\n\tgetCurrentCell(){\r\n\t\treturn this.currentCell ? this.currentCell.getComponent() : false;\r\n\t}\r\n\t\r\n\tclearEditor(cancel){\r\n\t\tvar cell = this.currentCell,\r\n\t\tcellEl;\r\n\t\t\r\n\t\tthis.invalidEdit = false;\r\n\t\t\r\n\t\tif(cell){\r\n\t\t\tthis.currentCell = false;\r\n\t\t\t\r\n\t\t\tcellEl = cell.getElement();\r\n\t\t\t\r\n\t\t\tthis.dispatch(\"edit-editor-clear\", cell, cancel);\r\n\t\t\t\r\n\t\t\tcellEl.classList.remove(\"tabulator-editing\");\r\n\t\t\t\r\n\t\t\twhile(cellEl.firstChild) cellEl.removeChild(cellEl.firstChild);\r\n\t\t\t\r\n\t\t\tcell.row.getElement().classList.remove(\"tabulator-editing\");\r\n\t\t\t\r\n\t\t\tcell.table.element.classList.remove(\"tabulator-editing\");\r\n\t\t}\r\n\t}\r\n\t\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\t\t\t\r\n\t\t\tthis.clearEditor(true);\r\n\t\t\tcell.setValueActual(cell.getValue());\r\n\t\t\tcell.cellRendered();\r\n\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tthis.dispatch(\"edit-cancelled\", cell);\r\n\t\t\tthis.dispatchExternal(\"cellEditCancelled\", component);\r\n\t\t}\r\n\t}\r\n\t\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\t\t\t\r\n\t\t\tthis.updateCellClass(cell);\r\n\t\t\telement.setAttribute(\"tabindex\", 0);\r\n\t\t\t\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\t\t\t\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\t\t\t\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\t\r\n\tfocusCellNoEvent(cell, block){\r\n\t\tthis.recursionBlock = true;\r\n\t\t\r\n\t\tif(!(block && this.table.browser === \"ie\")){\r\n\t\t\tcell.getElement().focus({preventScroll: true});\r\n\t\t}\r\n\t\t\r\n\t\tthis.recursionBlock = false;\r\n\t}\r\n\t\r\n\teditCell(cell, forceEdit){\r\n\t\tthis.focusCellNoEvent(cell);\r\n\t\tthis.edit(cell, false, forceEdit);\r\n\t}\r\n\t\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\t\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\t\t\t\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\t\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\t\t\t\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\t\t\t\r\n\t\t\tif(cellEl.offsetLeft < leftEdge){\r\n\t\t\t\t\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\t\r\n\tallowEdit(cell) {\r\n\t\tvar check = cell.column.modules.edit ? true : false;\r\n\r\n\t\tif(cell.column.modules.edit){\r\n\t\t\tswitch(typeof cell.column.modules.edit.check){\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tcheck = cell.column.modules.edit.check(cell.getComponent());\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\t\tcheck = !!cell.row.data[cell.column.modules.edit.check];\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"boolean\":\r\n\t\t\t\t\tcheck = cell.column.modules.edit.check;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn check;\r\n\t}\r\n\t\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\t\t\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\t\t\r\n\t\t//handle successful value change\r\n\t\tfunction success(value){\r\n\t\t\tif(self.currentCell === cell){\r\n\t\t\t\tvar valid = self.chain(\"edit-success\", [cell, value], true, true);\r\n\t\t\t\t\r\n\t\t\t\tif(valid === true || self.table.options.validationMode === \"highlight\"){\r\n\t\t\t\t\tself.clearEditor();\r\n\t\t\t\t\t\r\n\t\t\t\t\t\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\t\t\t\t\t\r\n\t\t\t\t\tcell.modules.edit.edited = true;\r\n\t\t\t\t\t\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\t\t\t\t\t\r\n\t\t\t\t\tcell.setValue(value, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn valid === true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tself.invalidEdit = true;\r\n\t\t\t\t\tself.focusCellNoEvent(cell, true);\r\n\t\t\t\t\trendered();\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\t\t\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\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\t\t\r\n\t\tfunction onRendered(callback){\r\n\t\t\trendered = callback;\r\n\t\t}\r\n\t\t\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\t\t\t\r\n\t\t\tallowEdit = this.allowEdit(cell);\r\n\t\t\t\r\n\t\t\tif(allowEdit || forceEdit){\r\n\t\t\t\t\r\n\t\t\t\tself.cancelEdit();\r\n\t\t\t\t\r\n\t\t\t\tself.currentCell = cell;\r\n\t\t\t\t\r\n\t\t\t\tthis.focusScrollAdjust(cell);\r\n\t\t\t\t\r\n\t\t\t\tcomponent = cell.getComponent();\r\n\t\t\t\t\r\n\t\t\t\tif(this.mouseClick){\r\n\t\t\t\t\tthis.mouseClick = false;\r\n\t\t\t\t\t\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\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tthis.dispatch(\"cell-editing\", cell);\r\n\t\t\t\tthis.dispatchExternal(\"cellEditing\", component);\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tcellEditor = cell.column.modules.edit.editor.call(self, component, onRendered, success, cancel, params);\r\n\t\t\t\t\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\t\t\t\t\t\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-editing\");\r\n\t\t\t\t\t\tcell.table.element.classList.add(\"tabulator-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\t\t\t\t\t\t\r\n\t\t\t\t\t\t//trigger onRendered Callback\r\n\t\t\t\t\t\trendered();\r\n\t\t\t\t\t\t\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\t\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\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\t\r\n\tgetEditedCells(){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\tthis.editedCells.forEach((cell) => {\r\n\t\t\toutput.push(cell.getComponent());\r\n\t\t});\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tclearEdited(cell){\r\n\t\tvar editIndex;\r\n\t\t\r\n\t\tif(cell.modules.edit && cell.modules.edit.edited){\r\n\t\t\tcell.modules.edit.edited = false;\r\n\t\t\t\r\n\t\t\tthis.dispatch(\"edit-edited-clear\", cell);\r\n\t\t}\r\n\t\t\r\n\t\teditIndex = this.editedCells.indexOf(cell);\r\n\t\t\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;\r\n","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 output 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\tgenerateTable(config, style, range, colVisProp){\r\n\t\tvar list = this.generateExportList(config, style, range, colVisProp);\r\n\r\n\t\treturn this.generateTableElement(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\t\trows = this.table.rowManager.getVisibleRows(false, true);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"all\":\r\n\t\t\t\t\trows = this.table.rowManager.rows;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"selected\":\r\n\t\t\t\t\trows = this.table.modules.selectRow.selectedRows;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"active\":\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif(this.table.options.pagination){\r\n\t\t\t\t\t\trows = this.table.rowManager.getDisplayRows(this.table.rowManager.displayRows.length - 2);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\trows = this.table.rowManager.getDisplayRows();\r\n\t\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\tvar visProp = column.definition[this.colVisProp];\r\n\r\n\t\tif(typeof visProp === \"function\"){\r\n\t\t\tvisProp = visProp.call(this.table, column.getComponent());\r\n\t\t}\r\n\r\n\t\treturn visProp !== false && (column.visible || (!column.visible && visProp));\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 depth\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\tlet title = typeof col.title === \"undefined\" ? \"\" : col.title;\r\n\t\t\t\t\tcolumns.push(new ExportColumn(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\t\treturn this.config.rowGroups !== false;\r\n\r\n\t\t\t\tcase \"calc\":\r\n\t\t\t\t\treturn this.config.columnCalcs !== false;\r\n\r\n\t\t\t\tcase \"row\":\r\n\t\t\t\t\treturn !(this.table.options.dataTree && this.config.dataTree === false && row.modules.dataTree.parent);\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\t\tindent = row.level;\r\n\t\t\t\t\texportCols.push(new ExportColumn(row.key, row.getComponent(), columns.length, 1));\r\n\t\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\t\tcolumns.forEach((col) => {\r\n\t\t\t\t\t\texportCols.push(new ExportColumn(col._column.getFieldValue(rowData), col, 1, 1));\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif(this.table.options.dataTree && this.config.dataTree !== false){\r\n\t\t\t\t\t\tindent = row.modules.dataTree.index;\r\n\t\t\t\t\t}\r\n\t\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\tgenerateTableElement(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\tlet rowEl;\r\n\r\n\t\t\tswitch(row.type){\r\n\t\t\t\tcase \"header\":\r\n\t\t\t\t\theaderEl.appendChild(this.generateHeaderElement(row, setup, styles));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"group\":\r\n\t\t\t\t\tbodyEl.appendChild(this.generateGroupElement(row, setup, styles));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"calc\":\r\n\t\t\t\t\tbodyEl.appendChild(this.generateCalcElement(row, setup, styles));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"row\":\r\n\t\t\t\t\trowEl = this.generateRowElement(row, setup, styles);\r\n\r\n\t\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\t\tbodyEl.appendChild(rowEl);\r\n\t\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\tgenerateHeaderElement(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\tgenerateGroupElement(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 = 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\tgenerateCalcElement(row, setup, styles){\r\n\t\tvar rowEl = this.generateRowElement(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\tgenerateRowElement(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, i) => {\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\tindex = this.table.columnManager.findColumnIndex(column),\r\n\t\t\t\tvalue = col.value,\r\n\t\t\t\tcellStyle;\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\t\tvalue = value !== null ? JSON.stringify(value) : \"\";\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\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\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\tcellStyle = styles.styleCells && styles.styleCells[index] ? styles.styleCells[index] : styles.firstCell;\r\n\r\n\t\t\t\tif(cellStyle){\r\n\t\t\t\t\tthis.mapElementStyles(cellStyle, cellEl, [\"padding-top\", \"padding-left\", \"padding-right\", \"padding-bottom\", \"border-top\", \"border-left\", \"border-right\", \"border-bottom\", \"color\", \"font-weight\", \"font-family\", \"font-size\", \"text-align\"]);\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\tgenerateHTMLTable(list){\r\n\t\tvar holder = document.createElement(\"div\");\r\n\r\n\t\tholder.appendChild(this.generateTableElement(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.generateHTMLTable(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\r\n\t\t//handle successfully 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\t\tif(Filter.filters[column.definition.headerFilterFunc]){\r\n\t\t\t\t\t\t\t\ttype = column.definition.headerFilterFunc;\r\n\t\t\t\t\t\t\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\t\t\t\tvar params = column.definition.headerFilterFuncParams || {};\r\n\t\t\t\t\t\t\t\t\tvar fieldVal = column.getFieldValue(data);\r\n\r\n\t\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\t\treturn Filter.filters[column.definition.headerFilterFunc](value, fieldVal, data, params);\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}else{\r\n\t\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\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"function\":\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 column.definition.headerFilterFunc(value, fieldVal, data, params);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\ttype = filterFunc;\r\n\t\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\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\t\t\t\tvar colVal = column.getFieldValue(data);\r\n\r\n\t\t\t\t\t\t\t\t\tif(typeof colVal !== 'undefined' && colVal !== null){\r\n\t\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\t}else{\r\n\t\t\t\t\t\t\t\t\t\treturn false;\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\ttype = \"like\";\r\n\t\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\t\tfilterFunc = function(data){\r\n\t\t\t\t\t\t\t\t\treturn column.getFieldValue(data) == value;\r\n\t\t\t\t\t\t\t\t};\r\n\t\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};\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\tcolumn.modules.filter.value = value;\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\tcolumn.modules.filter.value = initialValue;\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;\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\t\tif(self.table.modules.edit.editors[column.definition.headerFilter]){\r\n\t\t\t\t\t\teditor = self.table.modules.edit.editors[column.definition.headerFilter];\r\n\r\n\t\t\t\t\t\tif((column.definition.headerFilter === \"tick\" || column.definition.headerFilter === \"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\tconsole.warn(\"Filter Error - Cannot build header filter, No such editor found: \", column.definition.editor);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\teditor = column.definition.headerFilter;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"boolean\":\r\n\t\t\t\t\tif(column.modules.edit && column.modules.edit.editor){\r\n\t\t\t\t\t\teditor = column.modules.edit.editor;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tif(column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]){\r\n\t\t\t\t\t\t\teditor = self.table.modules.edit.editors[column.definition.formatter];\r\n\r\n\t\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\t\tcolumn.modules.filter.emptyFunc = function(value){\r\n\t\t\t\t\t\t\t\t\treturn value !== true && value !== 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}else{\r\n\t\t\t\t\t\t\teditor = self.table.modules.edit.editors[\"input\"];\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}\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\tgetTable:() => {\r\n\t\t\t\t\t\treturn this.table;\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, cellWrapper) : 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\tself.langBind(\"headerFilters|columns|\" + column.definition.field, function(value){\r\n\t\t\t\t\teditorElement.setAttribute(\"placeholder\", typeof value !== \"undefined\" && value ? value : self.langText(\"headerFilters|default\"));\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\tvar headerPos = this.table.rowManager.element.scrollLeft + parseInt(this.table.columnManager.element.style.marginLeft);\r\n\r\n\t\t\t\t\tif(left !== headerPos){\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)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\teditorElement.addEventListener(\"keyup\", searchTrigger);\r\n\t\t\t\t\t\teditorElement.addEventListener(\"search\", searchTrigger);\r\n\r\n\r\n\t\t\t\t\t\t//update number filtered columns on change\r\n\t\t\t\t\t\tif(column.modules.filter.attrType == \"number\"){\r\n\t\t\t\t\t\t\teditorElement.addEventListener(\"change\", function(e){\r\n\t\t\t\t\t\t\t\tsuccess(editorElement.value);\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//change text inputs to search inputs to allow for clearing of field\r\n\t\t\t\t\t\tif(column.modules.filter.attrType == \"text\" && this.table.browser !== \"ie\"){\r\n\t\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\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//prevent input and select elements from propagating 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//programmatically 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.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//programmatically 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(null, false, false);\r\n\t\t\t}else{\r\n\t\t\t\tthis.refreshData(true);\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\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\tchanged = 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\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}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(true));\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(true), 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\tif (formatterParams.thousand !== false) {\r\n\t\trgx = /(\\d+)(\\d{3})/;\r\n\r\n\t\twhile (rgx.test(integer)){\r\n\t\t\tinteger = integer.replace(rgx, \"$1\" + thousandSym + \"$2\");\r\n\t\t}\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\tfunction labelTraverse(path, data){\r\n\t\tvar item = path.shift(),\r\n\t\tvalue = data[item];\r\n\t\t\r\n\t\tif(path.length && typeof value === \"object\"){\r\n\t\t\treturn labelTraverse(path, value);\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\tif(formatterParams.labelField){\r\n\t\tdata = cell.getData();\r\n\t\tlabel = labelTraverse(formatterParams.labelField.split(this.table.options.nestedFieldSeparator), data);\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\t\tlabel = formatterParams.label;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\tlabel = formatterParams.label(cell);\r\n\t\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\t\tvalue = formatterParams.url;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tvalue = formatterParams.url(cell);\r\n\t\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\t\tel.style.height = formatterParams.height + \"px\";\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"string\":\r\n\t\t\tel.style.height = formatterParams.height;\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\tswitch(typeof formatterParams.width){\r\n\t\tcase \"number\":\r\n\t\t\tel.style.width = formatterParams.width + \"px\";\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"string\":\r\n\t\t\tel.style.width = formatterParams.width;\r\n\t\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\ttrueValueSet = Object.keys(formatterParams).includes(\"trueValue\"),\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((trueValueSet && value === formatterParams.trueValue) || (!trueValueSet && ((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;\r\n\r\n\t\tif(DT.isDateTime(value)){\r\n\t\t\tnewDatetime = value;\r\n\t\t}else if(inputFormat === \"iso\"){\r\n\t\t\tnewDatetime = DT.fromISO(String(value));\r\n\t\t}else{\r\n\t\t\tnewDatetime = DT.fromFormat(String(value), inputFormat);\r\n\t\t}\r\n\r\n\t\tif(newDatetime.isValid){\r\n\t\t\tif(formatterParams.timezone){\r\n\t\t\t\tnewDatetime = newDatetime.setZone(formatterParams.timezone);\r\n\t\t\t}\r\n\r\n\t\t\treturn newDatetime.toFormat(outputFormat);\r\n\t\t}else{\r\n\t\t\tif(invalid === true || !value){\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;\r\n\r\n\t\tif(DT.isDateTime(value)){\r\n\t\t\tnewDatetime = value;\r\n\t\t}else if(inputFormat === \"iso\"){\r\n\t\t\tnewDatetime = DT.fromISO(String(value));\r\n\t\t}else{\r\n\t\t\tnewDatetime = DT.fromFormat(String(value), inputFormat);\r\n\t\t}\r\n\r\n\t\tif (newDatetime.isValid){\r\n\t\t\tif(humanize){\r\n\t\t\t\treturn newDatetime.diff(date, unit).toHuman() + (suffix ? \" \" + 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\t\tcolor = colors;\r\n\t\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\t\tcolor = colors(value);\r\n\t\t\tbreak;\r\n\t\tcase \"object\":\r\n\t\t\tif(Array.isArray(colors)){\r\n\t\t\t\tvar unit = 100 / colors.length;\r\n\t\t\t\tvar index = Math.floor(percentValue / unit);\r\n\r\n\t\t\t\tindex = Math.min(index, colors.length - 1);\r\n\t\t\t\tindex = Math.max(index, 0);\r\n\t\t\t\tcolor = colors[index];\r\n\t\t\t\tbreak;\r\n\t\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.max ? formatterParams.max : 100,\r\n\tmin = formatterParams.min ? formatterParams.min : 0,\r\n\tlegendAlign = formatterParams.legendAlign ? formatterParams.legendAlign : \"center\",\r\n\tpercent, percentValue, color, legend, legendColor;\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\t\tcolor = formatterParams.color;\r\n\t\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\t\tcolor = formatterParams.color(value);\r\n\t\t\tbreak;\r\n\t\tcase \"object\":\r\n\t\t\tif(Array.isArray(formatterParams.color)){\r\n\t\t\t\tlet unit = 100 / formatterParams.color.length;\r\n\t\t\t\tlet index = Math.floor(percentValue / unit);\r\n\r\n\t\t\t\tindex = Math.min(index, formatterParams.color.length - 1);\r\n\t\t\t\tindex = Math.max(index, 0);\r\n\t\t\t\tcolor = formatterParams.color[index];\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\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\t\tlegend = formatterParams.legend;\r\n\t\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\t\tlegend = formatterParams.legend(value);\r\n\t\t\tbreak;\r\n\t\tcase \"boolean\":\r\n\t\t\tlegend = value;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\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\t\tlegendColor = formatterParams.legendColor;\r\n\t\t\tbreak;\r\n\t\tcase \"function\":\r\n\t\t\tlegendColor = formatterParams.legendColor(value);\r\n\t\t\tbreak;\r\n\t\tcase \"object\":\r\n\t\t\tif(Array.isArray(formatterParams.legendColor)){\r\n\t\t\t\tlet unit = 100 / formatterParams.legendColor.length;\r\n\t\t\t\tlet index = Math.floor(percentValue / unit);\r\n\r\n\t\t\t\tindex = Math.min(index, formatterParams.legendColor.length - 1);\r\n\t\t\t\tindex = Math.max(index, 0);\r\n\t\t\t\tlegendColor = formatterParams.legendColor[index];\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\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.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\tvar content = document.createElement(\"span\");\r\n\tvar row = cell.getRow();\r\n\r\n\trow.watchPosition((position) => {\r\n\t\tcontent.innerText = position;\r\n\t});\r\n\t\r\n\treturn content;\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 el = 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\tcell.getTable().rowManager.adjustTableSize();\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\tvar blocked = false;\r\n\r\n\tcheckbox.type = 'checkbox';\r\n\r\n\tcheckbox.setAttribute(\"aria-label\", \"Select Row\");\r\n\t\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\tif(this.table.options.selectableRangeMode === \"click\"){\r\n\t\t\t\t\t\tif(!blocked){\r\n\t\t\t\t\t\t\trow.toggleSelect();\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tblocked = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\trow.toggleSelect();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(this.table.options.selectableRangeMode === \"click\"){\r\n\t\t\t\t\tcheckbox.addEventListener(\"click\", (e) => {\r\n\t\t\t\t\t\tblocked = true;\r\n\t\t\t\t\t\tthis.table.modules.selectRow.handleComplexRowClick(row._row, e);\r\n\t\t\t\t\t});\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\t\tif(Format.formatters[formatter]){\r\n\t\t\t\t\tconfig.formatter = Format.formatters[formatter];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Formatter Error - No such formatter found: \", formatter);\r\n\t\t\t\t\tconfig.formatter = Format.formatters.plaintext;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\tconfig.formatter = formatter;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tconfig.formatter = Format.formatters.plaintext;\r\n\t\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(cell.getComponent()) : 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\tswitch(typeof formatter){\r\n\t\t\tcase \"string\":\r\n\t\t\t\tif(Format.formatters[formatter]){\r\n\t\t\t\t\tformatter = Format.formatters[formatter];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Formatter Error - No such formatter found: \", formatter);\r\n\t\t\t\t\tformatter = Format.formatters.plaintext;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\t//Custom formatter Function, do nothing\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tformatter = Format.formatters.plaintext;\r\n\t\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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\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.blocked = true;\r\n\t\t\r\n\t\tthis.registerColumnOption(\"frozen\");\r\n\t}\r\n\t\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\t\t\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\t\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-after\", 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(\"scroll-horizontal\", this.scrollHorizontal.bind(this));\r\n\t\tthis.subscribe(\"columns-loading\", this.reset.bind(this));\r\n\t\t\r\n\t\tthis.subscribe(\"column-add\", this.reinitializeColumns.bind(this));\r\n\t\tthis.subscribe(\"column-delete\", this.reinitializeColumns.bind(this));\r\n\t\t\r\n\t\tthis.subscribe(\"table-redraw\", this.layout.bind(this));\r\n\t\tthis.subscribe(\"layout-refreshing\", this.blockLayout.bind(this));\r\n\t\tthis.subscribe(\"layout-refreshed\", this.unblockLayout.bind(this));\r\n\t}\r\n\t\r\n\tblockLayout(){\r\n\t\tthis.blocked = true;\r\n\t}\r\n\t\r\n\tunblockLayout(){\r\n\t\tthis.blocked = false;\r\n\t}\r\n\t\r\n\tlayoutCell(cell){\r\n\t\tthis.layoutElement(cell.element, cell.column);\r\n\t}\r\n\t\r\n\treinitializeColumns(){\r\n\t\tthis.reset();\r\n\t\t\r\n\t\tthis.table.columnManager.columnsByIndex.forEach((column) => {\r\n\t\t\tthis.initializeColumn(column);\r\n\t\t});\r\n\t}\r\n\t\r\n\t//initialize specific column\r\n\tinitializeColumn(column){\r\n\t\tvar config = {margin:0, edge:false};\r\n\t\t\r\n\t\tif(!column.isGroup){\r\n\t\t\t\r\n\t\t\tif(this.frozenCheck(column)){\r\n\t\t\t\t\r\n\t\t\t\tconfig.position = this.initializationMode;\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tthis.active = true;\r\n\t\t\t\t\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\t\r\n\tfrozenCheck(column){\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\t\t\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\t}\r\n\t\r\n\t//quick layout to smooth horizontal scrolling\r\n\tscrollHorizontal(){\t\r\n\t\tif(this.active){\t\t\r\n\t\t\tthis.calcMargins(true);\r\n\t\t\t\r\n\t\t\tthis.layoutColumnPosition();\r\n\t\t\t\r\n\t\t\tthis.layoutCalcRows();\r\n\t\t\t\r\n\t\t\tthis.reinitializeRows();\r\n\t\t}\r\n\t}\r\n\t\r\n\t//calculate margins for rows\r\n\tcalcMargins(scroll){\r\n\t\t\r\n\t\tif(!scroll){\r\n\t\t\tthis.leftMargin = this._calcSpace(this.leftColumns, this.leftColumns.length) + \"px\";\t\t\t\r\n\t\t\tthis.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + \"px\";\t\r\n\t\t\tthis.table.rowManager.tableElement.style.marginRight = this.rightMargin;\r\n\t\t}\r\n\t\t\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\t\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\t\t\t\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\t\t\t\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\t\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\t\t\t\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\t\t\t\r\n\t\t\tif(group.groupList && group.groupList.length){\r\n\t\t\t\tthis.layoutGroupCalcs(group.groupList);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\t//calculate column positions and layout headers\r\n\tlayoutColumnPosition(allCells){\r\n\t\tvar leftParents = [];\r\n\t\t\r\n\t\tvar leftMargin = 0;\r\n\t\tvar rightMargin = 0;\r\n\t\t\r\n\t\tthis.table.columnManager.headersElement.style.marginLeft = this.leftMargin;\r\n\t\tthis.table.columnManager.element.style.paddingRight = this.rightMargin;\r\n\t\t\r\n\t\tthis.leftColumns.forEach((column, i) => {\t\r\n\t\t\tcolumn.modules.frozen.marginValue = leftMargin + this.table.columnManager.scrollLeft;\r\n\t\t\tcolumn.modules.frozen.margin = column.modules.frozen.marginValue + \"px\";\r\n\t\t\t\r\n\t\t\tif(column.visible){\r\n\t\t\t\tleftMargin += column.getWidth();\r\n\t\t\t}\r\n\t\t\t\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\t\t\t\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\t\t\t\t\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\t\t\t\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\t\r\n\t\tthis.rightColumns.forEach((column, i) => {\r\n\t\t\t\r\n\t\t\tif(column.visible){\r\n\t\t\t\trightMargin += column.getWidth();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tcolumn.modules.frozen.marginValue = this.rightPadding - rightMargin;\r\n\t\t\tcolumn.modules.frozen.margin = column.modules.frozen.marginValue + \"px\";\r\n\t\t\t\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\t\t\t\r\n\t\t\t\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\t\t\t\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\t\r\n\tgetColGroupParentElement(column){\r\n\t\treturn column.parent.isGroup ? this.getColGroupParentElement(column.parent) : column.getElement();\r\n\t}\r\n\t\r\n\t//layout columns appropriately\r\n\tlayout(){\t\r\n\t\tif(this.active && !this.blocked){\r\n\t\t\t//calculate row padding\r\n\t\t\tthis.calcMargins();\r\n\t\t\t\r\n\t\t\t//calculate left columns\r\n\t\t\tthis.layoutColumnPosition();\r\n\r\n\t\t\tthis.reinitializeRows();\r\n\t\t\t\r\n\t\t\tthis.layoutCalcRows();\r\n\t\t}\r\n\t}\r\n\t\r\n\treinitializeRows(){\r\n\t\tvar visibleRows = this.table.rowManager.getVisibleRows(true);\r\n\t\tvar otherRows = this.table.rowManager.getRows().filter(row => !visibleRows.includes(row));\r\n\t\t\r\n\t\totherRows.forEach((row) =>{\r\n\t\t\trow.deinitialize();\r\n\t\t});\r\n\t\t\r\n\t\tvisibleRows.forEach((row) =>{\r\n\t\t\tif(row.type === \"row\"){\r\n\t\t\t\tthis.layoutRow(row);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\tlayoutRow(row){\r\n\t\t// console.trace(\"row\")\r\n\t\tvar rowEl = row.getElement();\r\n\t\t\r\n\t\trowEl.style.paddingLeft = this.leftMargin;\r\n\t\t\r\n\t\tif(this.table.options.layout === \"fitDataFill\" && this.rightColumns.length){\r\n\t\t\tthis.table.rowManager.getTableElement().style.minWidth = \"calc(100% - \" + this.rightMargin + \")\";\r\n\t\t}\r\n\t\t\r\n\t\tthis.leftColumns.forEach((column) => {\r\n\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\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\t\r\n\t\tthis.rightColumns.forEach((column) => {\r\n\t\t\tvar cell = row.getCell(column);\r\n\t\t\t\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\t\r\n\tlayoutElement(element, column){\r\n\t\t\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\t\t\t\r\n\t\t\telement.classList.add(\"tabulator-frozen\");\r\n\t\t\t\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\t\r\n\t_calcSpace(columns, index){\r\n\t\tvar width = 0;\r\n\t\t\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\t\t\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\r\n\t\t//register table options\r\n\t\tthis.registerTableOption(\"frozenRowsField\", \"id\"); //field to choose frozen rows by\r\n\t\tthis.registerTableOption(\"frozenRows\", false); //holder for frozen row identifiers\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\t\tthis.subscribe(\"rows-visible\", this.visibleRows.bind(this));\r\n\r\n\t\tthis.registerDisplayHandler(this.getRows.bind(this), 10);\r\n\r\n\t\tif(this.table.options.frozenRows){\r\n\t\t\tthis.subscribe(\"data-processed\", this.initializeRows.bind(this));\r\n\t\t\tthis.subscribe(\"row-added\", this.initializeRow.bind(this));\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeRows(){\r\n\t\tthis.table.rowManager.getRows().forEach((row) => {\r\n\t\t\tthis.initializeRow(row);\r\n\t\t});\r\n\t}\r\n\r\n\tinitializeRow(row){\r\n\t\tvar frozenRows = this.table.options.frozenRows,\r\n\t\trowType = typeof frozenRows;\r\n\r\n\t\tif(rowType === \"number\"){\r\n\t\t\tif(row.getPosition() && (row.getPosition() + this.rows.length) <= frozenRows){\r\n\t\t\t\tthis.freezeRow(row);\r\n\t\t\t}\r\n\t\t}else if(rowType === \"function\"){\r\n\t\t\tif(frozenRows.call(this.table, row.getComponent())){\r\n\t\t\t\tthis.freezeRow(row);\r\n\t\t\t}\r\n\t\t}else if(Array.isArray(frozenRows)){\r\n\t\t\tif(frozenRows.includes(row.data[this.options(\"frozenRowsField\")])){\r\n\t\t\t\tthis.freezeRow(row);\r\n\t\t\t}\r\n\t\t}\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\tvisibleRows(viewable, rows){\r\n\t\tthis.rows.forEach((row) => {\r\n\t\t\trows.push(row);\r\n\t\t});\r\n\r\n\t\treturn rows;\r\n\t}\r\n\r\n\t//filter frozen rows out of display data\r\n\tgetRows(rows){\r\n\t\tvar output = 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\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.groupManager.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\t\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.element = false;\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\t\t\r\n\t\tthis.visible = oldGroup ? oldGroup.visible : (typeof groupManager.startOpen[level] !== \"undefined\" ? groupManager.startOpen[level] : groupManager.startOpen[0]);\r\n\t\t\r\n\t\tthis.component = null;\r\n\t\t\r\n\t\tthis.createElements();\r\n\t\tthis.addBindings();\r\n\t\t\r\n\t\tthis.createValueGroups();\r\n\t}\r\n\t\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.rows.forEach((row) => {\r\n\t\t\t\tif(row.modules){\r\n\t\t\t\t\tdelete row.modules.group;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tthis.element = false;\r\n\t\tthis.arrowElement = false;\r\n\t\tthis.elementContents = false;\r\n\t}\r\n\t\r\n\tcreateElements(){\r\n\t\tvar arrow = document.createElement(\"div\");\r\n\t\tarrow.classList.add(\"tabulator-arrow\");\r\n\t\t\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\t\t\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\t\t\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\t\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\t\r\n\taddBindings(){\r\n\t\tvar toggleElement;\r\n\t\t\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\t\t\t\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\t\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\t\t\r\n\t\tthis.groups[groupKey] = group;\r\n\t\tthis.groupList.push(group);\r\n\t}\r\n\t\r\n\t_addRowToGroup(row){\r\n\t\t\r\n\t\tvar level = this.level + 1;\r\n\t\t\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\t\t\t\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\t\t\t\t\r\n\t\t\t\tthis.groups[groupKey].addRow(row);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_addRow(row){\r\n\t\tthis.rows.push(row);\r\n\t\trow.modules.group = this;\r\n\t}\r\n\t\r\n\tinsertRow(row, to, after){\r\n\t\tvar data = this.conformRowData({});\r\n\t\t\r\n\t\trow.updateData(data);\r\n\t\t\r\n\t\tvar toIndex = this.rows.indexOf(to);\r\n\t\t\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\t\t\r\n\t\trow.modules.group = this;\r\n\t\t\r\n\t\tthis.generateGroupHeaderContents();\r\n\t\t\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\t\t\r\n\t\tthis.groupManager.updateGroupRows(true);\r\n\t}\r\n\t\r\n\tscrollHeader(left){\r\n\t\tif(this.arrowElement){\r\n\t\t\tthis.arrowElement.style.marginLeft = left;\r\n\t\t\t\r\n\t\t\tthis.groupList.forEach(function(child){\r\n\t\t\t\tchild.scrollHeader(left);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t\r\n\tgetRowIndex(row){}\r\n\t\r\n\t//update row data to match grouping constraints\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\t\t\r\n\t\tif(this.parent){\r\n\t\t\tdata = this.parent.conformRowData(data);\r\n\t\t}\r\n\t\t\r\n\t\treturn data;\r\n\t}\r\n\t\r\n\tremoveRow(row){\r\n\t\tvar index = this.rows.indexOf(row);\r\n\t\tvar el = row.getElement();\r\n\t\t\r\n\t\t\r\n\t\tif(index > -1){\r\n\t\t\tthis.rows.splice(index, 1);\r\n\t\t}\r\n\t\t\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\t\t\t\r\n\t\t\tthis.groupManager.updateGroupRows(true);\r\n\t\t}else{\r\n\t\t\t\r\n\t\t\tif(el.parentNode){\r\n\t\t\t\tel.parentNode.removeChild(el);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.generateGroupHeaderContents();\r\n\t\t\t\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\t\t\t\r\n\t\t}\r\n\t}\r\n\t\r\n\tremoveGroup(group){\r\n\t\tvar groupKey = group.level + \"_\" + group.key,\r\n\t\tindex;\r\n\t\t\r\n\t\tif(this.groups[groupKey]){\r\n\t\t\tdelete this.groups[groupKey];\r\n\t\t\t\r\n\t\t\tindex = this.groupList.indexOf(group);\r\n\t\t\t\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\t\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\t\r\n\tgetHeadersAndRows(noCalc){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\toutput.push(this);\r\n\t\t\r\n\t\tthis._visSet();\r\n\t\t\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\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\r\n\t\t\t\toutput = output.concat(this.rows);\r\n\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tif(this.groupManager.table.modExists(\"columnCalcs\")){\r\n\t\t\t\t\t\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\t\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\t\t\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\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgetData(visible, transform){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\tthis._visSet();\r\n\t\t\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\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgetRowCount(){\r\n\t\tvar count = 0;\r\n\t\t\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\t\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\t\r\n\thide(){\r\n\t\tthis.visible = false;\r\n\t\t\r\n\t\tif(this.groupManager.table.rowManager.getRenderMode() == \"basic\" && !this.groupManager.table.options.pagination){\r\n\t\t\t\r\n\t\t\tthis.element.classList.remove(\"tabulator-group-visible\");\r\n\t\t\t\r\n\t\t\tif(this.groupList.length){\r\n\t\t\t\tthis.groupList.forEach((group) => {\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar rows = group.getHeadersAndRows();\r\n\t\t\t\t\t\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\t\t\t\t\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\t\t\t\r\n\t\t\tthis.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());\r\n\t\t\t\r\n\t\t\tthis.groupManager.checkBasicModeGroupHeaderWidth();\r\n\t\t\t\r\n\t\t}else{\r\n\t\t\tthis.groupManager.updateGroupRows(true);\r\n\t\t}\r\n\t\t\r\n\t\tthis.groupManager.table.externalEvents.dispatch(\"groupVisibilityChanged\", this.getComponent(), false);\r\n\t}\r\n\t\r\n\tshow(){\r\n\t\tthis.visible = true;\r\n\t\t\r\n\t\tif(this.groupManager.table.rowManager.getRenderMode() == \"basic\" && !this.groupManager.table.options.pagination){\r\n\t\t\t\r\n\t\t\tthis.element.classList.add(\"tabulator-group-visible\");\r\n\t\t\t\r\n\t\t\tvar prev = this.generateElement();\r\n\t\t\t\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\t\t\t\t\t\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\t\t\t\t\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\t\t\t\r\n\t\t\tthis.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());\r\n\t\t\t\r\n\t\t\tthis.groupManager.checkBasicModeGroupHeaderWidth();\r\n\t\t}else{\r\n\t\t\tthis.groupManager.updateGroupRows(true);\r\n\t\t}\r\n\t\t\r\n\t\tthis.groupManager.table.externalEvents.dispatch(\"groupVisibilityChanged\", this.getComponent(), true);\r\n\t}\r\n\t\r\n\t_visSet(){\r\n\t\tvar data = [];\r\n\t\t\r\n\t\tif(typeof this.visible == \"function\"){\r\n\t\t\t\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\t\t\t\r\n\t\t\tthis.visible = this.visible(this.key, this.getRowCount(), data, this.getComponent());\r\n\t\t}\r\n\t}\r\n\t\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\t\t\t\t\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\t\t\r\n\t\treturn match;\r\n\t}\r\n\t\r\n\tgetSubGroups(component){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\tthis.groupList.forEach(function(child){\r\n\t\t\toutput.push(component ? child.getComponent() : child);\r\n\t\t});\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgetRows(component){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\tthis.rows.forEach(function(row){\r\n\t\t\toutput.push(component ? row.getComponent() : row);\r\n\t\t});\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tgenerateGroupHeaderContents(){\r\n\t\tvar data = [];\r\n\t\t\r\n\t\tthis.rows.forEach(function(row){\r\n\t\t\tdata.push(row.getData());\r\n\t\t});\r\n\t\t\r\n\t\tthis.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent());\r\n\t\t\r\n\t\twhile(this.element.firstChild) this.element.removeChild(this.element.firstChild);\r\n\t\t\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\t\t\r\n\t\tthis.element.insertBefore(this.arrowElement, this.element.firstChild);\r\n\t}\r\n\t\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\t\r\n\t////////////// Standard Row Functions //////////////\r\n\t\r\n\tgetElement(){\r\n\t\treturn this.elementContents ? this.element : this.generateElement();\r\n\t}\r\n\t\r\n\tgenerateElement(){\r\n\t\tthis.addBindings = false;\r\n\t\t\r\n\t\tthis._visSet();\r\n\t\t\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\t\t\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\t\t\r\n\t\tthis.generateGroupHeaderContents();\r\n\t\t\r\n\t\t// this.addBindings();\r\n\t\t\r\n\t\treturn this.element;\r\n\t}\r\n\t\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\t\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\t\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\t\r\n\treinitialize(){\r\n\t\tthis.initialized = false;\r\n\t\tthis.height = 0;\r\n\t\t\r\n\t\tif(Helpers.elVisible(this.element)){\r\n\t\t\tthis.initialize(true);\r\n\t\t}\r\n\t}\r\n\t\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\t\r\n\t//return rows outer height\r\n\tgetHeight(){\r\n\t\treturn this.outerHeight;\r\n\t}\r\n\t\r\n\tgetGroup(){\r\n\t\treturn this;\r\n\t}\r\n\t\r\n\treinitializeHeight(){}\r\n\t\r\n\tcalcHeight(){}\r\n\t\r\n\tsetCellHeight(){}\r\n\t\r\n\tclearCellHeight(){}\r\n\t\r\n\tdeinitializeHeight(){}\r\n\t\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\t\t\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 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\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(\"table-built\", this.configureGroupSetup.bind(this));\r\n\t\t\t\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)){\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}else{\r\n\t\t\tthis.groupList = [];\r\n\t\t\tthis.groups = {};\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\r\n\t\tif(!this.initialized){\r\n\t\t\tthis.initialize();\r\n\t\t}\r\n\r\n\t\tthis.configureGroupSetup();\r\n\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\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\tif(this.options(\"dataTree\")){\r\n\t\t\trow = this.table.modules.dataTree.getTreeParentRoot(row);\r\n\t\t}\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;\r\n\r\n\t\t\t// figure out if new group path is the same as old group path\r\n\t\t\tsamePath = (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\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\tcheckBasicModeGroupHeaderWidth(){\r\n\t\tvar element = this.table.rowManager.tableElement,\r\n\t\tonlyGroupHeaders = true;\r\n\r\n\t\tthis.table.rowManager.getDisplayRows().forEach((row, index) =>{\r\n\t\t\tthis.table.rowManager.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\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:from.getPosition(), posTo:to.getPosition(), 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()._getSelf().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\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\tif(this.table.originalElement.childNodes.length){\r\n\t\t\t\tthis.parseTable();\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Unable to parse data from empty table tag, Tabulator should be initialized on a div tag unless importing data from a table element.\");\r\n\t\t\t}\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\theaders = element.getElementsByTagName(\"th\"),\r\n\t\trows = element.getElementsByTagName(\"tbody\")[0],\r\n\t\tdata = [];\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 Tabulator 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 don't 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.keys(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;\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 Tabulator inline options\r\n\t\t\tthis._extractOptions(header, col, this.table.columnManager.optionsList.registeredDefaults);\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;","function csvImporter(input){\r\n\tvar data = [],\r\n\trow = 0, \r\n\tcol = 0,\r\n\tinQuote = false;\r\n \r\n\t//Iterate over each character\r\n\tfor (let index = 0; index < input.length; index++) {\r\n\t\tlet char = input[index], \r\n\t\tnextChar = input[index+1]; \r\n \r\n\t\t//Initialize empty row\r\n\t\tif(!data[row]){\r\n\t\t\tdata[row] = [];\r\n\t\t}\r\n\r\n\t\t//Initialize empty column\r\n\t\tif(!data[row][col]){\r\n\t\t\tdata[row][col] = \"\";\r\n\t\t}\r\n \r\n\t\t//Handle quotation mark inside string\r\n\t\tif (char == '\"' && inQuote && nextChar == '\"') { \r\n\t\t\tdata[row][col] += char; \r\n\t\t\tindex++;\r\n\t\t\tcontinue; \r\n\t\t}\r\n \r\n\t\t//Begin / End Quote\r\n\t\tif (char == '\"') { \r\n\t\t\tinQuote = !inQuote;\r\n\t\t\tcontinue;\r\n\t\t}\r\n \r\n\t\t//Next column (if not in quote)\r\n\t\tif (char == ',' && !inQuote) { \r\n\t\t\tcol++;\r\n\t\t\tcontinue; \r\n\t\t}\r\n \r\n\t\t//New row if new line and not in quote (CRLF) \r\n\t\tif (char == '\\r' && nextChar == '\\n' && !inQuote) { \r\n\t\t\tcol = 0; \r\n\t\t\trow++; \r\n\t\t\tindex++; \r\n\t\t\tcontinue; \r\n\t\t}\r\n \r\n\t\t//New row if new line and not in quote (CR or LF) \r\n\t\tif ((char == '\\r' || char == '\\n') && !inQuote) { \r\n\t\t\tcol = 0;\r\n\t\t\trow++;\r\n\t\t\tcontinue; \r\n\t\t}\r\n\r\n\t\t//Normal Character, append to column\r\n\t\tdata[row][col] += char;\r\n\t}\r\n\r\n\treturn data;\r\n}\r\n\r\nexport default csvImporter;","export default function(input){\r\n\ttry {\r\n\t\treturn JSON.parse(input);\r\n\t} catch(e) {\r\n\t\tconsole.warn(\"JSON Import Error - File contents is invalid JSON\", e);\r\n\t\treturn Promise.reject();\r\n\t}\r\n}","function arrayImporter(input){\r\n\treturn input;\r\n}\r\n\r\nexport default arrayImporter;","import csv from './importers/csv.js';\r\nimport json from './importers/json.js';\r\nimport array from './importers/array.js';\r\n\r\nexport default {\r\n\tcsv:csv,\r\n\tjson:json,\r\n\tarray:array,\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultImporters from './defaults/importers.js';\r\n\r\nclass Import extends Module{\r\n \r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n \r\n\t\tthis.registerTableOption(\"importFormat\");\r\n\t\tthis.registerTableOption(\"importReader\", \"text\");\r\n\t}\r\n \r\n\tinitialize(){\r\n\t\tthis.registerTableFunction(\"import\", this.importFromFile.bind(this));\r\n\r\n\t\tif(this.table.options.importFormat){\r\n\t\t\tthis.subscribe(\"data-loading\", this.loadDataCheck.bind(this), 10);\r\n\t\t\tthis.subscribe(\"data-load\", this.loadData.bind(this), 10);\r\n\t\t}\r\n\t}\r\n\r\n\tloadDataCheck(data){\r\n\t\treturn this.table.options.importFormat && (typeof data === \"string\" || (Array.isArray(data) && data.length && Array.isArray(data)));\r\n\t}\r\n\r\n\tloadData(data, params, config, silent, previousData){\r\n\t\treturn this.importData(this.lookupImporter(), data)\r\n\t\t\t.then(this.structureData.bind(this))\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconsole.error(\"Import Error:\", err || \"Unable to import data\");\r\n\t\t\t\treturn Promise.reject(err);\r\n\t\t\t});\r\n\t}\r\n\r\n\tlookupImporter(importFormat){\r\n\t\tvar importer;\r\n \r\n\t\tif(!importFormat){\r\n\t\t\timportFormat = this.table.options.importFormat;\r\n\t\t}\r\n \r\n\t\tif(typeof importFormat === \"string\"){\r\n\t\t\timporter = Import.importers[importFormat];\r\n\t\t}else{\r\n\t\t\timporter = importFormat;\r\n\t\t}\r\n\r\n\t\tif(!importer){\r\n\t\t\tconsole.error(\"Import Error - Importer not found:\", importFormat);\r\n\t\t}\r\n \r\n\t\treturn importer;\r\n\t}\r\n \r\n\timportFromFile(importFormat, extension){\r\n\t\tvar importer = this.lookupImporter(importFormat);\r\n \r\n\t\tif(importer){\r\n\t\t\treturn this.pickFile(extension)\r\n\t\t\t\t.then(this.importData.bind(this, importer))\r\n\t\t\t\t.then(this.structureData.bind(this))\r\n\t\t\t\t.then(this.setData.bind(this))\r\n\t\t\t\t.catch((err) => {\r\n\t\t\t\t\tconsole.error(\"Import Error:\", err || \"Unable to import file\");\r\n\t\t\t\t\treturn Promise.reject(err);\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n \r\n\tpickFile(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;\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 \r\n\t\t\t\tswitch(this.table.options.importReader){\r\n\t\t\t\t\tcase \"buffer\":\r\n\t\t\t\t\t\treader.readAsArrayBuffer(file);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"binary\":\r\n\t\t\t\t\t\treader.readAsBinaryString(file);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"url\":\r\n\t\t\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"text\":\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treader.readAsText(file);\r\n\t\t\t\t}\r\n \r\n\t\t\t\treader.onload = (e) => {\r\n\t\t\t\t\tresolve(reader.result);\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\timportData(importer, fileContents){\r\n\t\tvar data = importer.call(this.table, fileContents);\r\n \r\n\t\tif(data instanceof Promise){\r\n\t\t\treturn data;\r\n\t\t}else{\r\n\t\t\treturn data ? Promise.resolve(data) : Promise.reject();\r\n\t\t}\r\n\t}\r\n\r\n\tstructureData(parsedData){\r\n\t\tvar data = [];\r\n \r\n\t\tif(Array.isArray(parsedData) && parsedData.length && Array.isArray(parsedData[0])){\r\n\t\t\tif(this.table.options.autoColumns){\r\n\t\t\t\tdata = this.structureArrayToObject(parsedData);\r\n\t\t\t}else{\r\n\t\t\t\tdata = this.structureArrayToColumns(parsedData);\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t}else{\r\n\t\t\treturn parsedData;\r\n\t\t}\r\n\t}\r\n\r\n\tstructureArrayToObject(parsedData){\r\n\t\tvar columns = parsedData.shift();\r\n\r\n\t\tvar data = parsedData.map((values) => {\r\n\t\t\tvar row = {};\r\n\r\n\t\t\tcolumns.forEach((key, i) => {\r\n\t\t\t\trow[key] = values[i];\r\n\t\t\t});\r\n\r\n\t\t\treturn row;\r\n\t\t});\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tstructureArrayToColumns(parsedData){\r\n\t\tvar data = [],\r\n\t\tcolumns = this.table.getColumns();\r\n\r\n\t\t//remove first row if it is the column names\r\n\t\tif(columns[0] && parsedData[0][0]){\r\n\t\t\tif(columns[0].getDefinition().title === parsedData[0][0]){\r\n\t\t\t\tparsedData.shift();\r\n\t\t\t}\r\n\t\t}\r\n \r\n\t\t//convert row arrays to objects\r\n\t\tparsedData.forEach((rowData) => {\r\n\t\t\tvar row = {};\r\n\r\n\t\t\trowData.forEach((value, index) => {\r\n\t\t\t\tvar column = columns[index];\r\n\r\n\t\t\t\tif(column){\r\n\t\t\t\t\trow[column.getField()] = value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tdata.push(row);\r\n\t\t});\r\n\r\n\t\treturn data;\r\n\t}\r\n \r\n\tsetData(data){\r\n\t\treturn this.table.setData(data);\r\n\t}\r\n}\r\n\r\nImport.moduleName = \"import\";\r\n\r\n//load defaults\r\nImport.importers = defaultImporters;\r\n\r\nexport default Import;","import Module from '../../core/Module.js';\r\n\r\nimport Cell from '../../core/cell/Cell.js';\r\nimport Column from '../../core/column/Column.js';\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\tgroup:{\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\tvar range;\r\n\r\n\t\tif(this.table.modExists(\"edit\")){\r\n\t\t\tif (this.table.modules.edit.currentCell === cell){\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\trange = document.body.createTextRange();\r\n\t\t\t\trange.moveToElementText(cell.getElement());\r\n\t\t\t\trange.select();\r\n\t\t\t} else if (window.getSelection) {\r\n\t\t\t\trange = document.createRange();\r\n\t\t\t\trange.selectNode(cell.getElement());\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\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\t\twatchers.tap = true;\r\n\r\n\t\t\t\tclearTimeout(watchers.tapHold);\r\n\r\n\t\t\t\twatchers.tapHold = setTimeout(() => {\r\n\t\t\t\t\tclearTimeout(watchers.tapHold);\r\n\t\t\t\t\twatchers.tapHold = null;\r\n\r\n\t\t\t\t\twatchers.tap = null;\r\n\t\t\t\t\tclearTimeout(watchers.tapDbl);\r\n\t\t\t\t\twatchers.tapDbl = null;\r\n\r\n\t\t\t\t\tthis.dispatchEvent(type + \"TapHold\", e, component);\r\n\t\t\t\t}, 1000);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"end\":\r\n\t\t\t\tif(watchers.tap){\r\n\r\n\t\t\t\t\twatchers.tap = null;\r\n\t\t\t\t\tthis.dispatchEvent(type + \"Tap\", e, component);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(watchers.tapDbl){\r\n\t\t\t\t\tclearTimeout(watchers.tapDbl);\r\n\t\t\t\t\twatchers.tapDbl = null;\r\n\r\n\t\t\t\t\tthis.dispatchEvent(type + \"DblTap\", e, component);\r\n\t\t\t\t}else{\r\n\t\t\t\t\twatchers.tapDbl = setTimeout(() => {\r\n\t\t\t\t\t\tclearTimeout(watchers.tapDbl);\r\n\t\t\t\t\t\twatchers.tapDbl = null;\r\n\t\t\t\t\t}, 300);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tclearTimeout(watchers.tapHold);\r\n\t\t\t\twatchers.tapHold = null;\r\n\t\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;\r\n","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\", \"meta + 90\"],\r\n\tredo:[\"ctrl + 89\", \"meta + 89\"],\r\n\tcopyToClipboard:[\"ctrl + 67\", \"meta + 89\"],\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\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\t\t\tObject.assign(mergedBindings, Keybindings.bindings);\r\n\t\t\tObject.assign(mergedBindings, bindings);\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\tvar bindingList = Array.isArray(binding) ? binding : [binding];\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tbindingList.forEach((item) => {\r\n\t\t\t\t\t\t\tthis.mapBinding(key, item);\r\n\t\t\t\t\t\t});\t\t\t\t\t\t\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\t\tbinding.ctrl = true;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"shift\":\r\n\t\t\t\t\tbinding.shift = true;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"meta\":\r\n\t\t\t\t\tbinding.meta = true;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tsymbol = isNaN(symbol) ? symbol.toUpperCase().charCodeAt(0) : parseInt(symbol);\r\n\t\t\t\t\tbinding.keys.push(symbol);\r\n\r\n\t\t\t\t\tif(!this.watchKeys[symbol]){\r\n\t\t\t\t\t\tthis.watchKeys[symbol] = [];\r\n\t\t\t\t\t}\r\n\r\n\t\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\n\r\nclass Menu extends Module{\r\n\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.menuContainer = null;\r\n\t\tthis.nestedMenuBlock = false;\r\n\t\t\r\n\t\tthis.currentComponent = null;\r\n\t\tthis.rootPopup = null;\r\n\t\t\r\n\t\tthis.columnSubscribers = {};\r\n\t\t\r\n\t\tthis.registerTableOption(\"menuContainer\", undefined); //deprecated\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\t\t\r\n\t\tthis.registerColumnOption(\"headerContextMenu\");\r\n\t\tthis.registerColumnOption(\"headerClickMenu\");\r\n\t\tthis.registerColumnOption(\"headerMenu\");\r\n\t\tthis.registerColumnOption(\"headerMenuIcon\");\r\n\t\tthis.registerColumnOption(\"contextMenu\");\r\n\t\tthis.registerColumnOption(\"clickMenu\");\r\n\t\t\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tthis.deprecatedOptionsCheck();\r\n\t\tthis.initializeRowWatchers();\r\n\t\tthis.initializeGroupWatchers();\r\n\t\t\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t}\r\n\r\n\tdeprecatedOptionsCheck(){\r\n\t\tif(!this.deprecationCheck(\"menuContainer\", \"popupContainer\")){\r\n\t\t\tthis.table.options.popupContainer = this.table.options.menuContainer;\r\n\t\t}\r\n\t}\t\r\n\t\r\n\tinitializeRowWatchers(){\r\n\t\tif(this.table.options.rowContextMenu){\r\n\t\t\tthis.subscribe(\"row-contextmenu\", this.loadMenuEvent.bind(this, this.table.options.rowContextMenu));\r\n\t\t\tthis.table.on(\"rowTapHold\", this.loadMenuEvent.bind(this, this.table.options.rowContextMenu));\r\n\t\t}\r\n\t\t\r\n\t\tif(this.table.options.rowClickMenu){\r\n\t\t\tthis.subscribe(\"row-click\", this.loadMenuEvent.bind(this, this.table.options.rowClickMenu));\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeGroupWatchers(){\r\n\t\tif(this.table.options.groupContextMenu){\r\n\t\t\tthis.subscribe(\"group-contextmenu\", this.loadMenuEvent.bind(this, this.table.options.groupContextMenu));\r\n\t\t\tthis.table.on(\"groupTapHold\", this.loadMenuEvent.bind(this, this.table.options.groupContextMenu));\r\n\t\t}\r\n\t\t\r\n\t\tif(this.table.options.groupClickMenu){\r\n\t\t\tthis.subscribe(\"group-click\", this.loadMenuEvent.bind(this, this.table.options.groupClickMenu));\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeColumn(column){\r\n\t\tvar\tdef = column.definition;\r\n\t\t\r\n\t\t//handle column events\r\n\t\tif(def.headerContextMenu && !this.columnSubscribers.headerContextMenu){\r\n\t\t\tthis.columnSubscribers.headerContextMenu = this.loadMenuTableColumnEvent.bind(this, \"headerContextMenu\");\r\n\t\t\tthis.subscribe(\"column-contextmenu\", this.columnSubscribers.headerContextMenu);\r\n\t\t\tthis.table.on(\"headerTapHold\", this.loadMenuTableColumnEvent.bind(this, \"headerContextMenu\"));\r\n\t\t}\r\n\t\t\r\n\t\tif(def.headerClickMenu && !this.columnSubscribers.headerClickMenu){\r\n\t\t\tthis.columnSubscribers.headerClickMenu = this.loadMenuTableColumnEvent.bind(this, \"headerClickMenu\");\r\n\t\t\tthis.subscribe(\"column-click\", this.columnSubscribers.headerClickMenu);\r\n\t\t}\r\n\t\t\r\n\t\tif(def.headerMenu){\r\n\t\t\tthis.initializeColumnHeaderMenu(column);\r\n\t\t}\r\n\t\t\r\n\t\t//handle cell events\r\n\t\tif(def.contextMenu && !this.columnSubscribers.contextMenu){\r\n\t\t\tthis.columnSubscribers.contextMenu = this.loadMenuTableCellEvent.bind(this, \"contextMenu\");\r\n\t\t\tthis.subscribe(\"cell-contextmenu\", this.columnSubscribers.contextMenu);\r\n\t\t\tthis.table.on(\"cellTapHold\", this.loadMenuTableCellEvent.bind(this, \"contextMenu\"));\r\n\t\t}\r\n\t\t\r\n\t\tif(def.clickMenu && !this.columnSubscribers.clickMenu){\r\n\t\t\tthis.columnSubscribers.clickMenu = this.loadMenuTableCellEvent.bind(this, \"clickMenu\");\r\n\t\t\tthis.subscribe(\"cell-click\", this.columnSubscribers.clickMenu);\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeColumnHeaderMenu(column){\r\n\t\tvar icon = column.definition.headerMenuIcon,\r\n\t\theaderMenuEl;\r\n\t\t\r\n\t\theaderMenuEl = document.createElement(\"span\");\r\n\t\theaderMenuEl.classList.add(\"tabulator-header-popup-button\");\r\n\r\n\t\tif(icon){\r\n\t\t\tif(typeof icon === \"function\"){\r\n\t\t\t\ticon = icon(column.getComponent());\r\n\t\t\t}\r\n\r\n\t\t\tif(icon instanceof HTMLElement){\r\n\t\t\t\theaderMenuEl.appendChild(icon);\r\n\t\t\t}else{\r\n\t\t\t\theaderMenuEl.innerHTML = icon;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\theaderMenuEl.innerHTML = \"⋮\";\r\n\t\t}\r\n\t\t\r\n\t\theaderMenuEl.addEventListener(\"click\", (e) => {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t\t\r\n\t\t\tthis.loadMenuEvent(column.definition.headerMenu, e, column);\r\n\t\t});\r\n\t\t\r\n\t\tcolumn.titleElement.insertBefore(headerMenuEl, column.titleElement.firstChild);\r\n\t}\r\n\t\r\n\tloadMenuTableCellEvent(option, e, cell){\r\n\t\tif(cell._cell){\r\n\t\t\tcell = cell._cell;\r\n\t\t}\r\n\t\t\r\n\t\tif(cell.column.definition[option]){\r\n\t\t\tthis.loadMenuEvent(cell.column.definition[option], e, cell);\r\n\t\t}\r\n\t}\r\n\t\r\n\tloadMenuTableColumnEvent(option, e, column){\r\n\t\tif(column._column){\r\n\t\t\tcolumn = column._column;\r\n\t\t}\r\n\t\t\r\n\t\tif(column.definition[option]){\r\n\t\t\tthis.loadMenuEvent(column.definition[option], e, column);\r\n\t\t}\r\n\t}\r\n\t\r\n\tloadMenuEvent(menu, e, component){\r\n\t\tif(component._group){\r\n\t\t\tcomponent = component._group;\r\n\t\t}else if(component._row){\r\n\t\t\tcomponent = component._row;\r\n\t\t}\r\n\t\t\r\n\t\tmenu = typeof menu == \"function\" ? menu.call(this.table, e, component.getComponent()) : menu;\r\n\t\t\r\n\t\tthis.loadMenu(e, component, menu);\r\n\t}\r\n\t\r\n\tloadMenu(e, component, menu, parentEl, parentPopup){\r\n\t\tvar touch = !(e instanceof MouseEvent),\t\t\r\n\t\tmenuEl = document.createElement(\"div\"),\r\n\t\tpopup;\r\n\t\t\r\n\t\tmenuEl.classList.add(\"tabulator-menu\");\r\n\t\t\r\n\t\tif(!touch){\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\t\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\t\t\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.rootPopup){\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\t\t\t\r\n\t\t\tif(this.rootPopup){\r\n\t\t\t\tthis.rootPopup.hide();\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.rootPopup = popup = this.popup(menuEl);\r\n\t\t\t\r\n\t\t}else{\r\n\t\t\tpopup = parentPopup.child(menuEl);\r\n\t\t}\r\n\t\t\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\t\t\t\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\t\t\t\t\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\t\t\t\t\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\t\t\t\t\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\t\t\t\t\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.loadMenu(e, component, item.menu, itemEl, popup);\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\t\t\t\t\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\t\t\t\r\n\t\t\tmenuEl.appendChild(itemEl);\r\n\t\t});\r\n\t\t\r\n\t\tmenuEl.addEventListener(\"click\", (e) => {\r\n\t\t\tthis.rootPopup.hide();\r\n\t\t});\r\n\t\t\r\n\t\tpopup.show(parentEl || e);\r\n\t\t\r\n\t\tif(popup === this.rootPopup){\r\n\t\t\tthis.rootPopup.hideOnBlur(() => {\r\n\t\t\t\tthis.rootPopup = null;\r\n\t\t\t\t\r\n\t\t\t\tif(this.currentComponent){\r\n\t\t\t\t\tthis.dispatchExternal(\"menuClosed\", this.currentComponent.getComponent());\r\n\t\t\t\t\tthis.currentComponent = null;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.currentComponent = component;\r\n\r\n\t\t\tthis.dispatchExternal(\"menuOpened\", component.getComponent());\r\n\t\t}\r\n\t}\r\n}\r\n\r\nMenu.moduleName = \"menu\";\r\n\r\nexport default Menu;\r\n","import Module from '../../core/Module.js';\r\nimport Helpers from '../../core/tools/Helpers.js';\r\n\r\nclass MoveColumns extends Module{\r\n\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\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 destination 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\t\t\r\n\t\tthis.moveHover = this.moveHover.bind(this);\r\n\t\tthis.endMove = this.endMove.bind(this);\r\n\t\t\r\n\t\tthis.registerTableOption(\"movableColumns\", false); //enable movable columns\r\n\t}\r\n\t\r\n\tcreatePlaceholderElement(){\r\n\t\tvar el = document.createElement(\"div\");\r\n\t\t\r\n\t\tel.classList.add(\"tabulator-col\");\r\n\t\tel.classList.add(\"tabulator-col-placeholder\");\r\n\t\t\r\n\t\treturn el;\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tif(this.table.options.movableColumns){\r\n\t\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeColumn(column){\r\n\t\tvar self = this,\r\n\t\tconfig = {},\r\n\t\tcolEl;\r\n\t\t\r\n\t\tif(!column.modules.frozen && !column.isGroup){\r\n\t\t\tcolEl = column.getElement();\r\n\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tself.bindTouchEvents(column);\r\n\t\t}\r\n\t\t\r\n\t\tcolumn.modules.moveColumn = config;\r\n\t}\r\n\t\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\tnextCol, prevCol, nextColWidth, prevColWidth, nextColWidthLast, prevColWidthLast;\r\n\t\t\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\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\t\t\t\t\r\n\t\t\t\tthis.startMove(e, column);\r\n\t\t\t}, this.checkPeriod);\r\n\t\t}, {passive: true});\r\n\t\t\r\n\t\tcolEl.addEventListener(\"touchmove\", (e) => {\r\n\t\t\tvar diff, moveToCol;\r\n\t\t\t\r\n\t\t\tif(this.moving){\r\n\t\t\t\tthis.moveHover(e);\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tdiff = e.touches[0].pageX - startXMove;\r\n\t\t\t\t\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\t\t\t\t\t\t\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\t\t\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tif(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\t\t\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\t\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\t\t\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\t\t\r\n\t\tthis.table.element.classList.add(\"tabulator-block-select\");\r\n\t\t\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\t\t\r\n\t\telement.parentNode.insertBefore(this.placeholderElement, element);\r\n\t\telement.parentNode.removeChild(element);\r\n\t\t\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\t\t\r\n\t\tthis.table.columnManager.getElement().appendChild(this.hoverElement);\r\n\t\t\r\n\t\tthis.hoverElement.style.left = \"0\";\r\n\t\tthis.hoverElement.style.bottom = (headerElement.clientHeight - headersElement.offsetHeight) + \"px\";\r\n\t\t\r\n\t\tif(!this.touchMove){\r\n\t\t\tthis._bindMouseMove();\r\n\t\t\t\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\t\t\r\n\t\tthis.moveHover(e);\r\n\t}\r\n\t\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\t\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\t\r\n\tmoveColumn(column, after){\r\n\t\tvar movingCells = this.moving.getCells();\r\n\t\t\r\n\t\tthis.toCol = column;\r\n\t\tthis.toColAfter = after;\r\n\t\t\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\t\t\t\t\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\t\t\t\t\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\t\r\n\tendMove(e){\r\n\t\tif(e.which === 1 || this.touchMove){\r\n\t\t\tthis._unbindMouseMove();\r\n\t\t\t\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\t\t\t\r\n\t\t\tthis.table.element.classList.remove(\"tabulator-block-select\");\r\n\t\t\t\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\t\t\t\r\n\t\t\tthis.moving = false;\r\n\t\t\tthis.toCol = false;\r\n\t\t\tthis.toColAfter = false;\r\n\t\t\t\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\t\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\t\t\r\n\t\tthis.hoverElement.style.left = (xPos - this.startX) + \"px\";\r\n\t\t\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\t\t\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 destination 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\r\n\t\t//inter table drag drop\r\n\t\tconfig.mouseup = function(e){\r\n\t\t\tself.tableRowDrop(e, group);\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;\r\n\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\trowEl = 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\trowEl = 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\tnextRow, 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\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 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\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.dispatchExternal(\"rowMoving\", row.getComponent());\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}else{\r\n\t\t\t\tthis.dispatchExternal(\"rowMoveCancelled\", this.moving.getComponent());\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\t\r\n\t\tthis.hoverElement.style.top = Math.min(yPos - this.startY, this.table.rowManager.element.scrollHeight - this.hoverElement.offsetHeight) + \"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 incoming 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\t\tsender = this.senders[this.table.options.movableRowsSender];\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tsender = this.table.options.movableRowsSender;\r\n\t\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 ? this.moving.getComponent() : undefined, 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\t\treceiver = this.receivers[this.table.options.movableRowsReceiver];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\treceiver = this.table.options.movableRowsReceiver;\r\n\t\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\t\treturn this.connect(table, data.row);\r\n\r\n\t\t\tcase \"disconnect\":\r\n\t\t\t\treturn this.disconnect(table);\r\n\r\n\t\t\tcase \"dropcomplete\":\r\n\t\t\t\treturn this.dropComplete(table, data.row, data.success);\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 mutation 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\tthis.registerColumnOption(\"mutateLink\");\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(\"cell-value-changed\", this.mutateLink.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\t\tif(Mutator.mutators[value]){\r\n\t\t\t\t\tmutator = Mutator.mutators[value];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Mutator Error - No such mutator found, ignoring: \", value);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\tmutator = value;\r\n\t\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\tmutateLink(cell){\r\n\t\tvar links = cell.column.definition.mutateLink;\r\n\r\n\t\tif(links){\r\n\t\t\tif(!Array.isArray(links)){\r\n\t\t\t\tlinks = [links];\r\n\t\t\t}\r\n\r\n\t\t\tlinks.forEach((link) => {\r\n\t\t\t\tvar linkCell = cell.row.getCell(link);\r\n\r\n\t\t\t\tif(linkCell){\r\n\t\t\t\t\tlinkCell.setValue(linkCell.getValue(), true, true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\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;","export default function(pageSize, currentRow, currentPage, totalRows, totalPages){\r\n\tvar el = document.createElement(\"span\"),\r\n\tshowingEl = document.createElement(\"span\"),\r\n\tvalueEl = document.createElement(\"span\"),\r\n\tofEl = document.createElement(\"span\"),\r\n\ttotalEl = document.createElement(\"span\"),\r\n\trowsEl = document.createElement(\"span\");\r\n\r\n\tthis.table.modules.localize.langBind(\"pagination|counter|showing\", (value) => {\r\n\t\tshowingEl.innerHTML = value;\r\n\t});\r\n\r\n\tthis.table.modules.localize.langBind(\"pagination|counter|of\", (value) => {\r\n\t\tofEl.innerHTML = value;\r\n\t});\r\n\r\n\tthis.table.modules.localize.langBind(\"pagination|counter|rows\", (value) => {\r\n\t\trowsEl.innerHTML = value;\r\n\t});\r\n\r\n\tif(totalRows){\r\n\t\tvalueEl.innerHTML = \" \" + currentRow + \"-\" + Math.min((currentRow + pageSize - 1), totalRows) + \" \";\r\n\t\t\r\n\t\ttotalEl.innerHTML = \" \" + totalRows + \" \";\r\n\t\t\r\n\t\tel.appendChild(showingEl);\r\n\t\tel.appendChild(valueEl);\r\n\t\tel.appendChild(ofEl);\r\n\t\tel.appendChild(totalEl);\r\n\t\tel.appendChild(rowsEl);\r\n\t}else{\r\n\t\tvalueEl.innerHTML = \" 0 \";\r\n\r\n\t\tel.appendChild(showingEl);\r\n\t\tel.appendChild(valueEl);\r\n\t\tel.appendChild(rowsEl);\r\n\t}\r\n\t\r\n\treturn el;\r\n}","export default function(pageSize, currentRow, currentPage, totalRows, totalPages){\r\n\r\n\tvar el = document.createElement(\"span\"),\r\n\tshowingEl = document.createElement(\"span\"),\r\n\tvalueEl = document.createElement(\"span\"),\r\n\tofEl = document.createElement(\"span\"),\r\n\ttotalEl = document.createElement(\"span\"),\r\n\trowsEl = document.createElement(\"span\");\r\n\t\r\n\tthis.table.modules.localize.langBind(\"pagination|counter|showing\", (value) => {\r\n\t\tshowingEl.innerHTML = value;\r\n\t});\r\n\t\r\n\tvalueEl.innerHTML = \" \" + currentPage + \" \";\r\n\t\r\n\tthis.table.modules.localize.langBind(\"pagination|counter|of\", (value) => {\r\n\t\tofEl.innerHTML = value;\r\n\t});\r\n\t\r\n\ttotalEl.innerHTML = \" \" + totalPages + \" \";\r\n\t\r\n\tthis.table.modules.localize.langBind(\"pagination|counter|pages\", (value) => {\r\n\t\trowsEl.innerHTML = value;\r\n\t});\r\n\t\r\n\tel.appendChild(showingEl);\r\n\tel.appendChild(valueEl);\r\n\tel.appendChild(ofEl);\r\n\tel.appendChild(totalEl);\r\n\tel.appendChild(rowsEl);\r\n\t\r\n\treturn el;\r\n}","import rows from './pageCounters/rows.js';\r\nimport pages from './pageCounters/pages.js';\r\n\r\n\r\nexport default {\r\n\trows:rows,\r\n\tpages:pages,\r\n};","import Module from '../../core/Module.js';\r\n\r\nimport defaultPageCounters from './defaults/pageCounters.js';\r\n\r\nclass Page extends Module{\r\n\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.mode = \"local\";\r\n\t\tthis.progressiveLoad = false;\r\n\t\t\r\n\t\tthis.element = null;\r\n\t\tthis.pageCounterElement = null;\r\n\t\tthis.pageCounter = null;\r\n\t\t\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.remoteRowCountEstimate = null;\r\n\t\t\r\n\t\tthis.displayIndex = 0; //index in display pipeline\r\n\t\t\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\t\t\r\n\t\tthis.pageSizes = [];\r\n\t\t\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); //initial page to show on load\r\n\t\tthis.registerTableOption(\"paginationCounter\", false); // set pagination counter\r\n\t\tthis.registerTableOption(\"paginationCounterElement\", false); // set pagination counter\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\t\t\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\t\t\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\t\t\r\n\t\t//register component functions\r\n\t\tthis.registerComponentFunction(\"row\", \"pageTo\", this.setPageToRow.bind(this));\r\n\t}\r\n\t\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-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\t\t\tthis.subscribe(\"footer-redraw\", this.footerRedraw.bind(this));\r\n\r\n\t\t\tif(this.table.options.paginationAddRow == \"page\"){\r\n\t\t\t\tthis.subscribe(\"row-adding-position\", this.rowAddingPosition.bind(this));\r\n\t\t\t}\r\n\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tthis.registerDisplayHandler(this.restOnRenderBefore.bind(this), 40);\r\n\t\t\tthis.registerDisplayHandler(this.getRows.bind(this), 50);\r\n\t\t\t\r\n\t\t\tthis.createElements();\r\n\t\t\tthis.initializePageCounter();\r\n\t\t\tthis.initializePaginator();\r\n\t\t}else if(this.table.options.progressiveLoad){\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\t\t\tthis.subscribe(\"data-processed\", this.initialLoadComplete.bind(this));\r\n\t\t\t\r\n\t\t\tthis.initializeProgressive(this.table.options.progressiveLoad);\r\n\t\t\t\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\t\r\n\trowAddingPosition(row, top){\r\n\t\tvar rowManager = this.table.rowManager,\r\n\t\tdisplayRows = rowManager.getDisplayRows(),\r\n\t\tindex;\r\n\t\t\r\n\t\tif(top){\r\n\t\t\tif(displayRows.length){\r\n\t\t\t\tindex = displayRows[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(displayRows.length){\r\n\t\t\t\tindex = displayRows[displayRows.length - 1];\r\n\t\t\t\ttop = displayRows.length < this.size ? false : true;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn {index, top};\r\n\t}\r\n\t\r\n\tcalculatePageSizes(){\r\n\t\tvar testElRow, testElCell;\r\n\t\t\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\t\t\t\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\t\t\t\r\n\t\t\ttestElRow.appendChild(testElCell);\r\n\t\t\t\r\n\t\t\tthis.table.rowManager.getTableElement().appendChild(testElRow);\r\n\t\t\t\r\n\t\t\tthis.size = Math.floor(this.table.rowManager.getElement().clientHeight / testElRow.offsetHeight);\r\n\t\t\t\r\n\t\t\tthis.table.rowManager.getTableElement().removeChild(testElRow);\r\n\t\t}\r\n\r\n\t\tthis.dispatchExternal(\"pageSizeChanged\", this.size);\r\n\t\t\r\n\t\tthis.generatePageSizeSelectList();\r\n\t}\r\n\t\r\n\tinitialLoadComplete(){\r\n\t\tthis.initialLoad = false;\r\n\t}\r\n\t\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\t\t\r\n\t\t//configure request params\r\n\t\tparams.page = this.page;\r\n\t\t\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\t\t\r\n\t\treturn params;\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\t\r\n\tuserSetPageToRow(row){\r\n\t\tif(this.table.options.pagination){\r\n\t\t\trow = this.rowManager.findRow(row);\r\n\t\t\t\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\t\t\r\n\t\treturn Promise.reject();\r\n\t}\r\n\t\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\t\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\t\t\t\r\n\t\t\tif(diff < margin){\r\n\t\t\t\tthis.nextPage()\r\n\t\t\t\t\t.catch(() => {}); //consume the exception thrown when on the last page\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\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\t\t\r\n\t\treturn rows;\r\n\t}\r\n\t\r\n\trowsUpdated(){\r\n\t\tthis.refreshData(true, \"all\");\r\n\t}\r\n\t\r\n\tcreateElements(){\r\n\t\tvar button;\r\n\t\t\r\n\t\tthis.element = document.createElement(\"span\");\r\n\t\tthis.element.classList.add(\"tabulator-paginator\");\r\n\t\t\r\n\t\tthis.pagesElement = document.createElement(\"span\");\r\n\t\tthis.pagesElement.classList.add(\"tabulator-pages\");\r\n\t\t\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\t\t\r\n\t\tthis.firstBut = button.cloneNode(true);\r\n\t\tthis.firstBut.setAttribute(\"data-page\", \"first\");\r\n\t\t\r\n\t\tthis.prevBut = button.cloneNode(true);\r\n\t\tthis.prevBut.setAttribute(\"data-page\", \"prev\");\r\n\t\t\r\n\t\tthis.nextBut = button.cloneNode(true);\r\n\t\tthis.nextBut.setAttribute(\"data-page\", \"next\");\r\n\t\t\r\n\t\tthis.lastBut = button.cloneNode(true);\r\n\t\tthis.lastBut.setAttribute(\"data-page\", \"last\");\r\n\t\t\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\t\r\n\tgeneratePageSizeSelectList(){\r\n\t\tvar pageSizes = [];\r\n\t\t\r\n\t\tif(this.pageSizeSelect){\r\n\t\t\t\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\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tif(this.pageSizes.indexOf(this.size) == -1){\r\n\t\t\t\t\tpageSizes = [];\r\n\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\r\n\t\t\twhile(this.pageSizeSelect.firstChild) this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);\r\n\t\t\t\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\t\t\t\t\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\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tthis.pageSizeSelect.appendChild(itemEl);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.pageSizeSelect.value = this.size;\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializePageCounter(){\r\n\t\tvar counter = this.table.options.paginationCounter,\r\n\t\tpageCounter = null;\r\n\t\t\r\n\t\tif(counter){\r\n\t\t\tif(typeof counter === \"function\"){\r\n\t\t\t\tpageCounter = counter;\r\n\t\t\t}else{\r\n\t\t\t\tpageCounter = Page.pageCounters[counter];\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(pageCounter){\r\n\t\t\t\tthis.pageCounter = pageCounter;\r\n\t\t\t\t\r\n\t\t\t\tthis.pageCounterElement = document.createElement(\"span\");\r\n\t\t\t\tthis.pageCounterElement.classList.add(\"tabulator-page-counter\");\r\n\t\t\t}else{\r\n\t\t\t\tconsole.warn(\"Pagination Error - No such page counter found: \", counter);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t//setup pagination\r\n\tinitializePaginator(hidden){\r\n\t\tvar pageSelectLabel, paginationCounterHolder;\r\n\t\t\r\n\t\tif(!hidden){\r\n\t\t\t//build pagination element\r\n\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tthis.prevBut.addEventListener(\"click\", () => {\r\n\t\t\t\tthis.previousPage();\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.nextBut.addEventListener(\"click\", () => {\r\n\t\t\t\tthis.nextPage();\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.lastBut.addEventListener(\"click\", () => {\r\n\t\t\t\tthis.setPage(this.max);\r\n\t\t\t});\r\n\t\t\t\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\t\t\t\r\n\t\t\tif(this.pageSizeSelect){\r\n\t\t\t\tpageSelectLabel = document.createElement(\"label\");\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tthis.element.appendChild(pageSelectLabel);\r\n\t\t\t\tthis.element.appendChild(this.pageSizeSelect);\r\n\t\t\t\t\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\t\t\t\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\t\t\t\r\n\t\t\tif(!this.table.options.paginationElement){\r\n\t\t\t\tif(this.table.options.paginationCounter){\r\n\r\n\t\t\t\t\tpaginationCounterHolder; \r\n\r\n\t\t\t\t\tif(this.table.options.paginationCounterElement){\r\n\t\t\t\t\t\tif(this.table.options.paginationCounterElement instanceof HTMLElement){\r\n\t\t\t\t\t\t\tthis.table.options.paginationCounterElement.appendChild(this.pageCounterElement);\r\n\t\t\t\t\t\t}else if(typeof this.table.options.paginationCounterElement === \"string\"){\r\n\t\t\t\t\t\t\tpaginationCounterHolder = document.querySelector(this.table.options.paginationCounterElement);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif(paginationCounterHolder){\r\n\t\t\t\t\t\t\t\tpaginationCounterHolder.appendChild(this.pageCounterElement);\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\tconsole.warn(\"Pagination Error - Unable to find element matching paginationCounterElement selector:\", this.table.options.paginationCounterElement);\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\tthis.footerAppend(this.pageCounterElement);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.footerAppend(this.element);\r\n\t\t\t}\r\n\t\t\t\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\t\t\r\n\t\t//set default values\r\n\t\tthis.mode = this.table.options.paginationMode;\r\n\t}\r\n\t\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\t\r\n\ttrackChanges(){\r\n\t\tthis.dispatch(\"page-changed\");\r\n\t}\r\n\t\r\n\tsetDisplayIndex(index){\r\n\t\tthis.displayIndex = index;\r\n\t}\r\n\t\r\n\tgetDisplayIndex(){\r\n\t\treturn this.displayIndex;\r\n\t}\r\n\t\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\t\t\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\t\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\t\r\n\t//set the maximum page\r\n\tsetMaxPage(max){\r\n\t\t\r\n\t\tmax = parseInt(max);\r\n\t\t\r\n\t\tthis.max = max || 1;\r\n\t\t\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\t\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\t\treturn this.setPage(1);\r\n\t\r\n\t\t\tcase \"prev\":\r\n\t\t\t\treturn this.previousPage();\r\n\t\t\t\r\n\t\t\tcase \"next\":\r\n\t\t\t\treturn this.nextPage();\r\n\t\t\t\r\n\t\t\tcase \"last\":\r\n\t\t\t\treturn this.setPage(this.max);\r\n\t\t}\r\n\t\t\r\n\t\tpage = parseInt(page);\r\n\t\t\r\n\t\tif((page > 0 && page <= this.max) || this.mode !== \"local\"){\r\n\t\t\tthis.page = page;\r\n\t\t\t\r\n\t\t\tthis.trackChanges();\r\n\t\t\t\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\t\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\t\t\r\n\t\tif(index > -1){\r\n\t\t\tvar page = this.size === true ? 1 : Math.ceil((index + 1) / this.size);\r\n\t\t\t\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\t\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\tthis.dispatchExternal(\"pageSizeChanged\", size);\r\n\t\t}\r\n\t\t\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\t\t\r\n\t\tthis.trackChanges();\r\n\t}\r\n\t\r\n\t_setPageCounter(totalRows, size, currentRow){\r\n\t\tvar content;\r\n\t\t\r\n\t\tif(this.pageCounter){\r\n\r\n\t\t\tif(this.mode === \"remote\"){\r\n\t\t\t\tsize = this.size;\r\n\t\t\t\tcurrentRow = ((this.page - 1) * this.size) + 1;\r\n\t\t\t\ttotalRows = this.remoteRowCountEstimate;\r\n\t\t\t}\r\n\r\n\t\t\tcontent = this.pageCounter.call(this, size, currentRow, this.page, totalRows, this.max);\r\n\t\t\t\r\n\t\t\tswitch(typeof content){\r\n\t\t\t\tcase \"object\":\r\n\t\t\t\t\tif(content instanceof Node){\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t//clear previous cell contents\r\n\t\t\t\t\t\twhile(this.pageCounterElement.firstChild) this.pageCounterElement.removeChild(this.pageCounterElement.firstChild);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tthis.pageCounterElement.appendChild(content);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthis.pageCounterElement.innerHTML = \"\";\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tif(content != null){\r\n\t\t\t\t\t\t\tconsole.warn(\"Page Counter Error - Page Counter has returned a type of object, the only valid page counter object return is an instance of Node, the page counter returned:\", content);\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\tcase \"undefined\":\r\n\t\t\t\t\tthis.pageCounterElement.innerHTML = \"\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.pageCounterElement.innerHTML = content;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\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\t\t\r\n\t\twhile(this.pagesElement.firstChild) this.pagesElement.removeChild(this.pagesElement.firstChild);\r\n\t\t\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\t\t\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\t\t\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\t\t\r\n\t\tthis.footerRedraw();\r\n\t}\r\n\t\r\n\t_generatePageButton(page){\r\n\t\tvar button = document.createElement(\"button\");\r\n\t\t\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\t\t\r\n\t\tbutton.setAttribute(\"type\", \"button\");\r\n\t\tbutton.setAttribute(\"role\", \"button\");\r\n\t\t\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\t\t\r\n\t\tbutton.setAttribute(\"data-page\", page);\r\n\t\tbutton.textContent = page;\r\n\t\t\r\n\t\tbutton.addEventListener(\"click\", (e) => {\r\n\t\t\tthis.setPage(page);\r\n\t\t});\r\n\t\t\r\n\t\treturn button;\r\n\t}\r\n\t\r\n\t//previous page\r\n\tpreviousPage(){\r\n\t\tif(this.page > 1){\r\n\t\t\tthis.page--;\r\n\t\t\t\r\n\t\t\tthis.trackChanges();\r\n\t\t\t\r\n\t\t\treturn this.trigger();\r\n\t\t\t\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\t\r\n\t//next page\r\n\tnextPage(){\r\n\t\tif(this.page < this.max){\r\n\t\t\tthis.page++;\r\n\t\t\t\r\n\t\t\tthis.trackChanges();\r\n\t\t\t\r\n\t\t\treturn this.trigger();\r\n\t\t\t\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\t\r\n\t//return current page number\r\n\tgetPage(){\r\n\t\treturn this.page;\r\n\t}\r\n\t\r\n\t//return max page number\r\n\tgetPageMax(){\r\n\t\treturn this.max;\r\n\t}\r\n\t\r\n\tgetPageSize(size){\r\n\t\treturn this.size;\r\n\t}\r\n\t\r\n\tgetMode(){\r\n\t\treturn this.mode;\r\n\t}\r\n\t\r\n\t//return appropriate rows for current page\r\n\tgetRows(data){\r\n\t\tvar actualRowPageSize = 0,\r\n\t\toutput, start, end, actualStartRow;\r\n\r\n\t\tvar actualRows = data.filter((row) => {\r\n\t\t\treturn row.type === \"row\";\r\n\t\t});\r\n\t\t\r\n\t\tif(this.mode == \"local\"){\r\n\t\t\toutput = [];\r\n\t\t\t\r\n\t\t\tthis.setMaxRows(data.length);\r\n\t\t\t\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\t\t\t\r\n\t\t\tthis._setPageButtons();\r\n\t\t\t\r\n\t\t\tfor(let i = start; i < end; i++){\r\n\t\t\t\tlet row = data[i];\r\n\r\n\t\t\t\tif(row){\r\n\t\t\t\t\toutput.push(row);\r\n\r\n\t\t\t\t\tif(row.type === \"row\"){\r\n\t\t\t\t\t\tif(!actualStartRow){\r\n\t\t\t\t\t\t\tactualStartRow = row;\r\n\t\t\t\t\t\t}\t\r\n\r\n\t\t\t\t\t\tactualRowPageSize++;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis._setPageCounter(actualRows.length, actualRowPageSize, actualStartRow ? (actualRows.indexOf(actualStartRow) + 1) : 0);\r\n\t\t\t\r\n\t\t\treturn output;\r\n\t\t}else{\r\n\t\t\tthis._setPageButtons();\r\n\t\t\tthis._setPageCounter(actualRows.length);\r\n\t\t\t\r\n\t\t\treturn data.slice(0);\r\n\t\t}\r\n\t}\r\n\t\r\n\ttrigger(){\r\n\t\tvar left;\r\n\t\t\r\n\t\tswitch(this.mode){\r\n\t\t\tcase \"local\":\r\n\t\t\t\tleft = this.table.rowManager.scrollLeft;\r\n\t\t\t\r\n\t\t\t\tthis.refreshData();\r\n\t\t\t\tthis.table.rowManager.scrollHorizontal(left);\r\n\t\t\t\r\n\t\t\t\tthis.dispatchExternal(\"pageLoaded\", this.getPage());\r\n\t\t\t\r\n\t\t\t\treturn Promise.resolve();\r\n\t\t\t\r\n\t\t\tcase \"remote\":\r\n\t\t\t\tthis.dataChanging = true;\r\n\t\t\t\treturn this.reloadData(null)\r\n\t\t\t\t\t.finally(() => {\r\n\t\t\t\t\t\tthis.dataChanging = false;\r\n\t\t\t\t\t});\r\n\t\t\t\r\n\t\t\tcase \"progressive_load\":\r\n\t\t\tcase \"progressive_scroll\":\r\n\t\t\t\treturn this.reloadData(null, true);\r\n\t\t\t\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.warn(\"Pagination Error - no such pagination mode:\", this.mode);\r\n\t\t\t\treturn Promise.reject();\r\n\t\t}\r\n\t}\r\n\t\r\n\t_parseRemoteData(data){\r\n\t\tvar margin;\r\n\t\t\r\n\t\tif(typeof data.last_page === \"undefined\"){\r\n\t\t\tconsole.warn(\"Remote Pagination Error - Server response missing '\" + (this.options(\"dataReceiveParams\").last_page || \"last_page\") + \"' property\");\r\n\t\t}\r\n\t\t\r\n\t\tif(data.data){\r\n\t\t\tthis.max = parseInt(data.last_page) || 1;\r\n\r\n\t\t\tthis.remoteRowCountEstimate = typeof data.last_row !== \"undefined\" ? data.last_row : (data.last_page * this.size - (this.page == data.last_page ? (this.size - data.data.length) : 0));\r\n\t\t\t\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\t\t\t\t\t\r\n\t\t\t\t\t\tif(this.page == 1){\r\n\t\t\t\t\t\t\tthis.table.rowManager.setData(data.data, false, this.page == 1);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tthis.table.rowManager.addRows(data.data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tif(this.page < this.max){\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\tthis.nextPage();\r\n\t\t\t\t\t\t\t}, this.table.options.progressiveLoadDelay);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\tcase \"progressive_scroll\":\r\n\t\t\t\t\t\tdata = this.page === 1 ? data.data : this.table.rowManager.getData().concat(data.data);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tthis.table.rowManager.setData(data, this.page !== 1, this.page == 1);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tmargin = this.table.options.progressiveLoadScrollMargin || (this.table.rowManager.element.clientHeight * 2);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tif(this.table.rowManager.element.scrollHeight <= (this.table.rowManager.element.clientHeight + margin)){\r\n\t\t\t\t\t\t\tif(this.page < this.max){\r\n\t\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\t\tthis.nextPage();\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\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\t\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\t\t\t\r\n\t\t}else{\r\n\t\t\tconsole.warn(\"Remote Pagination Error - Server response missing '\" + (this.options(\"dataReceiveParams\").data || \"data\") + \"' property\");\r\n\t\t}\r\n\t\t\r\n\t\treturn data.data;\r\n\t}\r\n\t\r\n\t//handle the footer element being redrawn\r\n\tfooterRedraw(){\r\n\t\tvar footer = this.table.footerManager.containerElement;\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\t\t\t\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\n//load defaults\r\nPage.pageCounters = defaultPageCounters;\r\n\r\nexport default Page;\r\n","// read persistance 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.slice(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.slice(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};\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\tretrievedData;\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\tretrievedData = this.retrieveData(\"page\");\r\n\r\n\t\t\t\tif(retrievedData){\r\n\t\t\t\t\tif(typeof retrievedData.paginationSize !== \"undefined\" && (this.config.page === true || this.config.page.size)){\r\n\t\t\t\t\t\tthis.table.options.paginationSize = retrievedData.paginationSize;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(typeof retrievedData.paginationInitialPage !== \"undefined\" && (this.config.page === true || this.config.page.page)){\r\n\t\t\t\t\t\tthis.table.options.paginationInitialPage = retrievedData.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\tretrievedData = this.retrieveData(\"group\");\r\n\r\n\t\t\t\tif(retrievedData){\r\n\t\t\t\t\tif(typeof retrievedData.groupBy !== \"undefined\" && (this.config.group === true || this.config.group.groupBy)){\r\n\t\t\t\t\t\tthis.table.options.groupBy = retrievedData.groupBy;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof retrievedData.groupStartOpen !== \"undefined\" && (this.config.group === true || this.config.group.groupStartOpen)){\r\n\t\t\t\t\t\tthis.table.options.groupStartOpen = retrievedData.groupStartOpen;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof retrievedData.groupHeader !== \"undefined\" && (this.config.group === true || this.config.group.groupHeader)){\r\n\t\t\t\t\t\tthis.table.options.groupHeader = retrievedData.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}\r\n\r\n\t\t\tthis.subscribe(\"table-built\", this.tableBuilt.bind(this), 0);\r\n\r\n\t\t\tthis.subscribe(\"table-redraw\", this.tableRedraw.bind(this));\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 sorters, 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.options.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.options.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.retrieveData(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//retrieve data from memory\r\n\tretrieveData(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\t\treturn col.title === subject.title && col.columns.length === subject.columns.length;\r\n\r\n\t\t\t\tcase \"field\":\r\n\t\t\t\t\treturn col.field === subject.field;\r\n\r\n\t\t\t\tcase \"object\":\r\n\t\t\t\t\treturn col === subject;\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\t\tdata = this.parseColumns(this.table.columnManager.getColumns());\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"filter\":\r\n\t\t\t\tdata = this.table.modules.filter.getFilters();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"sort\":\r\n\t\t\t\tdata = this.validateSorters(this.table.modules.sort.getSort());\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"group\":\r\n\t\t\t\tdata = this.getGroupConfig();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"page\":\r\n\t\t\t\tdata = this.getPageConfig();\r\n\t\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\tkeys.push(\"visible\");\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\t\tdefStore.width = column.getWidth();\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase \"visible\":\r\n\t\t\t\t\t\t\tdefStore.visible = column.visible;\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tif(typeof colDef[key] !== \"function\" && excludedKeys.indexOf(key) === -1){\r\n\t\t\t\t\t\t\t\tdefStore[key] = colDef[key];\r\n\t\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\nPersistence.moduleInitOrder = -10;\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 Popup extends Module{\r\n\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.columnSubscribers = {};\r\n\t\t\r\n\t\tthis.registerTableOption(\"rowContextPopup\", false);\r\n\t\tthis.registerTableOption(\"rowClickPopup\", false);\r\n\t\tthis.registerTableOption(\"groupContextPopup\", false);\r\n\t\tthis.registerTableOption(\"groupClickPopup\", false);\r\n\t\t\r\n\t\tthis.registerColumnOption(\"headerContextPopup\");\r\n\t\tthis.registerColumnOption(\"headerClickPopup\");\r\n\t\tthis.registerColumnOption(\"headerPopup\");\r\n\t\tthis.registerColumnOption(\"headerPopupIcon\");\r\n\t\tthis.registerColumnOption(\"contextPopup\");\r\n\t\tthis.registerColumnOption(\"clickPopup\");\r\n\t\t\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tthis.initializeRowWatchers();\r\n\t\tthis.initializeGroupWatchers();\r\n\t\t\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t}\r\n\t\r\n\tinitializeRowWatchers(){\r\n\t\tif(this.table.options.rowContextPopup){\r\n\t\t\tthis.subscribe(\"row-contextmenu\", this.loadPopupEvent.bind(this, this.table.options.rowContextPopup));\r\n\t\t\tthis.table.on(\"rowTapHold\", this.loadPopupEvent.bind(this, this.table.options.rowContextPopup));\r\n\t\t}\r\n\t\t\r\n\t\tif(this.table.options.rowClickPopup){\r\n\t\t\tthis.subscribe(\"row-click\", this.loadPopupEvent.bind(this, this.table.options.rowClickPopup));\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeGroupWatchers(){\r\n\t\tif(this.table.options.groupContextPopup){\r\n\t\t\tthis.subscribe(\"group-contextmenu\", this.loadPopupEvent.bind(this, this.table.options.groupContextPopup));\r\n\t\t\tthis.table.on(\"groupTapHold\", this.loadPopupEvent.bind(this, this.table.options.groupContextPopup));\r\n\t\t}\r\n\t\t\r\n\t\tif(this.table.options.groupClickPopup){\r\n\t\t\tthis.subscribe(\"group-click\", this.loadPopupEvent.bind(this, this.table.options.groupClickPopup));\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeColumn(column){\r\n\t\tvar def = column.definition;\r\n\t\t\r\n\t\t//handle column events\r\n\t\tif(def.headerContextPopup && !this.columnSubscribers.headerContextPopup){\r\n\t\t\tthis.columnSubscribers.headerContextPopup = this.loadPopupTableColumnEvent.bind(this, \"headerContextPopup\");\r\n\t\t\tthis.subscribe(\"column-contextmenu\", this.columnSubscribers.headerContextPopup);\r\n\t\t\tthis.table.on(\"headerTapHold\", this.loadPopupTableColumnEvent.bind(this, \"headerContextPopup\"));\r\n\t\t}\r\n\t\t\r\n\t\tif(def.headerClickPopup && !this.columnSubscribers.headerClickPopup){\r\n\t\t\tthis.columnSubscribers.headerClickPopup = this.loadPopupTableColumnEvent.bind(this, \"headerClickPopup\");\r\n\t\t\tthis.subscribe(\"column-click\", this.columnSubscribers.headerClickPopup);\r\n\t\t}\r\n\t\t\r\n\t\tif(def.headerPopup){\r\n\t\t\tthis.initializeColumnHeaderPopup(column);\r\n\t\t}\r\n\t\t\r\n\t\t//handle cell events\r\n\t\tif(def.contextPopup && !this.columnSubscribers.contextPopup){\r\n\t\t\tthis.columnSubscribers.contextPopup = this.loadPopupTableCellEvent.bind(this, \"contextPopup\");\r\n\t\t\tthis.subscribe(\"cell-contextmenu\", this.columnSubscribers.contextPopup);\r\n\t\t\tthis.table.on(\"cellTapHold\", this.loadPopupTableCellEvent.bind(this, \"contextPopup\"));\r\n\t\t}\r\n\t\t\r\n\t\tif(def.clickPopup && !this.columnSubscribers.clickPopup){\r\n\t\t\tthis.columnSubscribers.clickPopup = this.loadPopupTableCellEvent.bind(this, \"clickPopup\");\r\n\t\t\tthis.subscribe(\"cell-click\", this.columnSubscribers.clickPopup);\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeColumnHeaderPopup(column){\r\n\t\tvar icon = column.definition.headerPopupIcon,\r\n\t\theaderPopupEl;\r\n\t\t\r\n\t\theaderPopupEl = document.createElement(\"span\");\r\n\t\theaderPopupEl.classList.add(\"tabulator-header-popup-button\");\r\n\r\n\t\tif(icon){\r\n\t\t\tif(typeof icon === \"function\"){\r\n\t\t\t\ticon = icon(column.getComponent());\r\n\t\t\t}\r\n\r\n\t\t\tif(icon instanceof HTMLElement){\r\n\t\t\t\theaderPopupEl.appendChild(icon);\r\n\t\t\t}else{\r\n\t\t\t\theaderPopupEl.innerHTML = icon;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\theaderPopupEl.innerHTML = \"⋮\";\r\n\t\t}\r\n\t\t\r\n\t\theaderPopupEl.addEventListener(\"click\", (e) => {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t\t\r\n\t\t\tthis.loadPopupEvent(column.definition.headerPopup, e, column);\r\n\t\t});\r\n\t\t\r\n\t\tcolumn.titleElement.insertBefore(headerPopupEl, column.titleElement.firstChild);\r\n\t}\r\n\t\r\n\tloadPopupTableCellEvent(option, e, cell){\r\n\t\tif(cell._cell){\r\n\t\t\tcell = cell._cell;\r\n\t\t}\r\n\t\t\r\n\t\tif(cell.column.definition[option]){\r\n\t\t\tthis.loadPopupEvent(cell.column.definition[option], e, cell);\r\n\t\t}\r\n\t}\r\n\t\r\n\tloadPopupTableColumnEvent(option, e, column){\r\n\t\tif(column._column){\r\n\t\t\tcolumn = column._column;\r\n\t\t}\r\n\t\t\r\n\t\tif(column.definition[option]){\r\n\t\t\tthis.loadPopupEvent(column.definition[option], e, column);\r\n\t\t}\r\n\t}\r\n\t\r\n\tloadPopupEvent(contents, e, component){\r\n\t\tvar renderedCallback;\r\n\r\n\t\tfunction onRendered(callback){\r\n\t\t\trenderedCallback = callback;\r\n\t\t}\r\n\t\t\r\n\t\tif(component._group){\r\n\t\t\tcomponent = component._group;\r\n\t\t}else if(component._row){\r\n\t\t\tcomponent = component._row;\r\n\t\t}\r\n\t\t\r\n\t\tcontents = typeof contents == \"function\" ? contents.call(this.table, e, component.getComponent(), onRendered) : contents;\r\n\t\t\r\n\t\tthis.loadPopup(e, component, contents, renderedCallback);\r\n\t}\r\n\t\r\n\tloadPopup(e, component, contents, renderedCallback){\r\n\t\tvar touch = !(e instanceof MouseEvent),\r\n\t\tcontentsEl, popup;\r\n\t\t\r\n\t\tif(contents instanceof HTMLElement){\r\n\t\t\tcontentsEl = contents;\r\n\t\t}else{\r\n\t\t\tcontentsEl = document.createElement(\"div\");\r\n\t\t\tcontentsEl.innerHTML = contents;\r\n\t\t}\r\n\t\t\r\n\t\tcontentsEl.classList.add(\"tabulator-popup\");\r\n\r\n\t\tcontentsEl.addEventListener(\"click\", (e) =>{\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t\tif(!touch){\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\t\r\n\t\tpopup = this.popup(contentsEl);\r\n\r\n\t\tif(typeof renderedCallback === \"function\"){\r\n\t\t\tpopup.renderCallback(renderedCallback);\r\n\t\t}\r\n\t\t\r\n\t\tpopup.show(e).hideOnBlur(() => {\r\n\t\t\tthis.dispatchExternal(\"popupClosed\", component.getComponent());\r\n\t\t});\r\n\r\n\r\n\r\n\t\tthis.dispatchExternal(\"popupOpened\", component.getComponent());\r\n\t}\r\n}\r\n\r\nPopup.moduleName = \"popup\";\r\n\r\nexport default Popup;\r\n","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.generateTable(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.generateTable(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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\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\t\t\r\n\t\tthis.registerTableOption(\"reactiveData\", false); //enable data reactivity\r\n\t}\r\n\t\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, \"cellsave\"));\r\n\t\t\tthis.subscribe(\"cell-value-save-after\", this.unblock.bind(this, \"cellsave\"));\r\n\t\t\tthis.subscribe(\"row-data-save-before\", this.block.bind(this, \"rowsave\"));\r\n\t\t\tthis.subscribe(\"row-data-save-after\", this.unblock.bind(this, \"rowsave\"));\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\t\r\n\twatchData(data){\r\n\t\tvar self = this,\r\n\t\tversion;\r\n\t\t\r\n\t\tthis.currentVersion ++;\r\n\t\t\r\n\t\tversion = this.currentVersion;\r\n\t\t\r\n\t\tthis.unwatchData();\r\n\t\t\r\n\t\tthis.data = data;\r\n\t\t\r\n\t\t//override array push function\r\n\t\tthis.origFuncs.push = data.push;\r\n\t\t\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\t\t\t\tresult;\r\n\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\t\r\n\t\t\t\t\tself.block(\"data-push\");\r\n\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\t\r\n\t\t\t\t\tresult = self.origFuncs.push.apply(data, arguments);\r\n\t\t\t\t\t\r\n\t\t\t\t\tself.unblock(\"data-push\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t//override array unshift function\r\n\t\tthis.origFuncs.unshift = data.unshift;\r\n\t\t\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\t\t\t\tresult;\r\n\t\t\t\t\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\tself.block(\"data-unshift\");\r\n\t\t\t\t\t\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\t\r\n\t\t\t\t\tresult = self.origFuncs.unshift.apply(data, arguments);\r\n\t\t\t\t\t\r\n\t\t\t\t\tself.unblock(\"data-unshift\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t//override array shift function\r\n\t\tthis.origFuncs.shift = data.shift;\r\n\t\t\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, result;\r\n\t\t\t\t\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\tself.block(\"data-shift\");\r\n\t\t\t\t\t\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\t\t\t\t\t\t\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\r\n\t\t\t\t\tresult = self.origFuncs.shift.call(data);\r\n\r\n\t\t\t\t\tself.unblock(\"data-shift\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t//override array pop function\r\n\t\tthis.origFuncs.pop = data.pop;\r\n\t\t\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, result;\r\n\t\t\t\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\tself.block(\"data-pop\");\r\n\t\t\t\t\t\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\t\t\t\t\t\t\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\r\n\t\t\t\t\tresult = self.origFuncs.pop.call(data);\r\n\t\t\t\t\t\r\n\t\t\t\t\tself.unblock(\"data-pop\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t//override array splice function\r\n\t\tthis.origFuncs.splice = data.splice;\r\n\t\t\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, result;\r\n\t\t\t\t\r\n\t\t\t\tif(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\tself.block(\"data-splice\");\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\t\t\t\t\t\t\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\t\t\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\t\t\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\t\t\t\t\t\t\t\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\t\t\t\t\t\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\r\n\t\t\t\t\tresult = self.origFuncs.splice.apply(data, arguments);\r\n\t\t\t\t\t\r\n\t\t\t\t\tself.unblock(\"data-splice\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\treturn result ;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\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\t\r\n\twatchRow(row){\r\n\t\tvar data = row.getData();\r\n\t\t\r\n\t\tfor(var key in data){\r\n\t\t\tthis.watchKey(row, data, key);\r\n\t\t}\r\n\t\t\r\n\t\tif(this.table.options.dataTree){\r\n\t\t\tthis.watchTreeChildren(row);\r\n\t\t}\r\n\t}\r\n\t\r\n\twatchTreeChildren (row){\r\n\t\tvar self = this,\r\n\t\tchildField = row.getData()[this.table.options.dataTreeChildField],\r\n\t\torigFuncs = {};\r\n\t\t\r\n\t\tif(childField){\r\n\t\t\t\r\n\t\t\torigFuncs.push = childField.push;\r\n\t\t\t\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\tif(!self.blocked){\r\n\t\t\t\t\t\tself.block(\"tree-push\");\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar result = origFuncs.push.apply(childField, arguments);\r\n\t\t\t\t\t\tthis.rebuildTree(row);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tself.unblock(\"tree-push\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\torigFuncs.unshift = childField.unshift;\r\n\t\t\t\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\tif(!self.blocked){\r\n\t\t\t\t\t\tself.block(\"tree-unshift\");\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar result = origFuncs.unshift.apply(childField, arguments);\r\n\t\t\t\t\t\tthis.rebuildTree(row);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tself.unblock(\"tree-unshift\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\torigFuncs.shift = childField.shift;\r\n\t\t\t\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\tif(!self.blocked){\r\n\t\t\t\t\t\tself.block(\"tree-shift\");\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar result = origFuncs.shift.call(childField);\r\n\t\t\t\t\t\tthis.rebuildTree(row);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tself.unblock(\"tree-shift\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\torigFuncs.pop = childField.pop;\r\n\t\t\t\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\tif(!self.blocked){\r\n\t\t\t\t\t\tself.block(\"tree-pop\");\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar result = origFuncs.pop.call(childField);\r\n\t\t\t\t\t\tthis.rebuildTree(row);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tself.unblock(\"tree-pop\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\torigFuncs.splice = childField.splice;\r\n\t\t\t\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\tif(!self.blocked){\r\n\t\t\t\t\t\tself.block(\"tree-splice\");\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar result = origFuncs.splice.apply(childField, arguments);\r\n\t\t\t\t\t\tthis.rebuildTree(row);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tself.unblock(\"tree-splice\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\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\t\r\n\trebuildTree(row){\r\n\t\tthis.table.modules.dataTree.initializeRow(row);\r\n\t\tthis.table.modules.dataTree.layoutRow(row);\r\n\t\tthis.table.rowManager.refreshActiveData(\"tree\", false, true);\r\n\t}\r\n\t\r\n\twatchKey(row, data, key){\r\n\t\tvar self = this,\r\n\t\tprops = Object.getOwnPropertyDescriptor(data, key),\r\n\t\tvalue = data[key],\r\n\t\tversion = this.currentVersion;\r\n\t\t\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(!self.blocked && version === self.currentVersion){\r\n\t\t\t\t\tself.block(\"key\");\r\n\t\t\t\t\t\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\t\r\n\t\t\t\t\tself.unblock(\"key\");\r\n\t\t\t\t}\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tif(props.get){\r\n\t\t\t\t\tprops.get();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\tunwatchRow(row){\r\n\t\tvar data = row.getData();\r\n\t\t\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\t\r\n\tblock(key){\r\n\t\tif(!this.blocked){\r\n\t\t\tthis.blocked = key;\r\n\t\t}\r\n\t}\r\n\t\r\n\tunblock(key){\r\n\t\tif(this.blocked === key){\r\n\t\t\tthis.blocked = false;\r\n\t\t}\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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.startColumn = false;\r\n\t\tthis.startX = false;\r\n\t\tthis.startWidth = false;\r\n\t\tthis.latestX = false;\r\n\t\tthis.handle = null;\r\n\t\tthis.initialNextColumn = null;\r\n\t\tthis.nextColumn = null;\r\n\t\t\r\n\t\tthis.initialized = false;\r\n\t\tthis.registerColumnOption(\"resizable\", true);\r\n\t\tthis.registerTableOption(\"resizableColumnFit\", false);\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tthis.subscribe(\"column-rendered\", this.layoutColumnHeader.bind(this));\r\n\t}\r\n\t\r\n\tinitializeEventWatchers(){\r\n\t\tif(!this.initialized){\r\n\t\t\t\r\n\t\t\tthis.subscribe(\"cell-rendered\", this.layoutCellHandles.bind(this));\r\n\t\t\tthis.subscribe(\"cell-delete\", this.deInitializeComponent.bind(this));\r\n\t\t\t\r\n\t\t\tthis.subscribe(\"cell-height\", this.resizeHandle.bind(this));\r\n\t\t\tthis.subscribe(\"column-moved\", this.columnLayoutUpdated.bind(this));\r\n\t\t\t\r\n\t\t\tthis.subscribe(\"column-hide\", this.deInitializeColumn.bind(this));\r\n\t\t\tthis.subscribe(\"column-show\", this.columnLayoutUpdated.bind(this));\r\n\t\t\tthis.subscribe(\"column-width\", this.columnWidthUpdated.bind(this));\r\n\t\t\t\r\n\t\t\tthis.subscribe(\"column-delete\", this.deInitializeComponent.bind(this));\r\n\t\t\tthis.subscribe(\"column-height\", this.resizeHandle.bind(this));\r\n\t\t\t\r\n\t\t\tthis.initialized = true;\r\n\t\t}\r\n\t}\r\n\t\r\n\t\r\n\tlayoutCellHandles(cell){\r\n\t\tif(cell.row.type === \"row\"){\r\n\t\t\tthis.deInitializeComponent(cell);\r\n\t\t\tthis.initializeColumn(\"cell\", cell, cell.column, cell.element);\r\n\t\t}\r\n\t}\r\n\t\r\n\tlayoutColumnHeader(column){\r\n\t\tif(column.definition.resizable){\r\n\t\t\tthis.initializeEventWatchers();\r\n\t\t\tthis.deInitializeComponent(column);\r\n\t\t\tthis.initializeColumn(\"header\", column, column, column.element);\r\n\t\t}\r\n\t}\r\n\t\r\n\tcolumnLayoutUpdated(column){\r\n\t\tvar prev = column.prevColumn();\r\n\t\t\r\n\t\tthis.reinitializeColumn(column);\r\n\t\t\r\n\t\tif(prev){\r\n\t\t\tthis.reinitializeColumn(prev);\r\n\t\t}\r\n\t}\r\n\t\r\n\tcolumnWidthUpdated(column){\r\n\t\tif(column.modules.frozen){\r\n\t\t\tif(this.table.modules.frozenColumns.leftColumns.includes(column)){\r\n\t\t\t\tthis.table.modules.frozenColumns.leftColumns.forEach((col) => {\r\n\t\t\t\t\tthis.reinitializeColumn(col);\r\n\t\t\t\t});\r\n\t\t\t}else if(this.table.modules.frozenColumns.rightColumns.includes(column)){\r\n\t\t\t\tthis.table.modules.frozenColumns.rightColumns.forEach((col) => {\r\n\t\t\t\t\tthis.reinitializeColumn(col);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\treinitializeColumn(column){\r\n\t\tvar frozenOffset = column.modules.frozen ? (column.modules.frozen.marginValue + column.getWidth() + \"px\") : false;\r\n\t\t\r\n\t\t\r\n\t\tcolumn.cells.forEach((cell) => {\r\n\t\t\tif(cell.modules.resize && cell.modules.resize.handleEl){\r\n\t\t\t\tif(frozenOffset){\r\n\t\t\t\t\tcell.modules.resize.handleEl.style.left = frozenOffset;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tcell.element.after(cell.modules.resize.handleEl);\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\tif(column.modules.resize && column.modules.resize.handleEl){\r\n\t\t\tif(frozenOffset){\r\n\t\t\t\tcolumn.modules.resize.handleEl.style.left = frozenOffset;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tcolumn.element.after(column.modules.resize.handleEl);\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeColumn(type, component, column, element){\r\n\t\tvar self = this,\r\n\t\tvariableHeight = false,\r\n\t\tmode = column.definition.resizable,\r\n\t\tconfig = {},\r\n\t\tnearestColumn = column.getLastColumn();\r\n\t\t\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\tconfig = {variableHeight:variableHeight};\r\n\t\t}\r\n\t\t\r\n\t\tif((mode === true || mode == type) && this._checkResizability(nearestColumn)){\r\n\t\t\t\r\n\t\t\tvar handle = document.createElement('span');\r\n\t\t\thandle.className = \"tabulator-col-resize-handle\";\r\n\t\t\t\r\n\t\t\thandle.addEventListener(\"click\", function(e){\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tvar handleDown = function(e){\r\n\t\t\t\tself.startColumn = column;\r\n\t\t\t\tself.initialNextColumn = self.nextColumn = nearestColumn.nextColumn();\r\n\t\t\t\tself._mouseDown(e, nearestColumn, handle);\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\thandle.addEventListener(\"mousedown\", handleDown);\r\n\t\t\thandle.addEventListener(\"touchstart\", handleDown, {passive: true});\r\n\t\t\t\r\n\t\t\t//resize column on double click\r\n\t\t\thandle.addEventListener(\"dblclick\", (e) => {\r\n\t\t\t\tvar oldWidth = nearestColumn.getWidth();\r\n\t\t\t\t\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tnearestColumn.reinitializeWidth(true);\r\n\t\t\t\t\r\n\t\t\t\tif(oldWidth !== nearestColumn.getWidth()){\r\n\t\t\t\t\tself.dispatch(\"column-resized\", nearestColumn);\r\n\t\t\t\t\tself.table.externalEvents.dispatch(\"columnResized\", nearestColumn.getComponent());\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tif(column.modules.frozen){\r\n\t\t\t\thandle.style.position = \"absolute\";\r\n\t\t\t\thandle.style.left = column.modules.frozen.marginValue + column.getWidth() + \"px\";\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tconfig.handleEl = handle;\r\n\t\t\t\r\n\t\t\tif(element.parentNode && column.visible){\r\n\t\t\t\telement.after(handle);\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tcomponent.modules.resize = config;\r\n\t}\r\n\t\r\n\tdeInitializeColumn(column){\r\n\t\tthis.deInitializeComponent(column);\r\n\t\t\r\n\t\tcolumn.cells.forEach((cell) => {\r\n\t\t\tthis.deInitializeComponent(cell);\r\n\t\t});\r\n\t}\r\n\t\r\n\tdeInitializeComponent(component){\r\n\t\tvar handleEl;\r\n\t\t\r\n\t\tif(component.modules.resize){\r\n\t\t\thandleEl = component.modules.resize.handleEl;\r\n\t\t\t\r\n\t\t\tif(handleEl && handleEl.parentElement){\r\n\t\t\t\thandleEl.parentElement.removeChild(handleEl);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tresizeHandle(component, height){\r\n\t\tif(component.modules.resize && component.modules.resize.handleEl){\r\n\t\t\tcomponent.modules.resize.handleEl.style.height = height;\r\n\t\t}\r\n\t}\r\n\t\r\n\t_checkResizability(column){\r\n\t\treturn column.definition.resizable;\r\n\t}\r\n\t\r\n\t_mouseDown(e, column, handle){\r\n\t\tvar self = this;\r\n\t\t\r\n\t\tself.table.element.classList.add(\"tabulator-block-select\");\r\n\t\t\r\n\t\tfunction mouseMove(e){\r\n\t\t\tvar x = typeof e.screenX === \"undefined\" ? e.touches[0].screenX : e.screenX,\r\n\t\t\tstartDiff = x - self.startX,\r\n\t\t\tmoveDiff = x - self.latestX,\r\n\t\t\tblockedBefore, blockedAfter;\r\n\t\t\t\r\n\t\t\tself.latestX = x;\r\n\t\t\t\r\n\t\t\tif(self.table.rtl){\r\n\t\t\t\tstartDiff = -startDiff;\r\n\t\t\t\tmoveDiff = -moveDiff;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tblockedBefore = column.width == column.minWidth || column.width == column.maxWidth;\r\n\t\t\t\r\n\t\t\tcolumn.setWidth(self.startWidth + startDiff);\r\n\t\t\t\r\n\t\t\tblockedAfter = column.width == column.minWidth || column.width == column.maxWidth;\r\n\t\t\t\r\n\t\t\tif(moveDiff < 0){\r\n\t\t\t\tself.nextColumn = self.initialNextColumn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(self.table.options.resizableColumnFit && self.nextColumn && !(blockedBefore && blockedAfter)){\r\n\t\t\t\tlet colWidth = self.nextColumn.getWidth();\r\n\t\t\t\t\r\n\t\t\t\tif(moveDiff > 0){\r\n\t\t\t\t\tif(colWidth <= self.nextColumn.minWidth){\r\n\t\t\t\t\t\tself.nextColumn = self.nextColumn.nextColumn();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(self.nextColumn){\r\n\t\t\t\t\tself.nextColumn.setWidth(self.nextColumn.getWidth() - moveDiff);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tself.table.columnManager.rerenderColumns(true);\r\n\t\t\t\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\t\t\r\n\t\tfunction mouseUp(e){\r\n\t\t\t\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\t\t\t\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\t\r\n\t\t\tdocument.body.removeEventListener(\"mouseup\", mouseUp);\r\n\t\t\tdocument.body.removeEventListener(\"mousemove\", mouseMove);\r\n\t\t\t\r\n\t\t\thandle.removeEventListener(\"touchmove\", mouseMove);\r\n\t\t\thandle.removeEventListener(\"touchend\", mouseUp);\r\n\t\t\t\r\n\t\t\tself.table.element.classList.remove(\"tabulator-block-select\");\r\n\t\t\t\r\n\t\t\tif(self.startWidth !== column.getWidth()){\r\n\t\t\t\tself.dispatch(\"column-resized\", column);\r\n\t\t\t\tself.table.externalEvents.dispatch(\"columnResized\", column.getComponent());\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\te.stopPropagation(); //prevent resize from interfering with movable columns\r\n\t\t\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\t\t\r\n\t\tself.startX = typeof e.screenX === \"undefined\" ? e.touches[0].screenX : e.screenX;\r\n\t\tself.latestX = self.startX;\r\n\t\tself.startWidth = column.getWidth();\r\n\t\t\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\tself.dispatchExternal(\"rowResized\", row.getComponent());\r\n\t\t}\r\n\r\n\t\te.stopPropagation(); //prevent resize from interfering 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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.binding = false;\r\n\t\tthis.visibilityObserver = false;\r\n\t\tthis.resizeObserver = false;\r\n\t\tthis.containerObserver = false;\r\n\t\t\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\t\t\r\n\t\tthis.autoResize = false;\r\n\t\t\r\n\t\tthis.visible = false;\r\n\t\t\r\n\t\tthis.initialized = false;\r\n\t\tthis.initialRedraw = false;\r\n\t\t\r\n\t\tthis.registerTableOption(\"autoResize\", true); //auto resize table\r\n\t}\r\n\t\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\t\t\t\r\n\t\t\tthis.tableHeight = table.element.clientHeight;\r\n\t\t\tthis.tableWidth = table.element.clientWidth;\r\n\t\t\t\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\t\t\t\r\n\t\t\tif(typeof IntersectionObserver !== \"undefined\" && typeof ResizeObserver !== \"undefined\" && table.rowManager.getRenderMode() === \"virtual\"){\r\n\t\t\t\t\r\n\t\t\t\tthis.initializeVisibilityObserver();\r\n\t\t\t\t\r\n\t\t\t\tthis.autoResize = true;\r\n\t\t\t\t\r\n\t\t\t\tthis.resizeObserver = new ResizeObserver((entry) => {\r\n\t\t\t\t\tif(!table.browserMobile || (table.browserMobile &&!table.modules.edit.currentCell)){\r\n\t\t\t\t\t\t\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\t\t\t\t\t\t\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\t\t\t\t\t\t\t\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\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tthis.redrawTable();\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\t\r\n\t\t\t\tthis.resizeObserver.observe(table.element);\r\n\t\t\t\t\r\n\t\t\t\ttableStyle = window.getComputedStyle(table.element);\r\n\t\t\t\t\r\n\t\t\t\tif(this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue(\"max-height\") || tableStyle.getPropertyValue(\"min-height\"))){\r\n\t\t\t\t\t\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\t\t\t\t\t\t\t\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\t\t\t\t\t\t\t\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\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tthis.redrawTable();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.containerObserver.observe(this.table.element.parentNode);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.subscribe(\"table-resize\", this.tableResized.bind(this));\r\n\t\t\t\t\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\t\t\t\t\t\ttable.columnManager.rerenderColumns(true);\r\n\t\t\t\t\t\ttable.redraw();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t\r\n\t\t\t\twindow.addEventListener(\"resize\", this.binding);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.subscribe(\"table-destroy\", this.clearBindings.bind(this));\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeVisibilityObserver(){\r\n\t\tthis.visibilityObserver = new IntersectionObserver((entries) => {\r\n\t\t\tthis.visible = entries[0].isIntersecting;\r\n\r\n\t\t\tif(!this.initialized){\r\n\t\t\t\tthis.initialized = true;\r\n\t\t\t\tthis.initialRedraw = !this.visible;\r\n\t\t\t}\r\n\r\n\t\t\tif(this.visible){\r\n\t\t\t\tthis.redrawTable(this.initialRedraw);\r\n\t\t\t\tthis.initialRedraw = false;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t\tthis.visibilityObserver.observe(this.table.element);\r\n\t}\r\n\t\r\n\tredrawTable(force){\r\n\t\tif(this.initialized && this.visible){\r\n\t\t\tthis.table.columnManager.rerenderColumns(true);\r\n\t\t\tthis.table.redraw(force);\r\n\t\t}\r\n\t}\r\n\t\r\n\ttableResized(){\r\n\t\tthis.table.rowManager.redraw();\r\n\t}\r\n\t\r\n\tclearBindings(){\r\n\t\tif(this.binding){\r\n\t\t\twindow.removeEventListener(\"resize\", this.binding);\r\n\t\t}\r\n\t\t\r\n\t\tif(this.resizeObserver){\r\n\t\t\tthis.resizeObserver.unobserve(this.table.element);\r\n\t\t}\r\n\t\t\r\n\t\tif(this.visibilityObserver){\r\n\t\t\tthis.visibilityObserver.unobserve(this.table.element);\r\n\t\t}\r\n\t\t\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 responsive columns list\r\n\tinitialize(){\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\t\t\t\r\n\t\t\tif(this.table.options.responsiveLayout === \"collapse\"){\r\n\t\t\t\tthis.subscribe(\"row-data-changed\", this.generateCollapsedRowContent.bind(this));\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//determine level of responsivity for each column\r\n\t\tthis.table.columnManager.columnsByIndex.forEach((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 && this.mode === \"collapse\"){\r\n\t\t\t\t\t\tthis.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((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.initializeResponsivity();\r\n\t\t}\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.innerHTML = 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;\r\n","import Module from '../../core/Module.js';\r\n\r\nclass SelectRow extends Module{\r\n\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\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\t\t\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 whether row is selectable\r\n\t\t\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\t\t\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\t\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\t\t\t\r\n\t\t\tif(this.table.options.selectable && !this.table.options.selectablePersistence){\r\n\t\t\t\tthis.subscribe(\"data-refreshing\", this.deselectRows.bind(this));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\trowRetrieve(type, prevValue){\r\n\t\treturn type === \"selected\" ? this.selectedRows : prevValue;\r\n\t}\r\n\t\r\n\trowDeleted(row){\r\n\t\tthis._deselectRow(row, true);\r\n\t}\r\n\t\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\t\t\r\n\t\tif(silent !== true){\r\n\t\t\tthis._rowSelectionChanged();\r\n\t\t}\r\n\t}\r\n\t\r\n\tinitializeRow(row){\r\n\t\tvar self = this,\r\n\t\telement = row.getElement();\r\n\t\t\r\n\t\t// trigger end of row selection\r\n\t\tvar endSelect = function(){\r\n\t\t\t\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\tself.selecting = false;\r\n\t\t\t}, 50);\r\n\t\t\t\r\n\t\t\tdocument.body.removeEventListener(\"mouseup\", endSelect);\r\n\t\t};\r\n\t\t\r\n\t\trow.modules.select = {selected:false};\r\n\t\t\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\t\t\t\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\", this.handleComplexRowClick.bind(this, row));\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\t\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tself.selecting = true;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tself.selectPrev = [];\r\n\t\t\t\t\t\t\t\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\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tself.toggleRow(row);\r\n\t\t\t\t\t\t\t\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\t\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\t\t\t\t\t\t\t\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\t\t\t\t\t\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\t\t\t\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\t\r\n\thandleComplexRowClick(row, e){\r\n\t\tif(e.shiftKey){\r\n\t\t\tthis.table._clearSelection();\r\n\t\t\tthis.lastClickedRow = this.lastClickedRow || row;\r\n\t\t\t\r\n\t\t\tvar lastClickedRowIdx = this.table.rowManager.getDisplayRowIndex(this.lastClickedRow);\r\n\t\t\tvar rowIdx = this.table.rowManager.getDisplayRowIndex(row);\r\n\t\t\t\r\n\t\t\tvar fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx;\r\n\t\t\tvar toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx;\r\n\t\t\t\r\n\t\t\tvar rows = this.table.rowManager.getDisplayRows().slice(0);\r\n\t\t\tvar toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1);\r\n\t\t\t\r\n\t\t\tif(e.ctrlKey || e.metaKey){\r\n\t\t\t\ttoggledRows.forEach((toggledRow)=>{\r\n\t\t\t\t\tif(toggledRow !== this.lastClickedRow){\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(this.table.options.selectable !== true && !this.isRowSelected(row)){\r\n\t\t\t\t\t\t\tif(this.selectedRows.length < this.table.options.selectable){\r\n\t\t\t\t\t\t\t\tthis.toggleRow(toggledRow);\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.toggleRow(toggledRow);\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\tthis.lastClickedRow = row;\r\n\t\t\t}else{\r\n\t\t\t\tthis.deselectRows(undefined, true);\r\n\t\t\t\t\r\n\t\t\t\tif(this.table.options.selectable !== true){\r\n\t\t\t\t\tif(toggledRows.length > this.table.options.selectable){\r\n\t\t\t\t\t\ttoggledRows = toggledRows.slice(0, this.table.options.selectable);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tthis.selectRows(toggledRows);\r\n\t\t\t}\r\n\t\t\tthis.table._clearSelection();\r\n\t\t}\r\n\t\telse if(e.ctrlKey || e.metaKey){\r\n\t\t\tthis.toggleRow(row);\r\n\t\t\tthis.lastClickedRow = row;\r\n\t\t}else{\r\n\t\t\tthis.deselectRows(undefined, true);\r\n\t\t\tthis.selectRows(row);\r\n\t\t\tthis.lastClickedRow = row;\r\n\t\t}\r\n\t}\r\n\t\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\t\r\n\t//select a number of rows\r\n\tselectRows(rows){\r\n\t\tvar rowMatch;\r\n\t\t\r\n\t\tswitch(typeof rows){\r\n\t\t\tcase \"undefined\":\r\n\t\t\t\tthis.table.rowManager.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\t\t\t\tthis._rowSelectionChanged();\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tcase \"string\":\r\n\t\t\t\r\n\t\t\t\trowMatch = this.table.rowManager.findRow(rows);\r\n\t\t\t\r\n\t\t\t\tif(rowMatch){\r\n\t\t\t\t\tthis._selectRow(rowMatch, true, true);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.table.rowManager.getRows(rows).forEach((row) => {\r\n\t\t\t\t\t\tthis._selectRow(row, true, true);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\tthis._rowSelectionChanged();\r\n\t\t\t\tbreak;\r\n\t\t\t\r\n\t\t\tdefault:\r\n\t\t\t\tif(Array.isArray(rows)){\r\n\t\t\t\t\trows.forEach((row) => {\r\n\t\t\t\t\t\tthis._selectRow(row, true, true);\r\n\t\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\t\tthis._rowSelectionChanged();\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis._selectRow(rows, false, true);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\t\r\n\t//select an individual row\r\n\t_selectRow(rowInfo, silent, force){\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\t\t\r\n\t\tvar row = this.table.rowManager.findRow(rowInfo);\r\n\t\t\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\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tthis.selectedRows.push(row);\r\n\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tthis.dispatchExternal(\"rowSelected\", row.getComponent());\r\n\t\t\t\t\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\t\r\n\tisRowSelected(row){\r\n\t\treturn this.selectedRows.indexOf(row) !== -1;\r\n\t}\r\n\t\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\t\t\r\n\t\tif(typeof rows == \"undefined\"){\r\n\t\t\t\r\n\t\t\trowCount = self.selectedRows.length;\r\n\t\t\t\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\t\t\t\r\n\t\t\tif(rowCount){\r\n\t\t\t\tself._rowSelectionChanged(silent);\r\n\t\t\t}\r\n\t\t\t\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\t\t\t\t\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\t\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\t\t\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\t\t\t\r\n\t\t\tif(index > -1){\r\n\t\t\t\t\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\t\t\t\t\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\t\t\t\t\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\t\t\t\t\r\n\t\t\t\tthis.dispatchExternal(\"rowDeselected\", row.getComponent());\r\n\t\t\t\t\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\t\r\n\tgetSelectedData(){\r\n\t\tvar data = [];\r\n\t\t\r\n\t\tthis.selectedRows.forEach(function(row){\r\n\t\t\tdata.push(row.getData());\r\n\t\t});\r\n\t\t\r\n\t\treturn data;\r\n\t}\r\n\t\r\n\tgetSelectedRows(){\r\n\t\t\r\n\t\tvar rows = [];\r\n\t\t\r\n\t\tthis.selectedRows.forEach(function(row){\r\n\t\t\trows.push(row.getComponent());\r\n\t\t});\r\n\t\t\r\n\t\treturn rows;\r\n\t}\r\n\t\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\t\t\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\t\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\t\t\r\n\t\trow._row.modules.select.checkboxEl = element;\r\n\t}\r\n\t\r\n\tregisterHeaderSelectCheckbox (element) {\r\n\t\tthis.headerCheckboxElement = element;\r\n\t}\r\n\t\r\n\tchildRowSelection(row, select){\r\n\t\tvar children = this.table.modules.dataTree.getChildren(row, true);\r\n\t\t\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\t\tif(params.locale){\r\n\t\t\t\t\tlocale = this.langLocale();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"string\":\r\n\t\t\t\tlocale = params.locale;\r\n\t\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\tif(!DT.isDateTime(a)){\r\n\t\t\tif(format === \"iso\"){\r\n\t\t\t\ta = DT.fromISO(String(a));\r\n\t\t\t}else{\r\n\t\t\t\ta = DT.fromFormat(String(a), format);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(!DT.isDateTime(b)){\r\n\t\t\tif(format === \"iso\"){\r\n\t\t\t\tb = DT.fromISO(String(b));\r\n\t\t\t}else{\r\n\t\t\t\tb = DT.fromFormat(String(b), format);\r\n\t\t\t}\r\n\t\t}\r\n\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 type = params.type || \"length\",\r\n\talignEmptyValues = params.alignEmptyValues,\r\n\temptyAlign = 0;\r\n\r\n\tfunction calc(value){\r\n\t\tvar result;\r\n\r\n\t\tswitch(type){\r\n\t\t\tcase \"length\":\r\n\t\t\t\tresult = value.length;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"sum\":\r\n\t\t\t\tresult = value.reduce(function(c, d){\r\n\t\t\t\t\treturn c + d;\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"max\":\r\n\t\t\t\tresult = Math.max.apply(null, value) ;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"min\":\r\n\t\t\t\tresult = Math.min.apply(null, value) ;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"avg\":\r\n\t\t\t\tresult = value.reduce(function(c, d){\r\n\t\t\t\t\treturn c + d;\r\n\t\t\t\t}) / value.length;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\t//handle non array values\r\n\tif(!Array.isArray(a)){\r\n\t\temptyAlign = !Array.isArray(b) ? 0 : -1;\r\n\t}else if(!Array.isArray(b)){\r\n\t\temptyAlign = 1;\r\n\t}else{\r\n\t\treturn calc(b) - calc(a);\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\tinitialize(){\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\ttableBuilt(){\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\tremoteSortParams(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\t\tif(Sort.sorters[column.definition.sorter]){\r\n\t\t\t\t\tsorter = Sort.sorters[column.definition.sorter];\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.warn(\"Sort Error - No such sorter found: \", column.definition.sorter);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"function\":\r\n\t\t\t\tsorter = column.definition.sorter;\r\n\t\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\tswitch(this.table.options.headerSortElement){\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\t//do nothing\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"object\":\r\n\t\t\t\t\tarrowEl.appendChild(this.table.options.headerSortElement);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tdefault:\r\n\t\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\tthis.setColumnHeaderSortIcon(column, \"none\");\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\t\tdir = \"desc\";\r\n\t\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\t\tdir = \"asc\";\r\n\t\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\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\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\tmatch = sorters.splice(match, 1)[0];\r\n\t\t\t\t\t\t\tif(dir != \"none\"){\r\n\t\t\t\t\t\t\t\tsorters.push(match);\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(null, false, false);\r\n\t\t}else{\r\n\t\t\tthis.refreshData(true);\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\t\tsorter = \"string\";\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"boolean\":\r\n\t\t\t\t\t\tsorter = \"boolean\";\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif(!isNaN(value) && value !== \"\"){\r\n\t\t\t\t\t\t\tsorter = \"number\";\r\n\t\t\t\t\t\t}else{\r\n\t\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\t\tsorter = \"alphanum\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\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\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;\r\n\r\n\t\t\t\tif(item.column){\r\n\t\t\t\t\tsortObj = item.column.modules.sort;\r\n\r\n\t\t\t\t\tif(sortObj){\r\n\r\n\t\t\t\t\t\t//if no sorter has been defined, take a guess\r\n\t\t\t\t\t\tif(!sortObj.sorter){\r\n\t\t\t\t\t\t\tsortObj.sorter = self.findSorter(item.column);\r\n\t\t\t\t\t\t}\r\n\r\n\t\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\t\tsortListActual.push(item);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.setColumnHeader(item.column, item.dir);\r\n\t\t\t\t}\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((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\tthis.setColumnHeaderSortIcon(column, \"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 === \"asc\" ? \"ascending\" : \"descending\");\r\n\t\tthis.setColumnHeaderSortIcon(column, dir);\r\n\t}\r\n\r\n\tsetColumnHeaderSortIcon(column, dir){\r\n\t\tvar sortEl = column.modules.sort.element,\r\n\t\tarrowEl;\r\n\r\n\t\tif(column.definition.headerSort && typeof this.table.options.headerSortElement === \"function\"){\r\n\t\t\twhile(sortEl.firstChild) sortEl.removeChild(sortEl.firstChild);\r\n\r\n\t\t\tarrowEl = this.table.options.headerSortElement.call(this.table, column.getComponent(), dir);\r\n\t\t\t\r\n\t\t\tif(typeof arrowEl === \"object\"){\r\n\t\t\t\tsortEl.appendChild(arrowEl);\r\n\t\t\t}else{\r\n\t\t\t\tsortEl.innerHTML = arrowEl;\r\n\t\t\t}\r\n\t\t}\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;\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;","import Module from '../../core/Module.js';\r\nimport Cell from '../../core/cell/Cell.js';\r\n\r\nclass Tooltip extends Module{\r\n\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.tooltipSubscriber = null,\r\n\t\tthis.headerSubscriber = null,\r\n\t\t\r\n\t\tthis.timeout = null;\r\n\t\tthis.popupInstance = null;\r\n\t\t\r\n\t\tthis.registerTableOption(\"tooltipGenerationMode\", undefined); //deprecated\r\n\t\tthis.registerTableOption(\"tooltipDelay\", 300); \r\n\t\t\r\n\t\tthis.registerColumnOption(\"tooltip\");\r\n\t\tthis.registerColumnOption(\"headerTooltip\");\r\n\t}\r\n\t\r\n\tinitialize(){\r\n\t\tthis.deprecatedOptionsCheck();\r\n\t\t\r\n\t\tthis.subscribe(\"column-init\", this.initializeColumn.bind(this));\r\n\t}\r\n\t\r\n\tdeprecatedOptionsCheck(){\r\n\t\tthis.deprecationCheckMsg(\"tooltipGenerationMode\", \"This option is no longer needed as tooltips are always generated on hover now\");\r\n\t}\t\r\n\t\r\n\tinitializeColumn(column){\r\n\t\tif(column.definition.headerTooltip && !this.headerSubscriber){\r\n\t\t\tthis.headerSubscriber = true;\r\n\t\t\t\r\n\t\t\tthis.subscribe(\"column-mousemove\", this.mousemoveCheck.bind(this, \"headerTooltip\"));\r\n\t\t\tthis.subscribe(\"column-mouseout\", this.mouseoutCheck.bind(this, \"headerTooltip\"));\r\n\t\t}\r\n\t\t\r\n\t\tif(column.definition.tooltip && !this.tooltipSubscriber){\r\n\t\t\tthis.tooltipSubscriber = true;\r\n\t\t\t\r\n\t\t\tthis.subscribe(\"cell-mousemove\", this.mousemoveCheck.bind(this, \"tooltip\"));\r\n\t\t\tthis.subscribe(\"cell-mouseout\", this.mouseoutCheck.bind(this, \"tooltip\"));\r\n\t\t}\r\n\t}\r\n\t\r\n\tmousemoveCheck(action, e, component){\r\n\t\tvar tooltip = action === \"tooltip\" ? component.column.definition.tooltip : component.definition.headerTooltip;\r\n\t\t\r\n\t\tif(tooltip){\r\n\t\t\tthis.clearPopup();\r\n\t\t\tthis.timeout = setTimeout(this.loadTooltip.bind(this, e, component, tooltip), this.table.options.tooltipDelay);\r\n\t\t}\r\n\t}\r\n\r\n\tmouseoutCheck(action, e, component){\r\n\t\tif(!this.popupInstance){\r\n\t\t\tthis.clearPopup();\r\n\t\t}\r\n\t}\r\n\t\r\n\tclearPopup(action, e, component){\r\n\t\tclearTimeout(this.timeout);\r\n\t\tthis.timeout = null;\r\n\t\t\r\n\t\tif(this.popupInstance){\r\n\t\t\tthis.popupInstance.hide();\r\n\t\t}\r\n\t}\r\n\t\r\n\tloadTooltip(e, component, tooltip){\r\n\t\tvar contentsEl, renderedCallback, coords;\r\n\r\n\t\tfunction onRendered(callback){\r\n\t\t\trenderedCallback = callback;\r\n\t\t}\r\n\t\t\r\n\t\tif(typeof tooltip === \"function\"){\r\n\t\t\ttooltip = tooltip(e, component.getComponent(), onRendered);\r\n\t\t}\r\n\t\t\r\n\t\tif(tooltip instanceof HTMLElement){\r\n\t\t\tcontentsEl = tooltip;\r\n\t\t}else{\r\n\t\t\tcontentsEl = document.createElement(\"div\");\r\n\t\t\t\r\n\t\t\tif(tooltip === true){\r\n\t\t\t\tif(component instanceof Cell){\r\n\t\t\t\t\ttooltip = component.value;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(component.definition.field){\r\n\t\t\t\t\t\tthis.langBind(\"columns|\" + component.definition.field, (value) => {\r\n\t\t\t\t\t\t\tcontentsEl.innerHTML = tooltip = value || component.definition.title;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\ttooltip = component.definition.title;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tcontentsEl.innerHTML = tooltip;\r\n\t\t}\r\n\t\t\r\n\t\tif(tooltip || tooltip === 0 || tooltip === false){\r\n\t\t\tcontentsEl.classList.add(\"tabulator-tooltip\");\r\n\r\n\t\t\tcontentsEl.addEventListener(\"mousemove\", e => e.preventDefault());\r\n\t\t\t\r\n\t\t\tthis.popupInstance = this.popup(contentsEl);\r\n\t\t\t\r\n\t\t\tif(typeof renderedCallback === \"function\"){\r\n\t\t\t\tthis.popupInstance.renderCallback(renderedCallback);\r\n\t\t\t}\r\n\r\n\t\t\tcoords = this.popupInstance.containerEventCoords(e);\r\n\t\t\t\r\n\t\t\tthis.popupInstance.show(coords.x + 15, coords.y + 15).hideOnBlur(() => {\r\n\t\t\t\tthis.dispatchExternal(\"TooltipClosed\", component.getComponent());\r\n\t\t\t\tthis.popupInstance = null;\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.dispatchExternal(\"TooltipOpened\", component.getComponent());\r\n\t\t}\r\n\t}\r\n}\r\n\r\nTooltip.moduleName = \"tooltip\";\r\n\r\nexport default Tooltip;\r\n","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\r\n\t\tvalue = Number(value);\r\n\r\n\t\treturn !isNaN(value) && 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\t\r\n\t\tvalue = Number(value);\r\n\r\n\t\treturn !isNaN(value) && 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\r\n\t\tif(typeof parameters == \"string\"){\r\n\t\t\tparameters = parameters.split(\"|\");\r\n\t\t}\r\n\r\n\t\treturn 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\t\r\n\tconstructor(table){\r\n\t\tsuper(table);\r\n\t\t\r\n\t\tthis.invalidCells = [];\r\n\t\t\r\n\t\tthis.registerTableOption(\"validationMode\", \"blocking\");\r\n\t\t\r\n\t\tthis.registerColumnOption(\"validator\");\r\n\t\t\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\t\t\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\t\t\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\t\r\n\t\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\t\r\n\t\tthis.subscribe(\"edit-success\", this.editValidate.bind(this));\r\n\t\tthis.subscribe(\"edit-editor-clear\", this.editorClear.bind(this));\r\n\t\tthis.subscribe(\"edit-edited-clear\", this.editedClear.bind(this));\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t///////// Event Handling //////////\r\n\t///////////////////////////////////\r\n\t\r\n\teditValidate(cell, value, previousValue){\r\n\t\tvar valid = this.table.options.validationMode !== \"manual\" ? this.validate(cell.column.modules.validate, cell, value) : true;\r\n\t\t\r\n\t\t// allow time for editor to make render changes then style cell\r\n\t\tif(valid !== true){\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tcell.getElement().classList.add(\"tabulator-validation-fail\");\r\n\t\t\t\tthis.dispatchExternal(\"validationFailed\", cell.getComponent(), value, valid);\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\treturn valid;\r\n\t}\r\n\t\r\n\teditorClear(cell, cancelled){\r\n\t\tif(cancelled){\r\n\t\t\tif(cell.column.modules.validate){\r\n\t\t\t\tthis.cellValidate(cell);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcell.getElement().classList.remove(\"tabulator-validation-fail\");\r\n\t}\r\n\t\r\n\teditedClear(cell){\r\n\t\tif(cell.modules.validate){\r\n\t\t\tcell.modules.validate.invalid = false;\r\n\t\t}\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t////////// Cell Functions /////////\r\n\t///////////////////////////////////\r\n\t\r\n\tcellIsValid(cell){\r\n\t\treturn cell.modules.validate ? (cell.modules.validate.invalid || true) : true;\r\n\t}\r\n\t\r\n\tcellValidate(cell){\r\n\t\treturn this.validate(cell.column.modules.validate, cell, cell.getValue());\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t///////// Column Functions ////////\r\n\t///////////////////////////////////\r\n\t\r\n\tcolumnValidate(column){\r\n\t\tvar invalid = [];\r\n\t\t\r\n\t\tcolumn.cells.forEach((cell) => {\r\n\t\t\tif(this.cellValidate(cell) !== true){\r\n\t\t\t\tinvalid.push(cell.getComponent());\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\treturn invalid.length ? invalid : true;\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t////////// Row Functions //////////\r\n\t///////////////////////////////////\r\n\t\r\n\trowValidate(row){\r\n\t\tvar invalid = [];\r\n\t\t\r\n\t\trow.cells.forEach((cell) => {\r\n\t\t\tif(this.cellValidate(cell) !== true){\r\n\t\t\t\tinvalid.push(cell.getComponent());\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\treturn invalid.length ? invalid : true;\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t///////// Table Functions /////////\r\n\t///////////////////////////////////\r\n\t\r\n\t\r\n\tuserClearCellValidation(cells){\r\n\t\tif(!cells){\r\n\t\t\tcells = this.getInvalidCells();\r\n\t\t}\r\n\t\t\r\n\t\tif(!Array.isArray(cells)){\r\n\t\t\tcells = [cells];\r\n\t\t}\r\n\t\t\r\n\t\tcells.forEach((cell) => {\r\n\t\t\tthis.clearValidation(cell._getSelf());\r\n\t\t});\r\n\t}\r\n\t\r\n\tuserValidate(cells){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\t//clear row data\r\n\t\tthis.table.rowManager.rows.forEach((row) => {\r\n\t\t\trow = row.getComponent();\r\n\t\t\t\r\n\t\t\tvar valid = row.validate();\r\n\t\t\t\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\t\t\r\n\t\treturn output.length ? output : true;\r\n\t}\r\n\t\r\n\t///////////////////////////////////\r\n\t///////// Internal Logic //////////\r\n\t///////////////////////////////////\r\n\t\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\t\r\n\t//validate\r\n\tinitializeColumn(column){\r\n\t\tvar self = this,\r\n\t\tconfig = [],\r\n\t\tvalidator;\r\n\t\t\r\n\t\tif(column.definition.validator){\r\n\t\t\t\r\n\t\t\tif(Array.isArray(column.definition.validator)){\r\n\t\t\t\tcolumn.definition.validator.forEach((item) => {\r\n\t\t\t\t\tvalidator = self._extractValidator(item);\r\n\t\t\t\t\t\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\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\tvalidator = this._extractValidator(column.definition.validator);\r\n\t\t\t\t\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\t\t\t\r\n\t\t\tcolumn.modules.validate = config.length ? config : false;\r\n\t\t}\r\n\t}\r\n\t\r\n\t_extractValidator(value){\r\n\t\tvar type, params, pos;\r\n\t\t\r\n\t\tswitch(typeof value){\r\n\t\t\tcase \"string\":\r\n\t\t\t\tpos = value.indexOf(':');\r\n\t\t\t\r\n\t\t\t\tif(pos > -1){\r\n\t\t\t\t\ttype = value.substring(0,pos);\r\n\t\t\t\t\tparams = value.substring(pos+1);\r\n\t\t\t\t}else{\r\n\t\t\t\t\ttype = value;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\treturn this._buildValidator(type, params);\r\n\t\t\t\r\n\t\t\tcase \"function\":\r\n\t\t\t\treturn this._buildValidator(value);\r\n\t\t\t\r\n\t\t\tcase \"object\":\r\n\t\t\t\treturn this._buildValidator(value.type, value.parameters);\r\n\t\t}\r\n\t}\r\n\t\r\n\t_buildValidator(type, params){\r\n\t\t\r\n\t\tvar func = typeof type == \"function\" ? type : Validate.validators[type];\r\n\t\t\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\t\r\n\tvalidate(validators, cell, value){\r\n\t\tvar self = this,\r\n\t\tfailedValidators = [],\r\n\t\tinvalidIndex = this.invalidCells.indexOf(cell);\r\n\t\t\r\n\t\tif(validators){\r\n\t\t\tvalidators.forEach((item) => {\r\n\t\t\t\tif(!item.func.call(self, cell.getComponent(), value, item.params)){\r\n\t\t\t\t\tfailedValidators.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\t\t\r\n\t\tif(!cell.modules.validate){\r\n\t\t\tcell.modules.validate = {};\r\n\t\t}\r\n\t\t\r\n\t\tif(!failedValidators.length){\r\n\t\t\tcell.modules.validate.invalid = false;\r\n\t\t\tcell.getElement().classList.remove(\"tabulator-validation-fail\");\r\n\t\t\t\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 = failedValidators;\r\n\t\t\t\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\t\t\t\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\t\t\r\n\t\treturn failedValidators.length ? failedValidators : true;\r\n\t}\r\n\t\r\n\tgetInvalidCells(){\r\n\t\tvar output = [];\r\n\t\t\r\n\t\tthis.invalidCells.forEach((cell) => {\r\n\t\t\toutput.push(cell.getComponent());\r\n\t\t});\r\n\t\t\r\n\t\treturn output;\r\n\t}\r\n\t\r\n\tclearValidation(cell){\r\n\t\tvar invalidIndex;\r\n\t\t\r\n\t\tif(cell.modules.validate && cell.modules.validate.invalid){\r\n\t\t\t\r\n\t\t\tcell.getElement().classList.remove(\"tabulator-validation-fail\");\r\n\t\t\tcell.modules.validate.invalid = false;\r\n\t\t\t\r\n\t\t\tinvalidIndex = this.invalidCells.indexOf(cell);\r\n\t\t\t\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;\r\n","//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","debugInvalidComponentFuncs","debugInitialization","debugDeprecation","height","minHeight","maxHeight","columnHeaderVertAlign","popupContainer","columns","columnDefaults","data","autoColumns","autoColumnsDefinitions","nestedFieldSeparator","footerElement","index","textDirection","addRowPos","headerVisible","renderVertical","renderHorizontal","renderVerticalBuffer","scrollToRowPosition","scrollToRowIfVisible","scrollToColumnPosition","scrollToColumnIfVisible","rowFormatter","rowFormatterPrint","rowFormatterClipboard","rowFormatterHtmlOutput","rowHeight","placeholder","dataLoader","dataLoaderLoading","dataLoaderError","dataLoaderErrorTimeout","dataSendParams","dataReceiveParams","CoreFeature","table","silent","columnsChanged","load","undefined","modules","localize","getText","arguments","bind","getLocale","comms","getConnections","send","layout","getMode","force","eventBus","subscribe","unsubscribe","key","subscribed","subscriptionChange","dispatch","chain","confirm","externalEvents","options","value","oldOption","newOption","deprecationAdvisor","check","msg","checkMsg","module","ColumnComponent","column","_column","type","Proxy","get","target","name","receiver","componentFunctionBinder","handle","getElement","getDefinition","getField","getTitleDownload","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","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","val","innerHTML","Node","firstChild","removeChild","appendChild","containerOnly","layoutElement","changed","setValueProcessData","cellRendered","cellEdited","call","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","titleDownload","titleFormatterRendered","mapDefinitions","setField","maxInitialWidth","widthFixed","i","newCol","attachColumn","checkColumnVisibility","registerColumnField","_initialize","el","defaults","optionsList","generate","defaultOptionList","Object","keys","indexOf","title","_getNestedData","_getFlatData","_setNestedData","_setFlatData","registerColumnPosition","reRegisterPosition","headerVertical","_buildColumnHeaderContent","_buildGroupHeader","_buildColumnHeader","setMinWidth","parseInt","setMaxWidth","headerHozAlign","_buildColumnHeaderTitle","editableTitle","addEventListener","e","stopPropagation","focus","langBind","text","_formatColumnHeaderTitle","contents","dataObj","structure","columnRendered","alignment","parentHeight","getGroupElement","clientHeight","getHeadersElement","verticalAlign","paddingTop","clearVerticalAlign","getFirstColumn","getLastColumn","traverse","concat","getColumns","getTopColumn","updateBranches","colDefs","responsiveToggle","verticalAlignHeaders","matchChildWidths","childWidth","child","splice","setWidthActual","isNaN","Math","floor","clientWidth","max","min","rows","heightInitialized","offsetParent","clearCellHeight","calcHeight","setCellHeight","ceil","getBoundingClientRect","Promise","resolve","reject","cellCount","deregisterColumn","findColumnIndex","_nextVisibleColumn","getColumnByIndex","_prevVisibleColumn","fitToData","clearWidth","setTo","assign","addColumn","then","error","defaultOptions","Helpers","box","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","BasicHorizontal","VirtualDomHorizontal","leftCol","rightCol","scrollLeft","vDomScrollPosLeft","vDomScrollPosRight","vDomPadLeft","vDomPadRight","fitDataColAvg","windowBuffer","visibleRows","initialized","isFitData","compatibilityCheck","layoutCheck","vertScrollListen","frozen","ok","find","col","startsWith","clearVisRowCache","dataChange","scroll","buffer","columnsByIndex","old","cols","colPos","clear","calcWindowBuffer","config","leftPos","rightPos","fitDataCheck","vdomHoz","paddingLeft","paddingRight","reinitChanged","reinitializeRows","initializeRow","reinitializeRow","change","generateCells","colEnd","layoutRefresh","getVisibleRows","diff","abs","addColRight","removeColLeft","addColLeft","removeColRight","start","end","changes","working","getCell","fitDataColActualWidthCheck","prepend","ex","message","newWidth","widthDiff","colPositionAdjust","ColumnManager","blockHozScrollEvent","headersElement","columnsByField","defaultColumnOptions","redrawBlockUpdate","renderer","initializeRenderer","createHeadersElement","createHeaderElement","insertBefore","scrollHorizontal","renderClass","renderers","RendererVirtualDomHorizontal","RendererBasicHorizontal","initialize","hozAdjust","scrollWidth","marginLeft","scrollColumns","definitions","sorter","setColumns","_addColumn","_reIndexColumns","redraw","before","nextToColumn","colEl","topColumn","parentIndex","nextEl","nextSibling","getHeight","adjustTableSize","_getSelf","HTMLElement","root","matches","fieldRoot","active","structured","from","moveColumnActual","reinitialize","_moveColumnInArray","getComponents","updateRows","fromIndex","toIndex","adjust","offsetLeft","generateCell","totalWidth","fixedWidth","colWidth","layoutMode","resetScroll","footerManager","RowComponent","_row","transform","getCells","getPosition","watchPosition","moveToRow","updateData","normalizeHeight","nextRow","prevRow","Row","manualHeight","outerHeight","positionWatchers","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","detachModules","deleteRow","includes","isDisplayed","group","BasicVertical","visibility","onlyGroupHeaders","styleRow","rowTop","VirtualDomVertical","vDomRowHeight","vDomTop","vDomBottom","vDomScrollPosTop","vDomScrollPosBottom","vDomTopPad","vDomBottomPad","vDomMaxRenderChain","vDomWindowBuffer","vDomWindowMinTotalRows","vDomWindowMinMarginRows","vDomTopNewRows","vDomBottomNewRows","paddingBottom","_virtualRenderFill","topRow","topOffset","deinitializeHeight","_showPlaceholder","topDiff","bottomDiff","margin","_addTopRow","vDomScrollHeight","_removeBottomRow","_addBottomRow","_removeTopRow","topEdge","bottomEdge","topFound","bottomRow","slice","forceMove","holder","topPad","rowsHeight","heightOccupied","topPadHeight","rowsCount","containerHeight","fillableSpace","addedRows","paddingAdjust","_quickNormalizeRowHeight","removableRows","RowManager","createHolderElement","createTableElement","heightFixer","placeholderContents","firstRender","renderMode","fixedHeight","activeRowsPipeline","activeRows","activeRowsCount","displayRows","displayRowsCount","redrawBlockRestoreConfig","redrawBlockRenderInPosition","dataPipeline","displayPipeline","initializePlaceholder","leftDir","topDir","_positionPlaceholder","scrollRows","renderInPosition","pagination","_setDataActual","reRenderInPosition","generateColumnsFromRowData","_wipeElements","wipe","allIndex","activeIndex","setActiveRows","displayRowIterator","displayIndex","regenerateRowPositions","pos","addRowActual","findAddRowPos","reverse","addRow","_clearPlaceholder","chainResult","moveRowInArray","findRowIndex","rowOnly","getDisplayRowIndex","getRows","handler","priority","sort","a","b","skipStage","stage","cascadeOrder","destroyed","refreshPipelines","renderTable","layoutColumnsOnNewData","resetDisplayRows","setDisplayRows","setPosition","viewable","RendererVirtualDomVertical","RendererBasicVertical","_clearTable","renderEmptyScroll","initialHeight","otherHeight","external","resize","tableWidth","browser","event","createEvent","initEvent","dispatchEvent","Event","FooterManager","containerElement","createContainerElement","initializeElement","querySelector","activate","deactivate","InteractionManager","abortClasses","previousTargets","listeners","componentMap","pseudoTrackers","subscriber","pseudoTracking","buildListenerMap","bindSubscriptionWatchers","listenerMap","listener","components","pseudoMouseEnter","pseudoMouseLeave","leaveList","linkedKeys","filter","links","values","comp","subscriptionChanged","clearWatchers","added","bindPseudoEvents","updateEventListeners","track","removeEventListener","path","composedPath","targets","findTargets","bindComponents","triggerEvents","abort","elTargets","targetMatches","previousTarget","closest","ComponentFunctionBinder","bindings","funcName","DataLoader","requestOrder","loading","params","replace","requestNo","alertLoader","mapParams","response","objectInvert","rowData","clearAlert","alertError","setTimeout","map","shouldLoad","alertManager","alert","langText","ExternalEventBus","debug","events","subscriptionNotifiers","_debugDispatch","_dispatch","_notifySubscriptionChange","notifiers","args","shift","callResult","apply","log","InternalEventBus","_debugChain","_chain","_debugConfirm","_confirm","fallback","confirmed","DeprecationAdvisor","_warnUser","TableRegistry","tables","query","results","querySelectorAll","matchElement","Tabulator","lookupTable","Popup","container","_lookupContainer","reversedX","childPopup","blurable","blurCallback","renderedCallback","hideable","blurEvent","escEvent","_escapeCheck","destroyBinding","tableDestroyed","_checkContainerIsParent","body","touch","MouseEvent","x","touches","pageX","y","pageY","parentOffset","containerOffset","origin","parentEl","coords","elementPositionCoords","containerEventCoords","_fitToScreen","keyCode","Module","_handler","register","func","initGuard","registerDataPipelineHandler","registerDisplayPipelineHandler","append","menuEl","menuContainer","content","forced","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","dataChanged","moduleName","defaultModes","Localize","locale","lang","langList","langs","headerFilterPlaceholder","setHeaderFilterPlaceholder","installLang","setLocale","registerTableFunction","getLang","headerFilters","_setLangProp","desiredLocale","traverseLang","trans","prop","navigator","language","toLowerCase","prefix","_executeBindings","fillPath","pathArray","_getLangElement","level","rootPath","binding","defaultLangs","Comms","receive","selectors","connections","connection","con","action","tableComms","commsReceived","ModuleBinder","tabulator","bindStaticFunctionality","bindModules","coreModules","moduleBindings","extendModule","property","source","registerModule","mod","registerModuleBinding","findTable","prototype","orderedStartMods","orderedEndMods","unOrderedMods","moduleCore","modulesCore","moduleInitOrder","modulesRegular","core","mods","Alert","_createAlertElement","msgElement","_createMsgElement","_typeClass","interactionMonitor","browserSlow","browserMobile","rtl","originalElement","initializeCoreSystems","_create","_clearObjectPointers","_mapDeprecatedFunctionality","InteractionMonitor","getSelection","empty","removeAllRanges","selection","_rtlCheck","_buildElement","_initializeTable","_loadInitialData","getComputedStyle","direction","reactiveData","newElement","tagName","attributes","replaceChild","_detectBrowser","deregister","ua","userAgent","vendor","opera","test","stack","line","Error","trim","restoreRedraw","blockActiveLoad","clearData","getDataCount","responses","addRows","newRows","getRowFromPosition","foundRows","fromRow","getDefinitionTree","fromColumn","plugin","required","Accessor","allowedTypes","initializeColumn","transformRow","charAt","toUpperCase","accessor","lookupAccessor","accessors","rowComponent","colComponent","defaultAccessors","method","generateParamsList","serializeParams","encoded","encodeURIComponent","join","url","contentType","urlGenerator","ajaxContentType","contentTypeFormatters","headers","Accept","location","credentials","fetch","json","status","statusText","stringify","form","FormData","Ajax","loaderPromise","ajaxRequestFunc","defaultLoaderPromise","ajaxURLGenerator","defaultURLGenerator","ajaxURL","setUrl","setDefaultConfig","ajaxConfig","getUrl","requestDataCheck","requestParams","requestData","ajaxParams","previousData","generateConfig","sendRequest","defaultConfig","ajaxRequesting","ajaxResponse","defaultContentTypeFormatters","updateOrAddData","insert","addData","clipboard","headerFindSuccess","columnMap","Clipboard","pasteParser","pasteAction","customSelection","rowRange","blocked","clipboardCopyRowRange","plain","html","preventDefault","clipboardCopyFormatter","generateExportList","clipboardCopyConfig","clipboardCopyStyled","generateHTMLTable","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","recalcActiveRowsRefresh","tableRedraw","getResults","userRecalc","recalc","groupBy","recalcRowGroup","dataTreeStartExpanded","dataTree","recalcAll","topCalc","bottomCalc","columnCalcs","topCalcParams","botCalcParams","bottomCalcParams","calculations","initializeTopRow","botCalc","initializeBottomRow","footerRemove","footerPrepend","marginRight","rowsToData","generateRow","frozenColumns","recalcGroup","groupRows","getRowGroup","groups","getChildGroups","generateRowData","dataTreeChildColumnCalcs","open","getFilteredTreeChildren","disable","enable","format","formatter","getFormatter","paramKey","getGroups","getGroupResults","groupObj","subGroups","getSubGroups","subGroupResults","subgroup","defaultCalculations","DataTree","indent","collapseEl","expandEl","branchEl","elementField","startOpen","registerComponentFunction","collapseRow","expandRow","toggleRow","getTreeParent","getRowChildren","addTreeChildRow","isRowExpanded","dummyEl","dataTreeChildField","dataTreeChildIndent","dataTreeBranchElement","dataTreeCollapseElement","tabIndex","dataTreeExpandElement","layoutRow","rowDelete","rowDataChanged","columnMoving","initializeElementField","tableRedrawing","registerDisplayHandler","reinitializeRowChildren","firstCol","getFirstVisibleColumn","dataTreeElementColumn","getTreeChildren","redrawNeeded","refreshData","childArray","controlEl","generateControlElement","cloneNode","getPropertyValue","oldControl","getChildren","allChildren","generateChildren","dataTreeFilter","dataTreeSort","subChildren","sub","childData","childRow","getTreeParentRoot","childIndex","findChildIndex","recurse","setFileContents","delimiter","fileContents","depth","bom","header","autoTableParams","rowGroupStyles","fontStyle","fontSize","cellPadding","fillColor","rowCalcStyles","jsPDFParams","jsPDF","orientation","unit","parseRow","styles","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","jsonLines","pdf","xlsx","Download","mimeType","Blob","deprecatedOptionsCheck","download","downloadToTab","deprecationCheck","filename","interceptCallback","downloadFunc","buildLink","mime","triggerDownload","downloaders","downloadConfig","downloadRowRange","groupHeader","groupHeaderDownload","_group","getRowCount","newTab","blob","downloadEncoder","URL","createObjectURL","msSaveOrOpenBlob","click","defaultDownloaders","maskInput","mask","maskLetter","maskLetterChar","maskNumber","maskNumberChar","maskWildcard","maskWildcardChar","fillSymbols","symbol","char","maskAutoFill","onRendered","success","cancel","editorParams","cellValue","input","search","padding","boxSizing","elementAttributes","getAttribute","preventScroll","selectContents","onChange","vertNav","verticalNavigation","whiteSpace","getRow","heightNow","shiftKey","shiftEnterSubmit","selectionStart","stopImmediatePropagation","step","blurFunc","inputFormat","DT","DateTime","luxon","convertDate","newDatetime","isDateTime","fromISO","fromFormat","toFormat","Edit","editor","_initializeParams","displayItems","currentItems","focusedItem","_createInputElement","listEl","_createListElement","initialValues","isFilter","filterTimeout","filtered","typing","popup","listIteration","lastAction","actions","_deprecatedOptionsCheck","_initializeValue","_onRendered","listItemFormatter","getTable","sortValuesList","searchFunc","searchingPlaceholder","defaultValue","multiselect","headerFilterInitialListGen","cellEl","clickStop","_preventPopupBlur","_preventBlur","_inputKeyDown","attribs","clearable","autocomplete","cursor","caretColor","_bindInputEvents","valueKeys","valueCheck","placeholderLoading","placeholderEmpty","filterDelay","emptyValue","freetext","filterFunc","filterRemote","allowEmpty","listOnEmpty","valuesLookup","valuesURL","_inputFocus","_inputClick","_inputBlur","_inputSearch","_inputKeyUp","rebuildOptionsList","clearTimeout","_filterList","_resolveValue","_clearChoices","_keyUp","_keyDown","_keySide","_keyEnter","_keyEsc","_keyHomeEnd","_keySelectLetter","_keyAutoCompLetter","blockHide","restoreHide","_focusItem","_chooseItem","_cancel","_scrollToValue","_filter","character","fromCharCode","filterTerm","label","scrollIntoView","behavior","block","inline","_generateOptions","_sortOptions","_buildList","_showList","isInteger","_filterOptions","iteration","_ajaxRequest","_uniqueColumnValues","valuesLookupField","_addPlaceholder","responseValues","_parseList","_clearList","term","urlBuilder","getColumnByField","getColumn","inputValues","entries","_parseListItem","_parseListGroup","itemParams","selected","original","_defaultSortFunction","_sortGroup","as","bs","a1","b1","L","rx","rd","emptyAlign","isFinite","_defaultFilterFunc","_filterItem","_buildItem","itemFormatter","_groupClick","_itemClick","_styleItem","startVis","isVisible","_setListWidth","hideOnBlur","blur","deprecationMsg","List","maxStars","getElementsByTagName","size","stars","starsHolder","star","createElementNS","starChange","buildStar","starHolder","nextStar","changeValue","overflow","textOverflow","percent","bar","mouseDrag","mouseDragWidth","updateValue","calcVal","round","backgroundColor","screenX","tristate","indetermValue","indeterminateValue","indetermState","trueValueSet","falseValueSet","marginTop","indeterminate","checked","trueValue","checkedValue","falseValue","textarea","number","date","time","datetime","progress","tickCross","mouseClick","recursionBlock","invalidEdit","editedCells","editors","getEditedCells","clearCellEdited","navigatePrev","navigateNext","navigateLeft","navigateRight","navigateUp","navigateDown","cellIsEdited","clearEdited","editCell","cellCancelEdit","bindEditor","updateCellClass","columnDeleteCheck","rowDeleteCheck","cancelEdit","keybindingNavigateNext","newRow","edited","allowEdit","nextCell","findNextEditableCell","getIndex","findPrevEditableCell","prevCell","editable","clearEditor","variableHeight","cellEditCancelled","contains","button","forceEdit","focusCellNoEvent","getRenderMode","leftEdge","rightEdge","leftMargin","rightMargin","rendered","cellEditor","validationMode","focusScrollAdjust","cellClick","cellEditing","editIndex","defaultEditors","ExportRow","ExportColumn","Export","cloneTableStyle","colVisProp","getHtml","columnHeaders","headersToExportRows","generateColumnGroupHeaders","bodyToExportRows","rowLookup","generateTableElement","selectRow","selectedRows","columnGroups","colData","processColumnGroup","maxDepth","groupData","subGroup","subGroupData","columnVisCheck","visProp","headerDepth","exportRows","parseColumnGroup","rowGroups","exportCols","headerEl","bodyEl","lookupTableStyles","setup","treeElementField","mapElementStyles","generateHeaderElement","generateGroupElement","generateCalcElement","generateRowElement","evenRow","oddRow","calcRow","firstRow","firstGroup","getElementsByClassName","styleCells","firstCell","lastCell","generator","cellStyle","cellWrapper","formatCells","formatExportValue","align","htmlOutputConfig","props","lookup","fromStyle","filterVal","rowVal","filterParams","RegExp","keywords","separator","keyword","matchAll","endsWith","Filter","filterList","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","prevSuccess","emptyFunc","headerFilterFunc","filters","headerFilterFuncParams","fieldVal","colVal","trackChanges","generateHeaderFilterElement","filterElement","editorElement","typingTimer","searchTrigger","headerElement","headerFilterEmptyCheck","headerFilterParams","headerPos","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","labelTraverse","labelField","urlField","src","urlSuffix","truthy","allowTruthy","tick","tickElement","cross","crossElement","outputFormat","invalid","invalidPlaceholder","isValid","timezone","setZone","suffix","humanize","now","toHuman","starActive","starInactive","colors","color","percentValue","legendAlign","legend","legendColor","barEl","barContainer","legendEl","holderEl","innerText","toggleList","isOpen","checkbox","selectableRangeMode","toggleSelect","handleComplexRowClick","isSelected","registerRowSelectCheckbox","deselectRow","registerHeaderSelectCheckbox","plaintext","money","link","image","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","layoutCell","reinitializeColumns","blockLayout","unblockLayout","edge","frozenCheck","calcMargins","layoutColumnPosition","layoutCalcRows","_calcSpace","layoutGroupCalcs","groupList","allCells","leftParents","marginValue","getColGroupParentElement","otherRows","deinitialize","getTableElement","FrozenRows","freezeRow","unfreezeRow","isRowFrozen","detachRow","frozenRows","initializeRows","rowType","styleRows","GroupComponent","groupManager","toggleVisibility","Group","oldGroup","hasSubGroups","groupIDLookups","_addRowToGroup","_addRow","elementContents","arrowElement","createElements","addBindings","createValueGroups","arrow","movableRows","moveRow","initializeGroupHeader","allowedValues","_createGroup","toggleElement","groupToggleElement","groupID","groupKey","headerGenerator","conformRowData","generateGroupHeaderContents","updateGroupRows","scrollHeader","groupValues","removeGroup","noCalc","_visSet","getHeadersAndRows","hasTopCalcs","detachElement","generateTopRow","hasBottomCalcs","generateBottomRow","groupClosedShowCalcs","count","getDisplayIndex","checkBasicModeGroupHeaderWidth","prev","getPath","childNodes","GroupRows","displayHandler","setGroupBy","setGroupValues","setGroupStartOpen","setGroupHeader","userGetGroups","userGetGroupedData","rowGetGroup","groupUpdateOnCellEdit","cellUpdated","reassignRowToGroup","configureGroupSetup","rowDeleting","scrollHeaders","rowMoving","rowAddingIndex","rowSample","virtualRenderFill","groupStartOpen","langValue","items","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","getRowIndex","undoers","redoers","oldRow","defaultUndoers","defaultRedoers","HtmlTableImport","fieldIndex","hasIndex","tableElementCheck","parseTable","_extractOptions","_extractHeaders","_generateBlankHeaders","optionsArr","attrib","_attribValue","exists","_findCol","textContent","csvImporter","inQuote","nextChar","arrayImporter","array","Import","importFromFile","importFormat","loadDataCheck","loadData","importData","lookupImporter","structureData","err","importer","importers","extension","pickFile","extensions","accept","file","files","reader","FileReader","importReader","readAsArrayBuffer","readAsBinaryString","readAsDataURL","readAsText","onload","onerror","parsedData","structureArrayToObject","structureArrayToColumns","defaultImporters","Interaction","eventMap","rowClick","rowDblClick","rowContext","rowMouseEnter","rowMouseLeave","rowMouseOver","rowMouseOut","rowMouseMove","rowTap","rowDblTap","rowTapHold","cellDblClick","cellContext","cellMouseEnter","cellMouseLeave","cellMouseOver","cellMouseOut","cellMouseMove","cellTap","cellDblTap","cellTapHold","headerClick","headerDblClick","headerContext","headerMouseEnter","headerMouseLeave","headerMouseOver","headerMouseOut","headerMouseMove","headerTap","headerDblTap","headerTapHold","groupClick","groupDblClick","groupContext","groupMouseEnter","groupMouseLeave","groupMouseOver","groupMouseOut","groupMouseMove","groupTap","groupDblTap","groupTapHold","subscribers","touchSubscribers","columnSubscribers","touchWatchers","tap","tapDbl","tapHold","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","bindingList","mapBinding","symbolsList","ctrl","meta","symbols","code","checkBinding","ctrlKey","metaKey","defaultBindings","defaultActions","Menu","nestedMenuBlock","currentComponent","rootPopup","initializeRowWatchers","initializeGroupWatchers","rowContextMenu","loadMenuEvent","on","rowClickMenu","groupContextMenu","groupClickMenu","headerContextMenu","loadMenuTableColumnEvent","headerClickMenu","headerMenu","initializeColumnHeaderMenu","contextMenu","loadMenuTableCellEvent","clickMenu","icon","headerMenuIcon","headerMenuEl","menu","loadMenu","parentPopup","itemEl","disabled","MoveColumns","placeholderElement","createPlaceholderElement","hoverElement","checkTimeout","checkPeriod","moving","toCol","toColAfter","startX","autoScrollMargin","autoScrollStep","autoScrollTimeout","touchMove","moveHover","endMove","movableColumns","mousemove","which","startMove","bindTouchEvents","startXMove","prevColWidth","nextColWidthLast","prevColWidthLast","passive","moveToCol","_bindMouseMove","movingCells","_unbindMouseMove","columnHolder","xPos","scrollPos","MoveRows","toRowAfter","hasHandle","startY","tableRowDropEvent","connectionSelectorsTables","connectionSelectorsElements","connectionElements","connectedTable","connectedRow","movableRowsConnectedTables","movableRowsConnectedElements","initializeCell","mouseup","tableRowDrop","previousSibling","rowHandle","startYMove","nextRowHeight","prevRowHeight","nextRowHeightLast","prevRowHeightLast","setStartPosition","connectToTables","pointerEvents","disconnectFromTables","moveHoverConnections","moveHoverTable","rowHolder","yPos","connectionTables","commsConnections","dropEvent","elementRowDrop","tabulatorElementDropEvent","sender","movableRowsSender","senders","movableRowsReceiver","receivers","connect","disconnect","dropComplete","fromTable","toTable","Mutator","enabled","transformCell","mutateLink","lookupMutator","mutators","mutatorEdit","linkCell","defaultMutators","pageSize","currentRow","currentPage","totalRows","totalPages","showingEl","valueEl","ofEl","totalEl","rowsEl","pages","Page","progressiveLoad","pageCounterElement","pageCounter","page","remoteRowCountEstimate","initialLoad","dataChanging","pageSizes","setMaxPage","setPage","userSetPageToRow","userSetPageSize","getPageSize","previousPage","nextPage","getPage","getPageMax","setPageToRow","initialLoadComplete","calculatePageSizes","footerRedraw","paginationAddRow","rowAddingPosition","paginationMode","remotePageParams","_parseRemoteData","restOnRenderBefore","initializePageCounter","initializePaginator","initializeProgressive","scrollVertical","testElRow","testElCell","paginationSize","generatePageSizeSelectList","setPageSize","progressiveLoadScrollMargin","pagesElement","firstBut","prevBut","nextBut","lastBut","paginationSizeSelector","pageSizeSelect","counter","paginationCounter","pageCounters","hidden","pageSelectLabel","paginationCounterHolder","paginationElement","paginationCounterElement","footerAppend","paginationInitialPage","paginationButtonCount","trigger","leftSize","rightSize","_generatePageButton","actualRowPageSize","actualStartRow","actualRows","setMaxRows","_setPageButtons","_setPageCounter","last_page","last_row","progressiveLoadDelay","footer","defaultPageCounters","local","id","localStorage","getItem","cookie","cookiePos","setItem","expireDate","setDate","getDate","toUTCString","Persistence","defWatcherBlock","readFunc","writeFunc","testKey","removeItem","persistence","persistenceMode","persistenceID","retrievedData","localStorageTest","persistenceReaderFunc","readers","persistenceWriterFunc","writers","retrieveData","save","eventSave","getColumnLayout","setColumnLayout","sorters","initialSort","parseColumns","mergeDefinition","getOwnPropertyDescriptor","defineProperty","set","current","oldCols","newCols","_findColumn","validateSorters","getSort","getGroupConfig","getPageConfig","excludedKeys","defStore","colDef","defaultReaders","defaultWriters","rowContextPopup","loadPopupEvent","rowClickPopup","groupContextPopup","groupClickPopup","headerContextPopup","loadPopupTableColumnEvent","headerClickPopup","headerPopup","initializeColumnHeaderPopup","contextPopup","loadPopupTableCellEvent","clickPopup","headerPopupIcon","headerPopupEl","loadPopup","contentsEl","renderCallback","Print","manualBlock","printAsHtml","replaceTable","cleanup","printFullscreen","generateTable","printConfig","printStyled","printRowRange","scrollX","scrollY","footerEl","tableEl","footerContent","printHeader","printFooter","printFormatter","scrollTo","ReactiveData","origFuncs","currentVersion","unblock","watchRow","watchData","unwatchData","version","enumerable","configurable","arg","getRowFromDataObject","pop","startRow","oldRows","writable","watchKey","watchTreeChildren","childField","rebuildTree","ResizeColumns","startColumn","startWidth","latestX","initialNextColumn","layoutColumnHeader","layoutCellHandles","deInitializeComponent","resizeHandle","columnLayoutUpdated","deInitializeColumn","columnWidthUpdated","resizable","initializeEventWatchers","reinitializeColumn","frozenOffset","handleEl","nearestColumn","_checkResizability","handleDown","_mouseDown","oldWidth","parentElement","mouseMove","startDiff","moveDiff","blockedBefore","blockedAfter","resizableColumnFit","checkCellHeights","mouseUp","ResizeRows","startHeight","prevHandle","prevHandleDown","screenY","ResizeTable","visibilityObserver","resizeObserver","containerObserver","tableHeight","containerWidth","autoResize","initialRedraw","tableStyle","IntersectionObserver","ResizeObserver","initializeVisibilityObserver","entry","nodeHeight","contentRect","nodeWidth","redrawTable","observe","tableResized","isIntersecting","unobserve","ResponsiveLayout","hiddenColumns","collapseFormatter","collapseStartOpen","collapseHandleColumn","updateColumnVisibility","initializeResponsivity","generateCollapsedRowContent","responsiveLayoutCollapseFormatter","formatCollapsedData","responsiveLayoutCollapseStartOpen","order","generateCollapsedContent","colCount","getFlexBaseWidth","hideColumn","showColumn","generateCollapsedRowData","mockCellComponent","responsiveLayoutCollapseUseFormatters","titleData","valueData","node_content","titleHighlight","SelectRow","selecting","lastClickedRow","selectPrev","headerCheckboxElement","selectRows","deselectRows","getSelectedRows","getSelectedData","isRowSelected","selectable","clearSelectionData","rowRetrieve","selectablePersistence","_deselectRow","_rowSelectionChanged","endSelect","selectableCheck","getCurrentCell","_clearSelection","lastClickedRowIdx","rowIdx","fromRowIdx","toRowIdx","toggledRows","toggledRow","_selectRow","rowMatch","rowInfo","selectableRollingSelection","checkboxEl","dataTreeSelectPropagate","childRowSelection","selectedRow","aRow","bRow","alignEmptyValues","decimalSeparator","thousandSeparator","langLocale","localeCompare","el1","el2","calc","d","string","boolean","alphanum","Sort","sortList","userSetSort","clearSort","sortMode","remoteSortParams","setSort","refreshSort","arrowEl","sorterParams","startingDir","headerSortStartingDir","headerSortTristate","headerSort","headerSortElement","setColumnHeaderSortIcon","columnHeaderSortMulti","newSortList","sortOrderReverse","sortListActual","rowComponents","clearColumnHeaders","sortObj","findSorter","setColumnHeader","_sortItems","sortEl","sorterCount","sortItem","_sortRow","el1Comp","el2Comp","defaultSorters","Tooltip","tooltipSubscriber","headerSubscriber","timeout","popupInstance","deprecationCheckMsg","headerTooltip","mousemoveCheck","mouseoutCheck","tooltip","clearPopup","loadTooltip","tooltipDelay","parameters","numeric","starts","ends","minLength","maxLength","regex","reg","unique","cellData","Validate","invalidCells","getInvalidCells","userClearCellValidation","userValidate","cellIsValid","clearValidation","cellValidate","columnValidate","rowValidate","editValidate","editorClear","editedClear","previousValue","validate","cancelled","validator","_extractValidator","substring","_buildValidator","validators","failedValidators","invalidIndex","defaultValidators","TabulatorFull"],"mappings":"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"}
|