@atlaskit/editor-plugin-table 0.1.1 → 0.2.0
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 +12 -0
- package/dist/cjs/plugins/table/commands/misc.js +4 -2
- package/dist/cjs/plugins/table/event-handlers.js +5 -6
- package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-resizing.js +2 -2
- package/dist/cjs/plugins/table/reducer.js +3 -2
- package/dist/cjs/plugins/table/types.js +2 -1
- package/dist/cjs/plugins/table/ui/common-styles.js +1 -1
- package/dist/cjs/plugins/table/ui/ui-styles.js +3 -3
- package/dist/cjs/plugins/table/utils/decoration.js +16 -5
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/plugins/table/commands/misc.js +4 -2
- package/dist/es2019/plugins/table/event-handlers.js +6 -7
- package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-resizing.js +2 -2
- package/dist/es2019/plugins/table/reducer.js +3 -2
- package/dist/es2019/plugins/table/types.js +2 -1
- package/dist/es2019/plugins/table/ui/common-styles.js +0 -9
- package/dist/es2019/plugins/table/ui/ui-styles.js +67 -19
- package/dist/es2019/plugins/table/utils/decoration.js +16 -5
- package/dist/es2019/version.json +1 -1
- package/dist/esm/plugins/table/commands/misc.js +4 -2
- package/dist/esm/plugins/table/event-handlers.js +6 -7
- package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-resizing.js +2 -2
- package/dist/esm/plugins/table/reducer.js +3 -2
- package/dist/esm/plugins/table/types.js +2 -1
- package/dist/esm/plugins/table/ui/common-styles.js +1 -1
- package/dist/esm/plugins/table/ui/ui-styles.js +4 -4
- package/dist/esm/plugins/table/utils/decoration.js +16 -5
- package/dist/esm/version.json +1 -1
- package/dist/types/plugins/table/commands/misc.d.ts +1 -1
- package/dist/types/plugins/table/pm-plugins/decorations/utils/column-resizing.d.ts +1 -1
- package/dist/types/plugins/table/types.d.ts +3 -0
- package/dist/types/plugins/table/utils/decoration.d.ts +1 -1
- package/package.json +3 -3
- package/src/__tests__/unit/event-handlers.ts +1 -1
- package/src/__tests__/unit/pm-plugins/decorations/column-resizing.ts +5 -4
- package/src/plugins/table/commands/misc.ts +10 -2
- package/src/plugins/table/event-handlers.ts +9 -7
- package/src/plugins/table/pm-plugins/decorations/utils/column-resizing.ts +4 -2
- package/src/plugins/table/reducer.ts +3 -1
- package/src/plugins/table/types.ts +7 -1
- package/src/plugins/table/ui/common-styles.ts +0 -12
- package/src/plugins/table/ui/ui-styles.ts +66 -19
- package/src/plugins/table/utils/decoration.ts +17 -4
|
@@ -211,7 +211,7 @@ const makeArray = n => Array.from(Array(n).keys());
|
|
|
211
211
|
*/
|
|
212
212
|
|
|
213
213
|
|
|
214
|
-
export const createResizeHandleDecoration = (tr, columnEndIndexTarget) => {
|
|
214
|
+
export const createResizeHandleDecoration = (tr, rowIndexTarget, columnEndIndexTarget) => {
|
|
215
215
|
const emptyResult = [[], []];
|
|
216
216
|
const table = findTable(tr.selection);
|
|
217
217
|
|
|
@@ -265,6 +265,10 @@ export const createResizeHandleDecoration = (tr, columnEndIndexTarget) => {
|
|
|
265
265
|
for (let rowIndex = 0; rowIndex < map.height; rowIndex++) {
|
|
266
266
|
const seen = {};
|
|
267
267
|
|
|
268
|
+
if (rowIndex !== rowIndexTarget) {
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
|
|
268
272
|
for (let columnIndex = 0; columnIndex < map.width; columnIndex++) {
|
|
269
273
|
const cellPosition = map.map[map.width * rowIndex + columnIndex];
|
|
270
274
|
|
|
@@ -353,14 +357,21 @@ export const createColumnLineResize = (selection, cellColumnPositioning) => {
|
|
|
353
357
|
return [];
|
|
354
358
|
}
|
|
355
359
|
|
|
356
|
-
|
|
360
|
+
let columnIndex = cellColumnPositioning.right;
|
|
357
361
|
const map = TableMap.get(table.node);
|
|
362
|
+
const isLastColumn = columnIndex === map.width;
|
|
363
|
+
|
|
364
|
+
if (isLastColumn) {
|
|
365
|
+
columnIndex -= 1;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
const decorationClassName = isLastColumn ? ClassName.WITH_RESIZE_LINE_LAST_COLUMN : ClassName.WITH_RESIZE_LINE;
|
|
358
369
|
const cellPositions = makeArray(map.height).map(rowIndex => map.map[map.width * rowIndex + columnIndex]).filter((cellPosition, rowIndex) => {
|
|
359
|
-
if (
|
|
370
|
+
if (isLastColumn) {
|
|
360
371
|
return true; // If is the last column no filter applied
|
|
361
372
|
}
|
|
362
373
|
|
|
363
|
-
const nextPosition = map.map[map.width * rowIndex + columnIndex
|
|
374
|
+
const nextPosition = map.map[map.width * rowIndex + columnIndex - 1];
|
|
364
375
|
return cellPosition !== nextPosition; // Removed it if next position is merged
|
|
365
376
|
});
|
|
366
377
|
const cells = cellPositions.map(pos => ({
|
|
@@ -373,7 +384,7 @@ export const createColumnLineResize = (selection, cellColumnPositioning) => {
|
|
|
373
384
|
}
|
|
374
385
|
|
|
375
386
|
return Decoration.node(cell.pos, cell.pos + cell.node.nodeSize, {
|
|
376
|
-
class:
|
|
387
|
+
class: decorationClassName
|
|
377
388
|
}, {
|
|
378
389
|
key: `${TableDecorations.COLUMN_RESIZING_HANDLE_LINE}_${cellColumnPositioning.right}_${index}`
|
|
379
390
|
});
|
package/dist/es2019/version.json
CHANGED
|
@@ -50,6 +50,7 @@ export var setTableRef = function setTableRef(ref) {
|
|
|
50
50
|
isHeaderRowEnabled: checkIfHeaderRowEnabled(state.selection),
|
|
51
51
|
isHeaderColumnEnabled: checkIfHeaderColumnEnabled(state.selection),
|
|
52
52
|
decorationSet: decorationSet,
|
|
53
|
+
resizeHandleRowIndex: undefined,
|
|
53
54
|
resizeHandleColumnIndex: undefined
|
|
54
55
|
}
|
|
55
56
|
};
|
|
@@ -372,7 +373,7 @@ export var hideInsertColumnOrRowButton = function hideInsertColumnOrRowButton()
|
|
|
372
373
|
return tr.setMeta('addToHistory', false);
|
|
373
374
|
});
|
|
374
375
|
};
|
|
375
|
-
export var addResizeHandleDecorations = function addResizeHandleDecorations(columnIndex) {
|
|
376
|
+
export var addResizeHandleDecorations = function addResizeHandleDecorations(rowIndex, columnIndex) {
|
|
376
377
|
return createCommand(function (state) {
|
|
377
378
|
var tableNode = findTable(state.selection);
|
|
378
379
|
|
|
@@ -386,10 +387,11 @@ export var addResizeHandleDecorations = function addResizeHandleDecorations(colu
|
|
|
386
387
|
return {
|
|
387
388
|
type: 'ADD_RESIZE_HANDLE_DECORATIONS',
|
|
388
389
|
data: {
|
|
389
|
-
decorationSet: buildColumnResizingDecorations(columnIndex)({
|
|
390
|
+
decorationSet: buildColumnResizingDecorations(rowIndex, columnIndex)({
|
|
390
391
|
tr: state.tr,
|
|
391
392
|
decorationSet: getDecorations(state)
|
|
392
393
|
}),
|
|
394
|
+
resizeHandleRowIndex: rowIndex,
|
|
393
395
|
resizeHandleColumnIndex: columnIndex
|
|
394
396
|
}
|
|
395
397
|
};
|
|
@@ -12,7 +12,7 @@ import { getPluginState } from './pm-plugins/plugin-factory';
|
|
|
12
12
|
import { getPluginState as getResizePluginState } from './pm-plugins/table-resizing/plugin-factory';
|
|
13
13
|
import { deleteColumns, deleteRows } from './transforms';
|
|
14
14
|
import { RESIZE_HANDLE_AREA_DECORATION_GAP } from './types';
|
|
15
|
-
import { getColumnOrRowIndex, getMousePositionHorizontalRelativeByElement, getMousePositionVerticalRelativeByElement, getSelectedCellInfo,
|
|
15
|
+
import { getColumnOrRowIndex, getMousePositionHorizontalRelativeByElement, getMousePositionVerticalRelativeByElement, getSelectedCellInfo, isCell, isColumnControlsDecorations, isCornerButton, isInsertRowButton, isResizeHandleDecoration, isRowControlsButton, isTableControlsButton, isTableContainerOrWrapper } from './utils';
|
|
16
16
|
import { getAllowAddColumnCustomStep } from './utils/get-allow-add-column-custom-step';
|
|
17
17
|
|
|
18
18
|
var isFocusingCalendar = function isFocusingCalendar(event) {
|
|
@@ -267,7 +267,8 @@ export var handleMouseMove = function handleMouseMove(getEditorFeatureFlags) {
|
|
|
267
267
|
_dispatch5 = view.dispatch;
|
|
268
268
|
|
|
269
269
|
var _getPluginState5 = getPluginState(_state4),
|
|
270
|
-
resizeHandleColumnIndex = _getPluginState5.resizeHandleColumnIndex
|
|
270
|
+
resizeHandleColumnIndex = _getPluginState5.resizeHandleColumnIndex,
|
|
271
|
+
resizeHandleRowIndex = _getPluginState5.resizeHandleRowIndex;
|
|
271
272
|
|
|
272
273
|
var tableCell = closestElement(element, 'td, th');
|
|
273
274
|
var cellStartPosition = view.posAtDOM(tableCell, 0);
|
|
@@ -275,12 +276,10 @@ export var handleMouseMove = function handleMouseMove(getEditorFeatureFlags) {
|
|
|
275
276
|
|
|
276
277
|
if (rect) {
|
|
277
278
|
var columnEndIndexTarget = positionColumn === 'left' ? rect.left : rect.right;
|
|
279
|
+
var rowIndexTarget = rect.top;
|
|
278
280
|
|
|
279
|
-
if (columnEndIndexTarget !== resizeHandleColumnIndex ||
|
|
280
|
-
|
|
281
|
-
columnEndIndexTarget: columnEndIndexTarget
|
|
282
|
-
})) {
|
|
283
|
-
return addResizeHandleDecorations(columnEndIndexTarget)(_state4, _dispatch5);
|
|
281
|
+
if (columnEndIndexTarget !== resizeHandleColumnIndex || rowIndexTarget !== resizeHandleRowIndex) {
|
|
282
|
+
return addResizeHandleDecorations(rowIndexTarget, columnEndIndexTarget)(_state4, _dispatch5);
|
|
284
283
|
}
|
|
285
284
|
}
|
|
286
285
|
}
|
|
@@ -20,12 +20,12 @@ var updateLastCellElement = function updateLastCellElement(lastCellElementsDecor
|
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
export var buildColumnResizingDecorations = function buildColumnResizingDecorations(columnEndIndex) {
|
|
23
|
+
export var buildColumnResizingDecorations = function buildColumnResizingDecorations(rowEndIndex, columnEndIndex) {
|
|
24
24
|
return function (_ref3) {
|
|
25
25
|
var tr = _ref3.tr,
|
|
26
26
|
decorationSet = _ref3.decorationSet;
|
|
27
27
|
|
|
28
|
-
var _ref4 = columnEndIndex < 0 ? emptyDecorations : createResizeHandleDecoration(tr, {
|
|
28
|
+
var _ref4 = columnEndIndex < 0 ? emptyDecorations : createResizeHandleDecoration(tr, rowEndIndex, {
|
|
29
29
|
right: columnEndIndex
|
|
30
30
|
}),
|
|
31
31
|
_ref5 = _slicedToArray(_ref4, 2),
|
|
@@ -70,11 +70,12 @@ export default (function (pluginState, action) {
|
|
|
70
70
|
|
|
71
71
|
case 'HIDE_RESIZE_HANDLE_LINE':
|
|
72
72
|
return _objectSpread(_objectSpread(_objectSpread({}, pluginState), action.data), {}, {
|
|
73
|
-
resizeHandleColumnIndex: undefined
|
|
73
|
+
resizeHandleColumnIndex: undefined,
|
|
74
|
+
resizeHandleRowIndex: undefined
|
|
74
75
|
});
|
|
75
76
|
|
|
76
77
|
case 'ADD_RESIZE_HANDLE_DECORATIONS':
|
|
77
|
-
if (action.data.resizeHandleColumnIndex === pluginState.resizeHandleColumnIndex) {
|
|
78
|
+
if (action.data.resizeHandleColumnIndex === pluginState.resizeHandleColumnIndex && action.data.resizeHandleRowIndex === pluginState.resizeHandleRowIndex) {
|
|
78
79
|
return pluginState;
|
|
79
80
|
}
|
|
80
81
|
|
|
@@ -80,7 +80,8 @@ export var TableCssClassName = _objectSpread(_objectSpread({}, TableSharedCssCla
|
|
|
80
80
|
TABLE_STICKY: "".concat(tablePrefixSelector, "-sticky"),
|
|
81
81
|
TOP_LEFT_CELL: 'table > tbody > tr:nth-child(2) > td:nth-child(1)',
|
|
82
82
|
LAST_ITEM_IN_CELL: "".concat(tablePrefixSelector, "-last-item-in-cell"),
|
|
83
|
-
WITH_RESIZE_LINE: "".concat(tablePrefixSelector, "-column-resize-line")
|
|
83
|
+
WITH_RESIZE_LINE: "".concat(tablePrefixSelector, "-column-resize-line"),
|
|
84
|
+
WITH_RESIZE_LINE_LAST_COLUMN: "".concat(tablePrefixSelector, "-column-resize-line-last-column")
|
|
84
85
|
});
|
|
85
86
|
export var ShadowEvent;
|
|
86
87
|
|
|
@@ -19,7 +19,7 @@ var sentinelStyles = ".".concat(ClassName.TABLE_CONTAINER, " {\n > .").concat(C
|
|
|
19
19
|
export var tableStyles = function tableStyles(props) {
|
|
20
20
|
var _props$featureFlags;
|
|
21
21
|
|
|
22
|
-
return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " button {\n background: ", ";\n color: ", ";\n cursor: none;\n }\n\n .", ":not(.", ") button:hover {\n background: ", ";\n color: ", " !important;\n cursor: pointer;\n }\n\n .ProseMirror {\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n\n .", " {\n margin-bottom: 0;\n }\n\n .", " {\n td.", ", th.", " {\n position: relative;\n overflow: visible;\n }\n\n td.", " {\n background-color: ", ";\n\n // ED-15246: Trello card is visible through a border of a table border\n // This fixes a border issue caused by relative positioned table cells\n &::after {\n height: 100%;\n content: '';\n border-left: 1px solid ", ";\n border-bottom: 1px solid ", ";\n position: absolute;\n right: 0px;\n top: 0px;\n bottom: 0;\n width: 100%;\n display: inline-block;\n pointer-events: none;\n }\n }\n }\n\n .", " {\n ", "\n }\n\n .", " {\n ", "\n }\n\n /* Delete button */\n ", "\n /* Ends Delete button */\n\n /* sticky styles */\n .", " .", " .", ":first-of-type {\n margin-top: ", "px;\n width: ", "px;\n\n position: fixed !important;\n z-index: ", " !important;\n box-shadow: 0px -", "px ", ";\n border-right: 0 none;\n /* top set by NumberColumn component */\n }\n\n .", " .", ".sticky {\n position: fixed !important;\n /* needs to be above row controls */\n z-index: ", " !important;\n background: ", ";\n\n width: ", "px;\n height: ", "px;\n }\n\n .", ".sticky .", " {\n border-bottom: 0px none;\n border-right: 0px none;\n\n height: ", "px;\n width: ", "px;\n }\n\n .", " .", " {\n z-index: 0;\n }\n\n .", "\n .", "\n .", ".sticky {\n position: fixed !important;\n z-index: ", " !important;\n display: flex;\n border-left: ", "px solid\n ", ";\n margin-left: -", "px;\n }\n\n .", " col:first-of-type {\n /* moving rows out of a table layout does weird things in Chrome */\n border-right: 1px solid ", ";\n }\n\n tr.sticky {\n padding-top: ", "px;\n position: fixed;\n display: grid;\n\n /* to keep it above cell selection */\n z-index: ", ";\n\n overflow-y: visible;\n overflow-x: hidden;\n\n grid-auto-flow: column;\n\n /* background for where controls apply */\n background: ", ";\n box-sizing: content-box;\n\n margin-top: 2px;\n\n box-shadow: ", ";\n margin-left: -1px;\n\n &.no-pointer-events {\n pointer-events: none;\n }\n }\n\n .", " .", " {\n left: unset;\n position: fixed;\n z-index: ", ";\n }\n\n .", ".", "\n .", " {\n padding-bottom: ", "px;\n }\n\n tr.sticky th {\n border-bottom: ", "px solid\n ", ";\n margin-right: -1px;\n }\n\n .", " tr.sticky > th:last-child {\n border-right-width: 1px;\n }\n\n /* add left edge for first cell */\n .", " tr.sticky > th:first-of-type {\n margin-left: 0px;\n }\n\n /* add a little bit so the scroll lines up with the table */\n .", " tr.sticky::after {\n content: ' ';\n width: 1px;\n }\n\n /* To fix jumpiness caused in Chrome Browsers for sticky headers */\n .", " .sticky + tr {\n min-height: 0px;\n }\n\n /* move resize line a little in sticky bar */\n .", ".", " {\n tr.sticky\n td.", ",\n tr.sticky\n th.", " {\n .", "::after {\n right: ", "px;\n }\n }\n\n /* when selected put it back to normal -- :not selector would be nicer */\n tr.sticky\n td.", ".", ",\n tr.sticky\n th.", ".", " {\n .", "::after {\n right: ", "px;\n }\n }\n }\n\n tr.sticky\n .", ",\n tr.sticky\n .", " {\n z-index: 1;\n }\n\n .", " tr.sticky {\n padding-top: ", "px;\n }\n\n .", ".", "\n .", "\n .", ":first-of-type {\n margin-top: ", "px;\n }\n\n .", ".sticky {\n border-top: ", "px solid\n ", ";\n }\n\n ", "\n ", "\n\n .", " .", " {\n height: 0; // stop overflow flash & set correct height in update-overflow-shadows.ts\n }\n\n .less-padding {\n padding: 0 ", "px;\n\n .", " {\n padding: 0 ", "px;\n }\n\n &.", "[data-number-column='true'] {\n padding-left: ", "px;\n }\n\n .", " {\n left: 6px;\n }\n\n .", " {\n left: calc(100% - 6px);\n }\n }\n\n > .", " {\n /**\n * Prevent margins collapsing, aids with placing the gap-cursor correctly\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing\n *\n * TODO: Enable this, many tests will fail!\n * border-top: 1px solid transparent;\n */\n }\n\n /* Breakout only works on top level */\n > * .", " .", " {\n margin-left: unset !important;\n width: 100% !important;\n }\n\n ", ";\n\n /* Corner controls */\n .", " {\n width: ", "px;\n height: ", "px;\n display: none;\n\n .", " {\n position: relative;\n\n ", ";\n }\n\n .", " {\n position: relative;\n\n ", ";\n }\n }\n\n .", ".sticky {\n .", " {\n /* sticky row insert dot overlaps other row insert and messes things up */\n display: none !important;\n }\n }\n\n .", " {\n position: absolute;\n top: 0;\n width: ", "px;\n height: ", "px;\n border: 1px solid ", ";\n border-radius: 0;\n border-top-left-radius: ", "px;\n background: ", ";\n box-sizing: border-box;\n padding: 0;\n :focus {\n outline: none;\n }\n }\n .active .", " {\n border-color: ", ";\n background: ", ";\n }\n\n .", "[data-number-column='true'] {\n .", ", .", " {\n width: ", "px;\n }\n .", " .", " {\n border-right-width: 0;\n }\n }\n\n :not(.", ") .", ":hover {\n border-color: ", ";\n background: ", ";\n cursor: pointer;\n }\n\n :not(.", ")\n .", ".", " {\n border-color: ", ";\n background: ", ";\n }\n\n /* Row controls */\n .", " {\n width: ", "px;\n box-sizing: border-box;\n display: none;\n position: relative;\n\n ", ";\n\n .", " {\n display: flex;\n flex-direction: column;\n }\n .", ":last-child > button {\n border-bottom-left-radius: ", "px;\n }\n .", " {\n position: relative;\n margin-top: -1px;\n }\n .", ":hover,\n .", ".active,\n .", ":hover {\n z-index: ", ";\n }\n\n ", "\n }\n\n :not(.", ") .", " {\n ", "\n ", "\n }\n\n /* Numbered column */\n .", " {\n position: relative;\n float: right;\n margin-left: ", "px;\n top: ", "px;\n width: ", "px;\n box-sizing: border-box;\n }\n\n .", " {\n border: 1px solid ", ";\n box-sizing: border-box;\n margin-top: -1px;\n padding-bottom: 2px;\n padding: 10px 2px;\n text-align: center;\n font-size: ", ";\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n :first-child:not(style),\n style:first-child + * {\n margin-top: 0;\n }\n :last-child {\n border-bottom: 1px solid ", ";\n }\n }\n\n .", " {\n .", ", .", " {\n display: block;\n }\n .", " {\n padding-left: 1px;\n .", " {\n border-left: 0 none;\n }\n\n .", ".active {\n border-bottom: 1px solid ", ";\n border-color: ", ";\n background-color: ", ";\n position: relative;\n z-index: ", ";\n color: ", ";\n }\n }\n }\n :not(.", ") .", " {\n .", " {\n cursor: pointer;\n }\n .", ":hover {\n border-bottom: 1px solid ", ";\n border-color: ", ";\n background-color: ", ";\n position: relative;\n z-index: ", ";\n color: ", ";\n }\n .", ".", " {\n background-color: ", ";\n border: 1px solid ", ";\n border-left: 0;\n color: ", ";\n position: relative;\n z-index: ", ";\n }\n }\n\n /* Table */\n .", " > table {\n table-layout: fixed;\n\n .", " + * {\n margin-top: 0;\n }\n\n /*\n * Headings have a top margin by default, but we don't want this on the\n * first heading within table header cells.\n *\n * This specifically sets margin-top for the first heading within a header\n * cell when center/right aligned.\n */\n th.", " > .fabric-editor-block-mark {\n > h1:first-of-type,\n > h2:first-of-type,\n > h3:first-of-type,\n > h4:first-of-type,\n > h5:first-of-type,\n > h6:first-of-type {\n margin-top: 0;\n }\n }\n\n .", ", .", " {\n position: relative;\n }\n /* Give selected cells a blue overlay */\n .", "::after,\n .", "::after {\n z-index: ", ";\n position: absolute;\n content: '';\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n pointer-events: none;\n }\n .", " {\n border: 1px solid ", ";\n }\n .", "::after {\n background: ", ";\n z-index: ", ";\n }\n th.", "::after,\n td.", "::after {\n background: ", ";\n z-index: ", ";\n }\n // ED-15246: Trello card is visible through a border of a table border\n td.", ", td.", " {\n &::after {\n height: 100%;\n width: 100%;\n border: 1px solid ", ";\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n bottom: 0;\n z-index: ", ";\n display: inline-block;\n pointer-events: none;\n }\n &.", "::after {\n border: 1px solid ", ";\n z-index: ", ";\n }\n }\n }\n .", " {\n position: absolute;\n /* top of corner control is table margin top - corner control height + 1 pixel of table border. */\n top: ", "px;\n }\n .", ".", " {\n z-index: ", ";\n }\n .", " {\n left: -", "px;\n }\n .", " {\n /*\n compensating for half of the insert column button\n that is aligned to the right edge initially on hover of the top right column control when table overflown,\n its center should be aligned with the edge\n */\n padding-right: ", "px;\n margin-right: -", "px;\n padding-bottom: ", "px;\n margin-bottom: -", "px;\n /* fixes gap cursor height */\n overflow: auto;\n position: relative;\n }\n }\n\n .ProseMirror.", " {\n .", " {\n overflow-x: auto;\n ", ";\n }\n }\n\n .ProseMirror.", " {\n cursor: col-resize;\n }\n\n .ProseMirror .pm-table-cell-content-wrap ol[data-child-count='100+'] {\n padding-left: revert;\n }\n"])), ClassName.LAYOUT_BUTTON, token('color.background.neutral', N20A), token('color.icon', N300), ClassName.LAYOUT_BUTTON, ClassName.IS_RESIZING, token('color.background.neutral.hovered', B300), token('color.icon', 'white'), tableSharedStyle(props), columnControlsLineMarker(props), hoveredDeleteButton, hoveredCell, hoveredWarningCell, resizeHandle, rangeSelectionStyles, ClassName.LAST_ITEM_IN_CELL, ClassName.TABLE_NODE_WRAPPER, ClassName.TABLE_CELL, ClassName.TABLE_HEADER_CELL, ClassName.TABLE_CELL, tableCellBackgroundColor(props), tableBorderColor(props), tableBorderColor(props), ClassName.CONTROLS_FLOATING_BUTTON_COLUMN, insertColumnButtonWrapper, ClassName.CONTROLS_FLOATING_BUTTON_ROW, insertRowButtonWrapper, DeleteButton, ClassName.TABLE_STICKY, ClassName.NUMBERED_COLUMN, ClassName.NUMBERED_COLUMN_BUTTON, stickyRowOffsetTop + 2, akEditorTableNumberColumnWidth, akEditorStickyHeaderZIndex, stickyRowOffsetTop, token('elevation.surface', 'white'), ClassName.TABLE_STICKY, ClassName.CORNER_CONTROLS, akEditorSmallZIndex, token('elevation.surface', 'white'), tableToolbarSize, tableToolbarSize, ClassName.CORNER_CONTROLS, ClassName.CONTROLS_CORNER_BUTTON, tableToolbarSize, tableToolbarSize, ClassName.TABLE_STICKY, ClassName.COLUMN_CONTROLS_DECORATIONS, ClassName.TABLE_STICKY, ClassName.ROW_CONTROLS, ClassName.ROW_CONTROLS_BUTTON_WRAP, akEditorStickyHeaderZIndex, tableToolbarSize, token('elevation.surface', 'white'), tableToolbarSize, ClassName.TABLE_STICKY, token('elevation.surface', 'green'), stickyRowOffsetTop, stickyRowZIndex, token('elevation.surface', 'white'), token('elevation.shadow.overflow', "0 6px 4px -4px ".concat(N40A)), ClassName.TABLE_STICKY, ClassName.TABLE_STICKY_SHADOW, stickyRowZIndex + 1, ClassName.WITH_CONTROLS, ClassName.TABLE_STICKY, ClassName.TABLE_STICKY_SHADOW, tableToolbarSize, stickyHeaderBorderBottomWidth, tableBorderColor(props), ClassName.TABLE_STICKY, ClassName.TABLE_STICKY, ClassName.TABLE_STICKY, ClassName.TABLE_STICKY, ClassName.TABLE_CONTAINER, ClassName.TABLE_STICKY, ClassName.WITH_RESIZE_LINE, ClassName.WITH_RESIZE_LINE, ClassName.RESIZE_HANDLE_DECORATION, (resizeHandlerAreaWidth - resizeLineWidth) / 2 + 1, ClassName.WITH_RESIZE_LINE, ClassName.SELECTED_CELL, ClassName.WITH_RESIZE_LINE, ClassName.SELECTED_CELL, ClassName.RESIZE_HANDLE_DECORATION, (resizeHandlerAreaWidth - resizeLineWidth) / 2, ClassName.HOVERED_CELL, ClassName.SELECTED_CELL, ClassName.WITH_CONTROLS, tableControlsSpacing, ClassName.WITH_CONTROLS, ClassName.TABLE_STICKY, ClassName.NUMBERED_COLUMN, ClassName.NUMBERED_COLUMN_BUTTON, tableControlsSpacing + 2, ClassName.CORNER_CONTROLS, tableControlsSpacing - tableToolbarSize + 2, token('elevation.surface', 'white'), (_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.stickyHeadersOptimization ? sentinelStyles : '', OverflowShadow(props), ClassName.TABLE_STICKY, ClassName.TABLE_STICKY_SHADOW, tablePadding, ClassName.ROW_CONTROLS_WRAPPER, tablePadding, ClassName.TABLE_CONTAINER, akEditorTableNumberColumnWidth + tablePadding - 1, ClassName.TABLE_LEFT_SHADOW, ClassName.TABLE_RIGHT_SHADOW, ClassName.NODEVIEW_WRAPPER, ClassName.NODEVIEW_WRAPPER, ClassName.TABLE_CONTAINER, columnControlsDecoration(props), ClassName.CORNER_CONTROLS, tableToolbarSize + 1, cornerControlHeight, ClassName.CORNER_CONTROLS_INSERT_ROW_MARKER, InsertMarker(props, "\n left: -11px;\n top: 9px;\n "), ClassName.CORNER_CONTROLS_INSERT_COLUMN_MARKER, InsertMarker(props, "\n right: -1px;\n top: -12px;\n "), ClassName.CORNER_CONTROLS, ClassName.CORNER_CONTROLS_INSERT_ROW_MARKER, ClassName.CONTROLS_CORNER_BUTTON, tableToolbarSize + 1, tableToolbarSize + 1, tableBorderColor(props), tableBorderRadiusSize, tableToolbarColor(props), ClassName.CONTROLS_CORNER_BUTTON, tableBorderSelectedColor, tableToolbarSelectedColor, ClassName.TABLE_CONTAINER, ClassName.CORNER_CONTROLS, ClassName.CONTROLS_CORNER_BUTTON, akEditorTableToolbarSize + akEditorTableNumberColumnWidth, ClassName.ROW_CONTROLS, ClassName.CONTROLS_BUTTON, ClassName.IS_RESIZING, ClassName.CONTROLS_CORNER_BUTTON, tableBorderSelectedColor, tableToolbarSelectedColor, ClassName.IS_RESIZING, ClassName.CONTROLS_CORNER_BUTTON, ClassName.HOVERED_CELL_IN_DANGER, tableBorderDeleteColor, tableToolbarDeleteColor, ClassName.ROW_CONTROLS, tableToolbarSize, InsertMarker(props, "\n bottom: -1px;\n left: -11px;\n "), ClassName.ROW_CONTROLS_INNER, ClassName.ROW_CONTROLS_BUTTON_WRAP, tableBorderRadiusSize, ClassName.ROW_CONTROLS_BUTTON_WRAP, ClassName.ROW_CONTROLS_BUTTON_WRAP, ClassName.ROW_CONTROLS_BUTTON_WRAP, ClassName.CONTROLS_BUTTON, akEditorUnitZIndex, HeaderButton(props, "\n border-bottom: 1px solid ".concat(tableBorderColor(props), ";\n border-right: 0px;\n border-radius: 0;\n height: 100%;\n width: ").concat(tableToolbarSize, "px;\n\n .").concat(ClassName.CONTROLS_BUTTON_OVERLAY, " {\n position: absolute;\n width: 30px;\n height: 50%;\n right: 0;\n bottom: 0;\n }\n .").concat(ClassName.CONTROLS_BUTTON_OVERLAY, ":first-of-type {\n top: 0;\n }\n ")), ClassName.IS_RESIZING, ClassName.ROW_CONTROLS, HeaderButtonHover(), HeaderButtonDanger(), ClassName.NUMBERED_COLUMN, akEditorTableToolbarSize - 1, akEditorTableToolbarSize, akEditorTableNumberColumnWidth + 1, ClassName.NUMBERED_COLUMN_BUTTON, tableBorderColor(props), relativeFontSizeToBase16(fontSize()), tableToolbarColor(props), tableTextColor(props), tableBorderColor(props), tableBorderColor(props), ClassName.WITH_CONTROLS, ClassName.CORNER_CONTROLS, ClassName.ROW_CONTROLS, ClassName.NUMBERED_COLUMN, ClassName.NUMBERED_COLUMN_BUTTON, ClassName.NUMBERED_COLUMN_BUTTON, tableBorderSelectedColor, tableBorderSelectedColor, tableToolbarSelectedColor, akEditorUnitZIndex, token('color.text.inverse', N0), ClassName.IS_RESIZING, ClassName.WITH_CONTROLS, ClassName.NUMBERED_COLUMN_BUTTON, ClassName.NUMBERED_COLUMN_BUTTON, tableBorderSelectedColor, tableBorderSelectedColor, tableToolbarSelectedColor, akEditorUnitZIndex, token('color.text.inverse', N0), ClassName.NUMBERED_COLUMN_BUTTON, ClassName.HOVERED_CELL_IN_DANGER, tableToolbarDeleteColor, tableBorderDeleteColor, token('color.text.inverse', R500), akEditorUnitZIndex, ClassName.TABLE_NODE_WRAPPER, ClassName.COLUMN_CONTROLS_DECORATIONS, ClassName.TABLE_HEADER_CELL, ClassName.SELECTED_CELL, ClassName.HOVERED_CELL_IN_DANGER, ClassName.SELECTED_CELL, ClassName.HOVERED_CELL_IN_DANGER, akEditorSmallZIndex, ClassName.SELECTED_CELL, tableBorderSelectedColor, ClassName.SELECTED_CELL, tableCellSelectedColor, akEditorSmallZIndex, ClassName.HOVERED_CELL_IN_DANGER, ClassName.HOVERED_CELL_IN_DANGER, tableCellDeleteColor, akEditorUnitZIndex * 100, ClassName.HOVERED_CELL, ClassName.SELECTED_CELL, tableBorderSelectedColor, akEditorSmallZIndex, ClassName.HOVERED_CELL_IN_DANGER, tableBorderDeleteColor, akEditorUnitZIndex * 100, ClassName.ROW_CONTROLS_WRAPPER, tableMarginTop - cornerControlHeight + 1, ClassName.ROW_CONTROLS_WRAPPER, ClassName.TABLE_LEFT_SHADOW, akEditorUnitZIndex, ClassName.ROW_CONTROLS_WRAPPER, tableToolbarSize, ClassName.TABLE_NODE_WRAPPER, tableInsertColumnButtonSize / 2, tableInsertColumnButtonSize / 2, tableScrollbarOffset, tableScrollbarOffset, ClassName.IS_RESIZING, ClassName.TABLE_NODE_WRAPPER, scrollbarStyles, ClassName.RESIZE_CURSOR);
|
|
22
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " button {\n background: ", ";\n color: ", ";\n cursor: none;\n }\n\n .", ":not(.", ") button:hover {\n background: ", ";\n color: ", " !important;\n cursor: pointer;\n }\n\n .ProseMirror {\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n\n .", " {\n margin-bottom: 0;\n }\n\n .", " {\n td.", ", th.", " {\n position: relative;\n overflow: visible;\n }\n\n td.", " {\n background-color: ", ";\n\n // ED-15246: Trello card is visible through a border of a table border\n // This fixes a border issue caused by relative positioned table cells\n &::after {\n height: 100%;\n content: '';\n border-left: 1px solid ", ";\n border-bottom: 1px solid ", ";\n position: absolute;\n right: 0px;\n top: 0px;\n bottom: 0;\n width: 100%;\n display: inline-block;\n pointer-events: none;\n }\n }\n }\n\n .", " {\n ", "\n }\n\n .", " {\n ", "\n }\n\n /* Delete button */\n ", "\n /* Ends Delete button */\n\n /* sticky styles */\n .", " .", " .", ":first-of-type {\n margin-top: ", "px;\n width: ", "px;\n\n position: fixed !important;\n z-index: ", " !important;\n box-shadow: 0px -", "px ", ";\n border-right: 0 none;\n /* top set by NumberColumn component */\n }\n\n .", " .", ".sticky {\n position: fixed !important;\n /* needs to be above row controls */\n z-index: ", " !important;\n background: ", ";\n\n width: ", "px;\n height: ", "px;\n }\n\n .", ".sticky .", " {\n border-bottom: 0px none;\n border-right: 0px none;\n\n height: ", "px;\n width: ", "px;\n }\n\n .", " .", " {\n z-index: 0;\n }\n\n .", "\n .", "\n .", ".sticky {\n position: fixed !important;\n z-index: ", " !important;\n display: flex;\n border-left: ", "px solid\n ", ";\n margin-left: -", "px;\n }\n\n .", " col:first-of-type {\n /* moving rows out of a table layout does weird things in Chrome */\n border-right: 1px solid ", ";\n }\n\n tr.sticky {\n padding-top: ", "px;\n position: fixed;\n display: grid;\n\n /* to keep it above cell selection */\n z-index: ", ";\n\n overflow-y: visible;\n overflow-x: hidden;\n\n grid-auto-flow: column;\n\n /* background for where controls apply */\n background: ", ";\n box-sizing: content-box;\n\n margin-top: 2px;\n\n box-shadow: ", ";\n margin-left: -1px;\n\n &.no-pointer-events {\n pointer-events: none;\n }\n }\n\n .", " .", " {\n left: unset;\n position: fixed;\n z-index: ", ";\n }\n\n .", ".", "\n .", " {\n padding-bottom: ", "px;\n }\n\n tr.sticky th {\n border-bottom: ", "px solid\n ", ";\n margin-right: -1px;\n }\n\n .", " tr.sticky > th:last-child {\n border-right-width: 1px;\n }\n\n /* add left edge for first cell */\n .", " tr.sticky > th:first-of-type {\n margin-left: 0px;\n }\n\n /* add a little bit so the scroll lines up with the table */\n .", " tr.sticky::after {\n content: ' ';\n width: 1px;\n }\n\n /* To fix jumpiness caused in Chrome Browsers for sticky headers */\n .", " .sticky + tr {\n min-height: 0px;\n }\n\n /* move resize line a little in sticky bar */\n .", ".", " {\n tr.sticky\n td.", ",\n tr.sticky\n th.", " {\n .", "::after {\n right: ", "px;\n }\n }\n\n /* when selected put it back to normal -- :not selector would be nicer */\n tr.sticky\n td.", ".", ",\n tr.sticky\n th.", ".", " {\n .", "::after {\n right: ", "px;\n }\n }\n }\n\n tr.sticky\n .", ",\n tr.sticky\n .", " {\n z-index: 1;\n }\n\n .", " tr.sticky {\n padding-top: ", "px;\n }\n\n .", ".", "\n .", "\n .", ":first-of-type {\n margin-top: ", "px;\n }\n\n .", ".sticky {\n border-top: ", "px solid\n ", ";\n }\n\n ", "\n ", "\n\n .", " .", " {\n height: 0; // stop overflow flash & set correct height in update-overflow-shadows.ts\n }\n\n .less-padding {\n padding: 0 ", "px;\n\n .", " {\n padding: 0 ", "px;\n }\n\n &.", "[data-number-column='true'] {\n padding-left: ", "px;\n }\n\n .", " {\n left: 6px;\n }\n\n .", " {\n left: calc(100% - 6px);\n }\n }\n\n > .", " {\n /**\n * Prevent margins collapsing, aids with placing the gap-cursor correctly\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing\n *\n * TODO: Enable this, many tests will fail!\n * border-top: 1px solid transparent;\n */\n }\n\n /* Breakout only works on top level */\n > * .", " .", " {\n margin-left: unset !important;\n width: 100% !important;\n }\n\n ", ";\n\n /* Corner controls */\n .", " {\n width: ", "px;\n height: ", "px;\n display: none;\n\n .", " {\n position: relative;\n\n ", ";\n }\n }\n\n .", ".sticky {\n .", " {\n /* sticky row insert dot overlaps other row insert and messes things up */\n display: none !important;\n }\n }\n\n .", " {\n position: absolute;\n top: 0;\n width: ", "px;\n height: ", "px;\n border: 1px solid ", ";\n border-radius: 0;\n border-top-left-radius: ", "px;\n background: ", ";\n box-sizing: border-box;\n padding: 0;\n :focus {\n outline: none;\n }\n }\n .active .", " {\n border-color: ", ";\n background: ", ";\n }\n\n .", "[data-number-column='true'] {\n .", ", .", " {\n width: ", "px;\n }\n .", " .", " {\n border-right-width: 0;\n }\n }\n\n :not(.", ") .", ":hover {\n border-color: ", ";\n background: ", ";\n cursor: pointer;\n }\n\n :not(.", ")\n .", ".", " {\n border-color: ", ";\n background: ", ";\n }\n\n /* Row controls */\n .", " {\n width: ", "px;\n box-sizing: border-box;\n display: none;\n position: relative;\n\n ", ";\n\n .", " {\n display: flex;\n flex-direction: column;\n }\n .", ":last-child > button {\n border-bottom-left-radius: ", "px;\n }\n .", " {\n position: relative;\n margin-top: -1px;\n }\n .", ":hover,\n .", ".active,\n .", ":hover {\n z-index: ", ";\n }\n\n ", "\n }\n\n :not(.", ") .", " {\n ", "\n ", "\n }\n\n /* Numbered column */\n .", " {\n position: relative;\n float: right;\n margin-left: ", "px;\n top: ", "px;\n width: ", "px;\n box-sizing: border-box;\n }\n\n .", " {\n border: 1px solid ", ";\n box-sizing: border-box;\n margin-top: -1px;\n padding-bottom: 2px;\n padding: 10px 2px;\n text-align: center;\n font-size: ", ";\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n :first-child:not(style),\n style:first-child + * {\n margin-top: 0;\n }\n :last-child {\n border-bottom: 1px solid ", ";\n }\n }\n\n .", " {\n .", ", .", " {\n display: block;\n }\n .", " {\n padding-left: 1px;\n .", " {\n border-left: 0 none;\n }\n\n .", ".active {\n border-bottom: 1px solid ", ";\n border-color: ", ";\n background-color: ", ";\n position: relative;\n z-index: ", ";\n color: ", ";\n }\n }\n }\n :not(.", ") .", " {\n .", " {\n cursor: pointer;\n }\n .", ":hover {\n border-bottom: 1px solid ", ";\n border-color: ", ";\n background-color: ", ";\n position: relative;\n z-index: ", ";\n color: ", ";\n }\n .", ".", " {\n background-color: ", ";\n border: 1px solid ", ";\n border-left: 0;\n color: ", ";\n position: relative;\n z-index: ", ";\n }\n }\n\n /* Table */\n .", " > table {\n table-layout: fixed;\n\n .", " + * {\n margin-top: 0;\n }\n\n /*\n * Headings have a top margin by default, but we don't want this on the\n * first heading within table header cells.\n *\n * This specifically sets margin-top for the first heading within a header\n * cell when center/right aligned.\n */\n th.", " > .fabric-editor-block-mark {\n > h1:first-of-type,\n > h2:first-of-type,\n > h3:first-of-type,\n > h4:first-of-type,\n > h5:first-of-type,\n > h6:first-of-type {\n margin-top: 0;\n }\n }\n\n .", ", .", " {\n position: relative;\n }\n /* Give selected cells a blue overlay */\n .", "::after,\n .", "::after {\n z-index: ", ";\n position: absolute;\n content: '';\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n pointer-events: none;\n }\n .", " {\n border: 1px solid ", ";\n }\n .", "::after {\n background: ", ";\n z-index: ", ";\n }\n th.", "::after,\n td.", "::after {\n background: ", ";\n z-index: ", ";\n }\n // ED-15246: Trello card is visible through a border of a table border\n td.", ", td.", " {\n &::after {\n height: 100%;\n width: 100%;\n border: 1px solid ", ";\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n bottom: 0;\n z-index: ", ";\n display: inline-block;\n pointer-events: none;\n }\n &.", "::after {\n border: 1px solid ", ";\n z-index: ", ";\n }\n }\n }\n .", " {\n position: absolute;\n /* top of corner control is table margin top - corner control height + 1 pixel of table border. */\n top: ", "px;\n }\n .", ".", " {\n z-index: ", ";\n }\n .", " {\n left: -", "px;\n }\n .", " {\n /*\n compensating for half of the insert column button\n that is aligned to the right edge initially on hover of the top right column control when table overflown,\n its center should be aligned with the edge\n */\n padding-right: ", "px;\n margin-right: -", "px;\n padding-bottom: ", "px;\n margin-bottom: -", "px;\n /* fixes gap cursor height */\n overflow: auto;\n position: relative;\n }\n }\n\n .ProseMirror.", " {\n .", " {\n overflow-x: auto;\n ", ";\n }\n }\n\n .ProseMirror.", " {\n cursor: col-resize;\n }\n\n .ProseMirror .pm-table-cell-content-wrap ol[data-child-count='100+'] {\n padding-left: revert;\n }\n"])), ClassName.LAYOUT_BUTTON, token('color.background.neutral', N20A), token('color.icon', N300), ClassName.LAYOUT_BUTTON, ClassName.IS_RESIZING, token('color.background.neutral.hovered', B300), token('color.icon', 'white'), tableSharedStyle(props), columnControlsLineMarker(props), hoveredDeleteButton, hoveredCell, hoveredWarningCell, resizeHandle, rangeSelectionStyles, ClassName.LAST_ITEM_IN_CELL, ClassName.TABLE_NODE_WRAPPER, ClassName.TABLE_CELL, ClassName.TABLE_HEADER_CELL, ClassName.TABLE_CELL, tableCellBackgroundColor(props), tableBorderColor(props), tableBorderColor(props), ClassName.CONTROLS_FLOATING_BUTTON_COLUMN, insertColumnButtonWrapper, ClassName.CONTROLS_FLOATING_BUTTON_ROW, insertRowButtonWrapper, DeleteButton, ClassName.TABLE_STICKY, ClassName.NUMBERED_COLUMN, ClassName.NUMBERED_COLUMN_BUTTON, stickyRowOffsetTop + 2, akEditorTableNumberColumnWidth, akEditorStickyHeaderZIndex, stickyRowOffsetTop, token('elevation.surface', 'white'), ClassName.TABLE_STICKY, ClassName.CORNER_CONTROLS, akEditorSmallZIndex, token('elevation.surface', 'white'), tableToolbarSize, tableToolbarSize, ClassName.CORNER_CONTROLS, ClassName.CONTROLS_CORNER_BUTTON, tableToolbarSize, tableToolbarSize, ClassName.TABLE_STICKY, ClassName.COLUMN_CONTROLS_DECORATIONS, ClassName.TABLE_STICKY, ClassName.ROW_CONTROLS, ClassName.ROW_CONTROLS_BUTTON_WRAP, akEditorStickyHeaderZIndex, tableToolbarSize, token('elevation.surface', 'white'), tableToolbarSize, ClassName.TABLE_STICKY, token('elevation.surface', 'green'), stickyRowOffsetTop, stickyRowZIndex, token('elevation.surface', 'white'), token('elevation.shadow.overflow', "0 6px 4px -4px ".concat(N40A)), ClassName.TABLE_STICKY, ClassName.TABLE_STICKY_SHADOW, stickyRowZIndex + 1, ClassName.WITH_CONTROLS, ClassName.TABLE_STICKY, ClassName.TABLE_STICKY_SHADOW, tableToolbarSize, stickyHeaderBorderBottomWidth, tableBorderColor(props), ClassName.TABLE_STICKY, ClassName.TABLE_STICKY, ClassName.TABLE_STICKY, ClassName.TABLE_STICKY, ClassName.TABLE_CONTAINER, ClassName.TABLE_STICKY, ClassName.WITH_RESIZE_LINE, ClassName.WITH_RESIZE_LINE, ClassName.RESIZE_HANDLE_DECORATION, (resizeHandlerAreaWidth - resizeLineWidth) / 2 + 1, ClassName.WITH_RESIZE_LINE, ClassName.SELECTED_CELL, ClassName.WITH_RESIZE_LINE, ClassName.SELECTED_CELL, ClassName.RESIZE_HANDLE_DECORATION, (resizeHandlerAreaWidth - resizeLineWidth) / 2, ClassName.HOVERED_CELL, ClassName.SELECTED_CELL, ClassName.WITH_CONTROLS, tableControlsSpacing, ClassName.WITH_CONTROLS, ClassName.TABLE_STICKY, ClassName.NUMBERED_COLUMN, ClassName.NUMBERED_COLUMN_BUTTON, tableControlsSpacing + 2, ClassName.CORNER_CONTROLS, tableControlsSpacing - tableToolbarSize + 2, token('elevation.surface', 'white'), (_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.stickyHeadersOptimization ? sentinelStyles : '', OverflowShadow(props), ClassName.TABLE_STICKY, ClassName.TABLE_STICKY_SHADOW, tablePadding, ClassName.ROW_CONTROLS_WRAPPER, tablePadding, ClassName.TABLE_CONTAINER, akEditorTableNumberColumnWidth + tablePadding - 1, ClassName.TABLE_LEFT_SHADOW, ClassName.TABLE_RIGHT_SHADOW, ClassName.NODEVIEW_WRAPPER, ClassName.NODEVIEW_WRAPPER, ClassName.TABLE_CONTAINER, columnControlsDecoration(props), ClassName.CORNER_CONTROLS, tableToolbarSize + 1, cornerControlHeight, ClassName.CORNER_CONTROLS_INSERT_ROW_MARKER, InsertMarker(props, "\n left: -11px;\n top: 9px;\n "), ClassName.CORNER_CONTROLS, ClassName.CORNER_CONTROLS_INSERT_ROW_MARKER, ClassName.CONTROLS_CORNER_BUTTON, tableToolbarSize + 1, tableToolbarSize + 1, tableBorderColor(props), tableBorderRadiusSize, tableToolbarColor(props), ClassName.CONTROLS_CORNER_BUTTON, tableBorderSelectedColor, tableToolbarSelectedColor, ClassName.TABLE_CONTAINER, ClassName.CORNER_CONTROLS, ClassName.CONTROLS_CORNER_BUTTON, akEditorTableToolbarSize + akEditorTableNumberColumnWidth, ClassName.ROW_CONTROLS, ClassName.CONTROLS_BUTTON, ClassName.IS_RESIZING, ClassName.CONTROLS_CORNER_BUTTON, tableBorderSelectedColor, tableToolbarSelectedColor, ClassName.IS_RESIZING, ClassName.CONTROLS_CORNER_BUTTON, ClassName.HOVERED_CELL_IN_DANGER, tableBorderDeleteColor, tableToolbarDeleteColor, ClassName.ROW_CONTROLS, tableToolbarSize, InsertMarker(props, "\n bottom: -1px;\n left: -11px;\n "), ClassName.ROW_CONTROLS_INNER, ClassName.ROW_CONTROLS_BUTTON_WRAP, tableBorderRadiusSize, ClassName.ROW_CONTROLS_BUTTON_WRAP, ClassName.ROW_CONTROLS_BUTTON_WRAP, ClassName.ROW_CONTROLS_BUTTON_WRAP, ClassName.CONTROLS_BUTTON, akEditorUnitZIndex, HeaderButton(props, "\n border-bottom: 1px solid ".concat(tableBorderColor(props), ";\n border-right: 0px;\n border-radius: 0;\n height: 100%;\n width: ").concat(tableToolbarSize, "px;\n\n .").concat(ClassName.CONTROLS_BUTTON_OVERLAY, " {\n position: absolute;\n width: 30px;\n height: 50%;\n right: 0;\n bottom: 0;\n }\n .").concat(ClassName.CONTROLS_BUTTON_OVERLAY, ":first-of-type {\n top: 0;\n }\n ")), ClassName.IS_RESIZING, ClassName.ROW_CONTROLS, HeaderButtonHover(), HeaderButtonDanger(), ClassName.NUMBERED_COLUMN, akEditorTableToolbarSize - 1, akEditorTableToolbarSize, akEditorTableNumberColumnWidth + 1, ClassName.NUMBERED_COLUMN_BUTTON, tableBorderColor(props), relativeFontSizeToBase16(fontSize()), tableToolbarColor(props), tableTextColor(props), tableBorderColor(props), tableBorderColor(props), ClassName.WITH_CONTROLS, ClassName.CORNER_CONTROLS, ClassName.ROW_CONTROLS, ClassName.NUMBERED_COLUMN, ClassName.NUMBERED_COLUMN_BUTTON, ClassName.NUMBERED_COLUMN_BUTTON, tableBorderSelectedColor, tableBorderSelectedColor, tableToolbarSelectedColor, akEditorUnitZIndex, token('color.text.inverse', N0), ClassName.IS_RESIZING, ClassName.WITH_CONTROLS, ClassName.NUMBERED_COLUMN_BUTTON, ClassName.NUMBERED_COLUMN_BUTTON, tableBorderSelectedColor, tableBorderSelectedColor, tableToolbarSelectedColor, akEditorUnitZIndex, token('color.text.inverse', N0), ClassName.NUMBERED_COLUMN_BUTTON, ClassName.HOVERED_CELL_IN_DANGER, tableToolbarDeleteColor, tableBorderDeleteColor, token('color.text.inverse', R500), akEditorUnitZIndex, ClassName.TABLE_NODE_WRAPPER, ClassName.COLUMN_CONTROLS_DECORATIONS, ClassName.TABLE_HEADER_CELL, ClassName.SELECTED_CELL, ClassName.HOVERED_CELL_IN_DANGER, ClassName.SELECTED_CELL, ClassName.HOVERED_CELL_IN_DANGER, akEditorSmallZIndex, ClassName.SELECTED_CELL, tableBorderSelectedColor, ClassName.SELECTED_CELL, tableCellSelectedColor, akEditorSmallZIndex, ClassName.HOVERED_CELL_IN_DANGER, ClassName.HOVERED_CELL_IN_DANGER, tableCellDeleteColor, akEditorUnitZIndex * 100, ClassName.HOVERED_CELL, ClassName.SELECTED_CELL, tableBorderSelectedColor, akEditorSmallZIndex, ClassName.HOVERED_CELL_IN_DANGER, tableBorderDeleteColor, akEditorUnitZIndex * 100, ClassName.ROW_CONTROLS_WRAPPER, tableMarginTop - cornerControlHeight + 1, ClassName.ROW_CONTROLS_WRAPPER, ClassName.TABLE_LEFT_SHADOW, akEditorUnitZIndex, ClassName.ROW_CONTROLS_WRAPPER, tableToolbarSize, ClassName.TABLE_NODE_WRAPPER, tableInsertColumnButtonSize / 2, tableInsertColumnButtonSize / 2, tableScrollbarOffset, tableScrollbarOffset, ClassName.IS_RESIZING, ClassName.TABLE_NODE_WRAPPER, scrollbarStyles, ClassName.RESIZE_CURSOR);
|
|
23
23
|
};
|
|
24
24
|
export var tableFullPageEditorStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .ProseMirror .", " > table {\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n }\n"])), ClassName.TABLE_NODE_WRAPPER);
|
|
25
25
|
export var tableCommentEditorStyles = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n .ProseMirror .", " > table {\n margin-left: 0;\n margin-right: 0;\n ", ";\n }\n"])), ClassName.TABLE_NODE_WRAPPER, scrollbarStyles);
|
|
@@ -6,7 +6,7 @@ import { css } from '@emotion/react';
|
|
|
6
6
|
import { tableCellBorderWidth, tableMarginBottom, tableMarginTop } from '@atlaskit/editor-common/styles';
|
|
7
7
|
import { akEditorShadowZIndex, akEditorTableNumberColumnWidth, akEditorUnitZIndex } from '@atlaskit/editor-shared-styles';
|
|
8
8
|
import { N40A, B300, N300, R300, N20A, N60A, N0, Y50, Y200 } from '@atlaskit/theme/colors';
|
|
9
|
-
import { tableToolbarColor, tableBorderColor, tableToolbarSelectedColor, tableBorderSelectedColor, tableCellDeleteColor, tableBorderDeleteColor, tableToolbarDeleteColor,
|
|
9
|
+
import { tableToolbarColor, tableBorderColor, tableToolbarSelectedColor, tableBorderSelectedColor, tableCellDeleteColor, tableBorderDeleteColor, tableToolbarDeleteColor, lineMarkerSize, columnControlsDecorationHeight, columnControlsZIndex, columnControlsSelectedZIndex, resizeHandlerAreaWidth, resizeLineWidth, resizeHandlerZIndex, tableToolbarSize, tableInsertColumnButtonSize, tableDeleteButtonSize, tableControlsSpacing } from './consts';
|
|
10
10
|
import { TableCssClassName as ClassName } from '../types';
|
|
11
11
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
12
12
|
import { token } from '@atlaskit/tokens';
|
|
@@ -48,7 +48,7 @@ var InsertButtonHover = function InsertButtonHover() {
|
|
|
48
48
|
export var insertColumnButtonWrapper = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n"])), InsertButton(), InsertButtonHover(), InsertLine("\n width: 2px;\n left: 9px;\n "));
|
|
49
49
|
export var insertRowButtonWrapper = css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n"])), InsertButton(), InsertButtonHover(), InsertLine("\n height: 2px;\n top: -11px;\n left: ".concat(tableInsertColumnButtonSize - 1, "px;\n ")));
|
|
50
50
|
export var columnControlsLineMarker = function columnControlsLineMarker(props) {
|
|
51
|
-
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n .", ".", "\n table\n tr:first-of-type\n td,\n .", ".", "\n table\n tr:first-of-type\n th {\n position: relative;\n
|
|
51
|
+
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n .", ".", "\n table\n tr:first-of-type\n td,\n .", ".", "\n table\n tr:first-of-type\n th {\n position: relative;\n }\n"])), ClassName.TABLE_CONTAINER, ClassName.WITH_CONTROLS, ClassName.TABLE_CONTAINER, ClassName.WITH_CONTROLS);
|
|
52
52
|
};
|
|
53
53
|
export var DeleteButton = css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n .", ",\n .", " {\n height: ", "px;\n width: ", "px;\n }\n .", " {\n .", " {\n ", "\n }\n }\n\n .", ":hover {\n background: ", ";\n color: ", ";\n cursor: pointer;\n }\n"])), ClassName.CONTROLS_DELETE_BUTTON_WRAP, ClassName.CONTROLS_DELETE_BUTTON, tableDeleteButtonSize, tableDeleteButtonSize, ClassName.CONTROLS_DELETE_BUTTON_WRAP, ClassName.CONTROLS_DELETE_BUTTON, Button("\n background: ".concat(token('color.background.neutral', N20A), ";\n color: ").concat(token('color.icon', N300), ";\n ")), ClassName.CONTROLS_DELETE_BUTTON, token('color.background.danger.bold', R300), token('color.icon.inverse', 'white')); // TODO: https://product-fabric.atlassian.net/browse/DSP-4451
|
|
54
54
|
|
|
@@ -65,9 +65,9 @@ var columnHeaderButton = function columnHeaderButton(props, cssString) {
|
|
|
65
65
|
|
|
66
66
|
var columnHeaderButtonSelected = css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n color: ", ";\n background-color: ", ";\n border-color: ", ";\n z-index: ", ";\n"])), token('color.text.inverse', N0), tableToolbarSelectedColor, tableBorderSelectedColor, columnControlsSelectedZIndex);
|
|
67
67
|
export var columnControlsDecoration = function columnControlsDecoration(props) {
|
|
68
|
-
return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n .", " {\n display: none;\n cursor: pointer;\n position: absolute;\n width: calc(100% + ", "px);\n left: -1px;\n top: -", "px;\n height: ", "px;\n\n &::after {\n content: ' ';\n\n ", "\n }\n }\n\n .", " .", " {\n display: block;\n }\n\n table\n tr:first-of-type\n td.", ",\n table\n tr:first-of-type\n th.", " {\n &.", ",\n &.", ",\n &.", " {\n .", "::after {\n ", ";\n }\n\n &.", "\n .", "::after {\n background-color: ", ";\n border: 1px solid ", ";\n border-bottom: none;\n z-index: ", ";\n }\n }\n }\n\n .", "\n table\n tr:first-of-type\n td.", ",\n .", "\n table\n tr:first-of-type\n th.", " {\n .", "::after {\n ", ";\n }\n }\n"])), ClassName.COLUMN_CONTROLS_DECORATIONS, tableCellBorderWidth * 2, columnControlsDecorationHeight + tableCellBorderWidth, columnControlsDecorationHeight, columnHeaderButton(props, "\n border-right: ".concat(tableCellBorderWidth, "px solid ").concat(tableBorderColor(props), ";\n border-bottom: none;\n height: ").concat(tableToolbarSize, "px;\n width: 100%;\n position: absolute;\n top: ").concat(columnControlsDecorationHeight - tableToolbarSize, "px;\n left: 0px;\n z-index: ").concat(columnControlsZIndex, ";\n ")), ClassName.WITH_CONTROLS, ClassName.COLUMN_CONTROLS_DECORATIONS, ClassName.TABLE_CELL, ClassName.TABLE_HEADER_CELL, ClassName.COLUMN_SELECTED, ClassName.HOVERED_COLUMN, ClassName.HOVERED_TABLE, ClassName.COLUMN_CONTROLS_DECORATIONS, columnHeaderButtonSelected, ClassName.HOVERED_CELL_IN_DANGER, ClassName.COLUMN_CONTROLS_DECORATIONS, tableToolbarDeleteColor, tableBorderDeleteColor, akEditorUnitZIndex * 100, ClassName.TABLE_SELECTED, ClassName.TABLE_CELL, ClassName.TABLE_SELECTED, ClassName.TABLE_HEADER_CELL, ClassName.COLUMN_CONTROLS_DECORATIONS, columnHeaderButtonSelected);
|
|
68
|
+
return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n .", " {\n display: none;\n cursor: pointer;\n position: absolute;\n width: calc(100% + ", "px);\n left: -1px;\n top: -", "px;\n height: ", "px;\n\n &::before {\n content: ' ';\n background-color: ", ";\n position: absolute;\n height: ", "px;\n width: ", "px;\n border-radius: 50%;\n pointer-events: none;\n top: 2px;\n right: -1px;\n }\n\n &::after {\n content: ' ';\n\n ", "\n }\n }\n\n div.", ">.", "::after {\n content: ' ';\n background-color: ", ";\n position: absolute;\n height: ", "px;\n width: ", "px;\n border-radius: 50%;\n pointer-events: none;\n top: -", "px;\n right: -1px;\n }\n\n .", " .", " {\n display: block;\n }\n\n table\n tr:first-of-type\n td.", ",\n table\n tr:first-of-type\n th.", " {\n &.", ",\n &.", ",\n &.", " {\n .", "::after {\n ", ";\n }\n\n &.", "\n .", "::after {\n background-color: ", ";\n border: 1px solid ", ";\n border-bottom: none;\n z-index: ", ";\n }\n }\n }\n\n .", "\n table\n tr:first-of-type\n td.", ",\n .", "\n table\n tr:first-of-type\n th.", " {\n .", "::after {\n ", ";\n }\n }\n"])), ClassName.COLUMN_CONTROLS_DECORATIONS, tableCellBorderWidth * 2, columnControlsDecorationHeight + tableCellBorderWidth, columnControlsDecorationHeight, tableBorderColor(props), lineMarkerSize, lineMarkerSize, columnHeaderButton(props, "\n border-right: ".concat(tableCellBorderWidth, "px solid ").concat(tableBorderColor(props), ";\n border-bottom: none;\n height: ").concat(tableToolbarSize, "px;\n width: 100%;\n position: absolute;\n top: ").concat(columnControlsDecorationHeight - tableToolbarSize, "px;\n left: 0px;\n z-index: ").concat(columnControlsZIndex, ";\n ")), ClassName.WITH_CONTROLS, ClassName.ROW_CONTROLS_WRAPPER, tableBorderColor(props), lineMarkerSize, lineMarkerSize, tableToolbarSize + tableCellBorderWidth, ClassName.WITH_CONTROLS, ClassName.COLUMN_CONTROLS_DECORATIONS, ClassName.TABLE_CELL, ClassName.TABLE_HEADER_CELL, ClassName.COLUMN_SELECTED, ClassName.HOVERED_COLUMN, ClassName.HOVERED_TABLE, ClassName.COLUMN_CONTROLS_DECORATIONS, columnHeaderButtonSelected, ClassName.HOVERED_CELL_IN_DANGER, ClassName.COLUMN_CONTROLS_DECORATIONS, tableToolbarDeleteColor, tableBorderDeleteColor, akEditorUnitZIndex * 100, ClassName.TABLE_SELECTED, ClassName.TABLE_CELL, ClassName.TABLE_SELECTED, ClassName.TABLE_HEADER_CELL, ClassName.COLUMN_CONTROLS_DECORATIONS, columnHeaderButtonSelected);
|
|
69
69
|
};
|
|
70
70
|
export var hoveredDeleteButton = css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n .", ".", " {\n .", ",\n .", ",\n .", " {\n border: 1px solid ", ";\n }\n .", "::after {\n background: ", ";\n }\n }\n"])), ClassName.TABLE_CONTAINER, ClassName.HOVERED_DELETE_BUTTON, ClassName.SELECTED_CELL, ClassName.COLUMN_SELECTED, ClassName.HOVERED_CELL, tableBorderDeleteColor, ClassName.SELECTED_CELL, tableCellDeleteColor);
|
|
71
71
|
export var hoveredCell = css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n :not(.", ")\n .", ":not(.", ") {\n .", " {\n position: relative;\n border: 1px solid ", ";\n }\n }\n"])), ClassName.IS_RESIZING, ClassName.TABLE_CONTAINER, ClassName.HOVERED_DELETE_BUTTON, ClassName.HOVERED_CELL, tableBorderSelectedColor);
|
|
72
72
|
export var hoveredWarningCell = css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n :not(.", ")\n .", ":not(.", ") {\n td.", " {\n background-color: ", " !important; // We need to override the background-color added to the cell\n border: 1px solid ", ";\n }\n }\n"])), ClassName.IS_RESIZING, ClassName.TABLE_CONTAINER, ClassName.HOVERED_DELETE_BUTTON, ClassName.HOVERED_CELL_WARNING, token('color.background.warning', Y50), token('color.border.warning', Y200));
|
|
73
|
-
export var resizeHandle = css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n .", " {\n .", " {\n background-color: transparent;\n position: absolute;\n width: ", "px;\n height: 100%;\n top: 0;\n right: -", "px;\n cursor: col-resize;\n z-index: ", ";\n }\n\n td.", ", th.", " {\n .", "::
|
|
73
|
+
export var resizeHandle = css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n .", " {\n .", " {\n background-color: transparent;\n position: absolute;\n width: ", "px;\n height: 100%;\n top: 0;\n right: -", "px;\n cursor: col-resize;\n z-index: ", ";\n }\n\n td.", "::before {\n content: ' ';\n position: absolute;\n left: -2px;\n top: -1px;\n width: ", "px;\n height: calc(100% + 2px);\n background-color: ", ";\n z-index: ", ";\n }\n\n th.", "::before {\n content: ' ';\n left: -2px;\n position: absolute;\n width: ", "px;\n height: calc(100% + ", "px);\n background-color: ", ";\n z-index: ", ";\n top: -", "px;\n }\n\n td.", "::before {\n content: ' ';\n position: absolute;\n right: -1px;\n top: -1px;\n width: ", "px;\n height: calc(100% + 2px);\n background-color: ", ";\n z-index: ", ";\n }\n\n th.", "::before {\n content: ' ';\n right: -1px;\n position: absolute;\n width: ", "px;\n height: calc(100% + ", "px);\n background-color: ", ";\n z-index: ", ";\n top: -", "px;\n }\n\n table\n tr:first-of-type\n th.", "\n .", "::after,\n table\n tr:first-of-type\n td.", "\n .", "::after {\n top: -", "px;\n height: calc(100% + ", "px);\n }\n }\n"])), ClassName.TABLE_CONTAINER, ClassName.RESIZE_HANDLE_DECORATION, resizeHandlerAreaWidth, resizeHandlerAreaWidth / 2, resizeHandlerZIndex, ClassName.WITH_RESIZE_LINE, resizeLineWidth, tableBorderSelectedColor, columnControlsZIndex * 2, ClassName.WITH_RESIZE_LINE, resizeLineWidth, tableToolbarSize + tableCellBorderWidth, tableBorderSelectedColor, columnControlsZIndex * 2, tableToolbarSize + tableCellBorderWidth, ClassName.WITH_RESIZE_LINE_LAST_COLUMN, resizeLineWidth, tableBorderSelectedColor, columnControlsZIndex * 2, ClassName.WITH_RESIZE_LINE_LAST_COLUMN, resizeLineWidth, tableToolbarSize + tableCellBorderWidth, tableBorderSelectedColor, columnControlsZIndex * 2, tableToolbarSize + tableCellBorderWidth, ClassName.WITH_RESIZE_LINE, ClassName.RESIZE_HANDLE_DECORATION, ClassName.WITH_RESIZE_LINE, ClassName.RESIZE_HANDLE_DECORATION, tableToolbarSize + tableCellBorderWidth, tableToolbarSize + tableCellBorderWidth);
|
|
@@ -238,7 +238,7 @@ var makeArray = function makeArray(n) {
|
|
|
238
238
|
*/
|
|
239
239
|
|
|
240
240
|
|
|
241
|
-
export var createResizeHandleDecoration = function createResizeHandleDecoration(tr, columnEndIndexTarget) {
|
|
241
|
+
export var createResizeHandleDecoration = function createResizeHandleDecoration(tr, rowIndexTarget, columnEndIndexTarget) {
|
|
242
242
|
var emptyResult = [[], []];
|
|
243
243
|
var table = findTable(tr.selection);
|
|
244
244
|
|
|
@@ -292,6 +292,10 @@ export var createResizeHandleDecoration = function createResizeHandleDecoration(
|
|
|
292
292
|
for (var rowIndex = 0; rowIndex < map.height; rowIndex++) {
|
|
293
293
|
var seen = {};
|
|
294
294
|
|
|
295
|
+
if (rowIndex !== rowIndexTarget) {
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
|
|
295
299
|
for (var columnIndex = 0; columnIndex < map.width; columnIndex++) {
|
|
296
300
|
var cellPosition = map.map[map.width * rowIndex + columnIndex];
|
|
297
301
|
|
|
@@ -380,16 +384,23 @@ export var createColumnLineResize = function createColumnLineResize(selection, c
|
|
|
380
384
|
return [];
|
|
381
385
|
}
|
|
382
386
|
|
|
383
|
-
var columnIndex = cellColumnPositioning.right
|
|
387
|
+
var columnIndex = cellColumnPositioning.right;
|
|
384
388
|
var map = TableMap.get(table.node);
|
|
389
|
+
var isLastColumn = columnIndex === map.width;
|
|
390
|
+
|
|
391
|
+
if (isLastColumn) {
|
|
392
|
+
columnIndex -= 1;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
var decorationClassName = isLastColumn ? ClassName.WITH_RESIZE_LINE_LAST_COLUMN : ClassName.WITH_RESIZE_LINE;
|
|
385
396
|
var cellPositions = makeArray(map.height).map(function (rowIndex) {
|
|
386
397
|
return map.map[map.width * rowIndex + columnIndex];
|
|
387
398
|
}).filter(function (cellPosition, rowIndex) {
|
|
388
|
-
if (
|
|
399
|
+
if (isLastColumn) {
|
|
389
400
|
return true; // If is the last column no filter applied
|
|
390
401
|
}
|
|
391
402
|
|
|
392
|
-
var nextPosition = map.map[map.width * rowIndex + columnIndex
|
|
403
|
+
var nextPosition = map.map[map.width * rowIndex + columnIndex - 1];
|
|
393
404
|
return cellPosition !== nextPosition; // Removed it if next position is merged
|
|
394
405
|
});
|
|
395
406
|
var cells = cellPositions.map(function (pos) {
|
|
@@ -404,7 +415,7 @@ export var createColumnLineResize = function createColumnLineResize(selection, c
|
|
|
404
415
|
}
|
|
405
416
|
|
|
406
417
|
return Decoration.node(cell.pos, cell.pos + cell.node.nodeSize, {
|
|
407
|
-
class:
|
|
418
|
+
class: decorationClassName
|
|
408
419
|
}, {
|
|
409
420
|
key: "".concat(TableDecorations.COLUMN_RESIZING_HANDLE_LINE, "_").concat(cellColumnPositioning.right, "_").concat(index)
|
|
410
421
|
});
|
package/dist/esm/version.json
CHANGED
|
@@ -20,7 +20,7 @@ export declare const selectRow: (row: number, expand?: boolean | undefined) => C
|
|
|
20
20
|
export declare const showInsertColumnButton: (columnIndex: number) => Command;
|
|
21
21
|
export declare const showInsertRowButton: (rowIndex: number) => Command;
|
|
22
22
|
export declare const hideInsertColumnOrRowButton: () => Command;
|
|
23
|
-
export declare const addResizeHandleDecorations: (columnIndex: number) => Command;
|
|
23
|
+
export declare const addResizeHandleDecorations: (rowIndex: number, columnIndex: number) => Command;
|
|
24
24
|
export declare const autoSizeTable: (view: EditorView, node: PMNode, table: HTMLTableElement, basePos: number, opts: {
|
|
25
25
|
containerWidth: number;
|
|
26
26
|
}) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { DecorationTransformer } from './types';
|
|
2
|
-
export declare const buildColumnResizingDecorations: (columnEndIndex: number) => DecorationTransformer;
|
|
2
|
+
export declare const buildColumnResizingDecorations: (rowEndIndex: number, columnEndIndex: number) => DecorationTransformer;
|
|
@@ -79,6 +79,7 @@ export interface TablePluginState {
|
|
|
79
79
|
isFullWidthModeEnabled?: boolean;
|
|
80
80
|
layout?: TableLayout;
|
|
81
81
|
ordering?: TableColumnOrdering;
|
|
82
|
+
resizeHandleRowIndex?: number;
|
|
82
83
|
resizeHandleColumnIndex?: number;
|
|
83
84
|
tableCellOptimization?: boolean;
|
|
84
85
|
isTableCollapsed?: boolean;
|
|
@@ -139,6 +140,7 @@ export declare type TablePluginAction = {
|
|
|
139
140
|
type: 'ADD_RESIZE_HANDLE_DECORATIONS';
|
|
140
141
|
data: {
|
|
141
142
|
decorationSet: DecorationSet;
|
|
143
|
+
resizeHandleRowIndex: number;
|
|
142
144
|
resizeHandleColumnIndex: number;
|
|
143
145
|
};
|
|
144
146
|
} | {
|
|
@@ -281,6 +283,7 @@ export declare const TableCssClassName: {
|
|
|
281
283
|
TOP_LEFT_CELL: string;
|
|
282
284
|
LAST_ITEM_IN_CELL: string;
|
|
283
285
|
WITH_RESIZE_LINE: string;
|
|
286
|
+
WITH_RESIZE_LINE_LAST_COLUMN: string;
|
|
284
287
|
TABLE_CONTAINER: string;
|
|
285
288
|
TABLE_NODE_WRAPPER: string;
|
|
286
289
|
TABLE_LEFT_SHADOW: string;
|
|
@@ -9,5 +9,5 @@ export declare const createControlsHoverDecoration: (cells: Cell[], type: 'row'
|
|
|
9
9
|
export declare const createColumnSelectedDecoration: (tr: Transaction | ReadonlyTransaction) => Decoration[];
|
|
10
10
|
export declare const createColumnControlsDecoration: (selection: Selection) => Decoration[];
|
|
11
11
|
export declare const updateDecorations: (node: PmNode, decorationSet: DecorationSet, decorations: Decoration[], key: TableDecorations) => DecorationSet;
|
|
12
|
-
export declare const createResizeHandleDecoration: (tr: Transaction | ReadonlyTransaction, columnEndIndexTarget: Omit<CellColumnPositioning, 'left'>) => [Decoration[], Decoration[]];
|
|
12
|
+
export declare const createResizeHandleDecoration: (tr: Transaction | ReadonlyTransaction, rowIndexTarget: number, columnEndIndexTarget: Omit<CellColumnPositioning, 'left'>) => [Decoration[], Decoration[]];
|
|
13
13
|
export declare const createColumnLineResize: (selection: Selection, cellColumnPositioning: Omit<CellColumnPositioning, 'left'>) => Decoration[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-table",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Table plugin for the @atlaskit/editor",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@atlaskit/adf-schema": "^24.0.0",
|
|
21
|
-
"@atlaskit/editor-common": "^70.
|
|
21
|
+
"@atlaskit/editor-common": "^70.3.0",
|
|
22
22
|
"@atlaskit/editor-shared-styles": "^2.2.0",
|
|
23
23
|
"@atlaskit/editor-tables": "^2.2.0",
|
|
24
24
|
"@atlaskit/icon": "^21.11.0",
|
|
25
25
|
"@atlaskit/theme": "^12.1.0",
|
|
26
|
-
"@atlaskit/tokens": "^0.
|
|
26
|
+
"@atlaskit/tokens": "^0.11.0",
|
|
27
27
|
"@atlaskit/tooltip": "^17.6.0",
|
|
28
28
|
"@babel/runtime": "^7.0.0",
|
|
29
29
|
"@emotion/react": "^11.7.1",
|
|
@@ -208,7 +208,7 @@ describe('table event handlers', () => {
|
|
|
208
208
|
);
|
|
209
209
|
const { state, dispatch } = editorView;
|
|
210
210
|
|
|
211
|
-
addResizeHandleDecorations(0)(state, dispatch);
|
|
211
|
+
addResizeHandleDecorations(0, 0)(state, dispatch);
|
|
212
212
|
|
|
213
213
|
const firstCell = editorView.domAtPos(refs['<>']);
|
|
214
214
|
const event = {
|
|
@@ -66,17 +66,18 @@ describe('tables: column resizing decorations', () => {
|
|
|
66
66
|
|
|
67
67
|
describe('#buildColumnResizingDecorations', () => {
|
|
68
68
|
describe.each([
|
|
69
|
-
[-1, TableDecorations.COLUMN_RESIZING_HANDLE, 0],
|
|
70
|
-
[0, TableDecorations.COLUMN_RESIZING_HANDLE, 0],
|
|
71
|
-
[1, TableDecorations.COLUMN_RESIZING_HANDLE, 1],
|
|
69
|
+
[0, -1, TableDecorations.COLUMN_RESIZING_HANDLE, 0],
|
|
70
|
+
[0, 0, TableDecorations.COLUMN_RESIZING_HANDLE, 0],
|
|
71
|
+
[0, 1, TableDecorations.COLUMN_RESIZING_HANDLE, 1],
|
|
72
72
|
])(
|
|
73
73
|
'when columnEndIndex is %i',
|
|
74
|
-
(columnEndIndex, decorationKey, expectedDecorations) => {
|
|
74
|
+
(rowEndIndex, columnEndIndex, decorationKey, expectedDecorations) => {
|
|
75
75
|
it(`should return a decorationSet with ${expectedDecorations} ${decorationKey} type`, () => {
|
|
76
76
|
const {
|
|
77
77
|
editorView: { state },
|
|
78
78
|
} = editor(doc(table()(tr(tdCursor, tdEmpty))));
|
|
79
79
|
const nextDecorationSet = buildColumnResizingDecorations(
|
|
80
|
+
rowEndIndex,
|
|
80
81
|
columnEndIndex,
|
|
81
82
|
)({
|
|
82
83
|
decorationSet: DecorationSet.empty,
|
|
@@ -90,6 +90,7 @@ export const setTableRef = (ref?: HTMLTableElement) =>
|
|
|
90
90
|
isHeaderRowEnabled: checkIfHeaderRowEnabled(state.selection),
|
|
91
91
|
isHeaderColumnEnabled: checkIfHeaderColumnEnabled(state.selection),
|
|
92
92
|
decorationSet,
|
|
93
|
+
resizeHandleRowIndex: undefined,
|
|
93
94
|
resizeHandleColumnIndex: undefined,
|
|
94
95
|
},
|
|
95
96
|
};
|
|
@@ -434,7 +435,10 @@ export const hideInsertColumnOrRowButton = () =>
|
|
|
434
435
|
(tr) => tr.setMeta('addToHistory', false),
|
|
435
436
|
);
|
|
436
437
|
|
|
437
|
-
export const addResizeHandleDecorations = (
|
|
438
|
+
export const addResizeHandleDecorations = (
|
|
439
|
+
rowIndex: number,
|
|
440
|
+
columnIndex: number,
|
|
441
|
+
) =>
|
|
438
442
|
createCommand(
|
|
439
443
|
(state) => {
|
|
440
444
|
const tableNode = findTable(state.selection);
|
|
@@ -449,10 +453,14 @@ export const addResizeHandleDecorations = (columnIndex: number) =>
|
|
|
449
453
|
return {
|
|
450
454
|
type: 'ADD_RESIZE_HANDLE_DECORATIONS',
|
|
451
455
|
data: {
|
|
452
|
-
decorationSet: buildColumnResizingDecorations(
|
|
456
|
+
decorationSet: buildColumnResizingDecorations(
|
|
457
|
+
rowIndex,
|
|
458
|
+
columnIndex,
|
|
459
|
+
)({
|
|
453
460
|
tr: state.tr,
|
|
454
461
|
decorationSet: getDecorations(state),
|
|
455
462
|
}),
|
|
463
|
+
resizeHandleRowIndex: rowIndex,
|
|
456
464
|
resizeHandleColumnIndex: columnIndex,
|
|
457
465
|
},
|
|
458
466
|
};
|
|
@@ -55,7 +55,6 @@ import {
|
|
|
55
55
|
getMousePositionHorizontalRelativeByElement,
|
|
56
56
|
getMousePositionVerticalRelativeByElement,
|
|
57
57
|
getSelectedCellInfo,
|
|
58
|
-
hasResizeHandler,
|
|
59
58
|
isCell,
|
|
60
59
|
isColumnControlsDecorations,
|
|
61
60
|
isCornerButton,
|
|
@@ -358,7 +357,8 @@ export const handleMouseMove =
|
|
|
358
357
|
|
|
359
358
|
if (positionColumn !== null) {
|
|
360
359
|
const { state, dispatch } = view;
|
|
361
|
-
const { resizeHandleColumnIndex } =
|
|
360
|
+
const { resizeHandleColumnIndex, resizeHandleRowIndex } =
|
|
361
|
+
getPluginState(state);
|
|
362
362
|
const tableCell = closestElement(
|
|
363
363
|
element,
|
|
364
364
|
'td, th',
|
|
@@ -372,14 +372,16 @@ export const handleMouseMove =
|
|
|
372
372
|
const columnEndIndexTarget =
|
|
373
373
|
positionColumn === 'left' ? rect.left : rect.right;
|
|
374
374
|
|
|
375
|
+
const rowIndexTarget = rect.top;
|
|
376
|
+
|
|
375
377
|
if (
|
|
376
378
|
columnEndIndexTarget !== resizeHandleColumnIndex ||
|
|
377
|
-
|
|
379
|
+
rowIndexTarget !== resizeHandleRowIndex
|
|
378
380
|
) {
|
|
379
|
-
return addResizeHandleDecorations(
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
);
|
|
381
|
+
return addResizeHandleDecorations(
|
|
382
|
+
rowIndexTarget,
|
|
383
|
+
columnEndIndexTarget,
|
|
384
|
+
)(state, dispatch);
|
|
383
385
|
}
|
|
384
386
|
}
|
|
385
387
|
}
|
|
@@ -32,12 +32,14 @@ const updateLastCellElement =
|
|
|
32
32
|
);
|
|
33
33
|
|
|
34
34
|
export const buildColumnResizingDecorations =
|
|
35
|
-
(columnEndIndex: number): DecorationTransformer =>
|
|
35
|
+
(rowEndIndex: number, columnEndIndex: number): DecorationTransformer =>
|
|
36
36
|
({ tr, decorationSet }): DecorationSet => {
|
|
37
37
|
const [columnResizesDecorations, lastCellElementsDecorations] =
|
|
38
38
|
columnEndIndex < 0
|
|
39
39
|
? emptyDecorations
|
|
40
|
-
: createResizeHandleDecoration(tr, {
|
|
40
|
+
: createResizeHandleDecoration(tr, rowEndIndex, {
|
|
41
|
+
right: columnEndIndex,
|
|
42
|
+
});
|
|
41
43
|
|
|
42
44
|
return composeDecorations([
|
|
43
45
|
updateColumnResizeHandle(columnResizesDecorations),
|
|
@@ -80,12 +80,14 @@ export default (
|
|
|
80
80
|
...pluginState,
|
|
81
81
|
...action.data,
|
|
82
82
|
resizeHandleColumnIndex: undefined,
|
|
83
|
+
resizeHandleRowIndex: undefined,
|
|
83
84
|
};
|
|
84
85
|
|
|
85
86
|
case 'ADD_RESIZE_HANDLE_DECORATIONS':
|
|
86
87
|
if (
|
|
87
88
|
action.data.resizeHandleColumnIndex ===
|
|
88
|
-
|
|
89
|
+
pluginState.resizeHandleColumnIndex &&
|
|
90
|
+
action.data.resizeHandleRowIndex === pluginState.resizeHandleRowIndex
|
|
89
91
|
) {
|
|
90
92
|
return pluginState;
|
|
91
93
|
}
|