From b3014383edfdf26d237d445a9da4b26e902e9b30 Mon Sep 17 00:00:00 2001 From: Artyom Savchenko Date: Mon, 17 Feb 2025 17:50:49 +0700 Subject: [PATCH] UBERF-9297/Initial personal browser and mail (#8021) Signed-off-by: Artem Savchenko --- common/config/rush/pnpm-lock.yaml | 265 ++++++++++++++++++ desktop/package.json | 6 + desktop/src/ui/platform.ts | 6 + dev/prod/package.json | 6 + dev/prod/src/platform.ts | 7 + models/all/package.json | 4 +- models/all/src/index.ts | 14 + models/mail/.eslintrc.js | 7 + models/mail/.npmignore | 4 + models/mail/config/rig.json | 5 + models/mail/package.json | 41 +++ models/mail/src/index.ts | 68 +++++ models/mail/src/plugin.ts | 15 + models/mail/tsconfig.json | 10 + models/my-space/.eslintrc.js | 7 + models/my-space/.npmignore | 4 + models/my-space/config/rig.json | 5 + models/my-space/package.json | 43 +++ models/my-space/src/index.ts | 81 ++++++ models/my-space/src/plugin.ts | 22 ++ models/my-space/tsconfig.json | 10 + plugins/mail-assets/.eslintrc.js | 7 + plugins/mail-assets/assets/icons.svg | 16 ++ plugins/mail-assets/config/rig.json | 5 + plugins/mail-assets/jest.config.js | 7 + plugins/mail-assets/lang/cs.json | 11 + plugins/mail-assets/lang/de.json | 11 + plugins/mail-assets/lang/en.json | 11 + plugins/mail-assets/lang/es.json | 11 + plugins/mail-assets/lang/fr.json | 11 + plugins/mail-assets/lang/it.json | 11 + plugins/mail-assets/lang/pt.json | 11 + plugins/mail-assets/lang/ru.json | 11 + plugins/mail-assets/lang/zh.json | 11 + plugins/mail-assets/package.json | 39 +++ .../mail-assets/src/__tests__/lang.test.ts | 6 + plugins/mail-assets/src/index.ts | 25 ++ plugins/mail-assets/tsconfig.json | 11 + plugins/mail-resources/.eslintrc.js | 4 + plugins/mail-resources/.prettierrc | 22 ++ plugins/mail-resources/config/rig.json | 5 + plugins/mail-resources/jest.config.js | 5 + plugins/mail-resources/package.json | 54 ++++ plugins/mail-resources/postcss.config.js | 5 + .../src/components/CreateMail.svelte | 137 +++++++++ .../src/components/MailThread.svelte | 120 ++++++++ .../src/components/MailThreadPresenter.svelte | 62 ++++ plugins/mail-resources/src/index.ts | 27 ++ plugins/mail-resources/src/messageUtils.ts | 109 +++++++ plugins/mail-resources/src/plugin.ts | 22 ++ plugins/mail-resources/svelte.config.js | 5 + plugins/mail-resources/tsconfig.json | 9 + plugins/mail/.eslintrc.js | 7 + plugins/mail/.npmignore | 4 + plugins/mail/config/rig.json | 4 + plugins/mail/jest.config.js | 7 + plugins/mail/package.json | 49 ++++ plugins/mail/src/index.ts | 60 ++++ plugins/mail/tsconfig.json | 10 + plugins/my-space-assets/.eslintrc.js | 7 + plugins/my-space-assets/assets/icons.svg | 9 + plugins/my-space-assets/config/rig.json | 5 + plugins/my-space-assets/jest.config.js | 7 + plugins/my-space-assets/lang/cs.json | 8 + plugins/my-space-assets/lang/de.json | 8 + plugins/my-space-assets/lang/en.json | 8 + plugins/my-space-assets/lang/fr.json | 8 + plugins/my-space-assets/lang/it.json | 8 + plugins/my-space-assets/lang/ru.json | 8 + plugins/my-space-assets/lang/zh.json | 8 + plugins/my-space-assets/package.json | 39 +++ .../src/__tests__/lang.test.ts | 6 + plugins/my-space-assets/src/index.ts | 23 ++ plugins/my-space-assets/tsconfig.json | 11 + plugins/my-space-resources/.eslintrc.js | 4 + plugins/my-space-resources/.prettierrc | 22 ++ plugins/my-space-resources/config/rig.json | 5 + plugins/my-space-resources/jest.config.js | 5 + plugins/my-space-resources/package.json | 55 ++++ plugins/my-space-resources/postcss.config.js | 5 + plugins/my-space-resources/src/index.ts | 26 ++ plugins/my-space-resources/src/navigation.ts | 87 ++++++ plugins/my-space-resources/src/plugin.ts | 25 ++ plugins/my-space-resources/svelte.config.js | 5 + plugins/my-space-resources/tsconfig.json | 9 + plugins/my-space/.eslintrc.js | 7 + plugins/my-space/.npmignore | 4 + plugins/my-space/config/rig.json | 4 + plugins/my-space/jest.config.js | 7 + plugins/my-space/package.json | 48 ++++ plugins/my-space/src/index.ts | 20 ++ plugins/my-space/src/plugin.ts | 52 ++++ plugins/my-space/tsconfig.json | 10 + rush.json | 40 +++ 94 files changed, 2174 insertions(+), 1 deletion(-) create mode 100644 models/mail/.eslintrc.js create mode 100644 models/mail/.npmignore create mode 100644 models/mail/config/rig.json create mode 100644 models/mail/package.json create mode 100644 models/mail/src/index.ts create mode 100644 models/mail/src/plugin.ts create mode 100644 models/mail/tsconfig.json create mode 100644 models/my-space/.eslintrc.js create mode 100644 models/my-space/.npmignore create mode 100644 models/my-space/config/rig.json create mode 100644 models/my-space/package.json create mode 100644 models/my-space/src/index.ts create mode 100644 models/my-space/src/plugin.ts create mode 100644 models/my-space/tsconfig.json create mode 100644 plugins/mail-assets/.eslintrc.js create mode 100644 plugins/mail-assets/assets/icons.svg create mode 100644 plugins/mail-assets/config/rig.json create mode 100644 plugins/mail-assets/jest.config.js create mode 100644 plugins/mail-assets/lang/cs.json create mode 100644 plugins/mail-assets/lang/de.json create mode 100644 plugins/mail-assets/lang/en.json create mode 100644 plugins/mail-assets/lang/es.json create mode 100644 plugins/mail-assets/lang/fr.json create mode 100644 plugins/mail-assets/lang/it.json create mode 100644 plugins/mail-assets/lang/pt.json create mode 100644 plugins/mail-assets/lang/ru.json create mode 100644 plugins/mail-assets/lang/zh.json create mode 100644 plugins/mail-assets/package.json create mode 100644 plugins/mail-assets/src/__tests__/lang.test.ts create mode 100644 plugins/mail-assets/src/index.ts create mode 100644 plugins/mail-assets/tsconfig.json create mode 100644 plugins/mail-resources/.eslintrc.js create mode 100644 plugins/mail-resources/.prettierrc create mode 100644 plugins/mail-resources/config/rig.json create mode 100644 plugins/mail-resources/jest.config.js create mode 100644 plugins/mail-resources/package.json create mode 100644 plugins/mail-resources/postcss.config.js create mode 100644 plugins/mail-resources/src/components/CreateMail.svelte create mode 100644 plugins/mail-resources/src/components/MailThread.svelte create mode 100644 plugins/mail-resources/src/components/MailThreadPresenter.svelte create mode 100644 plugins/mail-resources/src/index.ts create mode 100644 plugins/mail-resources/src/messageUtils.ts create mode 100644 plugins/mail-resources/src/plugin.ts create mode 100644 plugins/mail-resources/svelte.config.js create mode 100644 plugins/mail-resources/tsconfig.json create mode 100644 plugins/mail/.eslintrc.js create mode 100644 plugins/mail/.npmignore create mode 100644 plugins/mail/config/rig.json create mode 100644 plugins/mail/jest.config.js create mode 100644 plugins/mail/package.json create mode 100644 plugins/mail/src/index.ts create mode 100644 plugins/mail/tsconfig.json create mode 100644 plugins/my-space-assets/.eslintrc.js create mode 100644 plugins/my-space-assets/assets/icons.svg create mode 100644 plugins/my-space-assets/config/rig.json create mode 100644 plugins/my-space-assets/jest.config.js create mode 100644 plugins/my-space-assets/lang/cs.json create mode 100644 plugins/my-space-assets/lang/de.json create mode 100644 plugins/my-space-assets/lang/en.json create mode 100644 plugins/my-space-assets/lang/fr.json create mode 100644 plugins/my-space-assets/lang/it.json create mode 100644 plugins/my-space-assets/lang/ru.json create mode 100644 plugins/my-space-assets/lang/zh.json create mode 100644 plugins/my-space-assets/package.json create mode 100644 plugins/my-space-assets/src/__tests__/lang.test.ts create mode 100644 plugins/my-space-assets/src/index.ts create mode 100644 plugins/my-space-assets/tsconfig.json create mode 100644 plugins/my-space-resources/.eslintrc.js create mode 100644 plugins/my-space-resources/.prettierrc create mode 100644 plugins/my-space-resources/config/rig.json create mode 100644 plugins/my-space-resources/jest.config.js create mode 100644 plugins/my-space-resources/package.json create mode 100644 plugins/my-space-resources/postcss.config.js create mode 100644 plugins/my-space-resources/src/index.ts create mode 100644 plugins/my-space-resources/src/navigation.ts create mode 100644 plugins/my-space-resources/src/plugin.ts create mode 100644 plugins/my-space-resources/svelte.config.js create mode 100644 plugins/my-space-resources/tsconfig.json create mode 100644 plugins/my-space/.eslintrc.js create mode 100644 plugins/my-space/.npmignore create mode 100644 plugins/my-space/config/rig.json create mode 100644 plugins/my-space/jest.config.js create mode 100644 plugins/my-space/package.json create mode 100644 plugins/my-space/src/index.ts create mode 100644 plugins/my-space/src/plugin.ts create mode 100644 plugins/my-space/tsconfig.json diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index f534b77f1f..a8e5fd4c4d 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -361,6 +361,15 @@ importers: '@rush-temp/love-resources': specifier: file:./projects/love-resources.tgz version: file:projects/love-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/mail': + specifier: file:./projects/mail.tgz + version: file:projects/mail.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/mail-assets': + specifier: file:./projects/mail-assets.tgz + version: file:projects/mail-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/mail-resources': + specifier: file:./projects/mail-resources.tgz + version: file:projects/mail-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) '@rush-temp/middleware': specifier: file:./projects/middleware.tgz version: file:projects/middleware.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) @@ -439,9 +448,15 @@ importers: '@rush-temp/model-love': specifier: file:./projects/model-love.tgz version: file:projects/model-love.tgz + '@rush-temp/model-mail': + specifier: file:./projects/model-mail.tgz + version: file:projects/model-mail.tgz '@rush-temp/model-notification': specifier: file:./projects/model-notification.tgz version: file:projects/model-notification.tgz + '@rush-temp/model-my-space': + specifier: file:./projects/model-my-space.tgz + version: file:projects/model-my-space.tgz '@rush-temp/model-preference': specifier: file:./projects/model-preference.tgz version: file:projects/model-preference.tgz @@ -634,6 +649,15 @@ importers: '@rush-temp/panel': specifier: file:./projects/panel.tgz version: file:projects/panel.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/my-space': + specifier: file:./projects/my-space.tgz + version: file:projects/my-space.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/my-space-assets': + specifier: file:./projects/my-space-assets.tgz + version: file:projects/my-space-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/my-space-resources': + specifier: file:./projects/my-space-resources.tgz + version: file:projects/my-space-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) '@rush-temp/platform': specifier: file:./projects/platform.tgz version: file:projects/platform.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) @@ -4318,6 +4342,18 @@ packages: resolution: {integrity: sha512-D9QBf+/PREVaj/zqju1EnET+45ImzmEpqYThK+I2fbGxZ2t128DbfspBi3Lf2pUure8yF2PSTlTJSzKmUtgvpA==, tarball: file:projects/love.tgz} version: 0.0.0 + '@rush-temp/mail-assets@file:projects/mail-assets.tgz': + resolution: {integrity: sha512-Lp1APt1DRMNrH2DhlOTTJjjIPhThHuc1+3Jj1fJU1ryH4FcJwCDFRw9InLEhjphf9cGC6z06EpgL3+3FtHOmJg==, tarball: file:projects/mail-assets.tgz} + version: 0.0.0 + + '@rush-temp/mail-resources@file:projects/mail-resources.tgz': + resolution: {integrity: sha512-8PtetoobhgQAiaGjqRf2aOgVY3Xh0KkyWTVLA2GIKaWY0lD0Vt69jDk1jptyXJOfkQLXRTSk7JxTs9lH96q8UQ==, tarball: file:projects/mail-resources.tgz} + version: 0.0.0 + + '@rush-temp/mail@file:projects/mail.tgz': + resolution: {integrity: sha512-khCqnHqt/MDtJv8eTx08ov9GkvC00wPeb1Q+QE5zk7xqbjK/QYJWPmdMRkvOJobCHLh2/g6ST2lgNbV938hrJA==, tarball: file:projects/mail.tgz} + version: 0.0.0 + '@rush-temp/middleware@file:projects/middleware.tgz': resolution: {integrity: sha512-d3bnkZYGycgZKQg4veVLwKczJdPhg65urbHhl9FJI3MV2izx8zCRu01frLW6zn61nYGW1fffugXfGoWBv4xxcA==, tarball: file:projects/middleware.tgz} version: 0.0.0 @@ -4418,10 +4454,18 @@ packages: resolution: {integrity: sha512-7bncZHfFYZKaCX+Wv+mcOHFU328pUC8qmqDw2V/o4Ee+fZAMCpudJuevAwtjf9uIu3fuyf1E+SLCgz8YXjyQBQ==, tarball: file:projects/model-love.tgz} version: 0.0.0 + '@rush-temp/model-mail@file:projects/model-mail.tgz': + resolution: {integrity: sha512-Z2WZ+9IF0119TDZDyODrcI3ptuQLQ/h7WaxvbPIFsUQm+MI5VPV6hCNUBNp8if2XQLmSn0YByejtW1bSBz/WAg==, tarball: file:projects/model-mail.tgz} + version: 0.0.0 + '@rush-temp/model-notification@file:projects/model-notification.tgz': resolution: {integrity: sha512-k7valecajKQwOhAeROASPm+RO2/D3xZSkan8Z09kmy+9dNLYBxQT/mr7k+HBdlzU4JD3fDQRP6EStyJBkLFZsQ==, tarball: file:projects/model-notification.tgz} version: 0.0.0 + '@rush-temp/model-my-space@file:projects/model-my-space.tgz': + resolution: {integrity: sha512-OxBDKFosN/3hsy9Ot0fDJTpzqFJvNLWxgJXtmculo1ksyKacMGZc4+9Ouxj49NFQ4JPl1UpBLZjaWPQ7xuyo3w==, tarball: file:projects/model-my-space.tgz} + version: 0.0.0 + '@rush-temp/model-preference@file:projects/model-preference.tgz': resolution: {integrity: sha512-r2RLrTIRHQ4txZegXOqXQfcPMJmA6HQz5i9EOi8RH7mGB+f6lqnBoYCf+mihfazPXLyF8NXbhPuNX1XHXMqvyg==, tarball: file:projects/model-preference.tgz} version: 0.0.0 @@ -4682,6 +4726,18 @@ packages: resolution: {integrity: sha512-cjwk9I0RxeNJQTgtbbcQlwiurbp+/T5MbiRnYTLWvxsMBVWnnxD5nToECUt1QdW/CjSSbPsaYP8hoMgt/AufCw==, tarball: file:projects/panel.tgz} version: 0.0.0 + '@rush-temp/my-space-assets@file:projects/my-space-assets.tgz': + resolution: {integrity: sha512-yGiP0aFiYA6RZiY4Ufqhk2egfhWvjEi3GOjcmLZ3eAl3samu/g4b3BcAKzo6SimMwKM2GQF+9oKHn1F/5LmSjA==, tarball: file:projects/my-space-assets.tgz} + version: 0.0.0 + + '@rush-temp/my-space-resources@file:projects/my-space-resources.tgz': + resolution: {integrity: sha512-dE2Jeu1rsu0l18l6oKj0Z+D99sS8fkuAcqoqh9alzavqquUvgGSXtTUB24l6Y6A0tbpshtAMLhmFSFgwPtSGHw==, tarball: file:projects/my-space-resources.tgz} + version: 0.0.0 + + '@rush-temp/my-space@file:projects/my-space.tgz': + resolution: {integrity: sha512-dBx6We9vl3uuETflughn1Q1jmxjzQdxZ0rf+OiZZ6lRM0u304BhlM7459AMcaZ76oxkqZ6ulRYVVxr8k7ZGHaA==, tarball: file:projects/my-space.tgz} + version: 0.0.0 + '@rush-temp/platform-rig@file:projects/platform-rig.tgz': resolution: {integrity: sha512-Ex4y6Gru0FdNgfJ8Q/TOIOZLrvmk+4eDiepGH95XOsHgcTQTfhHPfNwYBgC5yOqQrY9O8GDqWUZtV+KySEAQjg==, tarball: file:projects/platform-rig.tgz} version: 0.0.0 @@ -19105,6 +19161,96 @@ snapshots: - svelte - ts-node + '@rush-temp/mail-assets@file:projects/mail-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + + '@rush-temp/mail-resources@file:projects/mail-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.19) + sass: 1.71.1 + svelte: 4.2.19 + svelte-check: 3.6.9(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19) + svelte-eslint-parser: 0.33.1(svelte@4.2.19) + svelte-loader: 3.2.0(svelte@4.2.19) + svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19)(typescript@5.6.2) + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - coffeescript + - esbuild + - less + - node-notifier + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - supports-color + - ts-node + + '@rush-temp/mail@file:projects/mail.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + '@rush-temp/middleware@file:projects/middleware.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': dependencies: '@types/jest': 29.5.12 @@ -19488,6 +19634,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@rush-temp/model-mail@file:projects/model-mail.tgz': + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + '@rush-temp/model-notification@file:projects/model-notification.tgz': dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3) @@ -19502,6 +19662,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@rush-temp/model-my-space@file:projects/model-my-space.tgz': + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + '@rush-temp/model-preference@file:projects/model-preference.tgz': dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3) @@ -20621,6 +20795,97 @@ snapshots: - supports-color - ts-node + '@rush-temp/my-space-assets@file:projects/my-space-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + + '@rush-temp/my-space-resources@file:projects/my-space-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + fast-equals: 5.2.2 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.19) + sass: 1.71.1 + svelte: 4.2.19 + svelte-check: 3.6.9(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19) + svelte-eslint-parser: 0.33.1(svelte@4.2.19) + svelte-loader: 3.2.0(svelte@4.2.19) + svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19)(typescript@5.6.2) + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - coffeescript + - esbuild + - less + - node-notifier + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - supports-color + - ts-node + + '@rush-temp/my-space@file:projects/my-space.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + '@rush-temp/platform-rig@file:projects/platform-rig.tgz(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(svelte@4.2.19)': dependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) diff --git a/desktop/package.json b/desktop/package.json index 37c083bd9f..e1a7f9531f 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -215,6 +215,12 @@ "@hcengineering/card": "^0.6.0", "@hcengineering/card-assets": "^0.6.0", "@hcengineering/card-resources": "^0.6.0", + "@hcengineering/my-space": "^0.6.0", + "@hcengineering/my-space-assets": "^0.6.0", + "@hcengineering/my-space-resources": "^0.6.0", + "@hcengineering/mail": "^0.6.0", + "@hcengineering/mail-assets": "^0.6.0", + "@hcengineering/mail-resources": "^0.6.0", "electron-squirrel-startup": "~1.0.0", "dotenv": "~16.0.0", "electron-context-menu": "^4.0.4", diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts index 5cb0b7a5cf..30fe696568 100644 --- a/desktop/src/ui/platform.ts +++ b/desktop/src/ui/platform.ts @@ -57,6 +57,8 @@ import { documentsId } from '@hcengineering/controlled-documents' import aiBot, { aiBotId } from '@hcengineering/ai-bot' import { testManagementId } from '@hcengineering/test-management' import { surveyId } from '@hcengineering/survey' +import { mySpaceId } from '@hcengineering/my-space' +import { mailId } from '@hcengineering/mail' import '@hcengineering/activity-assets' import '@hcengineering/attachment-assets' @@ -101,6 +103,7 @@ import '@hcengineering/text-editor-assets' import '@hcengineering/test-management-assets' import '@hcengineering/survey-assets' import '@hcengineering/card-assets' +import '@hcengineering/mail-assets' import { coreId } from '@hcengineering/core' import presentation, { parsePreviewConfig, parseUploadConfig, presentationId } from '@hcengineering/presentation' @@ -195,6 +198,8 @@ function configureI18n (): void { addStringsLoader(testManagementId, async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`)) addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`)) addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`)) + addStringsLoader(mySpaceId, async (lang: string) => await import(`@hcengineering/my-space-assets/lang/${lang}.json`)) + addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`)) } export async function configurePlatform (): Promise { @@ -322,6 +327,7 @@ export async function configurePlatform (): Promise { addLocation(testManagementId, () => import(/* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources')) addLocation(surveyId, () => import(/* webpackChunkName: "survey" */ '@hcengineering/survey-resources')) addLocation(cardId, () => import(/* webpackChunkName: "card" */ '@hcengineering/card-resources')) + addLocation(mySpaceId, () => import(/* webpackChunkName: "card" */ '@hcengineering/my-space-resources')) setMetadata(client.metadata.FilterModel, 'ui') setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin]) diff --git a/dev/prod/package.json b/dev/prod/package.json index aa685c2f8a..d08fe1f598 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -209,6 +209,12 @@ "@hcengineering/card": "^0.6.0", "@hcengineering/card-assets": "^0.6.0", "@hcengineering/card-resources": "^0.6.0", + "@hcengineering/my-space": "^0.6.0", + "@hcengineering/my-space-assets": "^0.6.0", + "@hcengineering/my-space-resources": "^0.6.0", + "@hcengineering/mail": "^0.6.0", + "@hcengineering/mail-assets": "^0.6.0", + "@hcengineering/mail-resources": "^0.6.0", "@sentry/svelte": "^8.52.1", "posthog-js": "~1.122.0" } diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index c1739b7c04..ecf8d83a74 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -40,6 +40,7 @@ import login, { loginId } from '@hcengineering/login' import love, { loveId } from '@hcengineering/love' import notification, { notificationId } from '@hcengineering/notification' import onboard, { onboardId } from '@hcengineering/onboard' +import { mySpaceId } from '@hcengineering/my-space' import presence, { presenceId } from '@hcengineering/presence' import print, { printId } from '@hcengineering/print' import { productsId } from '@hcengineering/products' @@ -64,6 +65,7 @@ import uiPlugin from '@hcengineering/ui' import { uploaderId } from '@hcengineering/uploader' import { viewId } from '@hcengineering/view' import workbench, { workbenchId } from '@hcengineering/workbench' +import { mailId } from '@hcengineering/mail' import { bitrixId } from '@hcengineering/bitrix' @@ -89,6 +91,7 @@ import '@hcengineering/lead-assets' import '@hcengineering/login-assets' import '@hcengineering/love-assets' import '@hcengineering/notification-assets' +import '@hcengineering/my-space-assets' import '@hcengineering/preference-assets' import '@hcengineering/print-assets' import '@hcengineering/products-assets' @@ -323,6 +326,8 @@ function configureI18n(): void { ) addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`)) addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`)) + addStringsLoader(mySpaceId, async (lang: string) => await import(`@hcengineering/my-space-assets/lang/${lang}.json`)) + addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`)) } export async function configurePlatform() { @@ -511,6 +516,8 @@ export async function configurePlatform() { addLocation(surveyId, () => import(/* webpackChunkName: "survey" */ '@hcengineering/survey-resources')) addLocation(presenceId, () => import(/* webpackChunkName: "presence" */ '@hcengineering/presence-resources')) addLocation(cardId, () => import(/* webpackChunkName: "card" */ '@hcengineering/card-resources')) + addLocation(mySpaceId, () => import(/* webpackChunkName: "card" */ '@hcengineering/my-space-resources')) + addLocation(mailId, () => import(/* webpackChunkName: "card" */ '@hcengineering/mail-resources')) setMetadata(client.metadata.FilterModel, 'ui') setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin]) diff --git a/models/all/package.json b/models/all/package.json index 9069c256d1..f69ddf04b5 100644 --- a/models/all/package.json +++ b/models/all/package.json @@ -115,6 +115,8 @@ "@hcengineering/model-test-management": "^0.6.0", "@hcengineering/model-survey": "^0.6.0", "@hcengineering/model-presence": "^0.6.0", - "@hcengineering/model-card": "^0.6.0" + "@hcengineering/model-card": "^0.6.0", + "@hcengineering/model-mail": "^0.6.0", + "@hcengineering/model-my-space": "^0.6.0" } } diff --git a/models/all/src/index.ts b/models/all/src/index.ts index e80c6707d2..ca532e1ddf 100644 --- a/models/all/src/index.ts +++ b/models/all/src/index.ts @@ -101,6 +101,8 @@ import testManagement, { testManagementId, createModel as testManagementModel } from '@hcengineering/model-test-management' +import mySpace, { mySpaceId, createModel as mySpaceModel } from '@hcengineering/model-my-space' +import { mailId, createModel as mailModel } from '@hcengineering/model-mail' import { serverDocumentsId, @@ -430,6 +432,18 @@ export default function buildModel (enabled: string[] = ['*'], disabled: string[ ], [surveyModel, surveyId], [presenceModel, presenceId], + [ + mySpaceModel, + mySpaceId, + { + label: mySpace.string.ConfigLabel, + description: mySpace.string.ConfigDescription, + enabled: true, + beta: true, + classFilter: defaultFilter + } + ], + [mailModel, mailId], [serverCoreModel, serverCoreId], [serverAttachmentModel, serverAttachmentId], diff --git a/models/mail/.eslintrc.js b/models/mail/.eslintrc.js new file mode 100644 index 0000000000..c1cf82cba0 --- /dev/null +++ b/models/mail/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/models/mail/.npmignore b/models/mail/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/mail/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/mail/config/rig.json b/models/mail/config/rig.json new file mode 100644 index 0000000000..2f6be36605 --- /dev/null +++ b/models/mail/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "model" +} diff --git a/models/mail/package.json b/models/mail/package.json new file mode 100644 index 0000000000..237d860888 --- /dev/null +++ b/models/mail/package.json @@ -0,0 +1,41 @@ +{ + "name": "@hcengineering/model-mail", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "author": "Anticrm Platform Contributors", + "template": "@hcengineering/model-package", + "license": "EPL-2.0", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/activity": "^0.6.0", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/model": "^0.6.11", + "@hcengineering/model-contact": "^0.6.1", + "@hcengineering/model-chunter": "^0.6.0", + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/model-view": "^0.6.0", + "@hcengineering/mail": "^0.6.0" + } +} diff --git a/models/mail/src/index.ts b/models/mail/src/index.ts new file mode 100644 index 0000000000..f9c0a5f5e5 --- /dev/null +++ b/models/mail/src/index.ts @@ -0,0 +1,68 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import activity from '@hcengineering/activity' +import core, { IndexKind } from '@hcengineering/core' +import { type Builder, Index, Model, Prop, TypeString, UX } from '@hcengineering/model' +import contact from '@hcengineering/model-contact' +import view from '@hcengineering/model-view' +import { TChunterSpace } from '@hcengineering/model-chunter' + +import chunter from '@hcengineering/chunter' +import mail, { type MailThread } from '@hcengineering/mail' + +export { mailId } from '@hcengineering/mail' +export { default } from './plugin' + +@Model(mail.class.MailThread, chunter.class.ChunterSpace) +@UX(mail.string.MailThread, contact.icon.Person, undefined, undefined, undefined, mail.string.MailThread) +export class TMailThread extends TChunterSpace implements MailThread { + @Prop(TypeString(), mail.string.Subject) + @Index(IndexKind.FullText) + subject!: string + + @Prop(TypeString(), mail.string.MailThreadId) + @Index(IndexKind.Indexed) + mailThreadId!: string + + @Prop(TypeString(), mail.string.From) + @Index(IndexKind.FullText) + from!: string + + @Prop(TypeString(), mail.string.To) + @Index(IndexKind.FullText) + to!: string + + @Prop(TypeString(), mail.string.MailPreview) + preview!: string +} + +export function createModel (builder: Builder): void { + builder.createModel(TMailThread) + + builder.mixin(mail.class.MailThread, core.class.Class, activity.mixin.ActivityDoc, {}) + + builder.mixin(mail.class.MailThread, core.class.Class, view.mixin.ObjectPresenter, { + presenter: mail.component.MailThreadPresenter + }) + + builder.mixin(mail.class.MailThread, core.class.Class, view.mixin.ObjectEditor, { + editor: mail.component.MailThread + }) + + builder.mixin(mail.class.MailThread, core.class.Class, view.mixin.ObjectPanel, { + component: mail.component.MailThread + }) +} diff --git a/models/mail/src/plugin.ts b/models/mail/src/plugin.ts new file mode 100644 index 0000000000..e83fc27360 --- /dev/null +++ b/models/mail/src/plugin.ts @@ -0,0 +1,15 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +export { default } from '@hcengineering/mail' diff --git a/models/mail/tsconfig.json b/models/mail/tsconfig.json new file mode 100644 index 0000000000..9765b6086d --- /dev/null +++ b/models/mail/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/model/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/models/my-space/.eslintrc.js b/models/my-space/.eslintrc.js new file mode 100644 index 0000000000..c1cf82cba0 --- /dev/null +++ b/models/my-space/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/models/my-space/.npmignore b/models/my-space/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/my-space/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/my-space/config/rig.json b/models/my-space/config/rig.json new file mode 100644 index 0000000000..2f6be36605 --- /dev/null +++ b/models/my-space/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "model" +} diff --git a/models/my-space/package.json b/models/my-space/package.json new file mode 100644 index 0000000000..3d2512a7ce --- /dev/null +++ b/models/my-space/package.json @@ -0,0 +1,43 @@ +{ + "name": "@hcengineering/model-my-space", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "author": "Hardcore Engineering Inc.", + "template": "@hcengineering/model-package", + "license": "EPL-2.0", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/core": "^0.6.32", + "@hcengineering/mail": "^0.6.0", + "@hcengineering/model": "^0.6.11", + "@hcengineering/model-core": "^0.6.0", + "@hcengineering/model-presentation": "^0.6.0", + "@hcengineering/model-workbench": "^0.6.1", + "@hcengineering/model-view": "^0.6.0", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/my-space": "^0.6.0", + "@hcengineering/my-space-resources": "^0.6.0" + } +} diff --git a/models/my-space/src/index.ts b/models/my-space/src/index.ts new file mode 100644 index 0000000000..4cb8f3de63 --- /dev/null +++ b/models/my-space/src/index.ts @@ -0,0 +1,81 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { AccountRole } from '@hcengineering/core' +import { type Builder } from '@hcengineering/model' +import core from '@hcengineering/model-core' +import view, { type Viewlet } from '@hcengineering/model-view' +import workbench from '@hcengineering/model-workbench' +import mail from '@hcengineering/mail' +import { mySpaceId } from '@hcengineering/my-space' + +import mySpace from './plugin' + +export { mySpaceId } from '@hcengineering/my-space' + +export { mySpace as default } + +export function createModel (builder: Builder): void { + builder.createDoc( + workbench.class.Application, + core.space.Model, + { + label: mySpace.string.MySpace, + icon: mySpace.icon.MySpace, + alias: mySpaceId, + accessLevel: AccountRole.User, + hidden: false, + locationResolver: mySpace.resolver.Location, + navigatorModel: { + spaces: [], + specials: [ + { + id: 'mail', + label: mySpace.string.Mail, + icon: mySpace.icon.Mail, + component: workbench.component.SpecialView, + componentProps: { + _class: mail.class.MailThread, + icon: mySpace.icon.Mail, + label: mySpace.string.Mail, + createLabel: mail.string.CreateMail, + createComponent: mail.component.CreateMail + } + } + ] + } + }, + mySpace.app.MySpace + ) + + builder.createDoc( + view.class.Viewlet, + core.space.Model, + { + attachTo: mail.class.MailThread, + descriptor: view.viewlet.Table, + config: [ + { key: 'createdBy', label: mail.string.From, displayProps: { fixed: 'left', key: 'app' } }, + '', + { key: 'modifiedOn', label: mail.string.Date, displayProps: { key: 'modified', fixed: 'right' } } + ], + configOptions: { + hiddenKeys: ['name'], + sortable: true + } + }, + mySpace.viewlet.TableMail + ) +} diff --git a/models/my-space/src/plugin.ts b/models/my-space/src/plugin.ts new file mode 100644 index 0000000000..629b4a354b --- /dev/null +++ b/models/my-space/src/plugin.ts @@ -0,0 +1,22 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { mergeIds } from '@hcengineering/platform' +import { mySpaceId } from '@hcengineering/my-space' +import mySpace from '@hcengineering/my-space-resources/src/plugin' + +export default mergeIds(mySpaceId, mySpace, { + component: {} +}) diff --git a/models/my-space/tsconfig.json b/models/my-space/tsconfig.json new file mode 100644 index 0000000000..9765b6086d --- /dev/null +++ b/models/my-space/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/model/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/.eslintrc.js b/plugins/mail-assets/.eslintrc.js new file mode 100644 index 0000000000..e73094bc7e --- /dev/null +++ b/plugins/mail-assets/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/plugins/mail-assets/assets/icons.svg b/plugins/mail-assets/assets/icons.svg new file mode 100644 index 0000000000..0737d495c3 --- /dev/null +++ b/plugins/mail-assets/assets/icons.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/plugins/mail-assets/config/rig.json b/plugins/mail-assets/config/rig.json new file mode 100644 index 0000000000..b75800b9b7 --- /dev/null +++ b/plugins/mail-assets/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "assets" +} diff --git a/plugins/mail-assets/jest.config.js b/plugins/mail-assets/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/plugins/mail-assets/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/plugins/mail-assets/lang/cs.json b/plugins/mail-assets/lang/cs.json new file mode 100644 index 0000000000..c7ce8a9f2e --- /dev/null +++ b/plugins/mail-assets/lang/cs.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Téma", + "From": "Od", + "To": "Komu", + "CreateMail": "Nová zpráva", + "MailThread": "Zpráva", + "Reply": "Odpovědět", + "Date": "Datum" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/de.json b/plugins/mail-assets/lang/de.json new file mode 100644 index 0000000000..70685590c3 --- /dev/null +++ b/plugins/mail-assets/lang/de.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Betreff", + "From": "Von", + "To": "An", + "CreateMail": "Neue Nachricht", + "MailThread": "Nachricht", + "Reply": "Antworten", + "Date": "Datum" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/en.json b/plugins/mail-assets/lang/en.json new file mode 100644 index 0000000000..f5dbdee65e --- /dev/null +++ b/plugins/mail-assets/lang/en.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Subject", + "From": "From", + "To": "To", + "CreateMail": "New Mail", + "MailThread": "Mail", + "Reply": "Reply", + "Date": "Date" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/es.json b/plugins/mail-assets/lang/es.json new file mode 100644 index 0000000000..3b3156503c --- /dev/null +++ b/plugins/mail-assets/lang/es.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Asunto", + "From": "De", + "To": "Para", + "CreateMail": "Nuevo mensaje", + "MailThread": "Mensaje", + "Reply": "Responder", + "Date": "Fecha" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/fr.json b/plugins/mail-assets/lang/fr.json new file mode 100644 index 0000000000..eb4b232381 --- /dev/null +++ b/plugins/mail-assets/lang/fr.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Sujet", + "From": "De", + "To": "À", + "CreateMail": "Nouveau message", + "MailThread": "Message", + "Reply": "Répondre", + "Date": "Date" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/it.json b/plugins/mail-assets/lang/it.json new file mode 100644 index 0000000000..0d2bd8e7fc --- /dev/null +++ b/plugins/mail-assets/lang/it.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Oggetto", + "From": "Da", + "To": "A", + "CreateMail": "Nuovo messaggio", + "MailThread": "Messaggio", + "Reply": "Rispondi", + "Date": "Data" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/pt.json b/plugins/mail-assets/lang/pt.json new file mode 100644 index 0000000000..d0590894a9 --- /dev/null +++ b/plugins/mail-assets/lang/pt.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Assunto", + "From": "De", + "To": "Para", + "CreateMail": "Nova mensagem", + "MailThread": "Mensagem", + "Reply": "Responder", + "Date": "Data" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/ru.json b/plugins/mail-assets/lang/ru.json new file mode 100644 index 0000000000..ad68699599 --- /dev/null +++ b/plugins/mail-assets/lang/ru.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "Тема", + "From": "От кого", + "To": "Кому", + "CreateMail": "Новое сообщение", + "MailThread": "Сообщение", + "Reply": "Ответить", + "Date": "Дата" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/lang/zh.json b/plugins/mail-assets/lang/zh.json new file mode 100644 index 0000000000..c158f8caee --- /dev/null +++ b/plugins/mail-assets/lang/zh.json @@ -0,0 +1,11 @@ +{ + "string": { + "Subject": "主题", + "From": "从", + "To": "到", + "CreateMail": "新邮件", + "MailThread": "邮件", + "Reply": "回复", + "Date": "日期" + } +} \ No newline at end of file diff --git a/plugins/mail-assets/package.json b/plugins/mail-assets/package.json new file mode 100644 index 0000000000..a45f66930f --- /dev/null +++ b/plugins/mail-assets/package.json @@ -0,0 +1,39 @@ +{ + "name": "@hcengineering/mail-assets", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Anticrm Platform Contributors", + "template": "@hcengineering/assets-package", + "license": "EPL-2.0", + "scripts": { + "build": "compile", + "test": "jest --passWithNoTests --silent", + "format": "format src", + "build:watch": "compile", + "build:docs": "", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-promise": "^6.1.1", + "eslint": "^8.54.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3", + "@types/node": "~20.11.16", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5" + }, + "dependencies": { + "@hcengineering/platform": "^0.6.11", + "@hcengineering/mail": "^0.6.0" + } +} diff --git a/plugins/mail-assets/src/__tests__/lang.test.ts b/plugins/mail-assets/src/__tests__/lang.test.ts new file mode 100644 index 0000000000..cf96c6dcf7 --- /dev/null +++ b/plugins/mail-assets/src/__tests__/lang.test.ts @@ -0,0 +1,6 @@ +import { makeLocalesTest } from '@hcengineering/platform' + +it( + 'Locales are equale', + makeLocalesTest((lang) => import(`../../lang/${lang}.json`)) +) diff --git a/plugins/mail-assets/src/index.ts b/plugins/mail-assets/src/index.ts new file mode 100644 index 0000000000..29cc7e20ac --- /dev/null +++ b/plugins/mail-assets/src/index.ts @@ -0,0 +1,25 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { loadMetadata } from '@hcengineering/platform' +import mail from '@hcengineering/mail' + +const icons = require('../assets/icons.svg') as string // eslint-disable-line +loadMetadata(mail.icon, { + NewMail: `${icons}#new-mail`, + Inbox: `${icons}#inbox`, + Done: `${icons}#done`, + Sent: `${icons}#sent` +}) diff --git a/plugins/mail-assets/tsconfig.json b/plugins/mail-assets/tsconfig.json new file mode 100644 index 0000000000..4449c73536 --- /dev/null +++ b/plugins/mail-assets/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/assets/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "types": ["node", "jest"], + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/plugins/mail-resources/.eslintrc.js b/plugins/mail-resources/.eslintrc.js new file mode 100644 index 0000000000..bb8fd7450d --- /dev/null +++ b/plugins/mail-resources/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], + parserOptions: { tsconfigRootDir: __dirname } +} diff --git a/plugins/mail-resources/.prettierrc b/plugins/mail-resources/.prettierrc new file mode 100644 index 0000000000..792942803a --- /dev/null +++ b/plugins/mail-resources/.prettierrc @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "trailingComma": "none", + "tabWidth": 2, + "semi": false, + "singleQuote": true, + "printWidth": 120, + "useTabs": false, + "bracketSpacing": true, + "proseWrap": "preserve", + "plugins": [ + "prettier-plugin-svelte" + ], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} \ No newline at end of file diff --git a/plugins/mail-resources/config/rig.json b/plugins/mail-resources/config/rig.json new file mode 100644 index 0000000000..bcad6f7c33 --- /dev/null +++ b/plugins/mail-resources/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "ui" +} diff --git a/plugins/mail-resources/jest.config.js b/plugins/mail-resources/jest.config.js new file mode 100644 index 0000000000..3656e284d3 --- /dev/null +++ b/plugins/mail-resources/jest.config.js @@ -0,0 +1,5 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'] +} diff --git a/plugins/mail-resources/package.json b/plugins/mail-resources/package.json new file mode 100644 index 0000000000..705b98518d --- /dev/null +++ b/plugins/mail-resources/package.json @@ -0,0 +1,54 @@ +{ + "name": "@hcengineering/mail-resources", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Anticrm Platform Contributors", + "license": "EPL-2.0", + "scripts": { + "build": "compile ui", + "build:docs": "api-extractor run --local", + "format": "format src", + "svelte-check": "do-svelte-check", + "_phase:svelte-check": "do-svelte-check", + "build:watch": "compile ui", + "_phase:build": "compile ui", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "svelte-loader": "^3.2.0", + "sass": "^1.53.0", + "svelte-preprocess": "^5.1.3", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-svelte": "^2.35.1", + "prettier-plugin-svelte": "^3.2.2", + "prettier": "^3.1.0", + "svelte-check": "^3.6.9", + "typescript": "^5.3.3", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5", + "svelte-eslint-parser": "^0.33.1" + }, + "dependencies": { + "@hcengineering/platform": "^0.6.11", + "svelte": "^4.2.19", + "@hcengineering/mail": "^0.6.0", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/presentation": "^0.6.3", + "@hcengineering/core": "^0.6.32", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/contact-resources": "^0.6.0", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/panel": "^0.6.23", + "@hcengineering/view": "^0.6.13", + "@hcengineering/view-resources": "^0.6.0" + } +} diff --git a/plugins/mail-resources/postcss.config.js b/plugins/mail-resources/postcss.config.js new file mode 100644 index 0000000000..88752c6cb0 --- /dev/null +++ b/plugins/mail-resources/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: [ + require('autoprefixer') + ] +} diff --git a/plugins/mail-resources/src/components/CreateMail.svelte b/plugins/mail-resources/src/components/CreateMail.svelte new file mode 100644 index 0000000000..426979dc43 --- /dev/null +++ b/plugins/mail-resources/src/components/CreateMail.svelte @@ -0,0 +1,137 @@ + + + + + + 0 && isValidEmail(to)} + on:close={() => { + dispatch('close') + }} + on:changeContent +> + +
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
diff --git a/plugins/mail-resources/src/components/MailThread.svelte b/plugins/mail-resources/src/components/MailThread.svelte new file mode 100644 index 0000000000..edfc34f958 --- /dev/null +++ b/plugins/mail-resources/src/components/MailThread.svelte @@ -0,0 +1,120 @@ + + + + +{#if object !== undefined} + + dispatch('close')} + > + +