UNPKG

@atlaskit/editor-plugin-table

Version:

Table plugin for the @atlaskit/editor

89 lines (87 loc) 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stopResizing = exports.setResizeHandlePos = exports.setDragging = exports.evenColumns = exports.distributeColumnsWidths = void 0; var _analytics = require("@atlaskit/editor-common/analytics"); var _utils = require("@atlaskit/editor-tables/utils"); var _tableAnalytics = require("../table-analytics"); var _columnWidth = require("../transforms/column-width"); var _pluginFactory = require("./plugin-factory"); var _dom = require("./utils/dom"); var _resizeState = require("./utils/resize-state"); var evenColumns = exports.evenColumns = function evenColumns(_ref) { var resizeState = _ref.resizeState, table = _ref.table, start = _ref.start, event = _ref.event, api = _ref.api; return function (state, dispatch) { if (!(0, _utils.isTableSelected)(state.selection)) { return false; } // double click detection logic // Note: ProseMirror's handleDoubleClick doesn't quite work with DOM mousedown event handler var _getPluginState = (0, _pluginFactory.getPluginState)(state), lastClick = _getPluginState.lastClick; var now = Date.now(); if (lastClick && now - lastClick.time < 500 && (0, _dom.isClickNear)(event, lastClick)) { var newState = (0, _resizeState.evenAllColumnsWidths)(resizeState); setLastClick(null, function (tr) { return (0, _columnWidth.updateColumnWidths)(newState, table, start, api)(tr); })(state, dispatch); return true; } setLastClick({ x: event.clientX, y: event.clientY, time: now })(state, dispatch); return false; }; }; var distributeColumnsWidths = exports.distributeColumnsWidths = function distributeColumnsWidths(newResizeState, table, api) { return function (state, dispatch) { if (dispatch) { var tr = (0, _columnWidth.updateColumnWidths)(newResizeState, table.node, table.start, api)(state.tr); tr.setMeta(_tableAnalytics.META_KEYS.OVERFLOW_TRIGGER, { name: _analytics.TABLE_OVERFLOW_CHANGE_TRIGGER.DISTRIBUTED_COLUMNS }); stopResizing(tr)(state, dispatch); } return true; }; }; var setResizeHandlePos = exports.setResizeHandlePos = function setResizeHandlePos(resizeHandlePos) { return (0, _pluginFactory.createCommand)({ type: 'SET_RESIZE_HANDLE_POSITION', data: { resizeHandlePos: resizeHandlePos } }); }; var stopResizing = exports.stopResizing = function stopResizing(tr) { return (0, _pluginFactory.createCommand)({ type: 'STOP_RESIZING' }, function (originalTr) { return (tr || originalTr).setMeta('scrollIntoView', false).setMeta('is-resizer-resizing', false); }); }; var setDragging = exports.setDragging = function setDragging(dragging, tr) { return (0, _pluginFactory.createCommand)({ type: 'SET_DRAGGING', data: { dragging: dragging } }, function (originalTr) { return (tr || originalTr).setMeta('is-resizer-resizing', true); }); }; var setLastClick = function setLastClick(lastClick, transform) { return (0, _pluginFactory.createCommand)({ type: 'SET_LAST_CLICK', data: { lastClick: lastClick } }, transform); };