@atlaskit/editor-plugin-table
Version:
Table plugin for the @atlaskit/editor
41 lines (40 loc) • 2.43 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.applyMeasuredWidthToSelectedTable = void 0;
var _analytics = require("@atlaskit/editor-common/analytics");
var _utils = require("@atlaskit/editor-tables/utils");
var _contentMode = require("../../transforms/content-mode");
var _measureTableWithAutoLayout = require("./measure-table-with-auto-layout");
/**
* Used to measure a selected table width with it's content being laid out natively by the browser
*/
var applyMeasuredWidthToSelectedTable = exports.applyMeasuredWidthToSelectedTable = function applyMeasuredWidthToSelectedTable(view, api) {
var _api$width, _api$analytics, _api$width$sharedStat, _api$width2;
var tableObject = (0, _utils.findTable)(view.state.selection);
if (!tableObject) {
return;
}
var node = tableObject.node,
pos = tableObject.pos;
var tableState = api === null || api === void 0 ? void 0 : api.table.sharedState.currentState();
if (!(tableState !== null && tableState !== void 0 && tableState.tableRef)) {
return;
}
var editorContainerWidth = api === null || api === void 0 || (_api$width = api.width) === null || _api$width === void 0 || (_api$width = _api$width.sharedState.currentState()) === null || _api$width === void 0 ? void 0 : _api$width.width;
var measurement = (0, _measureTableWithAutoLayout.measureTableWithAutoLayout)(tableState.tableRef, editorContainerWidth);
var tr = (0, _contentMode.applyTableMeasurement)(view.state.tr, node, measurement, pos);
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 || _api$analytics.attachAnalyticsEvent({
action: _analytics.TABLE_ACTION.FIT_TO_CONTENT_ON_DEMAND,
actionSubject: _analytics.ACTION_SUBJECT.TABLE,
actionSubjectId: null,
eventType: _analytics.EVENT_TYPE.TRACK,
attributes: {
editorContainerWidth: (_api$width$sharedStat = api === null || api === void 0 || (_api$width2 = api.width) === null || _api$width2 === void 0 || (_api$width2 = _api$width2.sharedState.currentState()) === null || _api$width2 === void 0 ? void 0 : _api$width2.width) !== null && _api$width$sharedStat !== void 0 ? _api$width$sharedStat : 0,
tableWidth: measurement.tableWidth,
totalColumnCount: measurement.colWidths.length
}
})(tr);
view.dispatch(tr);
};