@atlaskit/editor-plugin-table 8.4.11 → 8.4.13
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 +17 -0
- package/dist/cjs/nodeviews/ExternalDropTargets.js +6 -3
- package/dist/cjs/nodeviews/TableCell.js +5 -0
- package/dist/cjs/nodeviews/TableComponent.js +92 -29
- package/dist/cjs/nodeviews/TableComponentWithSharedState.js +7 -1
- package/dist/cjs/nodeviews/TableContainer.js +16 -6
- package/dist/cjs/nodeviews/TableNodeViewBase.js +4 -0
- package/dist/cjs/nodeviews/TableResizer.js +44 -15
- package/dist/cjs/nodeviews/TableRow.js +45 -1
- package/dist/cjs/nodeviews/TableStickyScrollbar.js +21 -2
- package/dist/cjs/nodeviews/lazy-node-views.js +16 -4
- package/dist/cjs/nodeviews/table.js +53 -18
- package/dist/cjs/pm-plugins/commands/clear.js +6 -0
- package/dist/cjs/pm-plugins/commands/column-resize.js +26 -17
- package/dist/cjs/pm-plugins/commands/commands-with-analytics.js +39 -26
- package/dist/cjs/pm-plugins/commands/go-to-next-cell.js +2 -0
- package/dist/cjs/pm-plugins/commands/hover.js +17 -13
- package/dist/cjs/pm-plugins/commands/insert.js +27 -10
- package/dist/cjs/pm-plugins/commands/misc.js +29 -9
- package/dist/cjs/pm-plugins/commands/selection.js +4 -0
- package/dist/cjs/pm-plugins/commands/sort.js +10 -1
- package/dist/cjs/pm-plugins/commands/toggle.js +2 -0
- package/dist/cjs/pm-plugins/decorations/plugin.js +9 -4
- package/dist/cjs/pm-plugins/decorations/utils/column-resizing.js +4 -1
- package/dist/cjs/pm-plugins/drag-and-drop/commands-with-analytics.js +19 -10
- package/dist/cjs/pm-plugins/drag-and-drop/commands.js +16 -7
- package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +21 -8
- package/dist/cjs/pm-plugins/handlers.js +2 -2
- package/dist/cjs/pm-plugins/keymap.js +103 -24
- package/dist/cjs/pm-plugins/main.js +22 -11
- package/dist/cjs/pm-plugins/table-resizing/commands.js +7 -6
- package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +39 -20
- package/dist/cjs/pm-plugins/table-resizing/plugin.js +4 -2
- package/dist/cjs/pm-plugins/table-resizing/utils/colgroup.js +19 -1
- package/dist/cjs/pm-plugins/table-resizing/utils/column-state.js +6 -1
- package/dist/cjs/pm-plugins/table-resizing/utils/content-width.js +17 -0
- package/dist/cjs/pm-plugins/table-resizing/utils/dom.js +4 -0
- package/dist/cjs/pm-plugins/table-resizing/utils/misc.js +2 -0
- package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +8 -1
- package/dist/cjs/pm-plugins/table-resizing/utils/resize-logic.js +10 -2
- package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +6 -3
- package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +4 -4
- package/dist/cjs/pm-plugins/table-selection-keymap.js +12 -0
- package/dist/cjs/pm-plugins/table-width.js +9 -4
- package/dist/cjs/pm-plugins/transforms/column-width.js +8 -5
- package/dist/cjs/pm-plugins/transforms/delete-columns.js +2 -0
- package/dist/cjs/pm-plugins/transforms/fix-tables.js +24 -8
- package/dist/cjs/pm-plugins/transforms/merge.js +7 -0
- package/dist/cjs/pm-plugins/transforms/replace-table.js +6 -3
- package/dist/cjs/pm-plugins/transforms/split.js +6 -1
- package/dist/cjs/pm-plugins/utils/alignment.js +4 -1
- package/dist/cjs/pm-plugins/utils/analytics.js +3 -3
- package/dist/cjs/pm-plugins/utils/column-controls.js +4 -0
- package/dist/cjs/pm-plugins/utils/create.js +2 -2
- package/dist/cjs/pm-plugins/utils/decoration.js +24 -6
- package/dist/cjs/pm-plugins/utils/dom.js +4 -0
- package/dist/cjs/pm-plugins/utils/drag-menu.js +19 -7
- package/dist/cjs/pm-plugins/utils/nodes.js +3 -0
- package/dist/cjs/pm-plugins/utils/paste.js +4 -1
- package/dist/cjs/pm-plugins/utils/row-controls.js +4 -1
- package/dist/cjs/tablePlugin.js +24 -18
- package/dist/cjs/ui/ColumnResizeWidget/index.js +2 -0
- package/dist/cjs/ui/DragHandle/HandleIconComponent.js +5 -3
- package/dist/cjs/ui/DragHandle/index.js +14 -7
- package/dist/cjs/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +8 -1
- package/dist/cjs/ui/FloatingContextualButton/FixedButton.js +4 -0
- package/dist/cjs/ui/FloatingContextualButton/index.js +7 -1
- package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +32 -15
- package/dist/cjs/ui/FloatingContextualMenu/index.js +19 -4
- package/dist/cjs/ui/FloatingDeleteButton/index.js +27 -5
- package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +19 -7
- package/dist/cjs/ui/FloatingDragMenu/DropdownMenu.js +15 -2
- package/dist/cjs/ui/FloatingDragMenu/index.js +4 -1
- package/dist/cjs/ui/FloatingInsertButton/InsertButton.js +4 -0
- package/dist/cjs/ui/FloatingInsertButton/getPopupOptions.js +6 -0
- package/dist/cjs/ui/FloatingInsertButton/index.js +27 -3
- package/dist/cjs/ui/TableFloatingColumnControls/ColumnControls/index.js +30 -8
- package/dist/cjs/ui/TableFloatingColumnControls/ColumnDropTargets/index.js +4 -1
- package/dist/cjs/ui/TableFloatingColumnControls/index.js +9 -5
- package/dist/cjs/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +2 -0
- package/dist/cjs/ui/TableFloatingControls/FloatingControlsWithSelection.js +4 -4
- package/dist/cjs/ui/TableFloatingControls/NumberColumn/index.js +8 -2
- package/dist/cjs/ui/TableFloatingControls/RowControls/ClassicControls.js +9 -5
- package/dist/cjs/ui/TableFloatingControls/RowControls/DragControls.js +68 -41
- package/dist/cjs/ui/TableFloatingControls/index.js +19 -8
- package/dist/cjs/ui/common-styles.js +1 -1
- package/dist/cjs/ui/event-handlers.js +59 -32
- package/dist/cjs/ui/icons/SortingIconWrapper.js +2 -0
- package/dist/cjs/ui/toolbar.js +42 -16
- package/dist/es2019/nodeviews/ExternalDropTargets.js +5 -2
- package/dist/es2019/nodeviews/TableCell.js +5 -0
- package/dist/es2019/nodeviews/TableComponent.js +77 -13
- package/dist/es2019/nodeviews/TableComponentWithSharedState.js +8 -1
- package/dist/es2019/nodeviews/TableContainer.js +14 -4
- package/dist/es2019/nodeviews/TableNodeViewBase.js +4 -0
- package/dist/es2019/nodeviews/TableResizer.js +33 -4
- package/dist/es2019/nodeviews/TableRow.js +45 -1
- package/dist/es2019/nodeviews/TableStickyScrollbar.js +20 -2
- package/dist/es2019/nodeviews/lazy-node-views.js +16 -4
- package/dist/es2019/nodeviews/table.js +47 -12
- package/dist/es2019/pm-plugins/commands/clear.js +6 -0
- package/dist/es2019/pm-plugins/commands/column-resize.js +16 -7
- package/dist/es2019/pm-plugins/commands/commands-with-analytics.js +28 -9
- package/dist/es2019/pm-plugins/commands/delete.js +4 -1
- package/dist/es2019/pm-plugins/commands/go-to-next-cell.js +2 -0
- package/dist/es2019/pm-plugins/commands/hover.js +5 -1
- package/dist/es2019/pm-plugins/commands/insert.js +26 -6
- package/dist/es2019/pm-plugins/commands/misc.js +25 -5
- package/dist/es2019/pm-plugins/commands/selection.js +4 -0
- package/dist/es2019/pm-plugins/commands/sort.js +10 -1
- package/dist/es2019/pm-plugins/commands/toggle.js +2 -0
- package/dist/es2019/pm-plugins/decorations/plugin.js +7 -2
- package/dist/es2019/pm-plugins/decorations/utils/column-resizing.js +4 -1
- package/dist/es2019/pm-plugins/drag-and-drop/commands-with-analytics.js +14 -5
- package/dist/es2019/pm-plugins/drag-and-drop/commands.js +17 -5
- package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +21 -5
- package/dist/es2019/pm-plugins/handlers.js +1 -1
- package/dist/es2019/pm-plugins/keymap.js +104 -24
- package/dist/es2019/pm-plugins/main.js +16 -5
- package/dist/es2019/pm-plugins/table-resizing/commands.js +3 -2
- package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +25 -6
- package/dist/es2019/pm-plugins/table-resizing/plugin.js +4 -1
- package/dist/es2019/pm-plugins/table-resizing/utils/colgroup.js +23 -2
- package/dist/es2019/pm-plugins/table-resizing/utils/column-state.js +6 -1
- package/dist/es2019/pm-plugins/table-resizing/utils/content-width.js +17 -0
- package/dist/es2019/pm-plugins/table-resizing/utils/dom.js +4 -0
- package/dist/es2019/pm-plugins/table-resizing/utils/misc.js +2 -0
- package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +12 -2
- package/dist/es2019/pm-plugins/table-resizing/utils/resize-logic.js +10 -2
- package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +9 -3
- package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +18 -6
- package/dist/es2019/pm-plugins/table-selection-keymap.js +12 -0
- package/dist/es2019/pm-plugins/table-width.js +7 -2
- package/dist/es2019/pm-plugins/transforms/column-width.js +12 -5
- package/dist/es2019/pm-plugins/transforms/delete-columns.js +6 -1
- package/dist/es2019/pm-plugins/transforms/fix-tables.js +20 -4
- package/dist/es2019/pm-plugins/transforms/merge.js +7 -0
- package/dist/es2019/pm-plugins/transforms/replace-table.js +5 -2
- package/dist/es2019/pm-plugins/transforms/split.js +6 -1
- package/dist/es2019/pm-plugins/utils/alignment.js +4 -1
- package/dist/es2019/pm-plugins/utils/analytics.js +2 -2
- package/dist/es2019/pm-plugins/utils/column-controls.js +4 -0
- package/dist/es2019/pm-plugins/utils/create.js +1 -1
- package/dist/es2019/pm-plugins/utils/decoration.js +24 -6
- package/dist/es2019/pm-plugins/utils/dom.js +4 -0
- package/dist/es2019/pm-plugins/utils/drag-menu.js +19 -4
- package/dist/es2019/pm-plugins/utils/nodes.js +3 -0
- package/dist/es2019/pm-plugins/utils/paste.js +8 -2
- package/dist/es2019/pm-plugins/utils/row-controls.js +4 -1
- package/dist/es2019/pm-plugins/utils/snapping.js +4 -1
- package/dist/es2019/tablePlugin.js +13 -4
- package/dist/es2019/ui/ColumnResizeWidget/index.js +2 -0
- package/dist/es2019/ui/DragHandle/HandleIconComponent.js +3 -1
- package/dist/es2019/ui/DragHandle/index.js +10 -3
- package/dist/es2019/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +8 -1
- package/dist/es2019/ui/FloatingContextualButton/FixedButton.js +4 -0
- package/dist/es2019/ui/FloatingContextualButton/index.js +7 -1
- package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +23 -6
- package/dist/es2019/ui/FloatingContextualMenu/index.js +19 -4
- package/dist/es2019/ui/FloatingDeleteButton/index.js +23 -1
- package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +15 -3
- package/dist/es2019/ui/FloatingDragMenu/DropdownMenu.js +15 -2
- package/dist/es2019/ui/FloatingDragMenu/index.js +4 -1
- package/dist/es2019/ui/FloatingInsertButton/InsertButton.js +4 -0
- package/dist/es2019/ui/FloatingInsertButton/getPopupOptions.js +6 -0
- package/dist/es2019/ui/FloatingInsertButton/index.js +26 -2
- package/dist/es2019/ui/TableFloatingColumnControls/ColumnControls/index.js +28 -6
- package/dist/es2019/ui/TableFloatingColumnControls/ColumnDropTargets/index.js +4 -1
- package/dist/es2019/ui/TableFloatingColumnControls/index.js +7 -2
- package/dist/es2019/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +2 -0
- package/dist/es2019/ui/TableFloatingControls/FloatingControlsWithSelection.js +2 -2
- package/dist/es2019/ui/TableFloatingControls/NumberColumn/index.js +7 -1
- package/dist/es2019/ui/TableFloatingControls/RowControls/ClassicControls.js +7 -2
- package/dist/es2019/ui/TableFloatingControls/RowControls/DragControls.js +32 -6
- package/dist/es2019/ui/TableFloatingControls/index.js +14 -3
- package/dist/es2019/ui/common-styles.js +7 -0
- package/dist/es2019/ui/event-handlers.js +35 -5
- package/dist/es2019/ui/icons/SortingIconWrapper.js +2 -0
- package/dist/es2019/ui/toolbar.js +58 -14
- package/dist/esm/nodeviews/ExternalDropTargets.js +5 -2
- package/dist/esm/nodeviews/TableCell.js +5 -0
- package/dist/esm/nodeviews/TableComponent.js +75 -11
- package/dist/esm/nodeviews/TableComponentWithSharedState.js +8 -1
- package/dist/esm/nodeviews/TableContainer.js +14 -4
- package/dist/esm/nodeviews/TableNodeViewBase.js +4 -0
- package/dist/esm/nodeviews/TableResizer.js +33 -4
- package/dist/esm/nodeviews/TableRow.js +45 -1
- package/dist/esm/nodeviews/TableStickyScrollbar.js +21 -2
- package/dist/esm/nodeviews/lazy-node-views.js +16 -4
- package/dist/esm/nodeviews/table.js +47 -12
- package/dist/esm/pm-plugins/commands/clear.js +6 -0
- package/dist/esm/pm-plugins/commands/column-resize.js +16 -7
- package/dist/esm/pm-plugins/commands/commands-with-analytics.js +20 -7
- package/dist/esm/pm-plugins/commands/go-to-next-cell.js +2 -0
- package/dist/esm/pm-plugins/commands/hover.js +5 -1
- package/dist/esm/pm-plugins/commands/insert.js +22 -5
- package/dist/esm/pm-plugins/commands/misc.js +25 -5
- package/dist/esm/pm-plugins/commands/selection.js +4 -0
- package/dist/esm/pm-plugins/commands/sort.js +10 -1
- package/dist/esm/pm-plugins/commands/toggle.js +2 -0
- package/dist/esm/pm-plugins/decorations/plugin.js +7 -2
- package/dist/esm/pm-plugins/decorations/utils/column-resizing.js +4 -1
- package/dist/esm/pm-plugins/drag-and-drop/commands-with-analytics.js +14 -5
- package/dist/esm/pm-plugins/drag-and-drop/commands.js +13 -4
- package/dist/esm/pm-plugins/drag-and-drop/plugin.js +17 -4
- package/dist/esm/pm-plugins/handlers.js +1 -1
- package/dist/esm/pm-plugins/keymap.js +104 -24
- package/dist/esm/pm-plugins/main.js +16 -5
- package/dist/esm/pm-plugins/table-resizing/commands.js +3 -2
- package/dist/esm/pm-plugins/table-resizing/event-handlers.js +25 -6
- package/dist/esm/pm-plugins/table-resizing/plugin.js +4 -1
- package/dist/esm/pm-plugins/table-resizing/utils/colgroup.js +19 -1
- package/dist/esm/pm-plugins/table-resizing/utils/column-state.js +6 -1
- package/dist/esm/pm-plugins/table-resizing/utils/content-width.js +17 -0
- package/dist/esm/pm-plugins/table-resizing/utils/dom.js +4 -0
- package/dist/esm/pm-plugins/table-resizing/utils/misc.js +2 -0
- package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +8 -1
- package/dist/esm/pm-plugins/table-resizing/utils/resize-logic.js +10 -2
- package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +5 -2
- package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +2 -2
- package/dist/esm/pm-plugins/table-selection-keymap.js +12 -0
- package/dist/esm/pm-plugins/table-width.js +7 -2
- package/dist/esm/pm-plugins/transforms/column-width.js +6 -4
- package/dist/esm/pm-plugins/transforms/delete-columns.js +2 -0
- package/dist/esm/pm-plugins/transforms/fix-tables.js +20 -4
- package/dist/esm/pm-plugins/transforms/merge.js +7 -0
- package/dist/esm/pm-plugins/transforms/replace-table.js +5 -2
- package/dist/esm/pm-plugins/transforms/split.js +6 -1
- package/dist/esm/pm-plugins/utils/alignment.js +4 -1
- package/dist/esm/pm-plugins/utils/analytics.js +2 -2
- package/dist/esm/pm-plugins/utils/column-controls.js +4 -0
- package/dist/esm/pm-plugins/utils/create.js +1 -1
- package/dist/esm/pm-plugins/utils/decoration.js +24 -6
- package/dist/esm/pm-plugins/utils/dom.js +4 -0
- package/dist/esm/pm-plugins/utils/drag-menu.js +15 -3
- package/dist/esm/pm-plugins/utils/nodes.js +3 -0
- package/dist/esm/pm-plugins/utils/paste.js +4 -1
- package/dist/esm/pm-plugins/utils/row-controls.js +4 -1
- package/dist/esm/tablePlugin.js +11 -4
- package/dist/esm/ui/ColumnResizeWidget/index.js +2 -0
- package/dist/esm/ui/DragHandle/HandleIconComponent.js +3 -1
- package/dist/esm/ui/DragHandle/index.js +10 -3
- package/dist/esm/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.js +8 -1
- package/dist/esm/ui/FloatingContextualButton/FixedButton.js +4 -0
- package/dist/esm/ui/FloatingContextualButton/index.js +7 -1
- package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +23 -6
- package/dist/esm/ui/FloatingContextualMenu/index.js +19 -4
- package/dist/esm/ui/FloatingDeleteButton/index.js +23 -1
- package/dist/esm/ui/FloatingDragMenu/DragMenu.js +15 -3
- package/dist/esm/ui/FloatingDragMenu/DropdownMenu.js +15 -2
- package/dist/esm/ui/FloatingDragMenu/index.js +4 -1
- package/dist/esm/ui/FloatingInsertButton/InsertButton.js +4 -0
- package/dist/esm/ui/FloatingInsertButton/getPopupOptions.js +6 -0
- package/dist/esm/ui/FloatingInsertButton/index.js +26 -2
- package/dist/esm/ui/TableFloatingColumnControls/ColumnControls/index.js +28 -6
- package/dist/esm/ui/TableFloatingColumnControls/ColumnDropTargets/index.js +4 -1
- package/dist/esm/ui/TableFloatingColumnControls/index.js +6 -2
- package/dist/esm/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +2 -0
- package/dist/esm/ui/TableFloatingControls/FloatingControlsWithSelection.js +2 -2
- package/dist/esm/ui/TableFloatingControls/NumberColumn/index.js +7 -1
- package/dist/esm/ui/TableFloatingControls/RowControls/ClassicControls.js +6 -2
- package/dist/esm/ui/TableFloatingControls/RowControls/DragControls.js +65 -38
- package/dist/esm/ui/TableFloatingControls/index.js +14 -3
- package/dist/esm/ui/common-styles.js +1 -1
- package/dist/esm/ui/event-handlers.js +31 -4
- package/dist/esm/ui/icons/SortingIconWrapper.js +2 -0
- package/dist/esm/ui/toolbar.js +34 -8
- package/dist/types/pm-plugins/commands/commands-with-analytics.d.ts +1 -1
- package/dist/types/pm-plugins/table-resizing/commands.d.ts +1 -1
- package/dist/types/pm-plugins/transforms/column-width.d.ts +1 -1
- package/dist/types/pm-plugins/utils/collapse.d.ts +2 -1
- package/dist/types/ui/FloatingContextualButton/FixedButton.d.ts +1 -1
- package/dist/types/ui/FloatingContextualButton/index.d.ts +1 -1
- package/dist/types/ui/FloatingDeleteButton/index.d.ts +1 -1
- package/dist/types/ui/FloatingDragMenu/index.d.ts +1 -1
- package/dist/types/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +2 -2
- package/dist/types/ui/TableFloatingColumnControls/index.d.ts +1 -1
- package/dist/types/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +4 -4
- package/dist/types/ui/TableFloatingControls/index.d.ts +3 -3
- package/dist/types-ts4.5/pm-plugins/commands/commands-with-analytics.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/table-resizing/commands.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/transforms/column-width.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/utils/collapse.d.ts +2 -1
- package/dist/types-ts4.5/ui/FloatingContextualButton/FixedButton.d.ts +1 -1
- package/dist/types-ts4.5/ui/FloatingContextualButton/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/FloatingDeleteButton/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/FloatingDragMenu/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +2 -2
- package/dist/types-ts4.5/ui/TableFloatingColumnControls/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +4 -4
- package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +3 -3
- package/package.json +4 -4
- package/src/nodeviews/ExternalDropTargets.tsx +3 -1
- package/src/nodeviews/TableCell.ts +4 -0
- package/src/nodeviews/TableComponent.tsx +63 -18
- package/src/nodeviews/TableComponentWithSharedState.tsx +4 -0
- package/src/nodeviews/TableContainer.tsx +7 -1
- package/src/nodeviews/TableNodeViewBase.ts +4 -0
- package/src/nodeviews/TableResizer.tsx +27 -4
- package/src/nodeviews/TableRow.ts +41 -1
- package/src/nodeviews/TableStickyScrollbar.ts +14 -0
- package/src/nodeviews/__mocks__/OverflowShadowsObserver.ts +2 -0
- package/src/nodeviews/__mocks__/OverridableMock.ts +6 -0
- package/src/nodeviews/lazy-node-views.ts +8 -0
- package/src/nodeviews/table.tsx +30 -4
- package/src/pm-plugins/commands/clear.ts +6 -0
- package/src/pm-plugins/commands/column-resize.ts +12 -9
- package/src/pm-plugins/commands/commands-with-analytics.ts +21 -4
- package/src/pm-plugins/commands/delete.ts +2 -0
- package/src/pm-plugins/commands/go-to-next-cell.ts +2 -0
- package/src/pm-plugins/commands/hover.ts +7 -5
- package/src/pm-plugins/commands/insert.ts +15 -1
- package/src/pm-plugins/commands/misc.ts +24 -3
- package/src/pm-plugins/commands/selection.ts +4 -0
- package/src/pm-plugins/commands/sort.ts +9 -1
- package/src/pm-plugins/commands/toggle.ts +2 -0
- package/src/pm-plugins/decorations/plugin.ts +5 -1
- package/src/pm-plugins/decorations/utils/column-resizing.ts +2 -0
- package/src/pm-plugins/drag-and-drop/commands-with-analytics.ts +8 -2
- package/src/pm-plugins/drag-and-drop/commands.ts +9 -1
- package/src/pm-plugins/drag-and-drop/plugin.ts +17 -2
- package/src/pm-plugins/handlers.ts +1 -1
- package/src/pm-plugins/keymap.ts +54 -0
- package/src/pm-plugins/main.ts +12 -5
- package/src/pm-plugins/table-resizing/commands.ts +4 -3
- package/src/pm-plugins/table-resizing/event-handlers.ts +24 -10
- package/src/pm-plugins/table-resizing/plugin.ts +3 -1
- package/src/pm-plugins/table-resizing/utils/colgroup.ts +17 -1
- package/src/pm-plugins/table-resizing/utils/column-state.ts +4 -0
- package/src/pm-plugins/table-resizing/utils/content-width.ts +14 -0
- package/src/pm-plugins/table-resizing/utils/dom.ts +4 -0
- package/src/pm-plugins/table-resizing/utils/misc.ts +2 -0
- package/src/pm-plugins/table-resizing/utils/resize-column.ts +9 -1
- package/src/pm-plugins/table-resizing/utils/resize-logic.ts +6 -0
- package/src/pm-plugins/table-resizing/utils/resize-state.ts +5 -1
- package/src/pm-plugins/table-resizing/utils/scale-table.ts +10 -2
- package/src/pm-plugins/table-selection-keymap.ts +8 -0
- package/src/pm-plugins/table-width.ts +5 -1
- package/src/pm-plugins/transforms/column-width.ts +9 -7
- package/src/pm-plugins/transforms/delete-columns.ts +4 -0
- package/src/pm-plugins/transforms/fix-tables.ts +13 -6
- package/src/pm-plugins/transforms/merge.ts +6 -0
- package/src/pm-plugins/transforms/replace-table.ts +3 -1
- package/src/pm-plugins/transforms/split.ts +4 -0
- package/src/pm-plugins/utils/alignment.ts +2 -0
- package/src/pm-plugins/utils/analytics.ts +2 -2
- package/src/pm-plugins/utils/collapse.ts +3 -4
- package/src/pm-plugins/utils/column-controls.ts +4 -0
- package/src/pm-plugins/utils/create.ts +1 -1
- package/src/pm-plugins/utils/decoration.ts +12 -0
- package/src/pm-plugins/utils/dom.ts +4 -0
- package/src/pm-plugins/utils/drag-menu.ts +12 -1
- package/src/pm-plugins/utils/nodes.ts +2 -0
- package/src/pm-plugins/utils/paste.ts +4 -0
- package/src/pm-plugins/utils/row-controls.ts +2 -0
- package/src/pm-plugins/utils/snapping.ts +2 -0
- package/src/tablePlugin.tsx +13 -15
- package/src/tablePluginType.ts +10 -0
- package/src/ui/ColumnResizeWidget/index.tsx +2 -0
- package/src/ui/DragHandle/HandleIconComponent.tsx +3 -1
- package/src/ui/DragHandle/index.tsx +11 -2
- package/src/ui/FloatingAlignmentButtons/FloatingAlignmentButtons.tsx +6 -0
- package/src/ui/FloatingContextualButton/FixedButton.tsx +5 -1
- package/src/ui/FloatingContextualButton/index.tsx +8 -2
- package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +17 -7
- package/src/ui/FloatingContextualMenu/index.tsx +11 -1
- package/src/ui/FloatingDeleteButton/index.tsx +23 -4
- package/src/ui/FloatingDragMenu/DragMenu.tsx +13 -6
- package/src/ui/FloatingDragMenu/DropdownMenu.tsx +10 -0
- package/src/ui/FloatingDragMenu/index.tsx +3 -1
- package/src/ui/FloatingInsertButton/InsertButton.tsx +4 -0
- package/src/ui/FloatingInsertButton/getPopupOptions.ts +4 -0
- package/src/ui/FloatingInsertButton/index.tsx +21 -1
- package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +19 -2
- package/src/ui/TableFloatingColumnControls/ColumnDropTargets/index.tsx +2 -0
- package/src/ui/TableFloatingColumnControls/index.tsx +8 -4
- package/src/ui/TableFloatingControls/CornerControls/ClassicCornerControls.tsx +2 -0
- package/src/ui/TableFloatingControls/FloatingControlsWithSelection.tsx +2 -2
- package/src/ui/TableFloatingControls/NumberColumn/index.tsx +7 -1
- package/src/ui/TableFloatingControls/RowControls/ClassicControls.tsx +11 -3
- package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +20 -1
- package/src/ui/TableFloatingControls/index.tsx +13 -4
- package/src/ui/common-styles.ts +7 -0
- package/src/ui/event-handlers.ts +28 -3
- package/src/ui/icons/SortingIconWrapper.tsx +2 -0
- package/src/ui/toolbar.tsx +43 -11
- package/tsconfig.json +0 -1
|
@@ -15,19 +15,24 @@ import { fg } from '@atlaskit/platform-feature-flags';
|
|
|
15
15
|
import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
|
|
16
16
|
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
17
17
|
import { autoSizeTable, clearHoverSelection } from '../pm-plugins/commands';
|
|
18
|
-
import { autoScrollerFactory } from '../pm-plugins/drag-and-drop/utils';
|
|
18
|
+
import { autoScrollerFactory } from '../pm-plugins/drag-and-drop/utils/autoscrollers';
|
|
19
19
|
import { getPluginState } from '../pm-plugins/plugin-factory';
|
|
20
|
-
import {
|
|
20
|
+
import { pluginKey as stickyHeadersPluginKey } from '../pm-plugins/sticky-headers/plugin-key';
|
|
21
|
+
import { findStickyHeaderForTable } from '../pm-plugins/sticky-headers/util';
|
|
21
22
|
import { META_KEYS } from '../pm-plugins/table-analytics';
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { TABLE_EDITOR_MARGIN, TABLE_OFFSET_IN_COMMENT_EDITOR } from '../pm-plugins/table-resizing/utils/consts';
|
|
23
|
+
import { insertColgroupFromNode, hasTableBeenResized } from '../pm-plugins/table-resizing/utils/colgroup';
|
|
24
|
+
import { COLUMN_MIN_WIDTH, TABLE_EDITOR_MARGIN, TABLE_OFFSET_IN_COMMENT_EDITOR } from '../pm-plugins/table-resizing/utils/consts';
|
|
25
25
|
import { updateControls } from '../pm-plugins/table-resizing/utils/dom';
|
|
26
|
-
import { getScalingPercentForTableWithoutWidth, getTableScalingPercent } from '../pm-plugins/table-resizing/utils/misc';
|
|
27
|
-
import {
|
|
26
|
+
import { getLayoutSize, getScalingPercentForTableWithoutWidth, getTableScalingPercent } from '../pm-plugins/table-resizing/utils/misc';
|
|
27
|
+
import { getResizeState, updateColgroup } from '../pm-plugins/table-resizing/utils/resize-state';
|
|
28
|
+
import { scaleTable } from '../pm-plugins/table-resizing/utils/scale-table';
|
|
29
|
+
import { containsHeaderRow, isTableNested, isTableNestedInMoreThanOneNode, tablesHaveDifferentColumnWidths, tablesHaveDifferentNoOfColumns, tablesHaveDifferentNoOfRows } from '../pm-plugins/utils/nodes';
|
|
30
|
+
import { getAssistiveMessage } from '../pm-plugins/utils/table';
|
|
28
31
|
import { TableCssClassName as ClassName, ShadowEvent } from '../types';
|
|
29
32
|
import { handleMouseOut, handleMouseOver, isTableInFocus, withCellTracking } from '../ui/event-handlers';
|
|
30
33
|
import TableFloatingColumnControls from '../ui/TableFloatingColumnControls';
|
|
34
|
+
// Ignored via go/ees005
|
|
35
|
+
// eslint-disable-next-line import/no-named-as-default
|
|
31
36
|
import TableFloatingControls from '../ui/TableFloatingControls';
|
|
32
37
|
import { ExternalDropTargets } from './ExternalDropTargets';
|
|
33
38
|
import { OverflowShadowsObserver } from './OverflowShadowsObserver';
|
|
@@ -48,6 +53,8 @@ const isOverflowAnalyticsEnabled = false;
|
|
|
48
53
|
// Prevent unnecessary parentWidth updates when table is nested inside of a node that is nested itself.
|
|
49
54
|
const NESTED_TABLE_IN_NESTED_PARENT_WIDTH_DIFF_MIN_THRESHOLD = 2;
|
|
50
55
|
const NESTED_TABLE_IN_NESTED_PARENT_WIDTH_DIFF_MAX_THRESHOLD = 20;
|
|
56
|
+
// Ignored via go/ees005
|
|
57
|
+
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
51
58
|
class TableComponent extends React.Component {
|
|
52
59
|
constructor(props) {
|
|
53
60
|
super(props);
|
|
@@ -112,6 +119,8 @@ class TableComponent extends React.Component {
|
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
121
|
});
|
|
122
|
+
// Ignored via go/ees005
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
124
|
_defineProperty(this, "prevTableState", null);
|
|
116
125
|
_defineProperty(this, "handleScroll", event => {
|
|
117
126
|
if (!this.wrapper || event.target !== this.wrapper) {
|
|
@@ -124,6 +133,8 @@ class TableComponent extends React.Component {
|
|
|
124
133
|
// sync sticky header row to table scroll
|
|
125
134
|
const headers = this.table.querySelectorAll('tr[data-header-row]');
|
|
126
135
|
for (let i = 0; i < headers.length; i++) {
|
|
136
|
+
// Ignored via go/ees005
|
|
137
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
127
138
|
const header = headers[i];
|
|
128
139
|
header.scrollLeft = this.wrapper.scrollLeft;
|
|
129
140
|
header.style.marginRight = '2px';
|
|
@@ -140,6 +151,8 @@ class TableComponent extends React.Component {
|
|
|
140
151
|
options,
|
|
141
152
|
allowTableResizing
|
|
142
153
|
} = this.props;
|
|
154
|
+
// Ignored via go/ees005
|
|
155
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
143
156
|
const prevNode = this.node;
|
|
144
157
|
const node = getNode();
|
|
145
158
|
const prevAttrs = prevNode.attrs;
|
|
@@ -225,6 +238,8 @@ class TableComponent extends React.Component {
|
|
|
225
238
|
prevNode: this.node || node,
|
|
226
239
|
start: pos + 1,
|
|
227
240
|
containerWidth: width,
|
|
241
|
+
// Ignored via go/ees005
|
|
242
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
228
243
|
previousContainerWidth: this.containerWidth.width || width,
|
|
229
244
|
...options
|
|
230
245
|
}, domAtPos, this.props.pluginInjectionApi, false,
|
|
@@ -339,7 +354,7 @@ class TableComponent extends React.Component {
|
|
|
339
354
|
isFullWidthModeEnabled
|
|
340
355
|
});
|
|
341
356
|
this.resizeObserver = new ResizeObserver(entries => {
|
|
342
|
-
for (
|
|
357
|
+
for (const entry of entries) {
|
|
343
358
|
this.setState(prev => {
|
|
344
359
|
var _entry$contentRect, _entry$contentRect2;
|
|
345
360
|
return (prev === null || prev === void 0 ? void 0 : prev.tableWrapperWidth) === ((_entry$contentRect = entry.contentRect) === null || _entry$contentRect === void 0 ? void 0 : _entry$contentRect.width) && (prev === null || prev === void 0 ? void 0 : prev.tableWrapperHeight) === ((_entry$contentRect2 = entry.contentRect) === null || _entry$contentRect2 === void 0 ? void 0 : _entry$contentRect2.height) ? prev : {
|
|
@@ -372,8 +387,17 @@ class TableComponent extends React.Component {
|
|
|
372
387
|
getEditorFeatureFlags,
|
|
373
388
|
isTableScalingEnabled
|
|
374
389
|
} = this.props;
|
|
390
|
+
|
|
391
|
+
// Ignored via go/ees005
|
|
392
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
375
393
|
this === null || this === void 0 ? void 0 : (_this$table = this.table) === null || _this$table === void 0 ? void 0 : _this$table.addEventListener('mouseenter', this.handleMouseEnter);
|
|
394
|
+
|
|
395
|
+
// Ignored via go/ees005
|
|
396
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
376
397
|
this === null || this === void 0 ? void 0 : (_this$table2 = this.table) === null || _this$table2 === void 0 ? void 0 : _this$table2.addEventListener('mouseout', this.handleMouseOut);
|
|
398
|
+
|
|
399
|
+
// Ignored via go/ees005
|
|
400
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
377
401
|
this === null || this === void 0 ? void 0 : (_this$table3 = this.table) === null || _this$table3 === void 0 ? void 0 : _this$table3.addEventListener('mouseover', this.handleMouseOver);
|
|
378
402
|
const {
|
|
379
403
|
tableWithFixedColumnWidthsOption = false
|
|
@@ -393,6 +417,8 @@ class TableComponent extends React.Component {
|
|
|
393
417
|
this.wrapperReisizeObserver.observe(this.wrapper);
|
|
394
418
|
}
|
|
395
419
|
if (allowColumnResizing && this.wrapper && !isIE11) {
|
|
420
|
+
// Ignored via go/ees005
|
|
421
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
396
422
|
this.wrapper.addEventListener('scroll', this.handleScrollDebounced, {
|
|
397
423
|
passive: true
|
|
398
424
|
});
|
|
@@ -412,6 +438,8 @@ class TableComponent extends React.Component {
|
|
|
412
438
|
* Instead we use the resize event to only trigger updates when necessary.
|
|
413
439
|
*/
|
|
414
440
|
if (!allowTableResizing) {
|
|
441
|
+
// Ignored via go/ees005
|
|
442
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
415
443
|
window.addEventListener('resize', this.handleWindowResizeDebounced);
|
|
416
444
|
}
|
|
417
445
|
this.handleTableResizingDebounced();
|
|
@@ -420,6 +448,9 @@ class TableComponent extends React.Component {
|
|
|
420
448
|
if (currentStickyState) {
|
|
421
449
|
this.onStickyState(currentStickyState);
|
|
422
450
|
}
|
|
451
|
+
|
|
452
|
+
// Ignored via go/ees005
|
|
453
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
423
454
|
eventDispatcher.on(stickyHeadersPluginKey.key, this.onStickyState);
|
|
424
455
|
if (isOverflowAnalyticsEnabled) {
|
|
425
456
|
const initialIsOveflowing = this.state[ShadowEvent.SHOW_BEFORE_SHADOW] || this.state[ShadowEvent.SHOW_AFTER_SHADOW];
|
|
@@ -435,6 +466,8 @@ class TableComponent extends React.Component {
|
|
|
435
466
|
isDragAndDropEnabled
|
|
436
467
|
} = this.props;
|
|
437
468
|
if (this.wrapper && !isIE11) {
|
|
469
|
+
// Ignored via go/ees005
|
|
470
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
438
471
|
this.wrapper.removeEventListener('scroll', this.handleScrollDebounced);
|
|
439
472
|
}
|
|
440
473
|
if (isDragAndDropEnabled && this.dragAndDropCleanupFn) {
|
|
@@ -453,14 +486,28 @@ class TableComponent extends React.Component {
|
|
|
453
486
|
this.handleWindowResizeDebounced.cancel();
|
|
454
487
|
}
|
|
455
488
|
if (!allowTableResizing && allowColumnResizing) {
|
|
489
|
+
// Ignored via go/ees005
|
|
490
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
456
491
|
window.removeEventListener('resize', this.handleWindowResizeDebounced);
|
|
457
492
|
}
|
|
493
|
+
|
|
494
|
+
// Ignored via go/ees005
|
|
495
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
458
496
|
this === null || this === void 0 ? void 0 : (_this$table4 = this.table) === null || _this$table4 === void 0 ? void 0 : _this$table4.removeEventListener('mouseenter', this.handleMouseEnter);
|
|
497
|
+
|
|
498
|
+
// Ignored via go/ees005
|
|
499
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
459
500
|
this === null || this === void 0 ? void 0 : (_this$table5 = this.table) === null || _this$table5 === void 0 ? void 0 : _this$table5.removeEventListener('mouseout', this.handleMouseOut);
|
|
501
|
+
|
|
502
|
+
// Ignored via go/ees005
|
|
503
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
460
504
|
this === null || this === void 0 ? void 0 : (_this$table6 = this.table) === null || _this$table6 === void 0 ? void 0 : _this$table6.removeEventListener('mouseover', this.handleMouseOver);
|
|
461
505
|
if (this.overflowShadowsObserver) {
|
|
462
506
|
this.overflowShadowsObserver.dispose();
|
|
463
507
|
}
|
|
508
|
+
|
|
509
|
+
// Ignored via go/ees005
|
|
510
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
464
511
|
eventDispatcher.off(stickyHeadersPluginKey.key, this.onStickyState);
|
|
465
512
|
if (this.initialOverflowCaptureTimerId) {
|
|
466
513
|
clearTimeout(this.initialOverflowCaptureTimerId);
|
|
@@ -574,13 +621,21 @@ class TableComponent extends React.Component {
|
|
|
574
621
|
// renderWidth calculated as `tableRef?.parentElement?.clientWidth`
|
|
575
622
|
// inside of getTableScalingPercent returns 0.
|
|
576
623
|
if (!((_this$props$options8 = this.props.options) !== null && _this$props$options8 !== void 0 && _this$props$options8.isCommentEditor) || (_this$props$options9 = this.props.options) !== null && _this$props$options9 !== void 0 && _this$props$options9.isCommentEditor && tableNode.attrs.width) {
|
|
577
|
-
scalePercent = getTableScalingPercent(tableNode,
|
|
624
|
+
scalePercent = getTableScalingPercent(tableNode,
|
|
625
|
+
// Ignored via go/ees005
|
|
626
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
627
|
+
this.table, shouldUseIncreasedScalingPercent);
|
|
578
628
|
} else {
|
|
629
|
+
// Ignored via go/ees005
|
|
630
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
579
631
|
scalePercent = getScalingPercentForTableWithoutWidth(tableNode, this.table);
|
|
580
632
|
}
|
|
581
633
|
|
|
582
634
|
// Request animation frame required for Firefox
|
|
583
|
-
updateColgroup(resizeState,
|
|
635
|
+
updateColgroup(resizeState,
|
|
636
|
+
// Ignored via go/ees005
|
|
637
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
638
|
+
this.table, tableNode, shouldScaleOnColgroupUpdate, scalePercent);
|
|
584
639
|
});
|
|
585
640
|
}
|
|
586
641
|
}
|
|
@@ -591,6 +646,9 @@ class TableComponent extends React.Component {
|
|
|
591
646
|
this.wasResizing = isResizing;
|
|
592
647
|
this.containerWidth = containerWidth;
|
|
593
648
|
}
|
|
649
|
+
|
|
650
|
+
// Ignored via go/ees005
|
|
651
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
594
652
|
componentDidUpdate(_, prevState) {
|
|
595
653
|
var _this$props$options10, _this$props$options11, _this$wrapper;
|
|
596
654
|
const {
|
|
@@ -644,7 +702,10 @@ class TableComponent extends React.Component {
|
|
|
644
702
|
// that happens when a table is nested in expand and expand's width is
|
|
645
703
|
// changed via breakout button
|
|
646
704
|
window.requestAnimationFrame(() => {
|
|
647
|
-
this.overflowShadowsObserver = new OverflowShadowsObserver(this.updateShadowState,
|
|
705
|
+
this.overflowShadowsObserver = new OverflowShadowsObserver(this.updateShadowState,
|
|
706
|
+
// Ignored via go/ees005
|
|
707
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
708
|
+
this.table, this.wrapper);
|
|
648
709
|
});
|
|
649
710
|
} else {
|
|
650
711
|
this.overflowShadowsObserver = new OverflowShadowsObserver(this.updateShadowState, this.table, this.wrapper);
|
|
@@ -839,7 +900,7 @@ class TableComponent extends React.Component {
|
|
|
839
900
|
const isNested = isTableNested(view.state, tablePos);
|
|
840
901
|
const topShadowPadding = isDragAndDropEnabled ? 0 : shadowPadding;
|
|
841
902
|
const topOffset = fg('platform_editor_breakout_use_css') ? 0 : (_this$state$stickyHea2 = (_this$state$stickyHea3 = this.state.stickyHeader) === null || _this$state$stickyHea3 === void 0 ? void 0 : _this$state$stickyHea3.top) !== null && _this$state$stickyHea2 !== void 0 ? _this$state$stickyHea2 : 0;
|
|
842
|
-
|
|
903
|
+
const topStickyShadowPosition = this.state.stickyHeader && topOffset + this.state.stickyHeader.padding + topShadowPadding + 2;
|
|
843
904
|
const {
|
|
844
905
|
tableWithFixedColumnWidthsOption = false
|
|
845
906
|
} = getEditorFeatureFlags();
|
|
@@ -855,7 +916,10 @@ class TableComponent extends React.Component {
|
|
|
855
916
|
}),
|
|
856
917
|
editorView: view,
|
|
857
918
|
getPos: getPos,
|
|
858
|
-
node: node
|
|
919
|
+
node: node
|
|
920
|
+
// Ignored via go/ees005
|
|
921
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
922
|
+
,
|
|
859
923
|
tableRef: tableRef,
|
|
860
924
|
containerWidth: containerWidth,
|
|
861
925
|
isNested: isNested,
|
|
@@ -2,6 +2,10 @@ import React from 'react';
|
|
|
2
2
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
3
3
|
import { findTable } from '@atlaskit/editor-tables';
|
|
4
4
|
import TableComponent from './TableComponent';
|
|
5
|
+
|
|
6
|
+
// Ignored via go/ees005
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
|
|
5
9
|
/**
|
|
6
10
|
* Use useSharedPluginState to control re-renders from plugin dependencies
|
|
7
11
|
*/
|
|
@@ -72,7 +76,10 @@ export const TableComponentWithSharedState = ({
|
|
|
72
76
|
tableActive: tableActive,
|
|
73
77
|
ordering: ordering,
|
|
74
78
|
isResizing: isResizing,
|
|
75
|
-
getNode: getNode
|
|
79
|
+
getNode: getNode
|
|
80
|
+
// Ignored via go/ees005
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
82
|
+
,
|
|
76
83
|
containerWidth: widthState,
|
|
77
84
|
contentDOM: forwardRef,
|
|
78
85
|
getEditorFeatureFlags: getEditorFeatureFlags,
|
|
@@ -6,7 +6,7 @@ import { getTableContainerWidth } from '@atlaskit/editor-common/node-width';
|
|
|
6
6
|
import { akEditorDefaultLayoutWidth, akEditorGutterPaddingDynamic, akEditorMobileBreakoutPoint } from '@atlaskit/editor-shared-styles';
|
|
7
7
|
import { setTableAlignmentWithTableContentWithPosWithAnalytics } from '../pm-plugins/commands/commands-with-analytics';
|
|
8
8
|
import { getPluginState } from '../pm-plugins/plugin-factory';
|
|
9
|
-
import { TABLE_MAX_WIDTH, TABLE_OFFSET_IN_COMMENT_EDITOR } from '../pm-plugins/table-resizing/utils';
|
|
9
|
+
import { TABLE_MAX_WIDTH, TABLE_OFFSET_IN_COMMENT_EDITOR } from '../pm-plugins/table-resizing/utils/consts';
|
|
10
10
|
import { ALIGN_CENTER, ALIGN_START } from '../pm-plugins/utils/alignment';
|
|
11
11
|
import { TableCssClassName as ClassName } from '../types';
|
|
12
12
|
import { getAlignmentStyle } from './table-container-styles';
|
|
@@ -264,7 +264,11 @@ export const ResizableTableContainer = /*#__PURE__*/React.memo(({
|
|
|
264
264
|
style: {
|
|
265
265
|
width: 'inherit'
|
|
266
266
|
}
|
|
267
|
-
}, children) :
|
|
267
|
+
}, children) :
|
|
268
|
+
/*#__PURE__*/
|
|
269
|
+
// Ignored via go/ees005
|
|
270
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
271
|
+
React.createElement(TableResizer, tableResizerProps, /*#__PURE__*/React.createElement(InnerContainer, {
|
|
268
272
|
className: className,
|
|
269
273
|
node: node
|
|
270
274
|
}, children))));
|
|
@@ -298,8 +302,14 @@ export const TableContainer = ({
|
|
|
298
302
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
299
303
|
, {
|
|
300
304
|
className: className,
|
|
301
|
-
node: node
|
|
302
|
-
|
|
305
|
+
node: node
|
|
306
|
+
// Ignored via go/ees005
|
|
307
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
308
|
+
,
|
|
309
|
+
containerWidth: editorWidth
|
|
310
|
+
// Ignored via go/ees005
|
|
311
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
312
|
+
,
|
|
303
313
|
lineLength: lineLength,
|
|
304
314
|
editorView: editorView,
|
|
305
315
|
getPos: getPos,
|
|
@@ -3,11 +3,15 @@ export default class TableNodeView {
|
|
|
3
3
|
/**
|
|
4
4
|
* @constructor
|
|
5
5
|
*/
|
|
6
|
+
// Ignored via go/ees005
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
6
8
|
constructor(node, view, getPos, eventDispatcher) {
|
|
7
9
|
this.node = node;
|
|
8
10
|
this.view = view;
|
|
9
11
|
this.getPos = getPos;
|
|
10
12
|
this.eventDispatcher = eventDispatcher;
|
|
13
|
+
// Ignored via go/ees005
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
11
15
|
const {
|
|
12
16
|
dom,
|
|
13
17
|
contentDOM
|
|
@@ -16,7 +16,9 @@ import { fg } from '@atlaskit/platform-feature-flags';
|
|
|
16
16
|
import { setTableAlignmentWithTableContentWithPosWithAnalytics } from '../pm-plugins/commands/commands-with-analytics';
|
|
17
17
|
import { updateWidthToWidest } from '../pm-plugins/commands/misc';
|
|
18
18
|
import { META_KEYS } from '../pm-plugins/table-analytics';
|
|
19
|
-
import {
|
|
19
|
+
import { getColgroupChildrenLength } from '../pm-plugins/table-resizing/utils/colgroup';
|
|
20
|
+
import { COLUMN_MIN_WIDTH, TABLE_MAX_WIDTH, TABLE_OFFSET_IN_COMMENT_EDITOR } from '../pm-plugins/table-resizing/utils/consts';
|
|
21
|
+
import { previewScaleTable, scaleTable } from '../pm-plugins/table-resizing/utils/scale-table';
|
|
20
22
|
import { pluginKey as tableWidthPluginKey } from '../pm-plugins/table-width';
|
|
21
23
|
import { ALIGN_CENTER, ALIGN_START, normaliseAlignment, shouldChangeAlignmentToCenterResized } from '../pm-plugins/utils/alignment';
|
|
22
24
|
import { generateResizedPayload, generateResizeFrameRatePayloads, useMeasureFramerate } from '../pm-plugins/utils/analytics';
|
|
@@ -70,7 +72,10 @@ const getResizerMinWidth = node => {
|
|
|
70
72
|
* @param isTableScalingEnabled
|
|
71
73
|
* @param isFullWidthModeEnabled
|
|
72
74
|
*/
|
|
73
|
-
const getVisibleGuidelines = (guidelines, containerWidth, lineLength, isTableScalingEnabled, isFullWidthModeEnabled
|
|
75
|
+
const getVisibleGuidelines = (guidelines, containerWidth, lineLength, isTableScalingEnabled, isFullWidthModeEnabled
|
|
76
|
+
// Ignored via go/ees005
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
78
|
+
) => {
|
|
74
79
|
let guidelineVisibleAdjustment = TABLE_GUIDELINE_VISIBLE_ADJUSTMENT;
|
|
75
80
|
if (isTableScalingEnabled) {
|
|
76
81
|
// Notes:
|
|
@@ -181,7 +186,10 @@ export const TableResizer = ({
|
|
|
181
186
|
// was hardcoded to 0, using PRESERVE_TABLE_SNAPPING_LENGTH_OFFSET instead.
|
|
182
187
|
isFullWidthModeEnabled ? lineLength + 2 * akEditorGutterPaddingDynamic() : containerWidth, excludeGuidelineConfig) : defaultSnappingWidths
|
|
183
188
|
} : undefined, [snappingEnabled, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, lineLength, isFullWidthModeEnabled]);
|
|
184
|
-
const switchToCenterAlignment = useCallback((pos, node, newWidth, state, dispatch
|
|
189
|
+
const switchToCenterAlignment = useCallback((pos, node, newWidth, state, dispatch
|
|
190
|
+
// Ignored via go/ees005
|
|
191
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
192
|
+
) => {
|
|
185
193
|
if (shouldChangeAlignmentToCenterResized(isTableAlignmentEnabled, node, lineLength, newWidth) && isResizing.current) {
|
|
186
194
|
var _pluginInjectionApi$a;
|
|
187
195
|
const tableNodeWithPos = {
|
|
@@ -241,7 +249,10 @@ export const TableResizer = ({
|
|
|
241
249
|
onResizeStart();
|
|
242
250
|
}
|
|
243
251
|
}, [startMeasure, editorView, displayGapCursor, node.attrs.localId, tableRef, isTableScalingEnabled, excludeGuidelineConfig, containerWidth, lineLength, displayGuideline, onResizeStart, isFullWidthModeEnabled]);
|
|
244
|
-
const handleResize = useCallback(
|
|
252
|
+
const handleResize = useCallback(
|
|
253
|
+
// Ignored via go/ees005
|
|
254
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
255
|
+
(originalState, delta) => {
|
|
245
256
|
var _node$attrs$localId, _node$attrs;
|
|
246
257
|
countFrames();
|
|
247
258
|
const newWidth = originalState.width + delta.width;
|
|
@@ -330,6 +341,9 @@ export const TableResizer = ({
|
|
|
330
341
|
width: newWidth
|
|
331
342
|
});
|
|
332
343
|
}
|
|
344
|
+
|
|
345
|
+
// Ignored via go/ees005
|
|
346
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
333
347
|
const newNode = tr.doc.nodeAt(pos);
|
|
334
348
|
tr = scaleTable(tableRef, {
|
|
335
349
|
node: newNode,
|
|
@@ -340,6 +354,9 @@ export const TableResizer = ({
|
|
|
340
354
|
// scaleTable function needs number value to work correctly.
|
|
341
355
|
parentWidth: isCommentEditor ? originalNewWidth : newWidth
|
|
342
356
|
}, editorView.domAtPos.bind(editorView), pluginInjectionApi, isTableScalingEnabled, shouldUseIncreasedScalingPercent || false, isCommentEditor)(tr);
|
|
357
|
+
|
|
358
|
+
// Ignored via go/ees005
|
|
359
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
343
360
|
const scaledNode = tr.doc.nodeAt(pos);
|
|
344
361
|
(_attachAnalyticsEvent2 = attachAnalyticsEvent(generateResizedPayload({
|
|
345
362
|
originalNode: node,
|
|
@@ -432,12 +449,24 @@ export const TableResizer = ({
|
|
|
432
449
|
}
|
|
433
450
|
};
|
|
434
451
|
const editorViewDom = editorView === null || editorView === void 0 ? void 0 : editorView.dom;
|
|
452
|
+
// Ignored via go/ees005
|
|
453
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
435
454
|
editorViewDom === null || editorViewDom === void 0 ? void 0 : editorViewDom.addEventListener('keydown', globalKeyDownHandler);
|
|
455
|
+
// Ignored via go/ees005
|
|
456
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
436
457
|
resizeHandleThumbEl === null || resizeHandleThumbEl === void 0 ? void 0 : resizeHandleThumbEl.addEventListener('keydown', handleKeyDown);
|
|
458
|
+
// Ignored via go/ees005
|
|
459
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
437
460
|
resizeHandleThumbEl === null || resizeHandleThumbEl === void 0 ? void 0 : resizeHandleThumbEl.addEventListener('keyup', handleKeyUp);
|
|
438
461
|
return () => {
|
|
462
|
+
// Ignored via go/ees005
|
|
463
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
439
464
|
editorViewDom === null || editorViewDom === void 0 ? void 0 : editorViewDom.removeEventListener('keydown', globalKeyDownHandler);
|
|
465
|
+
// Ignored via go/ees005
|
|
466
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
440
467
|
resizeHandleThumbEl === null || resizeHandleThumbEl === void 0 ? void 0 : resizeHandleThumbEl.removeEventListener('keydown', handleKeyDown);
|
|
468
|
+
// Ignored via go/ees005
|
|
469
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
441
470
|
resizeHandleThumbEl === null || resizeHandleThumbEl === void 0 ? void 0 : resizeHandleThumbEl.removeEventListener('keyup', handleKeyUp);
|
|
442
471
|
};
|
|
443
472
|
}, [resizerRef, editorView, handleResizeStop, isTableSelected, handleKeyDown, handleKeyUp]);
|
|
@@ -19,6 +19,8 @@ const HEADER_ROW_SCROLL_THROTTLE_TIMEOUT = 200;
|
|
|
19
19
|
// if too short it would trigger too many dom updates.
|
|
20
20
|
const HEADER_ROW_SCROLL_RESET_DEBOUNCE_TIMEOUT = 400;
|
|
21
21
|
export default class TableRow extends TableNodeView {
|
|
22
|
+
// Ignored via go/ees005
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
22
24
|
constructor(node, view, getPos, eventDispatcher) {
|
|
23
25
|
super(node, view, getPos, eventDispatcher);
|
|
24
26
|
_defineProperty(this, "colControlsOffset", 0);
|
|
@@ -76,6 +78,8 @@ export default class TableRow extends TableNodeView {
|
|
|
76
78
|
/**
|
|
77
79
|
* Methods: Nodeview Lifecycle
|
|
78
80
|
*/
|
|
81
|
+
// Ignored via go/ees005
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
79
83
|
update(node, ..._args) {
|
|
80
84
|
// do nothing if nodes were identical
|
|
81
85
|
if (node === this.node) {
|
|
@@ -139,17 +143,27 @@ export default class TableRow extends TableNodeView {
|
|
|
139
143
|
return true;
|
|
140
144
|
}
|
|
141
145
|
subscribe() {
|
|
146
|
+
// Ignored via go/ees005
|
|
147
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
142
148
|
this.editorScrollableElement = findOverflowScrollParent(this.view.dom) || window;
|
|
143
149
|
if (this.editorScrollableElement) {
|
|
144
150
|
this.initObservers();
|
|
145
151
|
this.topPosEditorElement = getTop(this.editorScrollableElement);
|
|
146
152
|
}
|
|
147
153
|
this.eventDispatcher.on('widthPlugin', this.updateStickyHeaderWidth.bind(this));
|
|
154
|
+
|
|
155
|
+
// Ignored via go/ees005
|
|
156
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
148
157
|
this.eventDispatcher.on(tablePluginKey.key, this.onTablePluginState.bind(this));
|
|
149
158
|
this.listening = true;
|
|
159
|
+
|
|
160
|
+
// Ignored via go/ees005
|
|
161
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
150
162
|
this.dom.addEventListener('wheel', this.headerRowMouseScroll.bind(this), {
|
|
151
163
|
passive: true
|
|
152
164
|
});
|
|
165
|
+
// Ignored via go/ees005
|
|
166
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
153
167
|
this.dom.addEventListener('touchmove', this.headerRowMouseScroll.bind(this), {
|
|
154
168
|
passive: true
|
|
155
169
|
});
|
|
@@ -172,9 +186,16 @@ export default class TableRow extends TableNodeView {
|
|
|
172
186
|
this.resizeObserver.disconnect();
|
|
173
187
|
}
|
|
174
188
|
this.eventDispatcher.off('widthPlugin', this.updateStickyHeaderWidth);
|
|
189
|
+
// Ignored via go/ees005
|
|
190
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
175
191
|
this.eventDispatcher.off(tablePluginKey.key, this.onTablePluginState);
|
|
176
192
|
this.listening = false;
|
|
193
|
+
|
|
194
|
+
// Ignored via go/ees005
|
|
195
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
177
196
|
this.dom.removeEventListener('wheel', this.headerRowMouseScroll);
|
|
197
|
+
// Ignored via go/ees005
|
|
198
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
178
199
|
this.dom.removeEventListener('touchmove', this.headerRowMouseScroll);
|
|
179
200
|
}
|
|
180
201
|
|
|
@@ -191,6 +212,8 @@ export default class TableRow extends TableNodeView {
|
|
|
191
212
|
}
|
|
192
213
|
this.resizeObserver.observe(this.dom);
|
|
193
214
|
if (this.editorScrollableElement) {
|
|
215
|
+
// Ignored via go/ees005
|
|
216
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
194
217
|
this.resizeObserver.observe(this.editorScrollableElement);
|
|
195
218
|
}
|
|
196
219
|
window.requestAnimationFrame(() => {
|
|
@@ -198,12 +221,18 @@ export default class TableRow extends TableNodeView {
|
|
|
198
221
|
// we expect tree to be defined after animation frame
|
|
199
222
|
const tableContainer = (_getTree = getTree(this.dom)) === null || _getTree === void 0 ? void 0 : _getTree.wrapper.closest(`.${TableCssClassName.NODEVIEW_WRAPPER}`);
|
|
200
223
|
if (tableContainer) {
|
|
224
|
+
// Ignored via go/ees005
|
|
225
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
201
226
|
this.sentinels.top = tableContainer.getElementsByClassName(ClassName.TABLE_STICKY_SENTINEL_TOP).item(0);
|
|
227
|
+
// Ignored via go/ees005
|
|
228
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
202
229
|
this.sentinels.bottom = tableContainer.getElementsByClassName(ClassName.TABLE_STICKY_SENTINEL_BOTTOM).item(0);
|
|
203
230
|
[this.sentinels.top, this.sentinels.bottom].forEach(el => {
|
|
204
231
|
// skip if already observed for another row on this table
|
|
205
232
|
if (el && !el.dataset.isObserved) {
|
|
206
233
|
el.dataset.isObserved = 'true';
|
|
234
|
+
// Ignored via go/ees005
|
|
235
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
207
236
|
this.intersectionObserver.observe(el);
|
|
208
237
|
}
|
|
209
238
|
});
|
|
@@ -226,10 +255,15 @@ export default class TableRow extends TableNodeView {
|
|
|
226
255
|
var _this$editorScrollabl;
|
|
227
256
|
// On resize of the parent scroll element we need to adjust the width
|
|
228
257
|
// of the sticky header
|
|
258
|
+
// Ignored via go/ees005
|
|
259
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
229
260
|
if (entry.target.className === ((_this$editorScrollabl = this.editorScrollableElement) === null || _this$editorScrollabl === void 0 ? void 0 : _this$editorScrollabl.className)) {
|
|
230
261
|
this.updateStickyHeaderWidth();
|
|
231
262
|
} else {
|
|
232
|
-
const newHeight = entry.contentRect ? entry.contentRect.height :
|
|
263
|
+
const newHeight = entry.contentRect ? entry.contentRect.height :
|
|
264
|
+
// Ignored via go/ees005
|
|
265
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
266
|
+
entry.target.offsetHeight;
|
|
233
267
|
if (this.sentinels.bottom &&
|
|
234
268
|
// When the table header is sticky, it would be taller by a 1px (border-bottom),
|
|
235
269
|
// So we adding this check to allow a 1px difference.
|
|
@@ -377,11 +411,15 @@ export default class TableRow extends TableNodeView {
|
|
|
377
411
|
if (layoutContainer && layoutContainer.getAttribute('data-layout-content')) {
|
|
378
412
|
// move table a little out of the way
|
|
379
413
|
// to provide spacing for table controls
|
|
414
|
+
// Ignored via go/ees005
|
|
415
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
380
416
|
tableContentWrapper.style.paddingLeft = '11px';
|
|
381
417
|
}
|
|
382
418
|
} else {
|
|
383
419
|
this.colControlsOffset = 0;
|
|
384
420
|
if (layoutContainer && layoutContainer.getAttribute('data-layout-content')) {
|
|
421
|
+
// Ignored via go/ees005
|
|
422
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
385
423
|
tableContentWrapper.style.removeProperty('padding-left');
|
|
386
424
|
}
|
|
387
425
|
}
|
|
@@ -448,6 +486,8 @@ export default class TableRow extends TableNodeView {
|
|
|
448
486
|
* detaches from the table. This typically happens during a fast scroll by the user which causes
|
|
449
487
|
* the intersection observer logic to not fire as expected.
|
|
450
488
|
*/
|
|
489
|
+
// Ignored via go/ees005
|
|
490
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
451
491
|
(_this$editorScrollabl4 = this.editorScrollableElement) === null || _this$editorScrollabl4 === void 0 ? void 0 : _this$editorScrollabl4.addEventListener('scrollend', this.refireIntersectionObservers, {
|
|
452
492
|
passive: true,
|
|
453
493
|
once: true
|
|
@@ -502,6 +542,8 @@ export default class TableRow extends TableNodeView {
|
|
|
502
542
|
}
|
|
503
543
|
this.top = top;
|
|
504
544
|
this.padding = padding;
|
|
545
|
+
// Ignored via go/ees005
|
|
546
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
505
547
|
const pos = this.getPos();
|
|
506
548
|
if (Number.isFinite(pos)) {
|
|
507
549
|
updateStickyState({
|
|
@@ -518,6 +560,8 @@ export default class TableRow extends TableNodeView {
|
|
|
518
560
|
}
|
|
519
561
|
this.top = 0;
|
|
520
562
|
this.padding = 0;
|
|
563
|
+
// Ignored via go/ees005
|
|
564
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
521
565
|
const pos = this.getPos();
|
|
522
566
|
if (!isEditorDestroyed && Number.isFinite(pos)) {
|
|
523
567
|
updateStickyState({
|
|
@@ -23,6 +23,8 @@ export class TableStickyScrollbar {
|
|
|
23
23
|
}
|
|
24
24
|
dispose() {
|
|
25
25
|
if (this.stickyScrollbarContainerElement) {
|
|
26
|
+
// Ignored via go/ees005
|
|
27
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
26
28
|
this.stickyScrollbarContainerElement.removeEventListener('scroll', this.handleScroll);
|
|
27
29
|
}
|
|
28
30
|
this.deleteIntersectionObserver();
|
|
@@ -39,6 +41,8 @@ export class TableStickyScrollbar {
|
|
|
39
41
|
}
|
|
40
42
|
this.stickyScrollbarContainerElement = (_this$wrapper$parentE = this.wrapper.parentElement) === null || _this$wrapper$parentE === void 0 ? void 0 : _this$wrapper$parentE.querySelector(`.${ClassName.TABLE_STICKY_SCROLLBAR_CONTAINER}`);
|
|
41
43
|
if (this.stickyScrollbarContainerElement) {
|
|
44
|
+
// Ignored via go/ees005
|
|
45
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
42
46
|
this.stickyScrollbarContainerElement.addEventListener('scroll', this.handleScroll, {
|
|
43
47
|
passive: true
|
|
44
48
|
});
|
|
@@ -47,7 +51,10 @@ export class TableStickyScrollbar {
|
|
|
47
51
|
}
|
|
48
52
|
createIntersectionObserver() {
|
|
49
53
|
var _this$wrapper, _this$wrapper$parentE2, _this$wrapper$parentE3, _this$wrapper2, _this$wrapper2$parent, _this$wrapper2$parent2;
|
|
50
|
-
this.editorScrollableElement =
|
|
54
|
+
this.editorScrollableElement =
|
|
55
|
+
// Ignored via go/ees005
|
|
56
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
57
|
+
findOverflowScrollParent(this.view.dom) || window.document;
|
|
51
58
|
if (!this.editorScrollableElement || !this.wrapper) {
|
|
52
59
|
return;
|
|
53
60
|
}
|
|
@@ -57,6 +64,8 @@ export class TableStickyScrollbar {
|
|
|
57
64
|
}
|
|
58
65
|
entries.forEach(entry => {
|
|
59
66
|
var _entry$rootBounds;
|
|
67
|
+
// Ignored via go/ees005
|
|
68
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
60
69
|
const target = entry.target;
|
|
61
70
|
// if the rootBounds has 0 height, e.g. confluence preview mode, we do nothing.
|
|
62
71
|
if (((_entry$rootBounds = entry.rootBounds) === null || _entry$rootBounds === void 0 ? void 0 : _entry$rootBounds.height) === 0) {
|
|
@@ -72,9 +81,18 @@ export class TableStickyScrollbar {
|
|
|
72
81
|
}, {
|
|
73
82
|
root: this.editorScrollableElement
|
|
74
83
|
});
|
|
84
|
+
|
|
85
|
+
// Ignored via go/ees005
|
|
86
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
75
87
|
this.sentinels.bottom = (_this$wrapper = this.wrapper) === null || _this$wrapper === void 0 ? void 0 : (_this$wrapper$parentE2 = _this$wrapper.parentElement) === null || _this$wrapper$parentE2 === void 0 ? void 0 : (_this$wrapper$parentE3 = _this$wrapper$parentE2.getElementsByClassName(ClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper$parentE3 === void 0 ? void 0 : _this$wrapper$parentE3.item(0);
|
|
88
|
+
|
|
89
|
+
// Ignored via go/ees005
|
|
90
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
76
91
|
this.sentinels.top = (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 ? void 0 : (_this$wrapper2$parent = _this$wrapper2.parentElement) === null || _this$wrapper2$parent === void 0 ? void 0 : (_this$wrapper2$parent2 = _this$wrapper2$parent.getElementsByClassName(ClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_TOP)) === null || _this$wrapper2$parent2 === void 0 ? void 0 : _this$wrapper2$parent2.item(0);
|
|
77
|
-
[this.sentinels.bottom, this.sentinels.top].forEach(el =>
|
|
92
|
+
[this.sentinels.bottom, this.sentinels.top].forEach(el =>
|
|
93
|
+
// Ignored via go/ees005
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
95
|
+
this.intersectionObserver.observe(el));
|
|
78
96
|
}
|
|
79
97
|
deleteIntersectionObserver() {
|
|
80
98
|
if (this.intersectionObserver) {
|
|
@@ -15,7 +15,10 @@ export const lazyTableView = options => {
|
|
|
15
15
|
'./table').then(({
|
|
16
16
|
createTableView
|
|
17
17
|
}) => {
|
|
18
|
-
return (node, view, getPos, decorations, getNodeViewOptions
|
|
18
|
+
return (node, view, getPos, decorations, getNodeViewOptions
|
|
19
|
+
// Ignored via go/ees005
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
21
|
+
) => {
|
|
19
22
|
const {
|
|
20
23
|
portalProviderAPI,
|
|
21
24
|
eventDispatcher,
|
|
@@ -49,7 +52,10 @@ export const lazyTableCellView = options => {
|
|
|
49
52
|
'./TableCell').then(({
|
|
50
53
|
default: TableCell
|
|
51
54
|
}) => {
|
|
52
|
-
return (node, view, getPos, decorations, getNodeViewOptions
|
|
55
|
+
return (node, view, getPos, decorations, getNodeViewOptions
|
|
56
|
+
// Ignored via go/ees005
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
58
|
+
) => {
|
|
53
59
|
var _pluginInjectionApi$a;
|
|
54
60
|
const {
|
|
55
61
|
eventDispatcher,
|
|
@@ -78,7 +84,10 @@ export const lazyTableHeaderView = options => {
|
|
|
78
84
|
'./TableCell').then(({
|
|
79
85
|
default: TableCell
|
|
80
86
|
}) => {
|
|
81
|
-
return (node, view, getPos, decorations, getNodeViewOptions
|
|
87
|
+
return (node, view, getPos, decorations, getNodeViewOptions
|
|
88
|
+
// Ignored via go/ees005
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
90
|
+
) => {
|
|
82
91
|
var _pluginInjectionApi$a2;
|
|
83
92
|
const {
|
|
84
93
|
eventDispatcher,
|
|
@@ -106,7 +115,10 @@ export const lazyTableRowView = options => {
|
|
|
106
115
|
'./TableRow').then(({
|
|
107
116
|
default: TableRow
|
|
108
117
|
}) => {
|
|
109
|
-
return (node, view, getPos, decorations, getNodeViewOptions
|
|
118
|
+
return (node, view, getPos, decorations, getNodeViewOptions
|
|
119
|
+
// Ignored via go/ees005
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/max-params
|
|
121
|
+
) => {
|
|
110
122
|
const {
|
|
111
123
|
eventDispatcher
|
|
112
124
|
} = getNodeViewOptions();
|