@atlaskit/editor-plugin-table
Version:
Table plugin for the @atlaskit/editor
89 lines (87 loc) • 3.21 kB
JavaScript
;
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);
};