diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b40f67750b..22e8940aac 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -463,6 +463,9 @@ importers: '@rush-temp/model-print': specifier: file:./projects/model-print.tgz version: file:projects/model-print.tgz + '@rush-temp/model-process': + specifier: file:./projects/model-process.tgz + version: file:projects/model-process.tgz '@rush-temp/model-products': specifier: file:./projects/model-products.tgz version: file:projects/model-products.tgz @@ -538,6 +541,9 @@ importers: '@rush-temp/model-server-notification': specifier: file:./projects/model-server-notification.tgz version: file:projects/model-server-notification.tgz + '@rush-temp/model-server-process': + specifier: file:./projects/model-server-process.tgz + version: file:projects/model-server-process.tgz '@rush-temp/model-server-products': specifier: file:./projects/model-server-products.tgz version: file:projects/model-server-products.tgz @@ -757,6 +763,15 @@ importers: '@rush-temp/print-resources': specifier: file:./projects/print-resources.tgz version: file:projects/print-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/process': + specifier: file:./projects/process.tgz + version: file:projects/process.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/process-assets': + specifier: file:./projects/process-assets.tgz + version: file:projects/process-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)(svelte@4.2.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/process-resources': + specifier: file:./projects/process-resources.tgz + version: file:projects/process-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/prod': specifier: file:./projects/prod.tgz version: file:projects/prod.tgz(@babel/core@7.23.9)(bufferutil@4.0.8)(sass@1.71.1)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))(utf-8-validate@6.0.4) @@ -982,6 +997,12 @@ importers: '@rush-temp/server-preference': specifier: file:./projects/server-preference.tgz version: file:projects/server-preference.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/server-process': + specifier: file:./projects/server-process.tgz + version: file:projects/server-process.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)(svelte@4.2.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/server-process-resources': + specifier: file:./projects/server-process-resources.tgz + version: file:projects/server-process-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)(svelte@4.2.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) '@rush-temp/server-recruit': specifier: file:./projects/server-recruit.tgz version: file:projects/server-recruit.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)) @@ -3902,7 +3923,7 @@ packages: version: 0.0.0 '@rush-temp/desktop@file:projects/desktop.tgz': - resolution: {integrity: sha512-cWbYFLKBms+QGJcouJIZVB080epICkF0rEdTKdPH5uSzXPhwFHq4Tzi6UiVvVtAWNOdORbf9lCSICFy8d5RXUQ==, tarball: file:projects/desktop.tgz} + resolution: {integrity: sha512-PS1shSU9sJaQjs6wKdOdqLcE9dk+KfmqhGPcT5/Co+2wn6N8gFLKw7zaVmK9GYpFQRoED/BiDDsvTY/SOupTwA==, tarball: file:projects/desktop.tgz} version: 0.0.0 '@rush-temp/devmodel-resources@file:projects/devmodel-resources.tgz': @@ -4110,7 +4131,7 @@ packages: version: 0.0.0 '@rush-temp/model-all@file:projects/model-all.tgz': - resolution: {integrity: sha512-xreYvLf9OTVOFsuwlhA8pxZ79pVbfDbdhwPzlaNrIMe4Wk+6wGTPFx2BRbU4Zo6s1F6AsRpPgUV5kffhm1hicw==, tarball: file:projects/model-all.tgz} + resolution: {integrity: sha512-G7I5APyAySX8V9/mzUjuXX3LGtRNZ+uYQhHTl4/7ulGaAsuSagzDJIvClO2akY+GhplEfRrKBiI2fb0R0/i30g==, tarball: file:projects/model-all.tgz} version: 0.0.0 '@rush-temp/model-analytics-collector@file:projects/model-analytics-collector.tgz': @@ -4221,6 +4242,10 @@ packages: resolution: {integrity: sha512-+awwWzhofOba7netbw1nEB9xFj8jrsrEYEGTC1KL92oDEuvfzsWj+VKlC+PHkZN1Zazl8gT14AwRj3VkGYrOsg==, tarball: file:projects/model-print.tgz} version: 0.0.0 + '@rush-temp/model-process@file:projects/model-process.tgz': + resolution: {integrity: sha512-ITHTesVu40defmcmB6wso0mRb3Yb9bPLxfRg3oNxo4tE2y1ZFDJtLteL0eHbUMHdyKmtkew/Dn5pNwEPo9GEyQ==, tarball: file:projects/model-process.tgz} + version: 0.0.0 + '@rush-temp/model-products@file:projects/model-products.tgz': resolution: {integrity: sha512-IHcSz3DoQQ5KmT0YLVC/2QzaovTVJB8zqAkO6DQ3M3dM8zD/iUYfxnsn5dAnfdUFWnR8wCcO9/YaNlPCnWl4WA==, tarball: file:projects/model-products.tgz} version: 0.0.0 @@ -4321,6 +4346,10 @@ packages: resolution: {integrity: sha512-dhW2t2fFxSKG3P8ciSOjljl4obuWE6DYOBnTRtXgQOD30vi2UcqOlyYBlPuMeeNjkq/5wcG38lBNsIZtttYfOw==, tarball: file:projects/model-server-notification.tgz} version: 0.0.0 + '@rush-temp/model-server-process@file:projects/model-server-process.tgz': + resolution: {integrity: sha512-GK1lglXDGRXPrGdSymmKUGHdRg54t2sTwHo/8sKsPLGS2XrrMiMBNVTipX9Kz+ykPF7aAaTuN0mDkIvv2HCv4A==, tarball: file:projects/model-server-process.tgz} + version: 0.0.0 + '@rush-temp/model-server-products@file:projects/model-server-products.tgz': resolution: {integrity: sha512-UYmxTYnt3/cbQCwyce5nCZcGBCvWgxwTLk7AxUIhMLAlA2pvR1y3BCtR0RHF5r6zHlO8cV2D3i50m+cm8AA/qg==, tarball: file:projects/model-server-products.tgz} version: 0.0.0 @@ -4617,8 +4646,20 @@ packages: resolution: {integrity: sha512-Erod9opGRBhzQWteWuvNbvaudaYHOkWZDUGyeZ0WBN+zRsFebSnP8Nx6oMUq5sjyL9/h+WkY3IwN5G4axr6Qqw==, tarball: file:projects/print.tgz} version: 0.0.0 + '@rush-temp/process-assets@file:projects/process-assets.tgz': + resolution: {integrity: sha512-i0cqVzbg8HUFtZtQWuGJLth1yTOa6kNsOQ/wlOsIw7a6JyDuJF3i5uh4+eEKJ9b3ZF2XVOtVcFivcAPzojNAgw==, tarball: file:projects/process-assets.tgz} + version: 0.0.0 + + '@rush-temp/process-resources@file:projects/process-resources.tgz': + resolution: {integrity: sha512-2D3+6ghVMXevcWbs9bmZCBijf2AdzENcrQvExr6/+2Dq5YbDCLH7Az7Mxve11kbyuzDhFX0mN85uB1yx4E1o+g==, tarball: file:projects/process-resources.tgz} + version: 0.0.0 + + '@rush-temp/process@file:projects/process.tgz': + resolution: {integrity: sha512-wwzjmPYeU3WKLCCACU//+l83r/eqiJbVPzSGzMDcU5QyNx55yWzeZ8DbW7L3s51QVyRojZzBJr+4wOwmAPBdkQ==, tarball: file:projects/process.tgz} + version: 0.0.0 + '@rush-temp/prod@file:projects/prod.tgz': - resolution: {integrity: sha512-RA/fXY3PLx4bGk+6OpcZI5OEEaNljKd1LHHurdXOHcRZRuP8dHxglT2fVkd8M1/5dAcVigSbB9vyUiOxOgAvIQ==, tarball: file:projects/prod.tgz} + resolution: {integrity: sha512-1mV357OSFw+uFE64TGTQl54PZpHUVsqV8yWHfR25lA0T61EKFjXPsD0jbnXoQELJEhMoZcSbtDduWf0PF5OGQw==, tarball: file:projects/prod.tgz} version: 0.0.0 '@rush-temp/products-assets@file:projects/products-assets.tgz': @@ -4906,13 +4947,21 @@ packages: version: 0.0.0 '@rush-temp/server-pipeline@file:projects/server-pipeline.tgz': - resolution: {integrity: sha512-fmLSX42maXiVGBW3TM2hB1y5UG+weaJSBpInOVUMf/5Y59N3s0rACYuHR+wuzcmIdIRiXKMN7ypET7mz4sxT2g==, tarball: file:projects/server-pipeline.tgz} + resolution: {integrity: sha512-egC06Gj9kZodIHe8m7g6K99KtOTXZyZJgPymrkDj+GGZX7+7Pd/5Nck0jT4i/Ufk1c0zOxEBXJE4+KTuvo/aew==, tarball: file:projects/server-pipeline.tgz} version: 0.0.0 '@rush-temp/server-preference@file:projects/server-preference.tgz': resolution: {integrity: sha512-YYPJESH2THfyx18g89/ZbECan3phrVyHrCOZ/3CahJaQk6Aj7Ti7eavNZLu36+iO+8S5Tt4Wy65oFZBgbkPG8A==, tarball: file:projects/server-preference.tgz} version: 0.0.0 + '@rush-temp/server-process-resources@file:projects/server-process-resources.tgz': + resolution: {integrity: sha512-18lhcf0ItTSGWFJ1Ghdme7MRclB21yyKg5/bNqOaXEIuis0iBamjX8yx6og34QaOZgXdJ6VGLAf2eOObSNIqYg==, tarball: file:projects/server-process-resources.tgz} + version: 0.0.0 + + '@rush-temp/server-process@file:projects/server-process.tgz': + resolution: {integrity: sha512-Tl2QDS05RZRvmUfE3aURCQxcqqFViCUk6IV6e9NPIvWnmHiCgU4HWMOsd/1V8cuX9/FLX4ua6oJXWJ1+ZvYC3w==, tarball: file:projects/server-process.tgz} + version: 0.0.0 + '@rush-temp/server-recruit-resources@file:projects/server-recruit-resources.tgz': resolution: {integrity: sha512-gMHh1W5vBtohMiUchrW5oZ6iHUBaiyoKZDXKDSy9iQxqIeR9UhFitM3O+YV0Zj50Z3VQkYjIh3YXZ1HzHTONdg==, tarball: file:projects/server-recruit-resources.tgz} version: 0.0.0 @@ -19211,6 +19260,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@rush-temp/model-process@file:projects/model-process.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.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3) + 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.7.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) + prettier: 3.2.5 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + '@rush-temp/model-products@file:projects/model-products.tgz': dependencies: '@types/node': 20.11.19 @@ -19580,6 +19643,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@rush-temp/model-server-process@file:projects/model-server-process.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.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3) + eslint: 8.56.0 + eslint-config-prettier: 8.10.0(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.7.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) + prettier: 3.2.5 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + '@rush-temp/model-server-products@file:projects/model-server-products.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) @@ -21722,6 +21800,99 @@ snapshots: - svelte - ts-node + '@rush-temp/process-assets@file:projects/process-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)(svelte@4.2.19)(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.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3) + 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.7.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) + 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) + 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.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - svelte + - ts-node + + '@rush-temp/process-resources@file:projects/process-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/html-to-text': 8.1.1 + '@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.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3) + 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.7.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-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.7.3) + 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.7.3) + typescript: 5.7.3 + 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/process@file:projects/process.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.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3) + 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.7.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) + 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.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + '@rush-temp/prod@file:projects/prod.tgz(@babel/core@7.23.9)(bufferutil@4.0.8)(sass@1.71.1)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))(utf-8-validate@6.0.4)': dependencies: '@sentry/svelte': 8.52.1(svelte@4.2.19) @@ -23735,6 +23906,60 @@ snapshots: - supports-color - ts-node + '@rush-temp/server-process-resources@file:projects/server-process-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)(svelte@4.2.19)(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.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3) + 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.7.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) + 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) + 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.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - svelte + - ts-node + + '@rush-temp/server-process@file:projects/server-process.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)(svelte@4.2.19)(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.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3) + 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.7.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) + 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) + 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.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - svelte + - ts-node + '@rush-temp/server-recruit-resources@file:projects/server-recruit-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)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': dependencies: '@types/jest': 29.5.12 diff --git a/desktop/package.json b/desktop/package.json index d6141ae63a..8696f3d0b4 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -204,6 +204,9 @@ "@hcengineering/products": "^0.1.0", "@hcengineering/products-assets": "^0.1.0", "@hcengineering/products-resources": "^0.1.0", + "@hcengineering/process": "^0.6.0", + "@hcengineering/process-assets": "^0.6.0", + "@hcengineering/process-resources": "^0.6.0", "@hcengineering/analytics-collector": "^0.6.0", "@hcengineering/analytics-collector-assets": "^0.6.0", "@hcengineering/analytics-collector-resources": "^0.6.0", diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts index 08d4def063..50477cc2e0 100644 --- a/desktop/src/ui/platform.ts +++ b/desktop/src/ui/platform.ts @@ -13,15 +13,22 @@ import { } from '@hcengineering/platform' import { activityId } from '@hcengineering/activity' +import aiBot, { aiBotId } from '@hcengineering/ai-bot' import { attachmentId } from '@hcengineering/attachment' +import { bitrixId } from '@hcengineering/bitrix' import { boardId } from '@hcengineering/board' import calendar, { calendarId } from '@hcengineering/calendar' +import { cardId } from '@hcengineering/card' import { chunterId } from '@hcengineering/chunter' import client, { clientId } from '@hcengineering/client' import contactPlugin, { contactId } from '@hcengineering/contact' +import { documentsId } from '@hcengineering/controlled-documents' +import { desktopPreferencesId } from '@hcengineering/desktop-preferences' +import { diffviewId } from '@hcengineering/diffview' import { documentId } from '@hcengineering/document' import { driveId } from '@hcengineering/drive' import gmail, { gmailId } from '@hcengineering/gmail' +import guest, { guestId } from '@hcengineering/guest' import { hrId } from '@hcengineering/hr' import { imageCropperId } from '@hcengineering/image-cropper' import { inventoryId } from '@hcengineering/inventory' @@ -30,99 +37,93 @@ import login, { loginId } from '@hcengineering/login' import notification, { notificationId } from '@hcengineering/notification' import onboard, { onboardId } from '@hcengineering/onboard' import presence, { presenceId } from '@hcengineering/presence' +import { processId } from '@hcengineering/process' +import { productsId } from '@hcengineering/products' +import { questionsId } from '@hcengineering/questions' import { recruitId } from '@hcengineering/recruit' import rekoni from '@hcengineering/rekoni' import { requestId } from '@hcengineering/request' import setting, { settingId } from '@hcengineering/setting' import { supportId } from '@hcengineering/support' +import { surveyId } from '@hcengineering/survey' import { tagsId } from '@hcengineering/tags' import { taskId } from '@hcengineering/task' import telegram, { telegramId } from '@hcengineering/telegram' import { templatesId } from '@hcengineering/templates' +import { testManagementId } from '@hcengineering/test-management' +import { timeId } from '@hcengineering/time' import tracker, { trackerId } from '@hcengineering/tracker' +import { trainingId } from '@hcengineering/training' import uiPlugin, { getCurrentLocation, locationStorageKeyId, navigate, setLocationStorageKey } from '@hcengineering/ui' import { uploaderId } from '@hcengineering/uploader' import recorder, { recorderId } from '@hcengineering/recorder' import { viewId } from '@hcengineering/view' import workbench, { workbenchId } from '@hcengineering/workbench' -import { diffviewId } from '@hcengineering/diffview' -import { timeId } from '@hcengineering/time' -import { desktopPreferencesId } from '@hcengineering/desktop-preferences' -import guest, { guestId } from '@hcengineering/guest' -import { bitrixId } from '@hcengineering/bitrix' -import { cardId } from '@hcengineering/card' -import { productsId } from '@hcengineering/products' -import { questionsId } from '@hcengineering/questions' -import { trainingId } from '@hcengineering/training' -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/analytics-collector-assets' import '@hcengineering/attachment-assets' import '@hcengineering/bitrix-assets' import '@hcengineering/board-assets' import '@hcengineering/calendar-assets' +import '@hcengineering/card-assets' import '@hcengineering/chunter-assets' import '@hcengineering/contact-assets' +import '@hcengineering/controlled-documents-assets' +import '@hcengineering/desktop-preferences-assets' +import '@hcengineering/diffview-assets' import '@hcengineering/document-assets' import '@hcengineering/drive-assets' import '@hcengineering/gmail-assets' +import '@hcengineering/guest-assets' import '@hcengineering/hr-assets' import '@hcengineering/inventory-assets' import '@hcengineering/lead-assets' import '@hcengineering/login-assets' +import '@hcengineering/love-assets' import '@hcengineering/notification-assets' import '@hcengineering/preference-assets' +import '@hcengineering/print-assets' +import '@hcengineering/process-assets' +import '@hcengineering/products-assets' +import '@hcengineering/questions-assets' import '@hcengineering/recruit-assets' import '@hcengineering/request-assets' import '@hcengineering/setting-assets' import '@hcengineering/support-assets' +import '@hcengineering/survey-assets' import '@hcengineering/tags-assets' import '@hcengineering/task-assets' import '@hcengineering/telegram-assets' import '@hcengineering/templates-assets' +import '@hcengineering/test-management-assets' +import '@hcengineering/text-editor-assets' +import '@hcengineering/time-assets' import '@hcengineering/tracker-assets' +import '@hcengineering/training-assets' +import '@hcengineering/uploader-assets' import '@hcengineering/view-assets' import '@hcengineering/workbench-assets' -import '@hcengineering/guest-assets' -import '@hcengineering/uploader-assets' -import '@hcengineering/recorder-assets' -import '@hcengineering/diffview-assets' -import '@hcengineering/time-assets' -import '@hcengineering/desktop-preferences-assets' -import '@hcengineering/love-assets' -import '@hcengineering/print-assets' -import '@hcengineering/questions-assets' -import '@hcengineering/training-assets' -import '@hcengineering/products-assets' -import '@hcengineering/controlled-documents-assets' -import '@hcengineering/analytics-collector-assets' -import '@hcengineering/text-editor-assets' -import '@hcengineering/test-management-assets' -import '@hcengineering/survey-assets' -import '@hcengineering/card-assets' import '@hcengineering/mail-assets' +import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector' import { coreId } from '@hcengineering/core' -import presentation, { parsePreviewConfig, parseUploadConfig, presentationId } from '@hcengineering/presentation' -import textEditor, { textEditorId } from '@hcengineering/text-editor' import love, { loveId } from '@hcengineering/love' +import presentation, { parsePreviewConfig, parseUploadConfig, presentationId } from '@hcengineering/presentation' import print, { printId } from '@hcengineering/print' import sign from '@hcengineering/sign' -import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector' +import textEditor, { textEditorId } from '@hcengineering/text-editor' -import { setDefaultLanguage, initThemeStore } from '@hcengineering/theme' +import { initThemeStore, setDefaultLanguage } from '@hcengineering/theme' import { configureNotifications } from './notifications' -import { Config, IPCMainExposed, Branding } from './types' +import { Branding, Config, IPCMainExposed } from './types' -import '@hcengineering/github-assets' import github, { githubId } from '@hcengineering/github' -import { uiId } from '@hcengineering/ui/src/plugin' +import '@hcengineering/github-assets' import { preferenceId } from '@hcengineering/preference' +import { uiId } from '@hcengineering/ui/src/plugin' function configureI18n (): void { // Add localization @@ -213,6 +214,7 @@ function configureI18n (): void { 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`)) + addStringsLoader(processId, async (lang: string) => await import(`@hcengineering/process-assets/lang/${lang}.json`)) } export async function configurePlatform (): Promise { @@ -344,6 +346,7 @@ export async function configurePlatform (): Promise { 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')) + addLocation(processId, () => import(/* webpackChunkName: "process" */ '@hcengineering/process-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 941d946ddb..aa1093a806 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -255,6 +255,9 @@ "@hcengineering/workbench": "^0.6.16", "@hcengineering/workbench-assets": "^0.6.14", "@hcengineering/workbench-resources": "^0.6.1", + "@hcengineering/process": "^0.6.0", + "@hcengineering/process-assets": "^0.6.0", + "@hcengineering/process-resources": "^0.6.0", "@sentry/svelte": "^8.52.1", "posthog-js": "~1.122.0", "readable-stream": "^4.7.0", diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index 3b00c0488f..e8fb2a7b17 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -43,6 +43,7 @@ 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 { processId } from '@hcengineering/process' import { productsId } from '@hcengineering/products' import { questionsId } from '@hcengineering/questions' import { recruitId } from '@hcengineering/recruit' @@ -95,6 +96,7 @@ import '@hcengineering/notification-assets' import '@hcengineering/my-space-assets' import '@hcengineering/preference-assets' import '@hcengineering/print-assets' +import '@hcengineering/process-assets' import '@hcengineering/products-assets' import '@hcengineering/questions-assets' import '@hcengineering/recruit-assets' @@ -344,6 +346,7 @@ function configureI18n(): void { 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`)) + addStringsLoader(processId, async (lang: string) => await import(`@hcengineering/process-assets/lang/${lang}.json`)) } export async function configurePlatform() { @@ -538,6 +541,7 @@ export async function configurePlatform() { 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')) + addLocation(processId, () => import(/* webpackChunkName: "process" */ '@hcengineering/process-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 c0236c0836..2fa3d75e4d 100644 --- a/models/all/package.json +++ b/models/all/package.json @@ -118,6 +118,8 @@ "@hcengineering/model-presence": "^0.6.0", "@hcengineering/model-card": "^0.6.0", "@hcengineering/model-mail": "^0.6.0", - "@hcengineering/model-my-space": "^0.6.0" + "@hcengineering/model-my-space": "^0.6.0", + "@hcengineering/model-process": "^0.6.0", + "@hcengineering/model-server-process": "^0.6.0" } } diff --git a/models/all/src/index.ts b/models/all/src/index.ts index cdbf4dc315..4299b58cee 100644 --- a/models/all/src/index.ts +++ b/models/all/src/index.ts @@ -91,6 +91,7 @@ import love, { loveId, createModel as loveModel } from '@hcengineering/model-lov import { printId, createModel as printModel } from '@hcengineering/model-print' import { analyticsCollectorId, createModel as analyticsCollectorModel } from '@hcengineering/model-analytics-collector' import { serverLoveId, createModel as serverLoveModel } from '@hcengineering/model-server-love' +import { serverProcessId, createModel as serverProcessModel } from '@hcengineering/model-server-process' import { questionsId, createModel as questionsModel } from '@hcengineering/model-questions' import trainings, { trainingId, createModel as trainingModel } from '@hcengineering/model-training' @@ -112,6 +113,7 @@ import { import { serverFulltextId, createModel as serverFulltextModel } from '@hcengineering/model-server-fulltext' import { surveyId, createModel as surveyModel } from '@hcengineering/model-survey' import { presenceId, createModel as presenceModel } from '@hcengineering/model-presence' +import processes, { processId, createModel as processModel } from '@hcengineering/model-process' import { type Plugin } from '@hcengineering/platform' @@ -378,6 +380,18 @@ export default function buildModel (enabled: string[] = ['*'], disabled: string[ classFilter: defaultFilter } ], + [ + processModel, + processId, + { + label: processes.string.ConfigLabel, + description: processes.string.ConfigDescription, + enabled: true, + beta: true, + icon: processes.icon.Process, + classFilter: defaultFilter + } + ], [driveModel, driveId], [ documentsModel, @@ -479,7 +493,8 @@ export default function buildModel (enabled: string[] = ['*'], disabled: string[ [serverTrainingModel, serverTrainingId], [serverDocumentsModel, serverDocumentsId], [serverAiBotModel, serverAiBotId], - [serverFulltextModel, serverFulltextId] + [serverFulltextModel, serverFulltextId], + [serverProcessModel, serverProcessId] ] for (const [b, id, config] of builders) { diff --git a/models/process/.eslintrc.js b/models/process/.eslintrc.js new file mode 100644 index 0000000000..c1cf82cba0 --- /dev/null +++ b/models/process/.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/process/.npmignore b/models/process/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/process/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/process/config/rig.json b/models/process/config/rig.json new file mode 100644 index 0000000000..2f6be36605 --- /dev/null +++ b/models/process/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/process/package.json b/models/process/package.json new file mode 100644 index 0000000000..fbf028f743 --- /dev/null +++ b/models/process/package.json @@ -0,0 +1,47 @@ +{ + "name": "@hcengineering/model-process", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "author": "Copyright © 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/contact": "^0.6.24", + "@hcengineering/core": "^0.6.32", + "@hcengineering/model": "^0.6.11", + "@hcengineering/model-view": "^0.6.0", + "@hcengineering/model-core": "^0.6.0", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/time": "^0.6.0", + "@hcengineering/setting": "^0.6.17", + "@hcengineering/model-time": "^0.6.0", + "@hcengineering/process": "^0.6.0", + "@hcengineering/process-resources": "^0.6.0", + "@hcengineering/model-presentation": "^0.6.0", + "@hcengineering/view": "^0.6.13", + "@hcengineering/card": "^0.6.0" + } +} diff --git a/models/process/src/index.ts b/models/process/src/index.ts new file mode 100644 index 0000000000..2df91198a5 --- /dev/null +++ b/models/process/src/index.ts @@ -0,0 +1,318 @@ +// 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 card, { type Card, type MasterTag } from '@hcengineering/card' +import core, { + type Class, + DOMAIN_MODEL, + type Doc, + type Domain, + type Ref, + SortingOrder, + type Space, + type Tx +} from '@hcengineering/core' +import { ArrOf, Model, Prop, TypeBoolean, TypeRecord, TypeRef, TypeString, type Builder } from '@hcengineering/model' +import presentation from '@hcengineering/model-presentation' +import { TDoc } from '@hcengineering/model-core' +import { TToDo } from '@hcengineering/model-time' +import view, { createAction } from '@hcengineering/model-view' +import { type IntlString } from '@hcengineering/platform' +import { + type ProcessFunction, + type Execution, + type Method, + type Process, + type ProcessToDo, + type State, + type Step +} from '@hcengineering/process' +import time from '@hcengineering/time' + +import { type AnyComponent } from '@hcengineering/ui' +import process from './plugin' +import contact, { type Employee } from '@hcengineering/contact' +import { type AttributeCategory } from '@hcengineering/view' + +const DOMAIN_PROCESS = 'process' as Domain + +@Model(process.class.Process, core.class.Doc, DOMAIN_MODEL) +export class TProcess extends TDoc implements Process { + @Prop(TypeString(), core.string.Name) + name!: string + + @Prop(TypeString(), core.string.Description) + description!: string + + @Prop(TypeRef(card.class.MasterTag), core.string.Name) + masterTag!: Ref + + @Prop(ArrOf(TypeRef(process.class.State)), process.string.States) + states!: Ref[] +} + +@Model(process.class.Execution, core.class.Doc, DOMAIN_PROCESS) +export class TExecution extends TDoc implements Execution { + @Prop(TypeRef(contact.mixin.Employee), contact.string.Employee) + assignee!: Ref + + @Prop(TypeRef(process.class.Process), process.string.Process) + process!: Ref + + @Prop(TypeRef(process.class.ProcessToDo), time.string.ToDo) + currentToDo!: Ref | null + + @Prop(TypeRef(process.class.State), process.string.Step) + currentState!: Ref + + @Prop(TypeBoolean(), process.string.Done) + done!: boolean + + @Prop(TypeRecord(), process.string.Rollback) + rollback!: Record, Tx[]> + + @Prop(TypeRef(card.class.Card), card.string.Card) + card!: Ref +} + +@Model(process.class.ProcessToDo, time.class.ToDo) +export class TProcessToDo extends TToDo implements ProcessToDo { + execution!: Ref + + state!: Ref +} + +@Model(process.class.Method, core.class.Doc, DOMAIN_MODEL) +export class TMethod extends TDoc implements Method { + label!: IntlString + + objectClass!: Ref> + + description?: IntlString + + editor!: AnyComponent + + systemOnly!: boolean + + presenter?: AnyComponent + + requiredParams!: string[] +} + +@Model(process.class.State, core.class.Doc, DOMAIN_MODEL) +export class TState extends TDoc implements State { + process!: Ref + title!: string + actions!: Step[] + endAction?: Step | null +} + +@Model(process.class.ProcessFunction, core.class.Doc, DOMAIN_MODEL) +export class TProcessFunction extends TDoc implements ProcessFunction { + of!: Ref>> + category?: AttributeCategory | undefined + label!: IntlString +} + +export function createModel (builder: Builder): void { + builder.createModel(TProcess, TExecution, TProcessToDo, TMethod, TState, TProcessFunction) + + createAction( + builder, + { + action: view.actionImpl.ValueSelector, + actionPopup: process.component.RunProcessPopup, + actionProps: { + attribute: '' + }, + label: process.string.RunProcess, + icon: process.icon.Process, + input: 'focus', + category: view.category.General, + target: card.class.Card, + context: { + mode: ['context', 'browser'] + } + }, + process.action.RunProcess + ) + + builder.createDoc( + process.class.ProcessFunction, + core.space.Model, + { + of: core.class.TypeString, + category: 'attribute', + label: process.string.UpperCase + }, + process.function.UpperCase + ) + + builder.createDoc( + process.class.ProcessFunction, + core.space.Model, + { + of: core.class.TypeString, + category: 'attribute', + label: process.string.LowerCase + }, + process.function.LowerCase + ) + + builder.createDoc( + process.class.ProcessFunction, + core.space.Model, + { + of: core.class.TypeString, + category: 'attribute', + label: process.string.Trim + }, + process.function.Trim + ) + + builder.createDoc( + process.class.ProcessFunction, + core.space.Model, + { + of: core.class.ArrOf, + label: process.string.FirstValue + }, + process.function.FirstValue + ) + + builder.createDoc( + process.class.ProcessFunction, + core.space.Model, + { + of: core.class.ArrOf, + label: process.string.LastValue + }, + process.function.LastValue + ) + + builder.createDoc( + process.class.ProcessFunction, + core.space.Model, + { + of: core.class.ArrOf, + label: process.string.Random + }, + process.function.Random + ) + + builder.mixin(process.class.Process, core.class.Class, view.mixin.AttributePresenter, { + presenter: process.component.ProcessPresenter + }) + + builder.createDoc( + view.class.Viewlet, + core.space.Model, + { + attachTo: process.class.Execution, + descriptor: view.viewlet.List, + viewOptions: { + groupBy: ['process', 'assignee'], + orderBy: [ + ['modifiedOn', SortingOrder.Descending], + ['createdOn', SortingOrder.Descending] + ], + other: [] + }, + configOptions: { + strict: true, + hiddenKeys: ['process', 'currentState'] + }, + config: [ + { + key: '', + label: process.string.Process, + presenter: process.component.ExecutonPresenter, + displayProps: { key: 'process' } + }, + { + key: '', + label: process.string.Step, + presenter: process.component.ExecutonProgressPresenter, + displayProps: { key: 'state' } + }, + { key: '', presenter: process.component.ExecutonPresenter, displayProps: { grow: true } }, + { + key: 'assignee', + displayProps: { key: 'assignee', fixed: 'right' }, + props: { kind: 'list', shouldShowName: false, avatarSize: 'x-small', onChange: undefined } + }, + 'modifiedOn', + 'createdOn' + ] + }, + process.viewlet.CardExecutions + ) + + builder.createDoc(presentation.class.ComponentPointExtension, core.space.Model, { + extension: card.extensions.EditCardExtension, + component: process.component.ProcessesExtension, + props: {} + }) + + builder.createDoc( + process.class.Method, + core.space.Model, + { + label: process.string.RunProcess, + objectClass: process.class.Process, + editor: process.component.SubProcessEditor, + presenter: process.component.SubProcessPresenter, + systemOnly: false, + requiredParams: ['_id'] + }, + process.method.RunSubProcess + ) + + builder.createDoc( + process.class.Method, + core.space.Model, + { + label: process.string.CreateToDo, + editor: process.component.ToDoEditor, + objectClass: process.class.ProcessToDo, + presenter: process.component.ToDoPresenter, + systemOnly: true, + requiredParams: ['state', 'title', 'user'] + }, + process.method.CreateToDo + ) + + builder.createDoc( + process.class.Method, + core.space.Model, + { + label: process.string.UpdateCard, + editor: process.component.UpdateCardEditor, + objectClass: card.class.Card, + presenter: process.component.UpdateCardPresenter, + systemOnly: false, + requiredParams: [] + }, + process.method.UpdateCard + ) + + builder.createDoc(card.class.MasterTagEditorSection, core.space.Model, { + id: 'processes', + label: process.string.Processes, + component: process.component.ProcessesSettingSection + }) +} + +export { processId } from '@hcengineering/process' + +export default process diff --git a/models/process/src/plugin.ts b/models/process/src/plugin.ts new file mode 100644 index 0000000000..7af642f44e --- /dev/null +++ b/models/process/src/plugin.ts @@ -0,0 +1,32 @@ +// 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 { type Doc, type Ref } from '@hcengineering/core' +import { type IntlString, mergeIds } from '@hcengineering/platform' +import { processId } from '@hcengineering/process' +import process from '@hcengineering/process-resources/src/plugin' +import { type Action } from '@hcengineering/view' + +export default mergeIds(processId, process, { + ids: { + ProcessSettings: '' as Ref + }, + action: { + RunProcess: '' as Ref> + }, + string: { + Done: '' as IntlString, + ConfigLabel: '' as IntlString, + ConfigDescription: '' as IntlString + } +}) diff --git a/models/process/tsconfig.json b/models/process/tsconfig.json new file mode 100644 index 0000000000..9765b6086d --- /dev/null +++ b/models/process/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/server-process/.eslintrc.js b/models/server-process/.eslintrc.js new file mode 100644 index 0000000000..c1cf82cba0 --- /dev/null +++ b/models/server-process/.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/server-process/.npmignore b/models/server-process/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/server-process/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/server-process/config/rig.json b/models/server-process/config/rig.json new file mode 100644 index 0000000000..2f6be36605 --- /dev/null +++ b/models/server-process/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/server-process/package.json b/models/server-process/package.json new file mode 100644 index 0000000000..ac7c58ebab --- /dev/null +++ b/models/server-process/package.json @@ -0,0 +1,39 @@ +{ + "name": "@hcengineering/model-server-process", + "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", + "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", + "eslint-config-prettier": "^8.8.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/platform": "^0.6.11", + "@hcengineering/model": "^0.6.11", + "@hcengineering/model-process": "^0.6.0", + "@hcengineering/process": "^0.6.0", + "@hcengineering/server-process": "^0.6.0", + "@hcengineering/server-core": "^0.6.1" + } +} diff --git a/models/server-process/src/index.ts b/models/server-process/src/index.ts new file mode 100644 index 0000000000..3c0010d7ca --- /dev/null +++ b/models/server-process/src/index.ts @@ -0,0 +1,122 @@ +// 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 core, { type Doc } from '@hcengineering/core' +import { Mixin, type Builder } from '@hcengineering/model' +import { TMethod, TProcessFunction } from '@hcengineering/model-process' +import type { Resource } from '@hcengineering/platform' +import process from '@hcengineering/process' +import serverCore from '@hcengineering/server-core' +import serverProcess, { + type ExecuteFunc, + type MethodImpl, + type FuncImpl, + type TransformFunc +} from '@hcengineering/server-process' + +export { serverProcessId } from '@hcengineering/server-process' + +@Mixin(serverProcess.mixin.MethodImpl, process.class.Method) +export class TMethodImpl extends TMethod implements MethodImpl { + func!: Resource +} + +@Mixin(serverProcess.mixin.FuncImpl, process.class.ProcessFunction) +export class TFuncImpl extends TProcessFunction implements FuncImpl { + func!: Resource +} + +export function createModel (builder: Builder): void { + builder.createModel(TMethodImpl, TFuncImpl) + + builder.mixin(process.method.RunSubProcess, process.class.Method, serverProcess.mixin.MethodImpl, { + func: serverProcess.func.RunSubProcess + }) + + builder.mixin(process.method.CreateToDo, process.class.Method, serverProcess.mixin.MethodImpl, { + func: serverProcess.func.CreateToDo + }) + + builder.mixin(process.method.UpdateCard, process.class.Method, serverProcess.mixin.MethodImpl, { + func: serverProcess.func.UpdateCard + }) + + builder.mixin(process.function.FirstValue, process.class.ProcessFunction, serverProcess.mixin.FuncImpl, { + func: serverProcess.transform.FirstValue + }) + + builder.mixin(process.function.LastValue, process.class.ProcessFunction, serverProcess.mixin.FuncImpl, { + func: serverProcess.transform.LastValue + }) + + builder.mixin(process.function.Random, process.class.ProcessFunction, serverProcess.mixin.FuncImpl, { + func: serverProcess.transform.Random + }) + + builder.mixin(process.function.UpperCase, process.class.ProcessFunction, serverProcess.mixin.FuncImpl, { + func: serverProcess.transform.UpperCase + }) + + builder.mixin(process.function.LowerCase, process.class.ProcessFunction, serverProcess.mixin.FuncImpl, { + func: serverProcess.transform.LowerCase + }) + + builder.mixin(process.function.Trim, process.class.ProcessFunction, serverProcess.mixin.FuncImpl, { + func: serverProcess.transform.Trim + }) + + builder.createDoc(serverCore.class.Trigger, core.space.Model, { + trigger: serverProcess.trigger.OnProcessRemove, + txMatch: { + _class: core.class.TxRemoveDoc, + objectClass: process.class.Process + }, + isAsync: true + }) + + builder.createDoc(serverCore.class.Trigger, core.space.Model, { + trigger: serverProcess.trigger.OnExecutionCreate, + txMatch: { + _class: core.class.TxCreateDoc, + objectClass: process.class.Execution + }, + isAsync: true + }) + + builder.createDoc(serverCore.class.Trigger, core.space.Model, { + trigger: serverProcess.trigger.OnProcessToDoClose, + txMatch: { + _class: core.class.TxUpdateDoc, + objectClass: process.class.ProcessToDo + }, + isAsync: true + }) + + builder.createDoc(serverCore.class.Trigger, core.space.Model, { + trigger: serverProcess.trigger.OnProcessToDoRemove, + txMatch: { + _class: core.class.TxRemoveDoc, + objectClass: process.class.ProcessToDo + }, + isAsync: true + }) + + builder.createDoc(serverCore.class.Trigger, core.space.Model, { + trigger: serverProcess.trigger.OnStateRemove, + txMatch: { + _class: core.class.TxRemoveDoc, + objectClass: process.class.State + }, + isAsync: true + }) +} diff --git a/models/server-process/tsconfig.json b/models/server-process/tsconfig.json new file mode 100644 index 0000000000..9765b6086d --- /dev/null +++ b/models/server-process/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/time/src/index.ts b/models/time/src/index.ts index 09ed08557b..0ec198781b 100644 --- a/models/time/src/index.ts +++ b/models/time/src/index.ts @@ -96,7 +96,7 @@ export class TTypeToDoPriority extends TType {} @Model(time.class.ToDo, core.class.AttachedDoc, DOMAIN_TIME) @UX(time.string.ToDo, time.icon.Planned) -export class TToDO extends TAttachedDoc implements ToDo { +export class TToDo extends TAttachedDoc implements ToDo { @Prop(TypeDate(DateRangeMode.DATE), task.string.DueDate) dueDate?: number | null | undefined @@ -132,7 +132,7 @@ export class TToDO extends TAttachedDoc implements ToDo { @Model(time.class.ProjectToDo, time.class.ToDo) @UX(time.string.ToDo, time.icon.Planned) -export class TProjectToDo extends TToDO implements ProjectToDo { +export class TProjectToDo extends TToDo implements ProjectToDo { declare attachedSpace: Ref } @@ -143,7 +143,7 @@ export class TTodoAutomationHelper extends TDoc implements TodoAutomationHelper } export function createModel (builder: Builder): void { - builder.createModel(TWorkSlot, TItemPresenter, TToDO, TProjectToDo, TTypeToDoPriority, TTodoAutomationHelper) + builder.createModel(TWorkSlot, TItemPresenter, TToDo, TProjectToDo, TTypeToDoPriority, TTodoAutomationHelper) builder.mixin(time.class.ToDo, core.class.Class, activity.mixin.IgnoreActivity, {}) builder.mixin(time.class.ProjectToDo, core.class.Class, activity.mixin.IgnoreActivity, {}) diff --git a/packages/theme/styles/_colors.scss b/packages/theme/styles/_colors.scss index 699152bd57..60b95aa2a7 100644 --- a/packages/theme/styles/_colors.scss +++ b/packages/theme/styles/_colors.scss @@ -22,7 +22,7 @@ --primary-button-transparent: rgba(43, 81, 144, 0.2); --primary-button-default: #205DC2; - --primary-button-hovered: #3575DE; + --primary-button-hovered: #3575de; --primary-button-pressed: #1C52AB; --primary-button-focused: #205DC2; --secondary-button-color: rgba(0, 0, 0, .8); diff --git a/packages/ui/src/components/calendar/DateRangePresenter.svelte b/packages/ui/src/components/calendar/DateRangePresenter.svelte index 8f73ecc74f..3a39806371 100644 --- a/packages/ui/src/components/calendar/DateRangePresenter.svelte +++ b/packages/ui/src/components/calendar/DateRangePresenter.svelte @@ -38,6 +38,7 @@ export let shouldShowAvatar: boolean = true export let accent: boolean = false export let inline: boolean = false + export let width: string | undefined = undefined const dispatch = createEventDispatcher() @@ -338,6 +339,7 @@ class:notSelected={!value} class:editable class:edit + style:width on:click={() => { if (editable && !opened && withDate) openPopup() else if (editable && !opened && mode === DateRangeMode.TIME) edit = true @@ -521,6 +523,7 @@ width: min-content; white-space: nowrap; line-height: 1.5rem; + cursor: pointer; color: var(--theme-content-color); border: 1px solid transparent; border-radius: 0.375rem; diff --git a/packages/ui/src/components/icons/Error.svelte b/packages/ui/src/components/icons/Error.svelte new file mode 100644 index 0000000000..8622e31a43 --- /dev/null +++ b/packages/ui/src/components/icons/Error.svelte @@ -0,0 +1,27 @@ + + + + + + + diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 99bdad4a91..953600fef3 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -243,6 +243,7 @@ export { default as IconHistory } from './components/icons/History.svelte' export { default as IconScribble } from './components/icons/Scribble.svelte' export { default as IconMenuOpen } from './components/icons/MenuOpen.svelte' export { default as IconMenuClose } from './components/icons/MenuClose.svelte' +export { default as IconError } from './components/icons/Error.svelte' export { default as PanelInstance } from './components/PanelInstance.svelte' export { default as Panel } from './components/Panel.svelte' diff --git a/plugins/card-resources/src/components/CardAttributeEditor.svelte b/plugins/card-resources/src/components/CardAttributeEditor.svelte index 5dd47ad391..07a38e28cc 100644 --- a/plugins/card-resources/src/components/CardAttributeEditor.svelte +++ b/plugins/card-resources/src/components/CardAttributeEditor.svelte @@ -55,7 +55,7 @@ {/if}
- +
{#if mixins.length > 0}
diff --git a/plugins/card-resources/src/components/EditCard.svelte b/plugins/card-resources/src/components/EditCard.svelte index ea03fff468..8ff82b6af1 100644 --- a/plugins/card-resources/src/components/EditCard.svelte +++ b/plugins/card-resources/src/components/EditCard.svelte @@ -22,7 +22,7 @@ import notification from '@hcengineering/notification' import { Panel } from '@hcengineering/panel' import { getResource } from '@hcengineering/platform' - import { createQuery, getClient } from '@hcengineering/presentation' + import { ComponentExtensions, createQuery, getClient } from '@hcengineering/presentation' import { Button, EditBox, @@ -160,6 +160,13 @@ + +
diff --git a/plugins/card-resources/src/components/MasterTagAttributes.svelte b/plugins/card-resources/src/components/MasterTagAttributes.svelte index 7ac7caee6b..405a8799d2 100644 --- a/plugins/card-resources/src/components/MasterTagAttributes.svelte +++ b/plugins/card-resources/src/components/MasterTagAttributes.svelte @@ -35,6 +35,7 @@ export let value: Card export let readonly: boolean = false export let ignoreKeys: string[] + export let fourRows: boolean = true const client = getClient() const hierarchy = client.getHierarchy() @@ -91,7 +92,7 @@
- + diff --git a/plugins/process-resources/src/components/ProcessAttributeEditor.svelte b/plugins/process-resources/src/components/ProcessAttributeEditor.svelte new file mode 100644 index 0000000000..ebc2d90f91 --- /dev/null +++ b/plugins/process-resources/src/components/ProcessAttributeEditor.svelte @@ -0,0 +1,149 @@ + + + +{#if editor} + + +
+ {#if contextValue} + { + onSelect(e.detail) + }} + /> + {:else} +
+ +
+ {/if} +
+
+
+{/if} + + diff --git a/plugins/process-resources/src/components/ProcessEditor.svelte b/plugins/process-resources/src/components/ProcessEditor.svelte new file mode 100644 index 0000000000..eb247d43f4 --- /dev/null +++ b/plugins/process-resources/src/components/ProcessEditor.svelte @@ -0,0 +1,200 @@ + + + +
+ {#if visibleSecondNav} +
+
+
+ +
+
+ {#each sortedStates as navItem (navItem._id)} + { + sectionRefs[navItem._id]?.scrollIntoView() + }} + /> + {/each} +
+ + {/if} +
+ {#if value} + +
+
+ + +
+
+
+ {#each sortedStates as state (state._id)} +
+ +
+
+ +
+
+ +
+ {/each} +
+
+
+
+ {/if} +
+
+ + diff --git a/plugins/process-resources/src/components/ProcessPresenter.svelte b/plugins/process-resources/src/components/ProcessPresenter.svelte new file mode 100644 index 0000000000..f7f8f28011 --- /dev/null +++ b/plugins/process-resources/src/components/ProcessPresenter.svelte @@ -0,0 +1,30 @@ + + + +{#if process} +
+ {process.name} +
+{/if} diff --git a/plugins/process-resources/src/components/ProcessesExtension.svelte b/plugins/process-resources/src/components/ProcessesExtension.svelte new file mode 100644 index 0000000000..e3fef6ac07 --- /dev/null +++ b/plugins/process-resources/src/components/ProcessesExtension.svelte @@ -0,0 +1,158 @@ + + + +
+ +
+ +
+
+ + +
{ + listWidth = evt.clientWidth + }} + > + {#if viewOptions && viewlet} + { + listProvider.updateFocus(event.detail ?? undefined) + }} + on:check={(event) => { + listProvider.updateSelection(event.detail.docs, event.detail.value) + }} + on:content={(evt) => { + docsProvided = true + docs = evt.detail + listProvider.update(evt.detail) + }} + /> + {#if docsProvided && docs.length === 0} +
+
+
+
+ {/if} + {/if} +
+
+
diff --git a/plugins/process-resources/src/components/ProcessesSection.svelte b/plugins/process-resources/src/components/ProcessesSection.svelte new file mode 100644 index 0000000000..fea8ceb12e --- /dev/null +++ b/plugins/process-resources/src/components/ProcessesSection.svelte @@ -0,0 +1,80 @@ + + + +
+ + + +
+{#if processes.length} +
+ {#each processes as val} + + {/each} +
+{/if} diff --git a/plugins/process-resources/src/components/RunProcessPopup.svelte b/plugins/process-resources/src/components/RunProcessPopup.svelte new file mode 100644 index 0000000000..82447dc149 --- /dev/null +++ b/plugins/process-resources/src/components/RunProcessPopup.svelte @@ -0,0 +1,84 @@ + + + +
+
+
+ {#if loading} + + {:else if processes.length === 0} +
+
+
diff --git a/plugins/process-resources/src/components/StateEditor.svelte b/plugins/process-resources/src/components/StateEditor.svelte new file mode 100644 index 0000000000..e50a9ee2e4 --- /dev/null +++ b/plugins/process-resources/src/components/StateEditor.svelte @@ -0,0 +1,165 @@ + + + + + +
+
+
+ +
+ +
+ +
+ {#if value.endAction != null} + + {/if} + {#each value.actions as action, i} + + {/each} +
+
+ + diff --git a/plugins/process-resources/src/components/StepEditor.svelte b/plugins/process-resources/src/components/StepEditor.svelte new file mode 100644 index 0000000000..6270f1c8ea --- /dev/null +++ b/plugins/process-resources/src/components/StepEditor.svelte @@ -0,0 +1,72 @@ + + + +{#if method !== undefined} +
+
+
+
+ {#if method.description} +
+
+ {/if} +
+ {#if method.editor !== undefined} + + {/if} +
+{/if} + + diff --git a/plugins/process-resources/src/components/SubProcessEditor.svelte b/plugins/process-resources/src/components/SubProcessEditor.svelte new file mode 100644 index 0000000000..1cc4293dd5 --- /dev/null +++ b/plugins/process-resources/src/components/SubProcessEditor.svelte @@ -0,0 +1,81 @@ + + + +
+
+ + diff --git a/plugins/process-resources/src/components/ToDoEditor.svelte b/plugins/process-resources/src/components/ToDoEditor.svelte new file mode 100644 index 0000000000..848ad722e6 --- /dev/null +++ b/plugins/process-resources/src/components/ToDoEditor.svelte @@ -0,0 +1,51 @@ + + + + diff --git a/plugins/process-resources/src/components/UpdateCardEditor.svelte b/plugins/process-resources/src/components/UpdateCardEditor.svelte new file mode 100644 index 0000000000..4b6a3f4c39 --- /dev/null +++ b/plugins/process-resources/src/components/UpdateCardEditor.svelte @@ -0,0 +1,58 @@ + + + + diff --git a/plugins/process-resources/src/components/attributeEditors/AttrContextPresenter.svelte b/plugins/process-resources/src/components/attributeEditors/AttrContextPresenter.svelte new file mode 100644 index 0000000000..bff445edb3 --- /dev/null +++ b/plugins/process-resources/src/components/attributeEditors/AttrContextPresenter.svelte @@ -0,0 +1,27 @@ + + + +{#if attr} +