From f452b46371e5bb035d5801c9315c541303bb558e Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Mon, 28 Aug 2023 21:27:33 +0300
Subject: [PATCH] new table service

---
 editors/demo/config-overrides.js              |  4 ++
 editors/demo/package.json                     |  3 +-
 editors/demo/src/Editoria/config/config.js    |  5 +--
 .../demo/src/Editoria/config/configMobile.js  |  3 +-
 editors/demo/src/HHMI/config/config.js        |  2 +-
 editors/demo/src/OEN/config/config.js         |  2 +-
 package.json                                  |  1 +
 wax-prosemirror-core/rollup.config.js         |  7 +---
 wax-prosemirror-services/index.js             |  3 --
 wax-prosemirror-services/rollup.config.js     |  4 --
 wax-table-service/README.md                   |  1 +
 wax-table-service/index.js                    |  2 +
 wax-table-service/package.json                | 37 +++++++++++++++++
 wax-table-service/rollup.config.js            | 40 +++++++++++++++++++
 .../src}/EditTableService/EditTableService.js |  0
 .../EditTableService/TableDropDownOptions.js  |  0
 .../InsertTableService/InsertTableService.js  |  0
 .../src}/InsertTableService/Table.js          |  0
 .../TableToolGroupService.js                  |  0
 .../src}/TableToolGroupService/Tables.js      |  0
 .../src}/TablesService.js                     |  0
 .../src}/components/CreateTable.js            |  0
 .../src}/components/InsertTableTool.js        |  0
 .../src}/components/TableDropDown.js          |  0
 .../src}/index.js                             |  0
 .../src}/table.css                            |  0
 .../src}/tableSrc/index.js                    |  2 +
 27 files changed, 96 insertions(+), 20 deletions(-)
 create mode 100644 wax-table-service/README.md
 create mode 100644 wax-table-service/index.js
 create mode 100644 wax-table-service/package.json
 create mode 100644 wax-table-service/rollup.config.js
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/EditTableService/EditTableService.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/EditTableService/TableDropDownOptions.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/InsertTableService/InsertTableService.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/InsertTableService/Table.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/TableToolGroupService/TableToolGroupService.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/TableToolGroupService/Tables.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/TablesService.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/components/CreateTable.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/components/InsertTableTool.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/components/TableDropDown.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/index.js (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/table.css (100%)
 rename {wax-prosemirror-services/src/TablesService => wax-table-service/src}/tableSrc/index.js (99%)

diff --git a/editors/demo/config-overrides.js b/editors/demo/config-overrides.js
index 6bc5ae421..1b6da3878 100644
--- a/editors/demo/config-overrides.js
+++ b/editors/demo/config-overrides.js
@@ -15,6 +15,10 @@ module.exports = function override(config, env) {
         __dirname,
         '../../wax-questions-service/index',
       ),
+      'wax-table-service': path.resolve(
+        __dirname,
+        '../../wax-table-service/index',
+      ),
     },
   };
   config.module = {
diff --git a/editors/demo/package.json b/editors/demo/package.json
index 3751aee52..466716b95 100644
--- a/editors/demo/package.json
+++ b/editors/demo/package.json
@@ -15,7 +15,8 @@
     "typeface-vollkorn": "^0.0.54",
     "wax-prosemirror-core": "^0.8.9",
     "wax-prosemirror-services": "^0.8.9",
-    "wax-questions-service": "^0.8.9"
+    "wax-questions-service": "^0.8.9",
+    "wax-table-service": "^0.8.9"
   },
   "scripts": {
     "start": "react-app-rewired start",
diff --git a/editors/demo/src/Editoria/config/config.js b/editors/demo/src/Editoria/config/config.js
index d24ceb1b6..a11306ffd 100644
--- a/editors/demo/src/Editoria/config/config.js
+++ b/editors/demo/src/Editoria/config/config.js
@@ -9,7 +9,6 @@ import {
   LinkService,
   ListsService,
   ListToolGroupService,
-  TablesService,
   BaseService,
   BaseToolGroupService,
   DisplayBlockLevelService,
@@ -46,10 +45,10 @@ import {
   // YjsService,
   // BlockDropDownToolGroupService,
   // TitleToolGroupService,
-  tableEditing,
-  columnResizing,
 } from 'wax-prosemirror-services';
 
+import { TablesService, tableEditing, columnResizing } from 'wax-table-service';
+
 import { EditoriaSchema } from 'wax-prosemirror-core';
 
 import invisibles, {
diff --git a/editors/demo/src/Editoria/config/configMobile.js b/editors/demo/src/Editoria/config/configMobile.js
index 3db3eb6c7..a87d5ec5e 100644
--- a/editors/demo/src/Editoria/config/configMobile.js
+++ b/editors/demo/src/Editoria/config/configMobile.js
@@ -6,7 +6,6 @@ import {
   LinkService,
   ListsService,
   ListToolGroupService,
-  TablesService,
   BaseService,
   BaseToolGroupService,
   DisplayBlockLevelService,
@@ -34,6 +33,8 @@ import {
   CustomTagService,
 } from 'wax-prosemirror-services';
 
+import { TablesService, tableEditing, columnResizing } from 'wax-table-service';
+
 import { DefaultSchema } from 'wax-prosemirror-core';
 
 import invisibles, {
diff --git a/editors/demo/src/HHMI/config/config.js b/editors/demo/src/HHMI/config/config.js
index 1ba9568d1..7fc649f31 100644
--- a/editors/demo/src/HHMI/config/config.js
+++ b/editors/demo/src/HHMI/config/config.js
@@ -7,7 +7,6 @@ import {
   LinkService,
   ListsService,
   ListToolGroupService,
-  TablesService,
   BaseService,
   BaseToolGroupService,
   DisplayTextToolGroupService,
@@ -18,6 +17,7 @@ import {
 } from 'wax-prosemirror-services';
 
 import { QuestionsService } from 'wax-questions-service';
+import { TablesService, tableEditing, columnResizing } from 'wax-table-service';
 
 import { DefaultSchema } from 'wax-prosemirror-core';
 import invisibles, { hardBreak } from '@guardian/prosemirror-invisibles';
diff --git a/editors/demo/src/OEN/config/config.js b/editors/demo/src/OEN/config/config.js
index b2a987205..159cad884 100644
--- a/editors/demo/src/OEN/config/config.js
+++ b/editors/demo/src/OEN/config/config.js
@@ -9,7 +9,6 @@ import {
   LinkService,
   ListsService,
   ListToolGroupService,
-  TablesService,
   BaseService,
   BaseToolGroupService,
   DisplayBlockLevelService,
@@ -47,6 +46,7 @@ import {
   OENContainersToolGroupService,
   OENAsideToolGroupService,
 } from 'wax-prosemirror-services';
+import { TablesService, tableEditing, columnResizing } from 'wax-table-service';
 
 import { EditoriaSchema } from 'wax-prosemirror-core';
 
diff --git a/package.json b/package.json
index 00e25850c..f728163b9 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
     "wax-prosemirror-core",
     "wax-prosemirror-services",
     "wax-questions-service",
+    "wax-table-service",
     "editors/*"
   ],
   "scripts": {
diff --git a/wax-prosemirror-core/rollup.config.js b/wax-prosemirror-core/rollup.config.js
index 1eb417eb1..3acc3b132 100644
--- a/wax-prosemirror-core/rollup.config.js
+++ b/wax-prosemirror-core/rollup.config.js
@@ -30,10 +30,5 @@ export default {
     commonjs(),
     terser(),
   ],
-  external: [
-    'react-dropdown',
-    'uuid',
-    'prop-types',
-    'wax-prosemirror-services',
-  ],
+  external: [],
 };
diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js
index 97c1d53df..47ca65e64 100644
--- a/wax-prosemirror-services/index.js
+++ b/wax-prosemirror-services/index.js
@@ -5,7 +5,6 @@ export { default as BaseService } from './src/BaseService/BaseService';
 export { default as ImageService } from './src/ImageService/ImageService';
 export { default as InlineAnnotationsService } from './src/InlineAnnotations/InlineAnnotationsService';
 export { default as ListsService } from './src/ListsService/ListsService';
-export { default as TablesService } from './src/TablesService/TablesService';
 export { default as TextBlockLevelService } from './src/TextBlockLevel/TextBlockLevelService';
 export { default as DisplayBlockLevelService } from './src/DisplayBlockLevel/DisplayBlockLevelService';
 export { default as NoteService } from './src/NoteService/NoteService';
@@ -61,5 +60,3 @@ export { default as TitleToolGroupService } from './src/WaxToolGroups/TitleToolG
 /* Plugins */
 
 export { default as disallowPasteImagesPlugin } from './src/ImageService/plugins/disallowPasteImagesPlugin';
-
-export { tableEditing, columnResizing } from './src/TablesService/tableSrc';
diff --git a/wax-prosemirror-services/rollup.config.js b/wax-prosemirror-services/rollup.config.js
index f4d5cd16f..46fa70aa6 100644
--- a/wax-prosemirror-services/rollup.config.js
+++ b/wax-prosemirror-services/rollup.config.js
@@ -40,11 +40,7 @@ export default {
     'uuid',
     'react',
     'react-dom',
-    'react-dropdown',
     'lodash',
-    'prosemirror-schema-list',
-    'prosemirror-model',
-    'prosemirror-inputrules',
     '@babel/runtime/regenerator',
   ],
 };
diff --git a/wax-table-service/README.md b/wax-table-service/README.md
new file mode 100644
index 000000000..b8d971e91
--- /dev/null
+++ b/wax-table-service/README.md
@@ -0,0 +1 @@
+## Wax table package
diff --git a/wax-table-service/index.js b/wax-table-service/index.js
new file mode 100644
index 000000000..556e566da
--- /dev/null
+++ b/wax-table-service/index.js
@@ -0,0 +1,2 @@
+export { tableEditing, columnResizing } from './src/tableSrc';
+export { default as TablesService } from './src/TablesService';
diff --git a/wax-table-service/package.json b/wax-table-service/package.json
new file mode 100644
index 000000000..4f51a4ae7
--- /dev/null
+++ b/wax-table-service/package.json
@@ -0,0 +1,37 @@
+{
+  "name": "wax-table-service",
+  "author": "Christos Kokosias & Giannis Kopanas",
+  "version": "0.8.9",
+  "description": "Wax Table Service",
+  "license": "MIT",
+  "main": "dist/index.js",
+  "style": "dist/index.css",
+  "files": [
+    "dist"
+  ],
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "build": "BABEL_ENV=production rollup -c"
+  },
+  "dependencies": {
+    "@pubsweet/ui-toolkit": "^2.3.1",
+    "inversify": "^5.0.1",
+    "lodash": "^4.17.4",
+    "uuid": "^7.0.3",
+    "prosemirror-keymap": "1.2.1",
+    "prosemirror-state": "1.4.2",
+    "prosemirror-view": "1.30.2",
+    "prosemirror-transform": "1.7.1",
+    "wax-prosemirror-core": "^0.8.9",
+    "wax-prosemirror-services": "^0.8.9"
+  },
+  "devDependencies": {
+    "mocha": "^3.4.2",
+    "prosemirror-test-builder": "^1.0.1"
+  },
+  "peerDependencies": {
+    "react": "^18.2.0",
+    "react-dom": "^18.2.0",
+    "styled-components": "^5.3.1"
+  }
+}
diff --git a/wax-table-service/rollup.config.js b/wax-table-service/rollup.config.js
new file mode 100644
index 000000000..7db020053
--- /dev/null
+++ b/wax-table-service/rollup.config.js
@@ -0,0 +1,40 @@
+import babel from 'rollup-plugin-babel';
+import commonjs from '@rollup/plugin-commonjs';
+import external from 'rollup-plugin-peer-deps-external';
+import css from 'rollup-plugin-import-css';
+import { terser } from 'rollup-plugin-terser';
+
+export default {
+  input: 'index.js',
+  output: [
+    {
+      file: 'dist/index.js',
+      format: 'cjs',
+      sourcemap: false,
+    },
+  ],
+  plugins: [
+    css(),
+    external({
+      includeDependencies: true,
+    }),
+    babel({
+      presets: ['react-app'],
+      plugins: [
+        [
+          '@babel/plugin-transform-runtime',
+          {
+            regenerator: true,
+          },
+        ],
+        ['@babel/plugin-proposal-decorators', { legacy: true }],
+        'babel-plugin-parameter-decorator',
+      ],
+      exclude: 'node_modules/**',
+      runtimeHelpers: true,
+    }),
+    commonjs(),
+    terser(),
+  ],
+  external: ['uuid', 'react', 'react-dom', 'lodash', 'prosemirror-model'],
+};
diff --git a/wax-prosemirror-services/src/TablesService/EditTableService/EditTableService.js b/wax-table-service/src/EditTableService/EditTableService.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/EditTableService/EditTableService.js
rename to wax-table-service/src/EditTableService/EditTableService.js
diff --git a/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js b/wax-table-service/src/EditTableService/TableDropDownOptions.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js
rename to wax-table-service/src/EditTableService/TableDropDownOptions.js
diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js b/wax-table-service/src/InsertTableService/InsertTableService.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js
rename to wax-table-service/src/InsertTableService/InsertTableService.js
diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js b/wax-table-service/src/InsertTableService/Table.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/InsertTableService/Table.js
rename to wax-table-service/src/InsertTableService/Table.js
diff --git a/wax-prosemirror-services/src/TablesService/TableToolGroupService/TableToolGroupService.js b/wax-table-service/src/TableToolGroupService/TableToolGroupService.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/TableToolGroupService/TableToolGroupService.js
rename to wax-table-service/src/TableToolGroupService/TableToolGroupService.js
diff --git a/wax-prosemirror-services/src/TablesService/TableToolGroupService/Tables.js b/wax-table-service/src/TableToolGroupService/Tables.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/TableToolGroupService/Tables.js
rename to wax-table-service/src/TableToolGroupService/Tables.js
diff --git a/wax-prosemirror-services/src/TablesService/TablesService.js b/wax-table-service/src/TablesService.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/TablesService.js
rename to wax-table-service/src/TablesService.js
diff --git a/wax-prosemirror-services/src/TablesService/components/CreateTable.js b/wax-table-service/src/components/CreateTable.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/components/CreateTable.js
rename to wax-table-service/src/components/CreateTable.js
diff --git a/wax-prosemirror-services/src/TablesService/components/InsertTableTool.js b/wax-table-service/src/components/InsertTableTool.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/components/InsertTableTool.js
rename to wax-table-service/src/components/InsertTableTool.js
diff --git a/wax-prosemirror-services/src/TablesService/components/TableDropDown.js b/wax-table-service/src/components/TableDropDown.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/components/TableDropDown.js
rename to wax-table-service/src/components/TableDropDown.js
diff --git a/wax-prosemirror-services/src/TablesService/index.js b/wax-table-service/src/index.js
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/index.js
rename to wax-table-service/src/index.js
diff --git a/wax-prosemirror-services/src/TablesService/table.css b/wax-table-service/src/table.css
similarity index 100%
rename from wax-prosemirror-services/src/TablesService/table.css
rename to wax-table-service/src/table.css
diff --git a/wax-prosemirror-services/src/TablesService/tableSrc/index.js b/wax-table-service/src/tableSrc/index.js
similarity index 99%
rename from wax-prosemirror-services/src/TablesService/tableSrc/index.js
rename to wax-table-service/src/tableSrc/index.js
index 71d900556..4b193e70c 100644
--- a/wax-prosemirror-services/src/TablesService/tableSrc/index.js
+++ b/wax-table-service/src/tableSrc/index.js
@@ -1,3 +1,5 @@
+/* eslint-disable*/
+
 // src/index.ts
 import { Plugin as Plugin2 } from 'prosemirror-state';
 
-- 
GitLab