canvas-datagrid 0.3.11 → 0.3.15
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/CHANGELOG.md +29 -0
- package/dist/canvas-datagrid.debug.js +352 -99
- package/dist/canvas-datagrid.debug.map +1 -1
- package/dist/canvas-datagrid.js +1 -1
- package/dist/canvas-datagrid.module.js +1 -1
- package/dist/canvas-datagrid.module.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/lib/defaults.js +3 -0
- package/lib/docs.js +5 -0
- package/lib/draw.js +8 -6
- package/lib/{events.js → events/index.js} +58 -60
- package/lib/events/util.js +96 -0
- package/lib/intf.js +69 -5
- package/lib/publicMethods.js +4 -0
- package/package.json +1 -1
|
@@ -1016,7 +1016,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1016
1016
|
|
|
1017
1017
|
/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(self) {
|
|
1018
1018
|
self.defaults = {
|
|
1019
|
-
attributes: [['allowColumnReordering', true], ['allowColumnResize', true], ['allowColumnResizeFromCell', false], ['allowFreezingRows', false], ['allowFreezingColumns', false], ['allowMovingSelection', true], ['allowRowHeaderResize', true], ['allowRowReordering', false], ['allowRowResize', true], ['allowRowResizeFromCell', false], ['allowSorting', true], ['autoGenerateSchema', false], ['autoResizeColumns', false], ['autoResizeRows', false], ['autoScrollOnMousemove', false], ['autoScrollMargin', 5], ['blanksText', '(Blanks)'], ['borderDragBehavior', 'none'], ['borderResizeZone', 10], ['clearSettingsOptionText', 'Clear saved settings'], ['columnHeaderClickBehavior', 'sort'], ['columnSelectorHiddenText', ' '], ['columnSelectorText', 'Add/Remove columns'], ['columnSelectorVisibleText', "\u2713"], ['contextHoverScrollAmount', 2], ['contextHoverScrollRateMs', 5], ['copyHeadersOnSelectAll', true], ['copyText', 'Copy'], ['debug', false], ['editable', true], ['ellipsisText', '...'], ['filterOptionText', 'Filter %s'], ['filterTextPrefix', '(filtered) '], ['globalRowResize', false], ['hideColumnText', 'Hide %s'], ['hoverMode', 'cell'], ['maxAutoCompleteItems', 200], ['multiLine', false], ['name', ''], ['pageUpDownOverlap', 1], ['pasteText', 'Paste'], ['persistantSelectionMode', false], ['removeFilterOptionText', 'Remove filter on %s'], ['reorderDeadZone', 3], ['resizeScrollZone', 20], ['rowGrabZoneSize', 5], ['saveAppearance', true], ['scrollAnimationPPSThreshold', 0.75], ['scrollPointerLock', false], ['scrollRepeatRate', 75], ['selectionFollowsActiveCell', false], ['selectionHandleBehavior', 'none'], ['selectionMode', 'cell'], ['selectionScrollIncrement', 20], ['selectionScrollZone', 20], ['showClearSettingsOption', true], ['showColumnHeaders', true], ['showColumnSelector', true], ['showCopy', false], ['showFilter', true], ['showNewRow', false], ['showOrderByOption', true], ['showOrderByOptionTextAsc', 'Order by %s ascending'], ['showOrderByOptionTextDesc', 'Order by %s descending'], ['showPaste', false], ['showPerformance', false], ['showRowHeaders', true], ['showRowNumbers', true], ['showRowNumberGaps', true], ['singleSelectionMode', false], ['snapToRow', false], ['touchContextMenuTimeMs', 800], ['touchDeadZone', 3], ['touchEasingMethod', 'easeOutQuad'], ['touchReleaseAcceleration', 1000], ['touchReleaseAnimationDurationMs', 2000], ['touchScrollZone', 20], ['touchSelectHandleZone', 20], ['touchZoomSensitivity', 0.005], ['touchZoomMin', 0.5], ['touchZoomMax', 1.75], ['maxPixelRatio', 2], ['tree', false], ['treeHorizontalScroll', false]],
|
|
1019
|
+
attributes: [['allowColumnReordering', true], ['allowColumnResize', true], ['allowColumnResizeFromCell', false], ['allowFreezingRows', false], ['allowFreezingColumns', false], ['allowMovingSelection', true], ['allowRowHeaderResize', true], ['allowRowReordering', false], ['allowRowResize', true], ['allowRowResizeFromCell', false], ['allowSorting', true], ['autoGenerateSchema', false], ['autoResizeColumns', false], ['autoResizeRows', false], ['autoScrollOnMousemove', false], ['autoScrollMargin', 5], ['blanksText', '(Blanks)'], ['borderDragBehavior', 'none'], ['borderResizeZone', 10], ['clearSettingsOptionText', 'Clear saved settings'], ['columnHeaderClickBehavior', 'sort'], ['columnSelectorHiddenText', ' '], ['columnSelectorText', 'Add/Remove columns'], ['columnSelectorVisibleText', "\u2713"], ['contextHoverScrollAmount', 2], ['contextHoverScrollRateMs', 5], ['copyHeadersOnSelectAll', true], ['copyText', 'Copy'], ['debug', false], ['editable', true], ['ellipsisText', '...'], ['filterOptionText', 'Filter %s'], ['filterTextPrefix', '(filtered) '], ['filterFrozenRows', true], ['globalRowResize', false], ['hideColumnText', 'Hide %s'], ['hoverMode', 'cell'], ['keepFocusOnMouseOut', false], ['maxAutoCompleteItems', 200], ['multiLine', false], ['name', ''], ['pageUpDownOverlap', 1], ['pasteText', 'Paste'], ['persistantSelectionMode', false], ['removeFilterOptionText', 'Remove filter on %s'], ['reorderDeadZone', 3], ['resizeScrollZone', 20], ['rowGrabZoneSize', 5], ['saveAppearance', true], ['scrollAnimationPPSThreshold', 0.75], ['scrollPointerLock', false], ['scrollRepeatRate', 75], ['selectionFollowsActiveCell', false], ['selectionHandleBehavior', 'none'], ['selectionMode', 'cell'], ['selectionScrollIncrement', 20], ['selectionScrollZone', 20], ['showClearSettingsOption', true], ['showColumnHeaders', true], ['showColumnSelector', true], ['showCopy', false], ['showFilter', true], ['showNewRow', false], ['showOrderByOption', true], ['showOrderByOptionTextAsc', 'Order by %s ascending'], ['showOrderByOptionTextDesc', 'Order by %s descending'], ['showPaste', false], ['showPerformance', false], ['showRowHeaders', true], ['showRowNumbers', true], ['showRowNumberGaps', true], ['singleSelectionMode', false], ['snapToRow', false], ['sortFrozenRows', true], ['touchContextMenuTimeMs', 800], ['touchDeadZone', 3], ['touchEasingMethod', 'easeOutQuad'], ['touchReleaseAcceleration', 1000], ['touchReleaseAnimationDurationMs', 2000], ['touchScrollZone', 20], ['touchSelectHandleZone', 20], ['touchZoomSensitivity', 0.005], ['touchZoomMin', 0.5], ['touchZoomMax', 1.75], ['maxPixelRatio', 2], ['tree', false], ['treeHorizontalScroll', false]],
|
|
1020
1020
|
styles: [['activeCellBackgroundColor', 'rgba(255, 255, 255, 1)'], ['activeCellBorderColor', 'rgba(110, 168, 255, 1)'], ['activeCellBorderWidth', 1], ['activeCellColor', 'rgba(0, 0, 0, 1)'], ['activeCellFont', '16px sans-serif'], ['activeCellHoverBackgroundColor', 'rgba(255, 255, 255, 1)'], ['activeCellHorizontalAlignment', 'left'], ['activeCellHoverColor', 'rgba(0, 0, 0, 1)'], ['activeCellOverlayBorderColor', 'rgba(66, 133, 244, 1)'], ['activeCellOverlayBorderWidth', 1], ['activeCellPaddingBottom', 5], ['activeCellPaddingLeft', 5], ['activeCellPaddingRight', 5], ['activeCellPaddingTop', 5], ['activeCellSelectedBackgroundColor', 'rgba(236, 243, 255, 1)'], ['activeCellSelectedColor', 'rgba(0, 0, 0, 1)'], ['activeCellVerticalAlignment', 'center'], ['activeColumnHeaderCellBackgroundColor', 'rgba(225, 225, 225, 1)'], ['activeColumnHeaderCellColor', 'rgba(0, 0, 0, 1)'], ['activeRowHeaderCellBackgroundColor', 'rgba(225, 225, 225, 1)'], ['activeRowHeaderCellColor', 'rgba(0, 0, 0, 1)'], ['autocompleteBottomMargin', 60], ['autosizeHeaderCellPadding', 8], ['autosizePadding', 5], ['cellAutoResizePadding', 13], ['cellBackgroundColor', 'rgba(255, 255, 255, 1)'], ['cellBorderColor', 'rgba(195, 199, 202, 1)'], ['cellBorderWidth', 1], ['cellColor', 'rgba(0, 0, 0, 1)'], ['cellFont', '16px sans-serif'], ['cellGridHeight', 250], ['cellHeight', 24], ['cellHeightWithChildGrid', 150], ['cellHorizontalAlignment', 'left'], ['cellHoverBackgroundColor', 'rgba(255, 255, 255, 1)'], ['cellHoverColor', 'rgba(0, 0, 0, 1)'], ['cellPaddingBottom', 5], ['cellPaddingLeft', 5], ['cellPaddingRight', 5], ['cellPaddingTop', 5], ['cellSelectedBackgroundColor', 'rgba(236, 243, 255, 1)'], ['cellSelectedColor', 'rgba(0, 0, 0, 1)'], ['cellVerticalAlignment', 'center'], ['cellWidth', 250], ['cellWidthWithChildGrid', 250], ['cellWhiteSpace', 'nowrap'], ['cellLineHeight', 1], ['cellLineSpacing', 3], ['childContextMenuArrowColor', 'rgba(43, 48, 43, 1)'], ['childContextMenuArrowHTML', '►'], ['childContextMenuMarginLeft', -11], ['childContextMenuMarginTop', -6], ['columnHeaderCellBackgroundColor', 'rgba(240, 240, 240, 1)'], ['columnHeaderCellBorderColor', 'rgba(172, 172, 172, 1)'], ['columnHeaderCellBorderWidth', 1], ['columnHeaderCellCapBackgroundColor', 'rgba(240, 240, 240, 1)'], ['columnHeaderCellCapBorderColor', 'rgba(172, 172, 172, 1)'], ['columnHeaderCellCapBorderWidth', 1], ['columnHeaderCellColor', 'rgba(50, 50, 50, 1)'], ['columnHeaderCellFont', '16px sans-serif'], ['columnHeaderCellHeight', 25], ['columnHeaderCellHorizontalAlignment', 'left'], ['columnHeaderCellHoverBackgroundColor', 'rgba(235, 235, 235, 1)'], ['columnHeaderCellHoverColor', 'rgba(0, 0, 0, 1)'], ['columnHeaderCellPaddingBottom', 5], ['columnHeaderCellPaddingLeft', 5], ['columnHeaderCellPaddingRight', 5], ['columnHeaderCellPaddingTop', 5], ['columnHeaderCellVerticalAlignment', 'center'], ['columnHeaderOrderByArrowBorderColor', 'rgba(195, 199, 202, 1)'], ['columnHeaderOrderByArrowBorderWidth', 1], ['columnHeaderOrderByArrowColor', 'rgba(155, 155, 155, 1)'], ['columnHeaderOrderByArrowHeight', 8], ['columnHeaderOrderByArrowMarginLeft', 0], ['columnHeaderOrderByArrowMarginRight', 5], ['columnHeaderOrderByArrowMarginTop', 6], ['columnHeaderOrderByArrowWidth', 13], ['contextFilterButtonBorder', 'solid 1px rgba(158, 163, 169, 1)'], ['contextFilterButtonBorderRadius', '3px'], ['contextFilterButtonHTML', '▼'], ['contextFilterInputBackground', 'rgba(255,255,255,1)'], ['contextFilterInputBorder', 'solid 1px rgba(158, 163, 169, 1)'], ['contextFilterInputBorderRadius', '0'], ['contextFilterInputColor', 'rgba(0,0,0,1)'], ['contextFilterInputFontFamily', 'sans-serif'], ['contextFilterInputFontSize', '14px'], ['contextFilterInvalidRegExpBackground', 'rgba(180, 6, 1, 1)'], ['contextFilterInvalidRegExpColor', 'rgba(255, 255, 255, 1)'], ['contextMenuArrowColor', 'rgba(43, 48, 43, 1)'], ['contextMenuArrowDownHTML', '▼'], ['contextMenuArrowUpHTML', '▲'], ['contextMenuBackground', 'rgba(240, 240, 240, 1)'], ['contextMenuBorder', 'solid 1px rgba(158, 163, 169, 1)'], ['contextMenuBorderRadius', '3px'], ['contextMenuChildArrowFontSize', '12px'], ['contextMenuColor', 'rgba(43, 48, 43, 1)'], ['contextMenuCursor', 'default'], ['contextMenuFilterButtonFontFamily', 'sans-serif'], ['contextMenuFilterButtonFontSize', '10px'], ['contextMenuFilterInvalidExpresion', 'rgba(237, 155, 156, 1)'], ['contextMenuFontFamily', 'sans-serif'], ['contextMenuFontSize', '16px'], ['contextMenuHoverBackground', 'rgba(182, 205, 250, 1)'], ['contextMenuHoverColor', 'rgba(43, 48, 153, 1)'], ['contextMenuItemBorderRadius', '3px'], ['contextMenuItemMargin', '2px'], ['contextMenuLabelDisplay', 'inline-block'], ['contextMenuLabelMargin', '0 3px 0 0'], ['contextMenuLabelMaxWidth', '700px'], ['contextMenuLabelMinWidth', '75px'], ['contextMenuMarginLeft', 3], ['contextMenuMarginTop', -3], ['contextMenuOpacity', '0.98'], ['contextMenuPadding', '2px'], ['contextMenuWindowMargin', 30], ['contextMenuZIndex', 10000], ['cornerCellBackgroundColor', 'rgba(240, 240, 240, 1)'], ['cornerCellBorderColor', 'rgba(202, 202, 202, 1)'], ['debugBackgroundColor', 'rgba(0, 0, 0, .0)'], ['debugColor', 'rgba(255, 15, 24, 1)'], ['debugEntitiesColor', 'rgba(76, 231, 239, 1.00)'], ['debugFont', '11px sans-serif'], ['debugPerfChartBackground', 'rgba(29, 25, 26, 1.00)'], ['debugPerfChartTextColor', 'rgba(255, 255, 255, 0.8)'], ['debugPerformanceColor', 'rgba(252, 255, 37, 1.00)'], ['debugScrollHeightColor', 'rgba(248, 33, 103, 1.00)'], ['debugScrollWidthColor', 'rgba(66, 255, 27, 1.00)'], ['debugTouchPPSXColor', 'rgba(246, 102, 24, 1.00)'], ['debugTouchPPSYColor', 'rgba(186, 0, 255, 1.00)'], ['display', 'inline-block'], ['editCellBackgroundColor', 'white'], ['editCellBorder', 'solid 1px rgba(110, 168, 255, 1)'], ['editCellBoxShadow', '0 2px 5px rgba(0,0,0,0.4)'], ['editCellColor', 'black'], ['editCellFontFamily', 'sans-serif'], ['editCellFontSize', '16px'], ['editCellPaddingLeft', 4], ['editCellZIndex', 10000], ['frozenMarkerHoverColor', 'rgba(236, 243, 255, 1)'], ['frozenMarkerHoverBorderColor', 'rgba(110, 168, 255, 1)'], ['frozenMarkerActiveColor', 'rgba(236, 243, 255, 1)'], ['frozenMarkerActiveBorderColor', 'rgba(110, 168, 255, 1)'], ['frozenMarkerColor', 'rgba(222, 222, 222, 1)'], ['frozenMarkerBorderColor', 'rgba(168, 168, 168, 1)'], ['frozenMarkerBorderWidth', 1], ['frozenMarkerWidth', 2], ['gridBackgroundColor', 'rgba(240, 240, 240, 1)'], ['gridBorderCollapse', 'collapse'], ['gridBorderColor', 'rgba(202, 202, 202, 1)'], ['gridBorderWidth', 1], ['height', 'auto'], ['maxHeight', 'inherit'], ['maxWidth', 'inherit'], ['minColumnWidth', 45], ['minHeight', 'inherit'], ['minRowHeight', 24], ['minWidth', 'inherit'], ['mobileContextMenuMargin', 10], ['mobileEditInputHeight', 30], ['mobileEditFontFamily', 'sans-serif'], ['mobileEditFontSize', '16px'], ['moveOverlayBorderWidth', 1], ['moveOverlayBorderColor', 'rgba(66, 133, 244, 1)'], ['moveOverlayBorderSegments', '12, 7'], ['name', 'default'], ['overflowY', 'auto'], ['overflowX', 'auto'], ['reorderMarkerBackgroundColor', 'rgba(0, 0, 0, 0.1)'], ['reorderMarkerBorderColor', 'rgba(0, 0, 0, 0.2)'], ['reorderMarkerBorderWidth', 1.25], ['reorderMarkerIndexBorderColor', 'rgba(66, 133, 244, 1)'], ['reorderMarkerIndexBorderWidth', 2.75], ['rowHeaderCellBackgroundColor', 'rgba(240, 240, 240, 1)'], ['rowHeaderCellBorderColor', 'rgba(200, 200, 200, 1)'], ['rowHeaderCellBorderWidth', 1], ['rowHeaderCellColor', 'rgba(50, 50, 50, 1)'], ['rowHeaderCellFont', '16px sans-serif'], ['rowHeaderCellHeight', 25], ['rowHeaderCellHorizontalAlignment', 'left'], ['rowHeaderCellHoverBackgroundColor', 'rgba(235, 235, 235, 1)'], ['rowHeaderCellHoverColor', 'rgba(0, 0, 0, 1)'], ['rowHeaderCellPaddingBottom', 5], ['rowHeaderCellPaddingLeft', 5], ['rowHeaderCellPaddingRight', 5], ['rowHeaderCellPaddingTop', 5], ['rowHeaderCellRowNumberGapHeight', 5], ['rowHeaderCellRowNumberGapColor', 'rgba(50, 50, 50, 1)'], ['rowHeaderCellSelectedBackgroundColor', 'rgba(217, 217, 217, 1)'], ['rowHeaderCellSelectedColor', 'rgba(50, 50, 50, 1)'], ['rowHeaderCellVerticalAlignment', 'center'], ['rowHeaderCellWidth', 57], ['scrollBarActiveColor', 'rgba(125, 125, 125, 1)'], ['scrollBarBackgroundColor', 'rgba(240, 240, 240, 1)'], ['scrollBarBorderColor', 'rgba(202, 202, 202, 1)'], ['scrollBarBorderWidth', 0.5], ['scrollBarBoxBorderRadius', 4.125], ['scrollBarBoxColor', 'rgba(192, 192, 192, 1)'], ['scrollBarBoxMargin', 2], ['scrollBarBoxMinSize', 15], ['scrollBarBoxWidth', 8], ['scrollBarCornerBackgroundColor', 'rgba(240, 240, 240, 1)'], ['scrollBarCornerBorderColor', 'rgba(202, 202, 202, 1)'], ['scrollBarWidth', 11], ['selectionHandleBorderColor', 'rgba(255, 255, 255, 1)'], ['selectionHandleBorderWidth', 1.5], ['selectionHandleColor', 'rgba(66, 133, 244, 1)'], ['selectionHandleSize', 8], ['selectionHandleType', 'square'], ['selectionOverlayBorderColor', 'rgba(66, 133, 244, 1)'], ['selectionOverlayBorderWidth', 1], ['treeArrowBorderColor', 'rgba(195, 199, 202, 1)'], ['treeArrowBorderWidth', 1], ['treeArrowClickRadius', 5], ['treeArrowColor', 'rgba(155, 155, 155, 1)'], ['treeArrowHeight', 8], ['treeArrowMarginLeft', 0], ['treeArrowMarginRight', 5], ['treeArrowMarginTop', 6], ['treeArrowWidth', 13], ['treeGridHeight', 250], ['width', 'auto']]
|
|
1021
1021
|
};
|
|
1022
1022
|
}
|
|
@@ -1892,15 +1892,15 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
1892
1892
|
y = y + mt;
|
|
1893
1893
|
|
|
1894
1894
|
if (self.orderDirection === 'asc') {
|
|
1895
|
-
self.ctx.moveTo(x, y);
|
|
1896
|
-
self.ctx.lineTo(x + aw, y);
|
|
1897
|
-
self.ctx.lineTo(x + aw * 0.5, y + ah);
|
|
1898
|
-
self.ctx.moveTo(x, y);
|
|
1899
|
-
} else {
|
|
1900
1895
|
self.ctx.lineTo(x, y + ah);
|
|
1901
1896
|
self.ctx.lineTo(x + aw, y + ah);
|
|
1902
1897
|
self.ctx.lineTo(x + aw * 0.5, y);
|
|
1903
1898
|
self.ctx.lineTo(x, y + ah);
|
|
1899
|
+
} else {
|
|
1900
|
+
self.ctx.moveTo(x, y);
|
|
1901
|
+
self.ctx.lineTo(x + aw, y);
|
|
1902
|
+
self.ctx.lineTo(x + aw * 0.5, y + ah);
|
|
1903
|
+
self.ctx.moveTo(x, y);
|
|
1904
1904
|
}
|
|
1905
1905
|
|
|
1906
1906
|
self.ctx.stroke();
|
|
@@ -2611,7 +2611,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
2611
2611
|
viewRowIndex: rowOrderIndex,
|
|
2612
2612
|
viewColumnIndex: columnOrderIndex,
|
|
2613
2613
|
boundRowIndex: self.getBoundRowIndexFromViewRowIndex(rowOrderIndex),
|
|
2614
|
-
boundColumnIndex: columnOrderIndex,
|
|
2614
|
+
boundColumnIndex: self.getBoundColumnIndexFromViewColumnIndex(columnOrderIndex),
|
|
2615
2615
|
sortColumnIndex: headerIndex,
|
|
2616
2616
|
sortRowIndex: rowIndex,
|
|
2617
2617
|
isGrid: isGrid,
|
|
@@ -3515,10 +3515,10 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
3515
3515
|
|
|
3516
3516
|
/***/ }),
|
|
3517
3517
|
|
|
3518
|
-
/***/ "./lib/events.js":
|
|
3519
|
-
|
|
3520
|
-
!*** ./lib/events.js ***!
|
|
3521
|
-
|
|
3518
|
+
/***/ "./lib/events/index.js":
|
|
3519
|
+
/*!*****************************!*\
|
|
3520
|
+
!*** ./lib/events/index.js ***!
|
|
3521
|
+
\*****************************/
|
|
3522
3522
|
/*! namespace exports */
|
|
3523
3523
|
/*! export default [provided] [no usage info] [missing usage info prevents renaming] */
|
|
3524
3524
|
/*! other exports [not provided] [no usage info] */
|
|
@@ -3532,18 +3532,28 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3532
3532
|
/* harmony export */ });
|
|
3533
3533
|
/* harmony import */ var is_printable_key_event__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-printable-key-event */ "./node_modules/is-printable-key-event/dist/index.js");
|
|
3534
3534
|
/* harmony import */ var is_printable_key_event__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(is_printable_key_event__WEBPACK_IMPORTED_MODULE_0__);
|
|
3535
|
+
/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "./lib/events/util.js");
|
|
3535
3536
|
/*jslint browser: true, unparam: true, todo: true, plusplus: true*/
|
|
3536
3537
|
|
|
3537
3538
|
/*globals define: true, MutationObserver: false, requestAnimationFrame: false, performance: false, btoa: false*/
|
|
3538
3539
|
|
|
3539
3540
|
|
|
3540
|
-
function
|
|
3541
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
3542
|
+
|
|
3543
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3544
|
+
|
|
3545
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
3546
|
+
|
|
3547
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
3548
|
+
|
|
3549
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
3541
3550
|
|
|
3542
3551
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
3543
3552
|
|
|
3544
3553
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
3545
3554
|
|
|
3546
3555
|
|
|
3556
|
+
|
|
3547
3557
|
/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(self) {
|
|
3548
3558
|
var wheeling;
|
|
3549
3559
|
|
|
@@ -4031,6 +4041,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4031
4041
|
var event = {
|
|
4032
4042
|
selections: self.selections,
|
|
4033
4043
|
selectedData: self.getSelectedData(),
|
|
4044
|
+
selectedCells: self.getSelectedCells(),
|
|
4034
4045
|
selectionBounds: self.getSelectionBounds()
|
|
4035
4046
|
};
|
|
4036
4047
|
self.dispatchEvent('selectionchanged', event);
|
|
@@ -4089,7 +4100,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4089
4100
|
|
|
4090
4101
|
ev = {
|
|
4091
4102
|
selections: self.selections,
|
|
4092
|
-
selectionBounds: self.getSelectionBounds()
|
|
4103
|
+
selectionBounds: self.getSelectionBounds(),
|
|
4104
|
+
selectedCells: self.getSelectedCells()
|
|
4093
4105
|
};
|
|
4094
4106
|
Object.defineProperty(ev, 'selectedData', {
|
|
4095
4107
|
get: function get() {
|
|
@@ -4353,6 +4365,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4353
4365
|
self.stopDragReorder = function (e) {
|
|
4354
4366
|
var oIndex,
|
|
4355
4367
|
tIndex,
|
|
4368
|
+
odata,
|
|
4356
4369
|
cr = {
|
|
4357
4370
|
'row-reorder': self.orders.rows,
|
|
4358
4371
|
'column-reorder': self.orders.columns
|
|
@@ -4373,13 +4386,16 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4373
4386
|
self.ignoreNextClick = true;
|
|
4374
4387
|
oIndex = cr[self.dragMode].indexOf(self.reorderObject[i]);
|
|
4375
4388
|
tIndex = cr[self.dragMode].indexOf(self.reorderTarget[i]);
|
|
4376
|
-
cr[self.dragMode].splice(oIndex, 1);
|
|
4377
|
-
cr[self.dragMode].splice(tIndex, 0, self.reorderObject[i]);
|
|
4378
4389
|
|
|
4379
4390
|
if (self.dragMode === 'column-reorder') {
|
|
4391
|
+
cr[self.dragMode].splice(oIndex, 1);
|
|
4392
|
+
cr[self.dragMode].splice(tIndex, 0, self.reorderObject[i]);
|
|
4380
4393
|
self.orders.columns = cr[self.dragMode];
|
|
4381
4394
|
} else {
|
|
4382
|
-
self.orders.rows = cr[self.dragMode];
|
|
4395
|
+
// self.orders.rows = cr[self.dragMode];
|
|
4396
|
+
odata = self.viewData[oIndex];
|
|
4397
|
+
self.viewData[oIndex] = self.viewData[tIndex];
|
|
4398
|
+
self.viewData[tIndex] = odata;
|
|
4383
4399
|
}
|
|
4384
4400
|
|
|
4385
4401
|
self.resize();
|
|
@@ -4605,6 +4621,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4605
4621
|
|
|
4606
4622
|
if (['row-reorder', 'column-reorder'].indexOf(self.dragMode) !== -1) {
|
|
4607
4623
|
self.draggingItem = self.dragStartObject;
|
|
4624
|
+
|
|
4625
|
+
if (self.dragMode === 'column-reorder' && self.attributes.columnHeaderClickBehavior === 'select') {
|
|
4626
|
+
self.selectColumn(self.currentCell.header.index, ctrl, e.shiftKey);
|
|
4627
|
+
self.draw();
|
|
4628
|
+
}
|
|
4629
|
+
|
|
4608
4630
|
document.body.addEventListener('mousemove', self.dragReorder, false);
|
|
4609
4631
|
document.body.addEventListener('mouseup', self.stopDragReorder, false);
|
|
4610
4632
|
return;
|
|
@@ -4613,9 +4635,16 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4613
4635
|
|
|
4614
4636
|
self.mouseup = function (e) {
|
|
4615
4637
|
clearTimeout(self.scrollTimer);
|
|
4638
|
+
var ctrl = e.ctrlKey || e.metaKey;
|
|
4616
4639
|
self.cellBoundaryCrossed = true;
|
|
4617
4640
|
self.rowBoundaryCrossed = true;
|
|
4618
4641
|
self.columnBoundaryCrossed = true;
|
|
4642
|
+
|
|
4643
|
+
if (self.draggingItem) {
|
|
4644
|
+
self.selectColumn(self.currentCell.header.index, ctrl, e.shiftKey);
|
|
4645
|
+
self.draw();
|
|
4646
|
+
}
|
|
4647
|
+
|
|
4619
4648
|
self.selecting = undefined;
|
|
4620
4649
|
self.draggingItem = undefined;
|
|
4621
4650
|
self.dragStartObject = undefined;
|
|
@@ -4700,7 +4729,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4700
4729
|
return;
|
|
4701
4730
|
}
|
|
4702
4731
|
|
|
4703
|
-
if (!self.hasFocus) {
|
|
4732
|
+
if (!self.attributes.keepFocusOnMouseOut && !self.hasFocus) {
|
|
4704
4733
|
return;
|
|
4705
4734
|
} // If a user starts typing content, switch to "Enter" mode
|
|
4706
4735
|
|
|
@@ -4856,7 +4885,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4856
4885
|
ev = {
|
|
4857
4886
|
selectedData: self.getSelectedData(),
|
|
4858
4887
|
selections: self.selections,
|
|
4859
|
-
selectionBounds: self.getSelectionBounds()
|
|
4888
|
+
selectionBounds: self.getSelectionBounds(),
|
|
4889
|
+
selectedCells: self.getSelectedCells()
|
|
4860
4890
|
};
|
|
4861
4891
|
Object.defineProperty(ev, 'selectedData', {
|
|
4862
4892
|
get: function get() {
|
|
@@ -4961,64 +4991,17 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4961
4991
|
};
|
|
4962
4992
|
|
|
4963
4993
|
self.pasteData = function (pasteValue, mimeType, startRowIndex, startColIndex) {
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
var isSupportedHtmlTable = function isSupportedHtmlTable(htmlString) {
|
|
4967
|
-
return /(?:^(<meta[^>]+>)?<table.*?>)|(?:<!--StartFragment-->\s*<table.*?>)/.test(htmlString);
|
|
4968
|
-
}; // TODO: support pasting tables from Excel
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
if (mimeType === 'text/html' && isSupportedHtmlTable(pasteValue) === false) {
|
|
4994
|
+
if (mimeType === 'text/html' && !(0,_util__WEBPACK_IMPORTED_MODULE_1__.isSupportedHtml)(pasteValue)) {
|
|
4972
4995
|
console.warn('Unrecognized HTML format. HTML must be a simple table, e.g.: <table><tr><td>data</td></tr></table>.');
|
|
4973
4996
|
console.warn('Data with the mime type text/html not in this format will not be imported as row data.');
|
|
4974
4997
|
return;
|
|
4975
4998
|
}
|
|
4976
4999
|
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
if (mimeType === 'text/html') {
|
|
4980
|
-
var doc = new DOMParser().parseFromString(data, 'text/html');
|
|
4981
|
-
var trs = doc.querySelectorAll('table tr');
|
|
4982
|
-
var _rows = [];
|
|
4983
|
-
trs.forEach(function (tr) {
|
|
4984
|
-
var row = [];
|
|
4985
|
-
tr.childNodes.forEach(function (td) {
|
|
4986
|
-
if (td.nodeName === '#text') return;
|
|
4987
|
-
var col = {
|
|
4988
|
-
// style: {}, // keep style if need
|
|
4989
|
-
value: []
|
|
4990
|
-
};
|
|
4991
|
-
td.childNodes.forEach(function (ele) {
|
|
4992
|
-
col.value.push({
|
|
4993
|
-
// style: {}, // keep style if need
|
|
4994
|
-
value: ele.nodeType === 1 ? ele.innerText : ele.data
|
|
4995
|
-
});
|
|
4996
|
-
});
|
|
4997
|
-
row.push(col);
|
|
4998
|
-
});
|
|
4999
|
-
|
|
5000
|
-
_rows.push(row);
|
|
5001
|
-
});
|
|
5002
|
-
return _rows;
|
|
5003
|
-
} // Default data format is string, so split on new line,
|
|
5004
|
-
// and then enclose in an array (a row with one cell):
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
return data.split('\n').map(function (item) {
|
|
5008
|
-
return item.split('\t').map(function (value) {
|
|
5009
|
-
return {
|
|
5010
|
-
value: [{
|
|
5011
|
-
value: value
|
|
5012
|
-
}]
|
|
5013
|
-
};
|
|
5014
|
-
});
|
|
5015
|
-
});
|
|
5016
|
-
}
|
|
5017
|
-
|
|
5018
|
-
var rows = parseData(pasteValue, mimeType); // selected cell. This mimics Excel's paste functionality, and works
|
|
5000
|
+
var schema = self.getSchema();
|
|
5001
|
+
var rows = (0,_util__WEBPACK_IMPORTED_MODULE_1__.parseData)(pasteValue, mimeType); // selected cell. This mimics Excel's paste functionality, and works
|
|
5019
5002
|
// as a poor-man's fill-down.
|
|
5020
5003
|
|
|
5021
|
-
if (rows.length === 1) {
|
|
5004
|
+
if (rows.length === 1 && rows[0].length === 1) {
|
|
5022
5005
|
var cellData = rows[0][0].value.map(function (item) {
|
|
5023
5006
|
return item.value;
|
|
5024
5007
|
}).join();
|
|
@@ -5075,7 +5058,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5075
5058
|
self.selections.forEach(function (row, rowIndex) {
|
|
5076
5059
|
if (rowIndex === undefined) return;
|
|
5077
5060
|
row.forEach(function (columnIndex) {
|
|
5078
|
-
affectedCells.push([rowIndex, columnIndex, self.
|
|
5061
|
+
affectedCells.push([rowIndex, columnIndex, self.getBoundRowIndexFromViewRowIndex(rowIndex), self.getBoundColumnIndexFromViewColumnIndex(columnIndex)]);
|
|
5079
5062
|
});
|
|
5080
5063
|
});
|
|
5081
5064
|
self.dispatchEvent('afterpaste', {
|
|
@@ -5167,9 +5150,50 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5167
5150
|
|
|
5168
5151
|
self.cut = function (e) {
|
|
5169
5152
|
self.copy(e);
|
|
5170
|
-
self.
|
|
5171
|
-
|
|
5172
|
-
|
|
5153
|
+
var schema = self.getSchema();
|
|
5154
|
+
var affectedCells = [];
|
|
5155
|
+
|
|
5156
|
+
var _iterator2 = _createForOfIteratorHelper(self.selections.entries()),
|
|
5157
|
+
_step2;
|
|
5158
|
+
|
|
5159
|
+
try {
|
|
5160
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
5161
|
+
var _step2$value = _slicedToArray(_step2.value, 2),
|
|
5162
|
+
rowIndex = _step2$value[0],
|
|
5163
|
+
row = _step2$value[1];
|
|
5164
|
+
|
|
5165
|
+
if (!row) continue;
|
|
5166
|
+
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(rowIndex);
|
|
5167
|
+
|
|
5168
|
+
var _iterator3 = _createForOfIteratorHelper(row),
|
|
5169
|
+
_step3;
|
|
5170
|
+
|
|
5171
|
+
try {
|
|
5172
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
5173
|
+
var columnIndex = _step3.value;
|
|
5174
|
+
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(columnIndex);
|
|
5175
|
+
var colName = schema[boundColumnIndex].name;
|
|
5176
|
+
self.viewData[rowIndex][colName] = '';
|
|
5177
|
+
affectedCells.push([rowIndex, columnIndex, boundRowIndex, boundColumnIndex]);
|
|
5178
|
+
}
|
|
5179
|
+
} catch (err) {
|
|
5180
|
+
_iterator3.e(err);
|
|
5181
|
+
} finally {
|
|
5182
|
+
_iterator3.f();
|
|
5183
|
+
}
|
|
5184
|
+
}
|
|
5185
|
+
} catch (err) {
|
|
5186
|
+
_iterator2.e(err);
|
|
5187
|
+
} finally {
|
|
5188
|
+
_iterator2.f();
|
|
5189
|
+
}
|
|
5190
|
+
|
|
5191
|
+
if (self.dispatchEvent('cut', {
|
|
5192
|
+
NativeEvent: e,
|
|
5193
|
+
cells: affectedCells
|
|
5194
|
+
})) {
|
|
5195
|
+
return;
|
|
5196
|
+
}
|
|
5173
5197
|
};
|
|
5174
5198
|
|
|
5175
5199
|
self.copy = function (e) {
|
|
@@ -5257,6 +5281,156 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5257
5281
|
return;
|
|
5258
5282
|
}
|
|
5259
5283
|
|
|
5284
|
+
/***/ }),
|
|
5285
|
+
|
|
5286
|
+
/***/ "./lib/events/util.js":
|
|
5287
|
+
/*!****************************!*\
|
|
5288
|
+
!*** ./lib/events/util.js ***!
|
|
5289
|
+
\****************************/
|
|
5290
|
+
/*! namespace exports */
|
|
5291
|
+
/*! export isSupportedHtml [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5292
|
+
/*! export parseData [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5293
|
+
/*! export parseHtmlTable [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5294
|
+
/*! export parseHtmlText [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5295
|
+
/*! export parseText [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5296
|
+
/*! export sanitizeElementData [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5297
|
+
/*! other exports [not provided] [no usage info] */
|
|
5298
|
+
/*! runtime requirements: __webpack_require__.r, __webpack_exports__, __webpack_require__.d, __webpack_require__.* */
|
|
5299
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5300
|
+
|
|
5301
|
+
"use strict";
|
|
5302
|
+
__webpack_require__.r(__webpack_exports__);
|
|
5303
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5304
|
+
/* harmony export */ "isSupportedHtml": function() { return /* binding */ isSupportedHtml; },
|
|
5305
|
+
/* harmony export */ "sanitizeElementData": function() { return /* binding */ sanitizeElementData; },
|
|
5306
|
+
/* harmony export */ "parseData": function() { return /* binding */ parseData; },
|
|
5307
|
+
/* harmony export */ "parseHtmlTable": function() { return /* binding */ parseHtmlTable; },
|
|
5308
|
+
/* harmony export */ "parseHtmlText": function() { return /* binding */ parseHtmlText; },
|
|
5309
|
+
/* harmony export */ "parseText": function() { return /* binding */ parseText; }
|
|
5310
|
+
/* harmony export */ });
|
|
5311
|
+
|
|
5312
|
+
|
|
5313
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
5314
|
+
|
|
5315
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5316
|
+
|
|
5317
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5318
|
+
|
|
5319
|
+
var isSupportedHtml = function isSupportedHtml(pasteValue) {
|
|
5320
|
+
// We need to match new lines in the HTML, .* won't match new line characters.
|
|
5321
|
+
// `s` regex modifier can't be used with `ecmaVersion === 2017`.
|
|
5322
|
+
// As a workaround using [\s\S]*. Fix when we upgrade `ecmaVersion`.
|
|
5323
|
+
var genericDiv = /(?:^(<meta[^>]*>)?[\s\S]*<div[^>]*>)/;
|
|
5324
|
+
var genericSpan = /(?:^(<meta[^>]*>)?[\s\S]*<span[^>]*>)/;
|
|
5325
|
+
var genericTable = /(?:^(<meta[^>]*>)?[\s\S]*<table[^>]*>)/; // Matches Google Sheets format clipboard data format too.
|
|
5326
|
+
|
|
5327
|
+
var excelTable = /(?:<!--StartFragment-->[\s\S]*<tr[^>]*>)/;
|
|
5328
|
+
var excelTableRow = /(?:<!--StartFragment-->[\s\S]*<td[^>]*>)/;
|
|
5329
|
+
return [genericDiv, genericTable, genericSpan, excelTable, excelTableRow].some(function (expression) {
|
|
5330
|
+
return expression.test(pasteValue);
|
|
5331
|
+
});
|
|
5332
|
+
}; // Explanation of nodeType here: https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
|
|
5333
|
+
|
|
5334
|
+
|
|
5335
|
+
var IGNORE_NODETYPES = [8, 3]; // '#text' and '#comment'
|
|
5336
|
+
|
|
5337
|
+
var isHtmlTable = function isHtmlTable(pasteValue) {
|
|
5338
|
+
return /(?:<table[^>]*>)|(?:<tr[^]*>)/.test(pasteValue);
|
|
5339
|
+
};
|
|
5340
|
+
|
|
5341
|
+
var sanitizeElementData = function sanitizeElementData(element) {
|
|
5342
|
+
// It is not entirely clear if this check on nodeType is required.
|
|
5343
|
+
var elementData = element.nodeType === 1 ? element.innerText : element.data;
|
|
5344
|
+
return String(elementData).replace(/\s+/g, ' ').trim();
|
|
5345
|
+
};
|
|
5346
|
+
|
|
5347
|
+
var parseHtmlText = function parseHtmlText(data) {
|
|
5348
|
+
var doc = new DOMParser().parseFromString(data, 'text/html');
|
|
5349
|
+
var element = doc.querySelector('div') || doc.querySelector('span');
|
|
5350
|
+
var elementData = sanitizeElementData(element);
|
|
5351
|
+
return elementData.split('\n').map(function (item) {
|
|
5352
|
+
return item.split('\t').map(function (value) {
|
|
5353
|
+
return {
|
|
5354
|
+
value: [{
|
|
5355
|
+
value: value
|
|
5356
|
+
}]
|
|
5357
|
+
};
|
|
5358
|
+
});
|
|
5359
|
+
});
|
|
5360
|
+
};
|
|
5361
|
+
|
|
5362
|
+
var parseHtmlTable = function parseHtmlTable(data) {
|
|
5363
|
+
var doc = new DOMParser().parseFromString(data, 'text/html');
|
|
5364
|
+
var trs = doc.querySelectorAll('table tr');
|
|
5365
|
+
var rows = [];
|
|
5366
|
+
|
|
5367
|
+
var _iterator = _createForOfIteratorHelper(trs),
|
|
5368
|
+
_step;
|
|
5369
|
+
|
|
5370
|
+
try {
|
|
5371
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
5372
|
+
var tr = _step.value;
|
|
5373
|
+
var row = [];
|
|
5374
|
+
|
|
5375
|
+
var _iterator2 = _createForOfIteratorHelper(tr.childNodes),
|
|
5376
|
+
_step2;
|
|
5377
|
+
|
|
5378
|
+
try {
|
|
5379
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
5380
|
+
var childNode = _step2.value;
|
|
5381
|
+
if (IGNORE_NODETYPES.includes(childNode.nodeType)) continue;
|
|
5382
|
+
var col = {
|
|
5383
|
+
value: []
|
|
5384
|
+
};
|
|
5385
|
+
var value = sanitizeElementData(childNode);
|
|
5386
|
+
if (value) col.value.push({
|
|
5387
|
+
value: value
|
|
5388
|
+
});
|
|
5389
|
+
row.push(col);
|
|
5390
|
+
}
|
|
5391
|
+
} catch (err) {
|
|
5392
|
+
_iterator2.e(err);
|
|
5393
|
+
} finally {
|
|
5394
|
+
_iterator2.f();
|
|
5395
|
+
}
|
|
5396
|
+
|
|
5397
|
+
rows.push(row);
|
|
5398
|
+
}
|
|
5399
|
+
} catch (err) {
|
|
5400
|
+
_iterator.e(err);
|
|
5401
|
+
} finally {
|
|
5402
|
+
_iterator.f();
|
|
5403
|
+
}
|
|
5404
|
+
|
|
5405
|
+
return rows;
|
|
5406
|
+
};
|
|
5407
|
+
|
|
5408
|
+
var parseText = function parseText(data) {
|
|
5409
|
+
return data.split('\n').map(function (item) {
|
|
5410
|
+
return item.split('\t').map(function (value) {
|
|
5411
|
+
return {
|
|
5412
|
+
value: [{
|
|
5413
|
+
value: value
|
|
5414
|
+
}]
|
|
5415
|
+
};
|
|
5416
|
+
});
|
|
5417
|
+
});
|
|
5418
|
+
};
|
|
5419
|
+
|
|
5420
|
+
var parseData = function parseData(data, mimeType) {
|
|
5421
|
+
if (mimeType === 'text/html' && isHtmlTable(data)) {
|
|
5422
|
+
return parseHtmlTable(data);
|
|
5423
|
+
} else if (mimeType === 'text/html') {
|
|
5424
|
+
return parseHtmlText(data);
|
|
5425
|
+
} // Default data format is string, so split on new line,
|
|
5426
|
+
// and then enclose in an array (a row with one cell):
|
|
5427
|
+
|
|
5428
|
+
|
|
5429
|
+
return parseText(data);
|
|
5430
|
+
};
|
|
5431
|
+
|
|
5432
|
+
|
|
5433
|
+
|
|
5260
5434
|
/***/ }),
|
|
5261
5435
|
|
|
5262
5436
|
/***/ "./lib/intf.js":
|
|
@@ -5281,20 +5455,20 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
5281
5455
|
|
|
5282
5456
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
5283
5457
|
|
|
5284
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
5285
|
-
|
|
5286
5458
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
5287
5459
|
|
|
5288
5460
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5289
5461
|
|
|
5290
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5291
|
-
|
|
5292
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5293
|
-
|
|
5294
5462
|
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
5295
5463
|
|
|
5296
5464
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
5297
5465
|
|
|
5466
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
5467
|
+
|
|
5468
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5469
|
+
|
|
5470
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5471
|
+
|
|
5298
5472
|
/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(self, ctor) {
|
|
5299
5473
|
self.scale = 1;
|
|
5300
5474
|
self.orders = {
|
|
@@ -5423,6 +5597,74 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
5423
5597
|
return selectedData;
|
|
5424
5598
|
};
|
|
5425
5599
|
|
|
5600
|
+
self.getSelectedCells = function (expandToRow) {
|
|
5601
|
+
var selectedCells = [];
|
|
5602
|
+
var schema = self.getSchema();
|
|
5603
|
+
var viewDataLength = self.viewData.length;
|
|
5604
|
+
|
|
5605
|
+
if (viewDataLength === 0) {
|
|
5606
|
+
return [];
|
|
5607
|
+
}
|
|
5608
|
+
|
|
5609
|
+
var _iterator = _createForOfIteratorHelper(self.selections.entries()),
|
|
5610
|
+
_step;
|
|
5611
|
+
|
|
5612
|
+
try {
|
|
5613
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
5614
|
+
var _step$value = _slicedToArray(_step.value, 2),
|
|
5615
|
+
viewRowIndex = _step$value[0],
|
|
5616
|
+
row = _step$value[1];
|
|
5617
|
+
|
|
5618
|
+
if (!row || row.length === 0) continue;
|
|
5619
|
+
|
|
5620
|
+
var _iterator2 = _createForOfIteratorHelper(row.entries()),
|
|
5621
|
+
_step2;
|
|
5622
|
+
|
|
5623
|
+
try {
|
|
5624
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
5625
|
+
var _step2$value = _slicedToArray(_step2.value, 2),
|
|
5626
|
+
viewColumnIndex = _step2$value[1];
|
|
5627
|
+
|
|
5628
|
+
if (viewColumnIndex === -1 || !schema[viewColumnIndex]) {
|
|
5629
|
+
continue;
|
|
5630
|
+
}
|
|
5631
|
+
|
|
5632
|
+
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(viewColumnIndex);
|
|
5633
|
+
|
|
5634
|
+
if (!expandToRow && schema[boundColumnIndex].hidden) {
|
|
5635
|
+
continue;
|
|
5636
|
+
}
|
|
5637
|
+
|
|
5638
|
+
if (self.viewData[viewRowIndex]) {
|
|
5639
|
+
var header = schema[boundColumnIndex];
|
|
5640
|
+
var value = self.viewData[viewRowIndex][header.name];
|
|
5641
|
+
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(viewRowIndex);
|
|
5642
|
+
var cell = {
|
|
5643
|
+
value: value,
|
|
5644
|
+
header: header,
|
|
5645
|
+
boundRowIndex: boundRowIndex,
|
|
5646
|
+
boundColumnIndex: boundColumnIndex,
|
|
5647
|
+
viewRowIndex: viewRowIndex,
|
|
5648
|
+
viewColumnIndex: viewColumnIndex
|
|
5649
|
+
};
|
|
5650
|
+
selectedCells.push(cell);
|
|
5651
|
+
}
|
|
5652
|
+
}
|
|
5653
|
+
} catch (err) {
|
|
5654
|
+
_iterator2.e(err);
|
|
5655
|
+
} finally {
|
|
5656
|
+
_iterator2.f();
|
|
5657
|
+
}
|
|
5658
|
+
}
|
|
5659
|
+
} catch (err) {
|
|
5660
|
+
_iterator.e(err);
|
|
5661
|
+
} finally {
|
|
5662
|
+
_iterator.f();
|
|
5663
|
+
}
|
|
5664
|
+
|
|
5665
|
+
return selectedCells;
|
|
5666
|
+
};
|
|
5667
|
+
|
|
5426
5668
|
self.getBoundRowIndexFromViewRowIndex = function (viewRowIndex) {
|
|
5427
5669
|
if (self.boundRowIndexMap && self.boundRowIndexMap.has(viewRowIndex)) {
|
|
5428
5670
|
return self.boundRowIndexMap.get(viewRowIndex);
|
|
@@ -5431,6 +5673,10 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
5431
5673
|
return undefined;
|
|
5432
5674
|
};
|
|
5433
5675
|
|
|
5676
|
+
self.getBoundColumnIndexFromViewColumnIndex = function (viewColumnIndex) {
|
|
5677
|
+
return self.orders.columns[viewColumnIndex];
|
|
5678
|
+
};
|
|
5679
|
+
|
|
5434
5680
|
self.getColumnHeaderCellHeight = function () {
|
|
5435
5681
|
if (!self.attributes.showColumnHeaders) {
|
|
5436
5682
|
return 0;
|
|
@@ -5561,7 +5807,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
5561
5807
|
}); // Apply filtering
|
|
5562
5808
|
|
|
5563
5809
|
var _loop = function _loop() {
|
|
5564
|
-
var _Object$entries$_i = _slicedToArray(_Object$entries[
|
|
5810
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
5565
5811
|
headerName = _Object$entries$_i[0],
|
|
5566
5812
|
filterText = _Object$entries$_i[1];
|
|
5567
5813
|
|
|
@@ -5573,47 +5819,49 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
5573
5819
|
|
|
5574
5820
|
var currentFilterFunction = header.filter || self.filter(header.type || 'string');
|
|
5575
5821
|
newViewData = newViewData.filter(function (_ref) {
|
|
5576
|
-
var _ref2 = _slicedToArray(_ref,
|
|
5577
|
-
row = _ref2[0]
|
|
5822
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
5823
|
+
row = _ref2[0],
|
|
5824
|
+
originalRowIndex = _ref2[1];
|
|
5578
5825
|
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
return shouldIncludeRow;
|
|
5826
|
+
if (self.attributes.allowFreezingRows && !self.attributes.filterFrozenRows && originalRowIndex < self.frozenRow) return true;
|
|
5827
|
+
return currentFilterFunction(row[headerName], filterText);
|
|
5582
5828
|
});
|
|
5583
5829
|
};
|
|
5584
5830
|
|
|
5585
|
-
for (var
|
|
5831
|
+
for (var _i2 = 0, _Object$entries = Object.entries(self.columnFilters); _i2 < _Object$entries.length; _i2++) {
|
|
5586
5832
|
var _ret = _loop();
|
|
5587
5833
|
|
|
5588
5834
|
if (_ret === "continue") continue;
|
|
5589
5835
|
} // Apply sorting
|
|
5590
5836
|
|
|
5591
5837
|
|
|
5592
|
-
var
|
|
5593
|
-
|
|
5838
|
+
var _iterator3 = _createForOfIteratorHelper(self.orderings.columns),
|
|
5839
|
+
_step3;
|
|
5594
5840
|
|
|
5595
5841
|
try {
|
|
5596
5842
|
var _loop2 = function _loop2() {
|
|
5597
|
-
var column =
|
|
5843
|
+
var column = _step3.value;
|
|
5598
5844
|
var sortFn = column.sortFunction(column.orderBy, column.orderDirection);
|
|
5599
5845
|
newViewData.sort(function (_ref7, _ref8) {
|
|
5600
5846
|
var _ref9 = _slicedToArray(_ref7, 1),
|
|
5601
5847
|
rowA = _ref9[0];
|
|
5602
5848
|
|
|
5603
|
-
var _ref10 = _slicedToArray(_ref8,
|
|
5604
|
-
rowB = _ref10[0]
|
|
5849
|
+
var _ref10 = _slicedToArray(_ref8, 2),
|
|
5850
|
+
rowB = _ref10[0],
|
|
5851
|
+
rowIndexB = _ref10[1];
|
|
5605
5852
|
|
|
5853
|
+
if (self.attributes.allowFreezingRows && !self.attributes.sortFrozenRows && rowIndexB < self.frozenRow) return 0;
|
|
5606
5854
|
return sortFn(rowA, rowB);
|
|
5607
5855
|
});
|
|
5608
5856
|
};
|
|
5609
5857
|
|
|
5610
|
-
for (
|
|
5858
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
5611
5859
|
_loop2();
|
|
5612
5860
|
}
|
|
5613
5861
|
} catch (err) {
|
|
5614
|
-
|
|
5862
|
+
_iterator3.e(err);
|
|
5615
5863
|
} finally {
|
|
5616
|
-
|
|
5864
|
+
_iterator3.f();
|
|
5617
5865
|
}
|
|
5618
5866
|
|
|
5619
5867
|
return {
|
|
@@ -6022,6 +6270,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
6022
6270
|
self.intf.clearPxColorAssertions = self.clearPxColorAssertions;
|
|
6023
6271
|
self.intf.integerToAlpha = self.integerToAlpha;
|
|
6024
6272
|
self.intf.copy = self.copy;
|
|
6273
|
+
self.intf.cut = self.cut;
|
|
6025
6274
|
self.intf.paste = self.paste;
|
|
6026
6275
|
self.intf.setStyleProperty = self.setStyleProperty;
|
|
6027
6276
|
Object.defineProperty(self.intf, 'defaults', {
|
|
@@ -6911,7 +7160,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6911
7160
|
/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component */ "./lib/component.js");
|
|
6912
7161
|
/* harmony import */ var _defaults__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaults */ "./lib/defaults.js");
|
|
6913
7162
|
/* harmony import */ var _draw__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./draw */ "./lib/draw.js");
|
|
6914
|
-
/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./lib/events.js");
|
|
7163
|
+
/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ "./lib/events/index.js");
|
|
6915
7164
|
/* harmony import */ var _touch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./touch */ "./lib/touch.js");
|
|
6916
7165
|
/* harmony import */ var _intf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./intf */ "./lib/intf.js");
|
|
6917
7166
|
/* harmony import */ var _contextMenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./contextMenu */ "./lib/contextMenu.js");
|
|
@@ -7452,7 +7701,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7452
7701
|
self.dispatchEvent('selectionchanged', {
|
|
7453
7702
|
selectedData: self.getSelectedData(),
|
|
7454
7703
|
selections: self.selections,
|
|
7455
|
-
selectionBounds: self.selectionBounds
|
|
7704
|
+
selectionBounds: self.selectionBounds,
|
|
7705
|
+
selectedCells: self.getSelectedCells()
|
|
7456
7706
|
});
|
|
7457
7707
|
|
|
7458
7708
|
if (dontDraw) {
|
|
@@ -7603,7 +7853,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7603
7853
|
self.dispatchEvent('selectionchanged', {
|
|
7604
7854
|
selectedData: self.getSelectedData(),
|
|
7605
7855
|
selections: self.selections,
|
|
7606
|
-
selectionBounds: self.getSelectionBounds()
|
|
7856
|
+
selectionBounds: self.getSelectionBounds(),
|
|
7857
|
+
selectedCells: self.getSelectedCells()
|
|
7607
7858
|
});
|
|
7608
7859
|
};
|
|
7609
7860
|
/**
|
|
@@ -7632,7 +7883,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7632
7883
|
self.dispatchEvent('selectionchanged', {
|
|
7633
7884
|
selectedData: self.getSelectedData(),
|
|
7634
7885
|
selections: self.selections,
|
|
7635
|
-
selectionBounds: self.selectionBounds
|
|
7886
|
+
selectionBounds: self.selectionBounds,
|
|
7887
|
+
selectedCells: self.getSelectedCells()
|
|
7636
7888
|
});
|
|
7637
7889
|
}
|
|
7638
7890
|
|
|
@@ -8375,7 +8627,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8375
8627
|
|
|
8376
8628
|
ev = {
|
|
8377
8629
|
selections: self.selections,
|
|
8378
|
-
selectionBounds: self.selectionBounds
|
|
8630
|
+
selectionBounds: self.selectionBounds,
|
|
8631
|
+
selectedCells: self.getSelectedCells()
|
|
8379
8632
|
};
|
|
8380
8633
|
Object.defineProperty(ev, 'selectedData', {
|
|
8381
8634
|
get: function get() {
|