UNPKG

@revolist/revogrid

Version:

Virtual reactive data grid spreadsheet component - RevoGrid.

331 lines (326 loc) 16 kB
/*! * Built by Revolist OU ❤️ */ 'use strict'; var column_service = require('./column.service-DvQDqxxx.js'); var column_drag_plugin = require('./column.drag.plugin-CM_5mKV3.js'); var headerCellRenderer = require('./header-cell-renderer-B1dJwgTO.js'); var cellRenderer = require('./cell-renderer-uZmDBXz7.js'); var dimension_helpers = require('./dimension.helpers-CaIsYC99.js'); var textEditor = require('./text-editor-BTnGaIl3.js'); var edit_utils = require('./edit.utils-CwMzSIVF.js'); var index = require('./index-Dq8Xzj5l.js'); var viewport_store = require('./viewport.store-Dcjud-a-.js'); var filter_button = require('./filter.button-w6LWnyhi.js'); require('./debounce-CcpHiH2p.js'); const REVOGRID_EVENTS = new Map([ ['contentsizechanged', 'contentsizechanged'], ['beforeedit', 'beforeedit'], ['beforerangeedit', 'beforerangeedit'], ['afteredit', 'afteredit'], ['beforeautofill', 'beforeautofill'], ['beforerange', 'beforerange'], ['afterfocus', 'afterfocus'], ['roworderchanged', 'roworderchanged'], ['beforesorting', 'beforesorting'], ['beforesourcesortingapply', 'beforesourcesortingapply'], ['beforesortingapply', 'beforesortingapply'], ['rowdragstart', 'rowdragstart'], ['headerclick', 'headerclick'], ['beforecellfocus', 'beforecellfocus'], ['beforefocuslost', 'beforefocuslost'], ['beforesourceset', 'beforesourceset'], ['beforeanysource', 'beforeanysource'], ['aftersourceset', 'aftersourceset'], ['afteranysource', 'afteranysource'], ['beforecolumnsgather', 'beforecolumnsgather'], ['beforecolumnsset', 'beforecolumnsset'], ['beforecolumnapplied', 'beforecolumnapplied'], ['aftercolumnsset', 'aftercolumnsset'], ['beforefilterapply', 'beforefilterapply'], ['beforefiltertrimmed', 'beforefiltertrimmed'], ['beforetrimmed', 'beforetrimmed'], ['aftertrimmed', 'aftertrimmed'], ['viewportscroll', 'viewportscroll'], ['beforeexport', 'beforeexport'], ['beforeeditstart', 'beforeeditstart'], ['aftercolumnresize', 'aftercolumnresize'], ['beforerowdefinition', 'beforerowdefinition'], ['filterconfigchanged', 'filterconfigchanged'], ['sortingconfigchanged', 'sortingconfigchanged'], ['rowheaderschanged', 'rowheaderschanged'], ['beforegridrender', 'beforegridrender'], ['aftergridrender', 'aftergridrender'], ['aftergridinit', 'aftergridinit'], ['additionaldatachanged', 'additionaldatachanged'], ['afterthemechanged', 'afterthemechanged'], ['created', 'created'], ['beforepaste', 'beforepaste'], ['beforepasteapply', 'beforepasteapply'], ['pasteregion', 'pasteregion'], ['afterpasteapply', 'afterpasteapply'], ['beforecut', 'beforecut'], ['clearregion', 'clearregion'], ['beforecopy', 'beforecopy'], ['beforecopyapply', 'beforecopyapply'], ['copyregion', 'copyregion'], ['beforerowrender', 'beforerowrender'], ['afterrender', 'afterrender'], ['beforecellrender', 'beforecellrender'], ['beforedatarender', 'beforedatarender'], ['dragstartcell', 'dragstartcell'], ['celleditinit', 'celleditinit'], ['closeedit', 'closeedit'], ['filterChange', 'filterChange'], ['resetChange', 'resetChange'], ['beforefocusrender', 'beforefocusrender'], ['beforescrollintoview', 'beforescrollintoview'], ['afterfocus', 'afterfocus'], ['beforeheaderclick', 'beforeheaderclick'], ['headerresize', 'headerresize'], ['beforeheaderresize', 'beforeheaderresize'], ['headerdblclick', 'headerdblclick'], ['beforeheaderrender', 'beforeheaderrender'], ['beforegroupheaderrender', 'beforegroupheaderrender'], ['afterheaderrender', 'afterheaderrender'], ['rowdragstartinit', 'rowdragstartinit'], ['rowdragendinit', 'rowdragendinit'], ['rowdragmoveinit', 'rowdragmoveinit'], ['rowdragmousemove', 'rowdragmousemove'], ['rowdropinit', 'rowdropinit'], ['roworderchange', 'roworderchange'], ['beforecopyregion', 'beforecopyregion'], ['beforepasteregion', 'beforepasteregion'], ['celleditapply', 'celleditapply'], ['beforecellfocusinit', 'beforecellfocusinit'], ['beforenextvpfocus', 'beforenextvpfocus'], ['setedit', 'setedit'], ['beforeapplyrange', 'beforeapplyrange'], ['beforesetrange', 'beforesetrange'], ['setrange', 'setrange'], ['beforeeditrender', 'beforeeditrender'], ['selectall', 'selectall'], ['canceledit', 'canceledit'], ['settemprange', 'settemprange'], ['beforesettemprange', 'beforesettemprange'], ['applyfocus', 'applyfocus'], ['focuscell', 'focuscell'], ['beforerangedataapply', 'beforerangedataapply'], ['selectionchangeinit', 'selectionchangeinit'], ['beforerangecopyapply', 'beforerangecopyapply'], ['rangeeditapply', 'rangeeditapply'], ['clipboardrangecopy', 'clipboardrangecopy'], ['clipboardrangepaste', 'clipboardrangepaste'], ['beforekeydown', 'beforekeydown'], ['beforekeyup', 'beforekeyup'], ['beforecellsave', 'beforecellsave'], ['celledit', 'celledit'], ['scrollview', 'scrollview'], ['ref', 'ref'], ['scrollvirtual', 'scrollvirtual'], ['scrollviewport', 'scrollviewport'], ['resizeviewport', 'resizeviewport'], ['scrollchange', 'scrollchange'], ['scrollviewportsilent', 'scrollviewportsilent'], ['html', 'html'] ]); /** * Automatically adds new rows when pasted data is larger than current rows * @event newRows - is triggered when new rows are added. Data of new rows can be filled with default values. If the event is prevented, no rows will be added */ class AutoAddRowsPlugin extends column_drag_plugin.BasePlugin { constructor(revogrid, providers) { super(revogrid, providers); this.addEventListener('beforepasteapply', evt => this.handleBeforePasteApply(evt)); } handleBeforePasteApply(event) { const start = this.providers.selection.focused; const isEditing = this.providers.selection.edit != null; if (!start || isEditing) { return; } const rowLength = this.providers.data.stores.rgRow.store.get('items').length; const endRow = start.y + event.detail.parsed.length; if (rowLength < endRow) { const count = endRow - rowLength; const newRows = Array.from({ length: count }, (_, i) => ({ index: rowLength + i, data: {}, })); const event = this.emit('newRows', { newRows: newRows }); if (event.defaultPrevented) { return; } const items = [ ...this.providers.data.stores.rgRow.store.get('source'), ...event.detail.newRows.map(j => j.data), ]; this.providers.data.setData(items); } } } exports.GROUPING_ROW_TYPE = column_service.GROUPING_ROW_TYPE; exports.GROUP_COLUMN_PROP = column_service.GROUP_COLUMN_PROP; exports.GROUP_DEPTH = column_service.GROUP_DEPTH; exports.GROUP_EXPANDED = column_service.GROUP_EXPANDED; exports.GROUP_EXPAND_BTN = column_service.GROUP_EXPAND_BTN; exports.GROUP_EXPAND_EVENT = column_service.GROUP_EXPAND_EVENT; exports.GROUP_ORIGINAL_INDEX = column_service.GROUP_ORIGINAL_INDEX; exports.PSEUDO_GROUP_COLUMN = column_service.PSEUDO_GROUP_COLUMN; exports.PSEUDO_GROUP_ITEM = column_service.PSEUDO_GROUP_ITEM; exports.PSEUDO_GROUP_ITEM_ID = column_service.PSEUDO_GROUP_ITEM_ID; exports.PSEUDO_GROUP_ITEM_VALUE = column_service.PSEUDO_GROUP_ITEM_VALUE; exports.columnTypes = column_service.columnTypes; exports.cropCellToMax = column_service.cropCellToMax; exports.gatherGroup = column_service.gatherGroup; exports.gatherGrouping = column_service.gatherGrouping; exports.getCellData = column_service.getCellData; exports.getCellDataParsed = column_service.getCellDataParsed; exports.getCellRaw = column_service.getCellRaw; exports.getColumnByProp = column_service.getColumnByProp; exports.getColumnSizes = column_service.getColumnSizes; exports.getColumnType = column_service.getColumnType; exports.getColumns = column_service.getColumns; exports.getExpanded = column_service.getExpanded; exports.getGroupingName = column_service.getGroupingName; exports.getParsedGroup = column_service.getParsedGroup; exports.getRange = column_service.getRange; exports.getSource = column_service.getSource; exports.isColGrouping = column_service.isColGrouping; exports.isGrouping = column_service.isGrouping; exports.isGroupingColumn = column_service.isGroupingColumn; exports.isRangeSingleCell = column_service.isRangeSingleCell; exports.isRowType = column_service.isRowType; exports.isSameGroup = column_service.isSameGroup; exports.measureEqualDepth = column_service.measureEqualDepth; exports.nextCell = column_service.nextCell; exports.rowTypes = column_service.rowTypes; exports.AutoSizeColumnPlugin = column_drag_plugin.AutoSizeColumnPlugin; exports.BasePlugin = column_drag_plugin.BasePlugin; Object.defineProperty(exports, "ColumnAutoSizeMode", { enumerable: true, get: function () { return column_drag_plugin.ColumnAutoSizeMode; } }); exports.ColumnMovePlugin = column_drag_plugin.ColumnMovePlugin; exports.DimensionStore = column_drag_plugin.DimensionStore; exports.ExportCsv = column_drag_plugin.ExportCsv; exports.ExportFilePlugin = column_drag_plugin.ExportFilePlugin; exports.FILTER_CONFIG_CHANGED_EVENT = column_drag_plugin.FILTER_CONFIG_CHANGED_EVENT; exports.FILTER_TRIMMED_TYPE = column_drag_plugin.FILTER_TRIMMED_TYPE; exports.FILTE_PANEL = column_drag_plugin.FILTE_PANEL; exports.FilterPlugin = column_drag_plugin.FilterPlugin; exports.GroupingRowPlugin = column_drag_plugin.GroupingRowPlugin; exports.SelectionStore = column_drag_plugin.SelectionStore; exports.SortingPlugin = column_drag_plugin.SortingPlugin; exports.StretchColumn = column_drag_plugin.StretchColumn; exports.defaultCellCompare = column_drag_plugin.defaultCellCompare; exports.descCellCompare = column_drag_plugin.descCellCompare; exports.doCollapse = column_drag_plugin.doCollapse; exports.doExpand = column_drag_plugin.doExpand; exports.filterCoreFunctionsIndexedByType = column_drag_plugin.filterCoreFunctionsIndexedByType; exports.filterNames = column_drag_plugin.filterNames; exports.filterTypes = column_drag_plugin.filterTypes; exports.getComparer = column_drag_plugin.getComparer; exports.getLeftRelative = column_drag_plugin.getLeftRelative; exports.getNextOrder = column_drag_plugin.getNextOrder; exports.isStretchPlugin = column_drag_plugin.isStretchPlugin; exports.sortIndexByItems = column_drag_plugin.sortIndexByItems; exports.dispatch = headerCellRenderer.dispatch; exports.dispatchByEvent = headerCellRenderer.dispatchByEvent; exports.CellRenderer = cellRenderer.CellRenderer; exports.GroupingRowRenderer = cellRenderer.GroupingRowRenderer; exports.SortingSign = cellRenderer.SortingSign; exports.expandEvent = cellRenderer.expandEvent; exports.expandSvgIconVNode = cellRenderer.expandSvgIconVNode; exports.CELL_CLASS = dimension_helpers.CELL_CLASS; exports.CELL_HANDLER_CLASS = dimension_helpers.CELL_HANDLER_CLASS; exports.DATA_COL = dimension_helpers.DATA_COL; exports.DATA_ROW = dimension_helpers.DATA_ROW; exports.DISABLED_CLASS = dimension_helpers.DISABLED_CLASS; exports.DRAGGABLE_CLASS = dimension_helpers.DRAGGABLE_CLASS; exports.DRAGG_TEXT = dimension_helpers.DRAGG_TEXT; exports.DRAG_ICON_CLASS = dimension_helpers.DRAG_ICON_CLASS; exports.DataStore = dimension_helpers.DataStore; exports.EDIT_INPUT_WR = dimension_helpers.EDIT_INPUT_WR; exports.FOCUS_CLASS = dimension_helpers.FOCUS_CLASS; exports.GRID_INTERNALS = dimension_helpers.GRID_INTERNALS; exports.HEADER_ACTUAL_ROW_CLASS = dimension_helpers.HEADER_ACTUAL_ROW_CLASS; exports.HEADER_CLASS = dimension_helpers.HEADER_CLASS; exports.HEADER_ROW_CLASS = dimension_helpers.HEADER_ROW_CLASS; exports.HEADER_SORTABLE_CLASS = dimension_helpers.HEADER_SORTABLE_CLASS; exports.MIN_COL_SIZE = dimension_helpers.MIN_COL_SIZE; exports.MOBILE_CLASS = dimension_helpers.MOBILE_CLASS; exports.RESIZE_INTERVAL = dimension_helpers.RESIZE_INTERVAL; exports.ROW_FOCUSED_CLASS = dimension_helpers.ROW_FOCUSED_CLASS; exports.ROW_HEADER_TYPE = dimension_helpers.ROW_HEADER_TYPE; exports.SELECTION_BORDER_CLASS = dimension_helpers.SELECTION_BORDER_CLASS; exports.TMP_SELECTION_BG_CLASS = dimension_helpers.TMP_SELECTION_BG_CLASS; exports.applyMixins = dimension_helpers.applyMixins; exports.calculateDimensionData = dimension_helpers.calculateDimensionData; Object.defineProperty(exports, "codesLetter", { enumerable: true, get: function () { return dimension_helpers.codesLetter; } }); exports.findPositionInArray = dimension_helpers.findPositionInArray; exports.gatherTrimmedItems = dimension_helpers.gatherTrimmedItems; exports.getItemByIndex = dimension_helpers.getItemByIndex; exports.getItemByPosition = dimension_helpers.getItemByPosition; exports.getPhysical = dimension_helpers.getPhysical; exports.getScrollbarSize = dimension_helpers.getScrollbarSize; exports.getSourceItem = dimension_helpers.getSourceItem; exports.getSourceItemVirtualIndexByProp = dimension_helpers.getSourceItemVirtualIndexByProp; exports.getSourcePhysicalIndex = dimension_helpers.getSourcePhysicalIndex; exports.getVisibleSourceItem = dimension_helpers.getVisibleSourceItem; Object.defineProperty(exports, "keyValues", { enumerable: true, get: function () { return dimension_helpers.keyValues; } }); exports.mergeSortedArray = dimension_helpers.mergeSortedArray; exports.proxyPlugin = dimension_helpers.proxyPlugin; exports.pushSorted = dimension_helpers.pushSorted; exports.range = dimension_helpers.range; exports.scaleValue = dimension_helpers.scaleValue; exports.setItems = dimension_helpers.setItems; exports.setSourceByPhysicalIndex = dimension_helpers.setSourceByPhysicalIndex; exports.setSourceByVirtualIndex = dimension_helpers.setSourceByVirtualIndex; exports.setStore = dimension_helpers.setStore; exports.timeout = dimension_helpers.timeout; exports.trimmedPlugin = dimension_helpers.trimmedPlugin; exports.TextEditor = textEditor.TextEditor; exports.isAll = edit_utils.isAll; exports.isClear = edit_utils.isClear; exports.isCopy = edit_utils.isCopy; exports.isCtrlKey = edit_utils.isCtrlKey; exports.isCtrlMetaKey = edit_utils.isCtrlMetaKey; exports.isCut = edit_utils.isCut; exports.isEditInput = edit_utils.isEditInput; exports.isEditorCtrConstructible = edit_utils.isEditorCtrConstructible; exports.isEnterKeyValue = edit_utils.isEnterKeyValue; exports.isMetaKey = edit_utils.isMetaKey; exports.isPaste = edit_utils.isPaste; exports.isTab = edit_utils.isTab; exports.isTabKeyValue = edit_utils.isTabKeyValue; exports.h = index.h; exports.ViewportStore = viewport_store.ViewportStore; exports.addMissingItems = viewport_store.addMissingItems; exports.calculateRowHeaderSize = viewport_store.calculateRowHeaderSize; exports.getFirstItem = viewport_store.getFirstItem; exports.getItems = viewport_store.getItems; exports.getLastItem = viewport_store.getLastItem; exports.getUpdatedItemsByPosition = viewport_store.getUpdatedItemsByPosition; exports.isActiveRange = viewport_store.isActiveRange; exports.isActiveRangeOutsideLastItem = viewport_store.isActiveRangeOutsideLastItem; exports.recombineByOffset = viewport_store.recombineByOffset; exports.setItemSizes = viewport_store.setItemSizes; exports.updateMissingAndRange = viewport_store.updateMissingAndRange; exports.AND_OR_BUTTON = filter_button.AND_OR_BUTTON; exports.AndOrButton = filter_button.AndOrButton; exports.FILTER_BUTTON_ACTIVE = filter_button.FILTER_BUTTON_ACTIVE; exports.FILTER_BUTTON_CLASS = filter_button.FILTER_BUTTON_CLASS; exports.FILTER_PROP = filter_button.FILTER_PROP; exports.FilterButton = filter_button.FilterButton; exports.TRASH_BUTTON = filter_button.TRASH_BUTTON; exports.TrashButton = filter_button.TrashButton; exports.isFilterBtn = filter_button.isFilterBtn; exports.AutoAddRowsPlugin = AutoAddRowsPlugin; exports.REVOGRID_EVENTS = REVOGRID_EVENTS;