@operato/process 7.1.30 → 7.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +14 -14
  4. package/.storybook/main.js +0 -3
  5. package/.storybook/preview.js +0 -52
  6. package/.storybook/server.mjs +0 -8
  7. package/demo/index-modeller.html +0 -112
  8. package/demo/index-viewer.html +0 -112
  9. package/demo/index.html +0 -112
  10. package/src/data-storage/data-storage.ts +0 -47
  11. package/src/graphql/data-subscription.ts +0 -30
  12. package/src/graphql/favorite-process.ts +0 -25
  13. package/src/graphql/index.ts +0 -3
  14. package/src/graphql/process-group.ts +0 -138
  15. package/src/graphql/process.ts +0 -141
  16. package/src/graphql/scenario.ts +0 -79
  17. package/src/index.ts +0 -8
  18. package/src/modeller/component-toolbar/component-detail.ts +0 -58
  19. package/src/modeller/component-toolbar/component-menu.ts +0 -193
  20. package/src/modeller/component-toolbar/component-toolbar.ts +0 -196
  21. package/src/modeller/component-toolbar/mode-icons.ts +0 -88
  22. package/src/modeller/edit-toolbar-style.ts +0 -229
  23. package/src/modeller/edit-toolbar.ts +0 -576
  24. package/src/modeller/property-sidebar/abstract-property.ts +0 -69
  25. package/src/modeller/property-sidebar/data-binding/data-binding-mapper.ts +0 -475
  26. package/src/modeller/property-sidebar/data-binding/data-binding.ts +0 -479
  27. package/src/modeller/property-sidebar/effects/effects-shared-style.ts +0 -62
  28. package/src/modeller/property-sidebar/effects/effects.ts +0 -52
  29. package/src/modeller/property-sidebar/effects/property-event-hover.ts +0 -201
  30. package/src/modeller/property-sidebar/effects/property-event-tap.ts +0 -212
  31. package/src/modeller/property-sidebar/effects/property-event.ts +0 -76
  32. package/src/modeller/property-sidebar/effects/property-shadow.ts +0 -114
  33. package/src/modeller/property-sidebar/effects/value-converter.ts +0 -23
  34. package/src/modeller/property-sidebar/inspector/inspector.ts +0 -408
  35. package/src/modeller/property-sidebar/property-shared-style.ts +0 -136
  36. package/src/modeller/property-sidebar/property-sidebar.ts +0 -342
  37. package/src/modeller/property-sidebar/shapes/box-padding-editor-styles.ts +0 -94
  38. package/src/modeller/property-sidebar/shapes/shapes.ts +0 -410
  39. package/src/modeller/property-sidebar/specifics/specific-properties-builder.ts +0 -147
  40. package/src/modeller/property-sidebar/specifics/specifics.ts +0 -81
  41. package/src/modeller/property-sidebar/styles/styles.ts +0 -577
  42. package/src/ox-editor-process-selector.ts +0 -91
  43. package/src/ox-process-list.ts +0 -401
  44. package/src/ox-process-modeller.ts +0 -432
  45. package/src/ox-process-template-list.ts +0 -272
  46. package/src/ox-process-template-viewer.ts +0 -198
  47. package/src/ox-process-viewer.ts +0 -575
  48. package/src/ox-property-editor-process-selector.ts +0 -23
  49. package/src/selector/ox-process-creation-card.ts +0 -95
  50. package/src/selector/ox-process-selector.ts +0 -324
  51. package/src/selector/process-creation-popup.ts +0 -151
  52. package/src/selector/process-thumbnail-card.ts +0 -175
  53. package/src/types.ts +0 -57
  54. package/stories/index.stories.ts +0 -54
  55. package/tsconfig.json +0 -24
  56. package/web-dev-server.config.mjs +0 -30
  57. package/web-test-runner.config.mjs +0 -29
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@operato/process",
3
- "version": "7.1.30",
3
+ "version": "7.1.32",
4
4
  "description": "Webcomponent for business process modeling following open-wc recommendations",
5
5
  "author": "heartyoh",
6
6
  "main": "dist/src/index.js",
@@ -74,18 +74,18 @@
74
74
  },
75
75
  "dependencies": {
76
76
  "@open-wc/scoped-elements": "^2.1.3",
77
- "@operato/app": "^7.1.30",
78
- "@operato/board": "^7.1.30",
79
- "@operato/data-grist": "^7.1.30",
80
- "@operato/font": "^7.1.30",
81
- "@operato/graphql": "^7.1.1",
82
- "@operato/i18n": "^7.1.1",
83
- "@operato/input": "^7.1.30",
84
- "@operato/markdown": "^7.1.27",
85
- "@operato/popup": "^7.1.30",
86
- "@operato/property-editor": "^7.1.30",
87
- "@operato/styles": "^7.1.27",
88
- "@operato/utils": "^7.1.1",
77
+ "@operato/app": "^7.1.32",
78
+ "@operato/board": "^7.1.32",
79
+ "@operato/data-grist": "^7.1.32",
80
+ "@operato/font": "^7.1.32",
81
+ "@operato/graphql": "^7.1.32",
82
+ "@operato/i18n": "^7.1.32",
83
+ "@operato/input": "^7.1.32",
84
+ "@operato/markdown": "^7.1.32",
85
+ "@operato/popup": "^7.1.32",
86
+ "@operato/property-editor": "^7.1.32",
87
+ "@operato/styles": "^7.1.32",
88
+ "@operato/utils": "^7.1.32",
89
89
  "@polymer/paper-dropdown-menu": "^3.2.0",
90
90
  "@types/file-saver": "^2.0.4",
91
91
  "@types/sortablejs": "^1.10.7",
@@ -134,5 +134,5 @@
134
134
  "prettier --write"
135
135
  ]
136
136
  },
137
- "gitHead": "863eb4937334eb66a3cd0e5dbea5c77bc1afc472"
137
+ "gitHead": "c4f5ed0b63d49d02c5a155b592c0ecf681c92cf7"
138
138
  }
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- stories: ['../dist/stories/**/*.stories.{js,md,mdx}']
3
- }
@@ -1,52 +0,0 @@
1
- import { i18next } from '@operato/i18n'
2
-
3
- export const globalTypes = {
4
- locale: {
5
- name: 'Locale',
6
- description: 'Internationalization locale',
7
- toolbar: {
8
- icon: 'globe',
9
- items: [
10
- { value: 'en', right: '🇺🇸', title: 'English' },
11
- { value: 'ko', right: '🇰🇷', title: '한국어' },
12
- { value: 'zh', right: '🇨🇳', title: '中文' },
13
- { value: 'ja', right: '🇯🇵', title: '日本語' },
14
- { value: 'ms', right: '🇲🇾', title: 'Bahasa Melayu' }
15
- ],
16
- showName: true
17
- }
18
- },
19
- theme: {
20
- name: 'Theme',
21
- description: 'Global theme for components',
22
- toolbar: {
23
- icon: 'paintbrush',
24
- items: [
25
- { value: 'light', title: 'Light' },
26
- { value: 'dark', title: 'Dark' }
27
- ],
28
- showName: true
29
- }
30
- }
31
- }
32
-
33
- export const decorators = [
34
- (Story, context) => {
35
- const { locale, theme } = context.globals
36
-
37
- if (locale) {
38
- i18next.changeLanguage(locale)
39
- }
40
-
41
- // Set the theme class for the document
42
- if (theme === 'dark') {
43
- document.documentElement.classList.add('dark')
44
- document.documentElement.classList.remove('light')
45
- } else {
46
- document.documentElement.classList.add('light')
47
- document.documentElement.classList.remove('dark')
48
- }
49
-
50
- return Story()
51
- }
52
- ]
@@ -1,8 +0,0 @@
1
- import { storybookPlugin } from '@web/dev-server-storybook'
2
- import baseConfig from '../web-dev-server.config.mjs'
3
-
4
- export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
5
- ...baseConfig,
6
- open: '/',
7
- plugins: [storybookPlugin({ type: 'web-components' }), ...baseConfig.plugins]
8
- })
@@ -1,112 +0,0 @@
1
- <!doctype html>
2
- <html lang="en-GB">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
6
- <style>
7
- body {
8
- margin: 0;
9
- padding: 0;
10
- overflow: hidden;
11
-
12
- /* This is a font-stack that tries to use the system-default sans-serifs first */
13
- font-family: Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
14
- line-height: 1.5;
15
- -webkit-font-smoothing: antialiased;
16
- }
17
-
18
- ox-process-modeller {
19
- width: 100vw;
20
- height: 100dvh;
21
- }
22
- </style>
23
- <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet" />
24
- <link
25
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
26
- rel="stylesheet"
27
- />
28
- <link
29
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
30
- rel="stylesheet"
31
- />
32
- <link
33
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
34
- rel="stylesheet"
35
- />
36
- </head>
37
- <body>
38
- <div id="demo"></div>
39
- <script type="module">
40
- import { html, render } from 'lit'
41
- import '../dist/src/ox-process-modeller.js'
42
- import { ReferenceMap, create, error } from '@hatiolab/things-scene'
43
-
44
- const colors = ['red', 'blue', 'orange', 'yellow', 'magenta', 'violet', 'navy', 'green', 'cyan', 'lime']
45
- const processes = colors.map((color, idx) => {
46
- var to = colors[(idx + 1) % colors.length]
47
- return {
48
- id: color,
49
- model: {
50
- width: 400,
51
- height: 300,
52
- fillStyle: color,
53
- components: [
54
- {
55
- type: 'text',
56
- left: 100,
57
- top: 100,
58
- width: 200,
59
- height: 30,
60
- text: `Click to move to ${to}`,
61
- event: {
62
- tap: {
63
- action: 'goto',
64
- target: to
65
- }
66
- }
67
- }
68
- ]
69
- }
70
- }
71
- })
72
-
73
- var provider = new ReferenceMap(
74
- async (processId, resolve, reject) => {
75
- try {
76
- const process = processes.find(process => {
77
- return process.id === processId
78
- })
79
- if (!process) {
80
- throw `no process named as ${processId}`
81
- }
82
-
83
- var scene
84
-
85
- try {
86
- scene = await provider.get(processId)
87
- console.warn('Process fetched more than twice.', processId)
88
- } catch (e) {
89
- scene = create({
90
- model: JSON.parse(JSON.stringify(process.model)),
91
- mode: 0,
92
- refProvider: provider
93
- })
94
- }
95
- resolve(scene, process)
96
- } catch (e) {
97
- error(e)
98
- reject(e)
99
- }
100
- },
101
- async (id, ref) => {
102
- ref.dispose()
103
- }
104
- )
105
-
106
- render(
107
- html` <ox-process-modeller .process=${processes[0]} .provider=${provider}> </ox-process-modeller> `,
108
- document.querySelector('#demo')
109
- )
110
- </script>
111
- </body>
112
- </html>
@@ -1,112 +0,0 @@
1
- <!doctype html>
2
- <html lang="en-GB">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
6
- <style>
7
- body {
8
- margin: 0;
9
- padding: 0;
10
- overflow: hidden;
11
-
12
- /* This is a font-stack that tries to use the system-default sans-serifs first */
13
- font-family: Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
14
- line-height: 1.5;
15
- -webkit-font-smoothing: antialiased;
16
- }
17
-
18
- ox-process-viewer {
19
- width: 100vw;
20
- height: 100dvh;
21
- }
22
- </style>
23
- <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet" />
24
- <link
25
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
26
- rel="stylesheet"
27
- />
28
- <link
29
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
30
- rel="stylesheet"
31
- />
32
- <link
33
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
34
- rel="stylesheet"
35
- />
36
- </head>
37
- <body>
38
- <div id="demo"></div>
39
- <script type="module">
40
- import { html, render } from 'lit'
41
- import '../dist/src/ox-process-viewer.js'
42
- import { ReferenceMap, create, error } from '@hatiolab/things-scene'
43
-
44
- const colors = ['red', 'blue', 'orange', 'yellow', 'magenta', 'violet', 'navy', 'green', 'cyan', 'lime']
45
- const processes = colors.map((color, idx) => {
46
- var to = colors[(idx + 1) % colors.length]
47
- return {
48
- id: color,
49
- model: {
50
- width: 400,
51
- height: 300,
52
- fillStyle: color,
53
- components: [
54
- {
55
- type: 'text',
56
- left: 100,
57
- top: 100,
58
- width: 200,
59
- height: 30,
60
- text: `Click to move to ${to}`,
61
- event: {
62
- tap: {
63
- action: 'goto',
64
- target: to
65
- }
66
- }
67
- }
68
- ]
69
- }
70
- }
71
- })
72
-
73
- var provider = new ReferenceMap(
74
- async (processId, resolve, reject) => {
75
- try {
76
- const process = processes.find(process => {
77
- return process.id === processId
78
- })
79
- if (!process) {
80
- throw `no process named as ${processId}`
81
- }
82
-
83
- var scene
84
-
85
- try {
86
- scene = await provider.get(processId)
87
- console.warn('Process fetched more than twice.', processId)
88
- } catch (e) {
89
- scene = create({
90
- model: JSON.parse(JSON.stringify(process.model)),
91
- mode: 0,
92
- refProvider: provider
93
- })
94
- }
95
- resolve(scene, process)
96
- } catch (e) {
97
- error(e)
98
- reject(e)
99
- }
100
- },
101
- async (id, ref) => {
102
- ref.dispose()
103
- }
104
- )
105
-
106
- render(
107
- html` <ox-process-viewer .process=${processes[0]} .provider=${provider}></ox-process-viewer> `,
108
- document.querySelector('#demo')
109
- )
110
- </script>
111
- </body>
112
- </html>
package/demo/index.html DELETED
@@ -1,112 +0,0 @@
1
- <!doctype html>
2
- <html lang="en-GB">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
6
- <style>
7
- body {
8
- margin: 0;
9
- padding: 0;
10
- overflow: hidden;
11
-
12
- /* This is a font-stack that tries to use the system-default sans-serifs first */
13
- font-family: Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
14
- line-height: 1.5;
15
- -webkit-font-smoothing: antialiased;
16
- }
17
-
18
- ox-process-viewer {
19
- width: 100vw;
20
- height: 100dvh;
21
- }
22
- </style>
23
- <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet" />
24
- <link
25
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
26
- rel="stylesheet"
27
- />
28
- <link
29
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
30
- rel="stylesheet"
31
- />
32
- <link
33
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
34
- rel="stylesheet"
35
- />
36
- </head>
37
- <body>
38
- <div id="demo"></div>
39
- <script type="module">
40
- import { html, render } from 'lit'
41
- import '../dist/src/ox-process-viewer.js'
42
- import { ReferenceMap, create, error } from '@hatiolab/things-scene'
43
-
44
- const colors = ['red', 'blue', 'orange', 'yellow', 'magenta', 'violet', 'navy', 'green', 'cyan', 'lime']
45
- const processes = colors.map((color, idx) => {
46
- var to = colors[(idx + 1) % colors.length]
47
- return {
48
- id: color,
49
- model: {
50
- width: 400,
51
- height: 300,
52
- fillStyle: color,
53
- components: [
54
- {
55
- type: 'text',
56
- left: 100,
57
- top: 100,
58
- width: 200,
59
- height: 30,
60
- text: `Click to move to ${to}`,
61
- event: {
62
- tap: {
63
- action: 'goto',
64
- target: to
65
- }
66
- }
67
- }
68
- ]
69
- }
70
- }
71
- })
72
-
73
- var provider = new ReferenceMap(
74
- async (processId, resolve, reject) => {
75
- try {
76
- const process = processes.find(process => {
77
- return process.id === processId
78
- })
79
- if (!process) {
80
- throw `no process named as ${processId}`
81
- }
82
-
83
- var scene
84
-
85
- try {
86
- scene = await provider.get(processId)
87
- console.warn('Process fetched more than twice.', processId)
88
- } catch (e) {
89
- scene = create({
90
- model: JSON.parse(JSON.stringify(process.model)),
91
- mode: 0,
92
- refProvider: provider
93
- })
94
- }
95
- resolve(scene, process)
96
- } catch (e) {
97
- error(e)
98
- reject(e)
99
- }
100
- },
101
- async (id, ref) => {
102
- ref.dispose()
103
- }
104
- )
105
-
106
- render(
107
- html` <ox-process-viewer .process=${processes[0]} .provider=${provider}></ox-process-viewer> `,
108
- document.querySelector('#demo')
109
- )
110
- </script>
111
- </body>
112
- </html>
@@ -1,47 +0,0 @@
1
- import Dexie from 'dexie'
2
-
3
- import { Component, PersistentDataStorage } from '@hatiolab/things-scene'
4
-
5
- class ProcessDatabase extends Dexie {
6
- process_data!: Dexie.Table<IProcessData, number> // number = type of the primkey
7
- //...other tables goes here...
8
-
9
- constructor() {
10
- super('operato-process-database')
11
- this.version(1).stores({
12
- process_data: '[process+refid]'
13
- //...other tables goes here...
14
- })
15
- }
16
- }
17
-
18
- interface IProcessData {
19
- id?: number
20
- process: string
21
- refid: string | number
22
- data: any
23
- timestamp: number
24
- }
25
-
26
- const db = new ProcessDatabase()
27
-
28
- export class DataStorage implements PersistentDataStorage {
29
- private id: string
30
-
31
- constructor(id: string) {
32
- this.id = id
33
- }
34
-
35
- public async load(key: Component): Promise<any> {
36
- const saved = await db.process_data.where({ process: this.id, refid: key.state.refid }).first()
37
- return saved?.data
38
- }
39
-
40
- public async save(key: Component, value: any): Promise<void> {
41
- await db.process_data.put({ process: this.id, refid: key.state.refid, data: value, timestamp: Date.now() })
42
- }
43
-
44
- public async clear(key: Component): Promise<void> {
45
- await db.process_data.where({ process: this.id, refid: key.state.refid }).delete()
46
- }
47
- }
@@ -1,30 +0,0 @@
1
- import { Component, DataSubscriptionProvider } from '@hatiolab/things-scene'
2
-
3
- import gql from 'graphql-tag'
4
- import { subscribe } from '@operato/graphql'
5
-
6
- export class DataSubscriptionProviderImpl implements DataSubscriptionProvider {
7
- async subscribe(tag: string, component: Component) {
8
- return await subscribe(
9
- {
10
- query: gql`
11
- subscription {
12
- data(tag: "${tag}") {
13
- tag
14
- data
15
- }
16
- }
17
- `
18
- },
19
- {
20
- next: async ({ data }: { data: any }) => {
21
- if (data) {
22
- component.data = data.data.data
23
- }
24
- }
25
- }
26
- )
27
- }
28
-
29
- dispose() {}
30
- }
@@ -1,25 +0,0 @@
1
- import { buildArgs, client } from '@operato/graphql'
2
-
3
- import gql from 'graphql-tag'
4
-
5
- export async function fetchFavoriteProcessList(listParam = {}) {
6
- const response = await client.query({
7
- query: gql`
8
- {
9
- favoriteProcesses(${buildArgs(listParam)}) {
10
- items {
11
- id
12
- name
13
- description
14
- thumbnail
15
- createdAt
16
- updatedAt
17
- }
18
- total
19
- }
20
- }
21
- `
22
- })
23
-
24
- return response.data
25
- }
@@ -1,3 +0,0 @@
1
- export * from './process'
2
- export * from './process-group'
3
- export * from './favorite-process'
@@ -1,138 +0,0 @@
1
- import { ProcessGroup } from '../types'
2
- import { client } from '@operato/graphql'
3
- import gql from 'graphql-tag'
4
-
5
- export async function fetchProcessGroup(id: string) {
6
- const response = await client.query({
7
- query: gql`
8
- query FetchProcessGroupById($id: String!) {
9
- group(id: $id) {
10
- id
11
- name
12
- description
13
- createdAt
14
- creator {
15
- id
16
- name
17
- }
18
- updatedAt
19
- updater {
20
- id
21
- name
22
- }
23
- }
24
- }
25
- `,
26
- variables: { id }
27
- })
28
-
29
- return response.data
30
- }
31
-
32
- export async function updateProcessGroup(group: ProcessGroup) {
33
- var { id, name, description } = group
34
-
35
- const response = await client.mutate({
36
- mutation: gql`
37
- mutation UpdateProcessGroup($id: String!, $patch: ProcessGroupPatch!) {
38
- updateProcessGroup(id: $id, patch: $patch) {
39
- id
40
- name
41
- description
42
- createdAt
43
- updatedAt
44
- }
45
- }
46
- `,
47
- variables: {
48
- id,
49
- patch: { name, description }
50
- }
51
- })
52
-
53
- return response.data
54
- }
55
-
56
- export async function deleteProcessGroup(id: string) {
57
- const response = await client.mutate({
58
- mutation: gql`
59
- mutation ($id: String!) {
60
- deleteProcessGroup(id: $id)
61
- }
62
- `,
63
- variables: {
64
- id
65
- }
66
- })
67
-
68
- return response.data
69
- }
70
-
71
- export async function fetchProcessGroupList() {
72
- const response = await client.query({
73
- query: gql`
74
- {
75
- processGroups {
76
- items {
77
- id
78
- name
79
- description
80
- createdAt
81
- updatedAt
82
- }
83
- total
84
- }
85
- }
86
- `
87
- })
88
-
89
- return response.data
90
- }
91
-
92
- export async function createProcessGroup(group: ProcessGroup) {
93
- const response = await client.mutate({
94
- mutation: gql`
95
- mutation CreateProcessGroup($group: NewProcessGroup!) {
96
- createProcessGroup(group: $group) {
97
- id
98
- name
99
- description
100
- createdAt
101
- updatedAt
102
- }
103
- }
104
- `,
105
- variables: { group }
106
- })
107
-
108
- return response.data
109
- }
110
-
111
- export async function joinProcessGroup(processId: string, groupId: string) {
112
- const response = await client.mutate({
113
- mutation: gql`
114
- mutation JoinProcessGroup($id: String!, $processIds: [String!]!) {
115
- joinProcessGroup(id: $id, processIds: $processIds) {
116
- id
117
- name
118
- description
119
- processes {
120
- id
121
- name
122
- description
123
- createdAt
124
- updatedAt
125
- }
126
- createdAt
127
- updatedAt
128
- }
129
- }
130
- `,
131
- variables: {
132
- id: groupId,
133
- processIds: [processId]
134
- }
135
- })
136
-
137
- return response.data
138
- }