@atlaskit/editor-plugin-table 1.1.0 → 1.1.2
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/index.js +0 -2
- package/dist/cjs/plugins/table/commands/clear.js +4 -16
- package/dist/cjs/plugins/table/commands/collapse.js +0 -6
- package/dist/cjs/plugins/table/commands/go-to-next-cell.js +7 -18
- package/dist/cjs/plugins/table/commands/hover.js +7 -37
- package/dist/cjs/plugins/table/commands/index.js +0 -8
- package/dist/cjs/plugins/table/commands/insert.js +17 -56
- package/dist/cjs/plugins/table/commands/misc.js +36 -132
- package/dist/cjs/plugins/table/commands/referentiality.js +0 -4
- package/dist/cjs/plugins/table/commands/selection.js +21 -87
- package/dist/cjs/plugins/table/commands/sort.js +2 -23
- package/dist/cjs/plugins/table/commands/split-cell.js +3 -11
- package/dist/cjs/plugins/table/commands/toggle.js +8 -34
- package/dist/cjs/plugins/table/commands-with-analytics.js +50 -139
- package/dist/cjs/plugins/table/create-plugin-config.js +0 -6
- package/dist/cjs/plugins/table/event-handlers.js +58 -160
- package/dist/cjs/plugins/table/handlers.js +10 -39
- package/dist/cjs/plugins/table/index.js +47 -91
- package/dist/cjs/plugins/table/nodeviews/OverflowShadowsObserver.js +8 -41
- package/dist/cjs/plugins/table/nodeviews/TableComponent.js +82 -188
- package/dist/cjs/plugins/table/nodeviews/table.js +12 -70
- package/dist/cjs/plugins/table/nodeviews/tableCell.js +15 -39
- package/dist/cjs/plugins/table/nodeviews/update-overflow-shadows.js +3 -15
- package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +0 -18
- package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-controls.js +8 -27
- package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-resizing.js +8 -20
- package/dist/cjs/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +1 -3
- package/dist/cjs/plugins/table/pm-plugins/decorations/utils/index.js +0 -3
- package/dist/cjs/plugins/table/pm-plugins/keymap.js +2 -15
- package/dist/cjs/plugins/table/pm-plugins/main.js +20 -72
- package/dist/cjs/plugins/table/pm-plugins/plugin-factory.js +25 -42
- package/dist/cjs/plugins/table/pm-plugins/plugin-key.js +0 -2
- package/dist/cjs/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +8 -8
- package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +4 -23
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/commands.js +0 -5
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/index.js +0 -5
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +4 -13
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +56 -138
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-key.js +0 -2
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-state.js +15 -30
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +0 -6
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/util.js +0 -5
- package/dist/cjs/plugins/table/pm-plugins/table-local-id.js +13 -44
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/commands.js +12 -42
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +16 -52
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/index.js +0 -4
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-factory.js +0 -10
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-key.js +0 -2
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +5 -19
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/reducer.js +0 -10
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +0 -15
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/column-state.js +8 -28
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/content-width.js +3 -23
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +4 -46
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/index.js +0 -9
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +15 -36
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-column.js +1 -4
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +15 -71
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +34 -82
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +12 -36
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.js +0 -2
- package/dist/cjs/plugins/table/pm-plugins/table-selection-keymap.js +0 -5
- package/dist/cjs/plugins/table/reducer.js +0 -24
- package/dist/cjs/plugins/table/toolbar.js +14 -94
- package/dist/cjs/plugins/table/transforms/column-width.js +12 -45
- package/dist/cjs/plugins/table/transforms/delete-columns.js +11 -76
- package/dist/cjs/plugins/table/transforms/delete-rows.js +4 -42
- package/dist/cjs/plugins/table/transforms/fix-tables.js +24 -61
- package/dist/cjs/plugins/table/transforms/index.js +0 -7
- package/dist/cjs/plugins/table/transforms/merge.js +14 -90
- package/dist/cjs/plugins/table/transforms/metadata.js +0 -5
- package/dist/cjs/plugins/table/transforms/replace-table.js +2 -13
- package/dist/cjs/plugins/table/transforms/split.js +18 -32
- package/dist/cjs/plugins/table/types.js +0 -11
- package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +10 -51
- package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +0 -12
- package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +46 -145
- package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +12 -35
- package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +0 -11
- package/dist/cjs/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +5 -12
- package/dist/cjs/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +3 -16
- package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +19 -89
- package/dist/cjs/plugins/table/ui/FloatingInsertButton/InsertButton.js +6 -31
- package/dist/cjs/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +5 -22
- package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +25 -80
- package/dist/cjs/plugins/table/ui/LayoutButton/index.js +16 -64
- package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/index.js +14 -47
- package/dist/cjs/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +20 -48
- package/dist/cjs/plugins/table/ui/TableFloatingControls/RowControls/index.js +10 -43
- package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +33 -74
- package/dist/cjs/plugins/table/ui/common-styles.js +6 -19
- package/dist/cjs/plugins/table/ui/consts.js +3 -8
- package/dist/cjs/plugins/table/ui/messages.js +0 -3
- package/dist/cjs/plugins/table/ui/ui-styles.js +0 -32
- package/dist/cjs/plugins/table/utils/analytics.js +4 -19
- package/dist/cjs/plugins/table/utils/collapse.js +4 -21
- package/dist/cjs/plugins/table/utils/column-controls.js +25 -61
- package/dist/cjs/plugins/table/utils/decoration.js +46 -114
- package/dist/cjs/plugins/table/utils/dom.js +4 -51
- package/dist/cjs/plugins/table/utils/get-allow-add-column-custom-step.js +0 -2
- package/dist/cjs/plugins/table/utils/index.js +0 -10
- package/dist/cjs/plugins/table/utils/nodes.js +5 -48
- package/dist/cjs/plugins/table/utils/paste.js +22 -47
- package/dist/cjs/plugins/table/utils/row-controls.js +6 -67
- package/dist/cjs/plugins/table/utils/selection.js +3 -36
- package/dist/cjs/plugins/table/utils/table.js +0 -11
- package/dist/cjs/plugins/table/utils/update-plugin-state-decorations.js +0 -4
- package/dist/cjs/plugins/table-plugin.js +0 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/plugins/table/commands/clear.js +3 -8
- package/dist/es2019/plugins/table/commands/collapse.js +0 -3
- package/dist/es2019/plugins/table/commands/go-to-next-cell.js +4 -7
- package/dist/es2019/plugins/table/commands/hover.js +7 -17
- package/dist/es2019/plugins/table/commands/insert.js +16 -36
- package/dist/es2019/plugins/table/commands/misc.js +37 -67
- package/dist/es2019/plugins/table/commands/selection.js +7 -62
- package/dist/es2019/plugins/table/commands/sort.js +0 -12
- package/dist/es2019/plugins/table/commands/split-cell.js +0 -4
- package/dist/es2019/plugins/table/commands/toggle.js +13 -15
- package/dist/es2019/plugins/table/commands-with-analytics.js +4 -14
- package/dist/es2019/plugins/table/event-handlers.js +14 -62
- package/dist/es2019/plugins/table/handlers.js +16 -26
- package/dist/es2019/plugins/table/index.js +12 -25
- package/dist/es2019/plugins/table/nodeviews/OverflowShadowsObserver.js +8 -40
- package/dist/es2019/plugins/table/nodeviews/TableComponent.js +27 -100
- package/dist/es2019/plugins/table/nodeviews/table.js +3 -33
- package/dist/es2019/plugins/table/nodeviews/tableCell.js +7 -16
- package/dist/es2019/plugins/table/nodeviews/update-overflow-shadows.js +3 -10
- package/dist/es2019/plugins/table/pm-plugins/decorations/plugin.js +0 -5
- package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-controls.js +4 -13
- package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-resizing.js +0 -3
- package/dist/es2019/plugins/table/pm-plugins/keymap.js +2 -3
- package/dist/es2019/plugins/table/pm-plugins/main.js +19 -43
- package/dist/es2019/plugins/table/pm-plugins/plugin-factory.js +2 -6
- package/dist/es2019/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +8 -3
- package/dist/es2019/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +0 -12
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +4 -9
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +55 -130
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin-state.js +2 -9
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/util.js +0 -3
- package/dist/es2019/plugins/table/pm-plugins/table-local-id.js +20 -39
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/commands.js +7 -15
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +9 -27
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin-factory.js +2 -4
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/reducer.js +8 -8
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +0 -4
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/column-state.js +8 -11
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/content-width.js +4 -21
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/dom.js +3 -22
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +10 -18
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +29 -59
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +54 -51
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +9 -14
- package/dist/es2019/plugins/table/reducer.js +26 -30
- package/dist/es2019/plugins/table/toolbar.js +5 -48
- package/dist/es2019/plugins/table/transforms/column-width.js +16 -28
- package/dist/es2019/plugins/table/transforms/delete-columns.js +17 -58
- package/dist/es2019/plugins/table/transforms/delete-rows.js +8 -25
- package/dist/es2019/plugins/table/transforms/fix-tables.js +25 -42
- package/dist/es2019/plugins/table/transforms/merge.js +22 -70
- package/dist/es2019/plugins/table/transforms/metadata.js +3 -2
- package/dist/es2019/plugins/table/transforms/replace-table.js +0 -2
- package/dist/es2019/plugins/table/transforms/split.js +16 -19
- package/dist/es2019/plugins/table/types.js +2 -4
- package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +2 -16
- package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +8 -54
- package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +4 -13
- package/dist/es2019/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +0 -2
- package/dist/es2019/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +2 -11
- package/dist/es2019/plugins/table/ui/FloatingDeleteButton/index.js +13 -49
- package/dist/es2019/plugins/table/ui/FloatingInsertButton/InsertButton.js +0 -8
- package/dist/es2019/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +16 -24
- package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +3 -31
- package/dist/es2019/plugins/table/ui/LayoutButton/index.js +2 -29
- package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/index.js +0 -12
- package/dist/es2019/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +6 -12
- package/dist/es2019/plugins/table/ui/TableFloatingControls/RowControls/index.js +0 -9
- package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +4 -19
- package/dist/es2019/plugins/table/ui/common-styles.js +6 -5
- package/dist/es2019/plugins/table/ui/consts.js +4 -3
- package/dist/es2019/plugins/table/ui/ui-styles.js +0 -10
- package/dist/es2019/plugins/table/utils/analytics.js +0 -8
- package/dist/es2019/plugins/table/utils/collapse.js +3 -14
- package/dist/es2019/plugins/table/utils/column-controls.js +22 -37
- package/dist/es2019/plugins/table/utils/decoration.js +13 -51
- package/dist/es2019/plugins/table/utils/dom.js +3 -19
- package/dist/es2019/plugins/table/utils/nodes.js +2 -15
- package/dist/es2019/plugins/table/utils/paste.js +17 -22
- package/dist/es2019/plugins/table/utils/row-controls.js +12 -45
- package/dist/es2019/plugins/table/utils/selection.js +0 -21
- package/dist/es2019/plugins/table/utils/table.js +0 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/plugins/table/commands/clear.js +3 -8
- package/dist/esm/plugins/table/commands/collapse.js +0 -3
- package/dist/esm/plugins/table/commands/go-to-next-cell.js +6 -9
- package/dist/esm/plugins/table/commands/hover.js +8 -18
- package/dist/esm/plugins/table/commands/insert.js +16 -36
- package/dist/esm/plugins/table/commands/misc.js +39 -78
- package/dist/esm/plugins/table/commands/selection.js +21 -78
- package/dist/esm/plugins/table/commands/sort.js +2 -14
- package/dist/esm/plugins/table/commands/split-cell.js +3 -8
- package/dist/esm/plugins/table/commands/toggle.js +11 -20
- package/dist/esm/plugins/table/commands-with-analytics.js +50 -85
- package/dist/esm/plugins/table/create-plugin-config.js +0 -3
- package/dist/esm/plugins/table/event-handlers.js +58 -123
- package/dist/esm/plugins/table/handlers.js +11 -29
- package/dist/esm/plugins/table/index.js +47 -60
- package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +8 -44
- package/dist/esm/plugins/table/nodeviews/TableComponent.js +82 -181
- package/dist/esm/plugins/table/nodeviews/table.js +12 -52
- package/dist/esm/plugins/table/nodeviews/tableCell.js +15 -33
- package/dist/esm/plugins/table/nodeviews/update-overflow-shadows.js +3 -10
- package/dist/esm/plugins/table/pm-plugins/decorations/plugin.js +0 -5
- package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-controls.js +8 -19
- package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-resizing.js +8 -13
- package/dist/esm/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +1 -1
- package/dist/esm/plugins/table/pm-plugins/keymap.js +2 -3
- package/dist/esm/plugins/table/pm-plugins/main.js +20 -47
- package/dist/esm/plugins/table/pm-plugins/plugin-factory.js +25 -37
- package/dist/esm/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +8 -3
- package/dist/esm/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +3 -15
- package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +4 -9
- package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +58 -147
- package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin-state.js +15 -27
- package/dist/esm/plugins/table/pm-plugins/sticky-headers/util.js +0 -3
- package/dist/esm/plugins/table/pm-plugins/table-local-id.js +14 -37
- package/dist/esm/plugins/table/pm-plugins/table-resizing/commands.js +12 -24
- package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +16 -36
- package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin-factory.js +0 -6
- package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +5 -8
- package/dist/esm/plugins/table/pm-plugins/table-resizing/reducer.js +0 -7
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +0 -4
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/column-state.js +8 -12
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/content-width.js +5 -22
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/dom.js +4 -23
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +15 -23
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +15 -60
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +34 -55
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +12 -24
- package/dist/esm/plugins/table/reducer.js +0 -20
- package/dist/esm/plugins/table/toolbar.js +13 -63
- package/dist/esm/plugins/table/transforms/column-width.js +12 -32
- package/dist/esm/plugins/table/transforms/delete-columns.js +11 -62
- package/dist/esm/plugins/table/transforms/delete-rows.js +4 -30
- package/dist/esm/plugins/table/transforms/fix-tables.js +24 -49
- package/dist/esm/plugins/table/transforms/merge.js +16 -75
- package/dist/esm/plugins/table/transforms/metadata.js +3 -2
- package/dist/esm/plugins/table/transforms/replace-table.js +2 -6
- package/dist/esm/plugins/table/transforms/split.js +18 -29
- package/dist/esm/plugins/table/types.js +0 -6
- package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +10 -31
- package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +0 -2
- package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +46 -126
- package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +13 -24
- package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +0 -2
- package/dist/esm/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +5 -7
- package/dist/esm/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +3 -13
- package/dist/esm/plugins/table/ui/FloatingDeleteButton/index.js +19 -68
- package/dist/esm/plugins/table/ui/FloatingInsertButton/InsertButton.js +6 -14
- package/dist/esm/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +5 -18
- package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +25 -57
- package/dist/esm/plugins/table/ui/LayoutButton/index.js +16 -47
- package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/index.js +14 -35
- package/dist/esm/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +20 -38
- package/dist/esm/plugins/table/ui/TableFloatingControls/RowControls/index.js +10 -29
- package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +33 -62
- package/dist/esm/plugins/table/ui/common-styles.js +6 -7
- package/dist/esm/plugins/table/ui/consts.js +4 -3
- package/dist/esm/plugins/table/ui/ui-styles.js +0 -12
- package/dist/esm/plugins/table/utils/analytics.js +4 -13
- package/dist/esm/plugins/table/utils/collapse.js +4 -15
- package/dist/esm/plugins/table/utils/column-controls.js +25 -41
- package/dist/esm/plugins/table/utils/decoration.js +46 -88
- package/dist/esm/plugins/table/utils/dom.js +4 -20
- package/dist/esm/plugins/table/utils/nodes.js +5 -18
- package/dist/esm/plugins/table/utils/paste.js +24 -29
- package/dist/esm/plugins/table/utils/row-controls.js +6 -46
- package/dist/esm/plugins/table/utils/selection.js +3 -26
- package/dist/esm/plugins/table/utils/table.js +0 -2
- package/dist/esm/version.json +1 -1
- package/package.json +2 -2
- package/src/__tests__/visual-regression/cell-options-menu.ts +1 -12
|
@@ -29,9 +29,9 @@ export const getResizeState = ({
|
|
|
29
29
|
tableWidth,
|
|
30
30
|
overflow
|
|
31
31
|
};
|
|
32
|
-
}
|
|
33
|
-
|
|
32
|
+
}
|
|
34
33
|
|
|
34
|
+
// Getting the resize state from DOM
|
|
35
35
|
const colgroupChildren = insertColgroupFromNode(tableRef, table);
|
|
36
36
|
const cols = Array.from(colgroupChildren).map((_, index) => {
|
|
37
37
|
const cellsRefs = getCellsRefsInColumn(index, table, start, domAtPos);
|
|
@@ -47,8 +47,9 @@ export const getResizeState = ({
|
|
|
47
47
|
tableWidth,
|
|
48
48
|
overflow
|
|
49
49
|
};
|
|
50
|
-
};
|
|
50
|
+
};
|
|
51
51
|
|
|
52
|
+
// updates Colgroup DOM node with new widths
|
|
52
53
|
export const updateColgroup = (state, tableRef) => {
|
|
53
54
|
const cols = tableRef.querySelectorAll('col');
|
|
54
55
|
state.cols.filter(column => column && !!column.width) // if width is 0, we dont want to apply that.
|
|
@@ -56,72 +57,77 @@ export const updateColgroup = (state, tableRef) => {
|
|
|
56
57
|
if (cols[i]) {
|
|
57
58
|
cols[i].style.width = `${column.width}px`;
|
|
58
59
|
}
|
|
59
|
-
});
|
|
60
|
+
});
|
|
60
61
|
|
|
62
|
+
// colgroup has updated, reflect new widths in sticky header
|
|
61
63
|
syncStickyRowToTable(tableRef);
|
|
62
64
|
};
|
|
63
65
|
export const getTotalWidth = ({
|
|
64
66
|
cols
|
|
65
67
|
}) => {
|
|
66
68
|
return cols.reduce((totalWidth, col) => totalWidth + col.width, 0);
|
|
67
|
-
};
|
|
68
|
-
// difference in total columns widths vs table width happens due to the "Math.floor"
|
|
69
|
+
};
|
|
69
70
|
|
|
71
|
+
// adjust columns to take up the total width
|
|
72
|
+
// difference in total columns widths vs table width happens due to the "Math.floor"
|
|
70
73
|
export const adjustColumnsWidths = (resizeState, maxSize) => {
|
|
71
74
|
const totalWidth = getTotalWidth(resizeState);
|
|
72
75
|
const diff = maxSize - totalWidth;
|
|
73
|
-
|
|
74
76
|
if (diff > 0 || diff < 0 && Math.abs(diff) < tableCellMinWidth) {
|
|
75
77
|
let updated = false;
|
|
76
|
-
return {
|
|
78
|
+
return {
|
|
79
|
+
...resizeState,
|
|
77
80
|
cols: resizeState.cols.map(col => {
|
|
78
81
|
if (!updated && col.width + diff > col.minWidth) {
|
|
79
82
|
updated = true;
|
|
80
|
-
return {
|
|
83
|
+
return {
|
|
84
|
+
...col,
|
|
81
85
|
width: col.width + diff
|
|
82
86
|
};
|
|
83
87
|
}
|
|
84
|
-
|
|
85
88
|
return col;
|
|
86
89
|
})
|
|
87
90
|
};
|
|
88
91
|
}
|
|
89
|
-
|
|
90
92
|
return resizeState;
|
|
91
93
|
};
|
|
92
94
|
export const evenAllColumnsWidths = resizeState => {
|
|
93
95
|
const maxSize = getTotalWidth(resizeState);
|
|
94
96
|
const evenWidth = Math.floor(maxSize / resizeState.cols.length);
|
|
95
|
-
const cols = resizeState.cols.map(col => ({
|
|
97
|
+
const cols = resizeState.cols.map(col => ({
|
|
98
|
+
...col,
|
|
96
99
|
width: evenWidth
|
|
97
100
|
}));
|
|
98
|
-
return adjustColumnsWidths({
|
|
101
|
+
return adjustColumnsWidths({
|
|
102
|
+
...resizeState,
|
|
99
103
|
cols
|
|
100
104
|
}, maxSize);
|
|
101
105
|
};
|
|
102
|
-
|
|
103
106
|
const getSpace = (columns, start, end) => columns.slice(start, end).map(col => col.width).reduce((sum, width) => sum + width, 0);
|
|
104
|
-
|
|
105
107
|
export const evenSelectedColumnsWidths = (resizeState, rect) => {
|
|
106
108
|
const cols = resizeState.cols;
|
|
107
109
|
const selectedSpace = getSpace(cols, rect.left, rect.right);
|
|
108
110
|
const allSpace = getSpace(cols, 0, cols.length);
|
|
109
111
|
const allWidth = allSpace / cols.length;
|
|
110
|
-
const width = selectedSpace / (rect.right - rect.left);
|
|
111
|
-
// unset widths of all columns
|
|
112
|
+
const width = selectedSpace / (rect.right - rect.left);
|
|
112
113
|
|
|
114
|
+
// Result equals even distribution of all columns -
|
|
115
|
+
// unset widths of all columns
|
|
113
116
|
if (allWidth === width) {
|
|
114
|
-
return {
|
|
117
|
+
return {
|
|
118
|
+
...resizeState,
|
|
115
119
|
widths: cols.map(() => width),
|
|
116
|
-
cols: resizeState.cols.map(col => ({
|
|
120
|
+
cols: resizeState.cols.map(col => ({
|
|
121
|
+
...col,
|
|
117
122
|
width: 0
|
|
118
123
|
}))
|
|
119
124
|
};
|
|
120
125
|
}
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
return {
|
|
127
|
+
...resizeState,
|
|
123
128
|
widths: cols.map((col, i) => i >= rect.left && i < rect.right ? width : col.width),
|
|
124
|
-
cols: cols.map((col, i) => ({
|
|
129
|
+
cols: cols.map((col, i) => ({
|
|
130
|
+
...col,
|
|
125
131
|
width: i >= rect.left && i < rect.right ? width : col.width
|
|
126
132
|
}))
|
|
127
133
|
};
|
|
@@ -135,89 +141,90 @@ export const bulkColumnsResize = (resizeState, columnsIndexes, sourceColumnIndex
|
|
|
135
141
|
const cols = resizeState.cols.map(col => {
|
|
136
142
|
if (columnsIndexes.indexOf(col.index) > -1) {
|
|
137
143
|
const diff = col.width - sourceCol.width;
|
|
138
|
-
|
|
139
144
|
if (diff !== 0) {
|
|
140
145
|
widthsDiffs.push(diff);
|
|
141
146
|
}
|
|
142
|
-
|
|
143
|
-
|
|
147
|
+
return {
|
|
148
|
+
...col,
|
|
144
149
|
width: sourceCol.width
|
|
145
150
|
};
|
|
146
151
|
}
|
|
147
|
-
|
|
148
152
|
return col;
|
|
149
153
|
});
|
|
150
|
-
let newState = {
|
|
154
|
+
let newState = {
|
|
155
|
+
...resizeState,
|
|
151
156
|
cols: cols.map(col => {
|
|
152
|
-
if (columnsIndexes.indexOf(col.index) > -1 ||
|
|
157
|
+
if (columnsIndexes.indexOf(col.index) > -1 ||
|
|
158
|
+
// take from prev columns only if dragging the first handle to the left
|
|
153
159
|
columnsIndexes.indexOf(sourceColumnIndex) > -1 && col.index < colIndex) {
|
|
154
160
|
return col;
|
|
155
161
|
}
|
|
156
|
-
|
|
157
162
|
while (widthsDiffs.length) {
|
|
158
163
|
const diff = widthsDiffs.shift() || 0;
|
|
159
164
|
const column = seenColumns[col.index] || col;
|
|
160
165
|
const maybeWidth = column.width + diff;
|
|
161
|
-
|
|
162
166
|
if (maybeWidth > column.minWidth) {
|
|
163
|
-
seenColumns[column.index] = {
|
|
167
|
+
seenColumns[column.index] = {
|
|
168
|
+
...column,
|
|
164
169
|
width: maybeWidth
|
|
165
170
|
};
|
|
166
171
|
} else {
|
|
167
172
|
widthsDiffs.push(maybeWidth - column.minWidth);
|
|
168
|
-
seenColumns[column.index] = {
|
|
173
|
+
seenColumns[column.index] = {
|
|
174
|
+
...column,
|
|
169
175
|
width: column.minWidth
|
|
170
176
|
};
|
|
171
177
|
break;
|
|
172
178
|
}
|
|
173
179
|
}
|
|
174
|
-
|
|
175
180
|
return seenColumns[col.index] || col;
|
|
176
181
|
})
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
const minTableWidth = resizeState.maxSize; // new table widths after bulk resize
|
|
180
|
-
|
|
181
|
-
const newTotalWidth = getTotalWidth(newState); // when all columns are selected, what do we do when sum of columns widths is lower than min possible table widths?
|
|
182
|
+
};
|
|
182
183
|
|
|
184
|
+
// minimum possible table widths at the current layout
|
|
185
|
+
const minTableWidth = resizeState.maxSize;
|
|
186
|
+
// new table widths after bulk resize
|
|
187
|
+
const newTotalWidth = getTotalWidth(newState);
|
|
188
|
+
// when all columns are selected, what do we do when sum of columns widths is lower than min possible table widths?
|
|
183
189
|
if (columnsIndexes.length === resizeState.cols.length && newTotalWidth < minTableWidth) {
|
|
184
190
|
// table is not in overflow -> normal resize of a single column
|
|
185
191
|
if (currentTableWidth === minTableWidth) {
|
|
186
192
|
return resizeState;
|
|
187
|
-
}
|
|
193
|
+
}
|
|
194
|
+
// table is in overflow: keep the dragged column at its widths and evenly distribute columns
|
|
188
195
|
// to recover from overflow state
|
|
189
196
|
else {
|
|
190
197
|
const columnWidth = Math.floor((minTableWidth - sourceCol.width) / (newState.cols.length - 1));
|
|
191
|
-
newState = {
|
|
198
|
+
newState = {
|
|
199
|
+
...resizeState,
|
|
192
200
|
cols: newState.cols.map(col => {
|
|
193
201
|
if (col.index === sourceCol.index) {
|
|
194
202
|
return col;
|
|
195
203
|
}
|
|
196
|
-
|
|
197
|
-
|
|
204
|
+
return {
|
|
205
|
+
...col,
|
|
198
206
|
width: columnWidth
|
|
199
207
|
};
|
|
200
208
|
})
|
|
201
209
|
};
|
|
202
210
|
}
|
|
203
|
-
}
|
|
204
|
-
|
|
211
|
+
}
|
|
205
212
|
|
|
213
|
+
// fix total table widths by adding missing pixels to columns widths here and there
|
|
206
214
|
return adjustColumnsWidths(newState, resizeState.maxSize);
|
|
207
215
|
};
|
|
208
216
|
export const areColumnsEven = resizeState => {
|
|
209
217
|
const newResizeState = evenAllColumnsWidths(resizeState);
|
|
210
218
|
return newResizeState.cols.every((col, i) => col.width === resizeState.cols[i].width);
|
|
211
|
-
};
|
|
219
|
+
};
|
|
212
220
|
|
|
221
|
+
// Get the layout
|
|
213
222
|
export const normaliseTableLayout = input => {
|
|
214
223
|
switch (input) {
|
|
215
224
|
case 'wide':
|
|
216
225
|
return input;
|
|
217
|
-
|
|
218
226
|
case 'full-width':
|
|
219
227
|
return input;
|
|
220
|
-
|
|
221
228
|
default:
|
|
222
229
|
return 'default';
|
|
223
230
|
}
|
|
@@ -228,18 +235,14 @@ export const getNewResizeStateFromSelectedColumns = (rect, state, domAtPos, getE
|
|
|
228
235
|
totalColumnCount,
|
|
229
236
|
table
|
|
230
237
|
} = getSelectedTableInfo(state.selection);
|
|
231
|
-
|
|
232
238
|
if (!table) {
|
|
233
239
|
return;
|
|
234
240
|
}
|
|
235
|
-
|
|
236
241
|
const maybeTable = domAtPos(table.start).node;
|
|
237
242
|
const tableRef = maybeTable.closest('table');
|
|
238
|
-
|
|
239
243
|
if (!tableRef) {
|
|
240
244
|
return;
|
|
241
245
|
}
|
|
242
|
-
|
|
243
246
|
const layout = normaliseTableLayout(tableRef === null || tableRef === void 0 ? void 0 : tableRef.dataset.layout);
|
|
244
247
|
const maxSize = getTableMaxWidth({
|
|
245
248
|
table: table.node,
|
|
@@ -11,6 +11,7 @@ export const scale = (tableRef, options, domAtPos) => {
|
|
|
11
11
|
* isBreakoutEnabled === true -> default center aligned
|
|
12
12
|
* isBreakoutEnabled === false -> full width mode
|
|
13
13
|
*/
|
|
14
|
+
|
|
14
15
|
const {
|
|
15
16
|
node,
|
|
16
17
|
containerWidth,
|
|
@@ -27,14 +28,13 @@ export const scale = (tableRef, options, domAtPos) => {
|
|
|
27
28
|
const previousMaxSize = getLayoutSize(prevNode.attrs.layout, previousContainerWidth, {
|
|
28
29
|
isBreakoutEnabled
|
|
29
30
|
});
|
|
30
|
-
let newWidth = maxSize;
|
|
31
|
+
let newWidth = maxSize;
|
|
31
32
|
|
|
33
|
+
// adjust table width if layout is updated
|
|
32
34
|
const hasOverflow = prevTableWidth > previousMaxSize;
|
|
33
|
-
|
|
34
35
|
if (layoutChanged && hasOverflow) {
|
|
35
36
|
// No keep overflow if the old content can be in the new size
|
|
36
37
|
const canFitInNewSize = prevTableWidth < maxSize;
|
|
37
|
-
|
|
38
38
|
if (canFitInNewSize) {
|
|
39
39
|
newWidth = maxSize;
|
|
40
40
|
} else {
|
|
@@ -43,11 +43,9 @@ export const scale = (tableRef, options, domAtPos) => {
|
|
|
43
43
|
newWidth = Math.floor(newWidth * overflowScale);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
|
|
47
46
|
if (node.attrs.isNumberColumnEnabled) {
|
|
48
47
|
newWidth -= akEditorTableNumberColumnWidth;
|
|
49
48
|
}
|
|
50
|
-
|
|
51
49
|
const resizeState = getResizeState({
|
|
52
50
|
minWidth: tableCellMinWidth,
|
|
53
51
|
maxSize,
|
|
@@ -67,17 +65,17 @@ export const scaleWithParent = (tableRef, parentWidth, table, start, domAtPos) =
|
|
|
67
65
|
start,
|
|
68
66
|
domAtPos
|
|
69
67
|
});
|
|
70
|
-
|
|
71
68
|
if (table.attrs.isNumberColumnEnabled) {
|
|
72
69
|
parentWidth -= akEditorTableNumberColumnWidth;
|
|
73
70
|
}
|
|
74
|
-
|
|
75
71
|
return scaleTableTo(resizeState, Math.floor(parentWidth));
|
|
76
|
-
};
|
|
72
|
+
};
|
|
77
73
|
|
|
74
|
+
// Scales the table to a given size and updates its colgroup DOM node
|
|
78
75
|
export function scaleTableTo(state, maxSize) {
|
|
79
76
|
const scaleFactor = maxSize / getTotalWidth(state);
|
|
80
|
-
let newState = {
|
|
77
|
+
let newState = {
|
|
78
|
+
...state,
|
|
81
79
|
maxSize,
|
|
82
80
|
cols: state.cols.map(col => {
|
|
83
81
|
const {
|
|
@@ -85,21 +83,18 @@ export function scaleTableTo(state, maxSize) {
|
|
|
85
83
|
width
|
|
86
84
|
} = col;
|
|
87
85
|
let newColWidth = Math.floor(width * scaleFactor);
|
|
88
|
-
|
|
89
86
|
if (newColWidth < minWidth) {
|
|
90
87
|
newColWidth = minWidth;
|
|
91
88
|
}
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
return {
|
|
90
|
+
...col,
|
|
94
91
|
width: newColWidth
|
|
95
92
|
};
|
|
96
93
|
})
|
|
97
94
|
};
|
|
98
95
|
let newTotalWidth = getTotalWidth(newState);
|
|
99
|
-
|
|
100
96
|
if (newTotalWidth > maxSize) {
|
|
101
97
|
newState = reduceSpace(newState, newTotalWidth - maxSize);
|
|
102
98
|
}
|
|
103
|
-
|
|
104
99
|
return adjustColumnsWidths(newState, maxSize);
|
|
105
100
|
}
|
|
@@ -2,91 +2,87 @@ import { defaultTableSelection } from './pm-plugins/default-table-selection';
|
|
|
2
2
|
export default ((pluginState, action) => {
|
|
3
3
|
switch (action.type) {
|
|
4
4
|
case 'TOGGLE_HEADER_COLUMN':
|
|
5
|
-
return {
|
|
5
|
+
return {
|
|
6
|
+
...pluginState,
|
|
6
7
|
isHeaderColumnEnabled: !pluginState.isHeaderColumnEnabled
|
|
7
8
|
};
|
|
8
|
-
|
|
9
9
|
case 'TOGGLE_HEADER_ROW':
|
|
10
|
-
return {
|
|
10
|
+
return {
|
|
11
|
+
...pluginState,
|
|
11
12
|
isHeaderRowEnabled: !pluginState.isHeaderRowEnabled
|
|
12
13
|
};
|
|
13
|
-
|
|
14
14
|
case 'CLEAR_HOVER_SELECTION':
|
|
15
|
-
return {
|
|
15
|
+
return {
|
|
16
|
+
...pluginState,
|
|
16
17
|
...action.data,
|
|
17
18
|
...defaultTableSelection
|
|
18
19
|
};
|
|
19
|
-
|
|
20
20
|
case 'SELECT_COLUMN':
|
|
21
|
-
return {
|
|
21
|
+
return {
|
|
22
|
+
...pluginState,
|
|
22
23
|
...action.data,
|
|
23
24
|
isContextualMenuOpen: false
|
|
24
25
|
};
|
|
25
|
-
|
|
26
26
|
case 'SET_TARGET_CELL_POSITION':
|
|
27
|
-
return {
|
|
27
|
+
return {
|
|
28
|
+
...pluginState,
|
|
28
29
|
...action.data,
|
|
29
30
|
isContextualMenuOpen: false
|
|
30
31
|
};
|
|
31
|
-
|
|
32
32
|
case 'SET_TABLE_LAYOUT':
|
|
33
|
-
return {
|
|
33
|
+
return {
|
|
34
|
+
...pluginState,
|
|
34
35
|
...action.data
|
|
35
36
|
};
|
|
36
|
-
|
|
37
37
|
case 'TOGGLE_CONTEXTUAL_MENU':
|
|
38
|
-
return {
|
|
38
|
+
return {
|
|
39
|
+
...pluginState,
|
|
39
40
|
isContextualMenuOpen: !pluginState.isContextualMenuOpen
|
|
40
41
|
};
|
|
41
|
-
|
|
42
42
|
case 'SHOW_INSERT_ROW_BUTTON':
|
|
43
43
|
if (action.data.insertRowButtonIndex === pluginState.insertRowButtonIndex) {
|
|
44
44
|
return pluginState;
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
return {
|
|
47
|
+
...pluginState,
|
|
48
48
|
...action.data,
|
|
49
49
|
insertColumnButtonIndex: undefined // We need to assure that column is not shown
|
|
50
|
-
|
|
51
50
|
};
|
|
52
51
|
|
|
53
52
|
case 'SHOW_INSERT_COLUMN_BUTTON':
|
|
54
53
|
if (action.data.insertColumnButtonIndex === pluginState.insertColumnButtonIndex) {
|
|
55
54
|
return pluginState;
|
|
56
55
|
}
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
return {
|
|
57
|
+
...pluginState,
|
|
59
58
|
...action.data,
|
|
60
59
|
insertRowButtonIndex: undefined // We need to assure that row is not shown
|
|
61
|
-
|
|
62
60
|
};
|
|
63
61
|
|
|
64
62
|
case 'HIDE_INSERT_COLUMN_OR_ROW_BUTTON':
|
|
65
63
|
if (pluginState.insertRowButtonIndex !== undefined || pluginState.insertColumnButtonIndex !== undefined) {
|
|
66
|
-
return {
|
|
64
|
+
return {
|
|
65
|
+
...pluginState,
|
|
67
66
|
insertRowButtonIndex: undefined,
|
|
68
67
|
insertColumnButtonIndex: undefined
|
|
69
68
|
};
|
|
70
69
|
}
|
|
71
|
-
|
|
72
70
|
return pluginState;
|
|
73
|
-
|
|
74
71
|
case 'HIDE_RESIZE_HANDLE_LINE':
|
|
75
|
-
return {
|
|
72
|
+
return {
|
|
73
|
+
...pluginState,
|
|
76
74
|
...action.data,
|
|
77
75
|
resizeHandleColumnIndex: undefined,
|
|
78
76
|
resizeHandleRowIndex: undefined
|
|
79
77
|
};
|
|
80
|
-
|
|
81
78
|
case 'ADD_RESIZE_HANDLE_DECORATIONS':
|
|
82
79
|
if (action.data.resizeHandleColumnIndex === pluginState.resizeHandleColumnIndex && action.data.resizeHandleRowIndex === pluginState.resizeHandleRowIndex) {
|
|
83
80
|
return pluginState;
|
|
84
81
|
}
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
return {
|
|
83
|
+
...pluginState,
|
|
87
84
|
...action.data
|
|
88
85
|
};
|
|
89
|
-
|
|
90
86
|
case 'SET_TABLE_REF':
|
|
91
87
|
case 'HOVER_ROWS':
|
|
92
88
|
case 'HOVER_COLUMNS':
|
|
@@ -94,10 +90,10 @@ export default ((pluginState, action) => {
|
|
|
94
90
|
case 'HOVER_CELLS':
|
|
95
91
|
case 'SHOW_RESIZE_HANDLE_LINE':
|
|
96
92
|
case 'SET_EDITOR_FOCUS':
|
|
97
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
...pluginState,
|
|
98
95
|
...action.data
|
|
99
96
|
};
|
|
100
|
-
|
|
101
97
|
default:
|
|
102
98
|
return pluginState;
|
|
103
99
|
}
|