@things-factory/worklist 6.0.27 → 6.0.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 (195) hide show
  1. package/client/bootstrap.ts +9 -1
  2. package/client/components/activity-starter-form.ts +35 -10
  3. package/client/grist-editor/grist-editor-activity-search-key.ts +79 -0
  4. package/client/grist-editor/popup-activity-search-keys-input.ts +167 -0
  5. package/client/pages/activity/activity-list-page.ts +122 -11
  6. package/client/pages/activity/activity-partial-view.ts +85 -0
  7. package/client/pages/activity/starter-list-page.ts +1 -0
  8. package/client/pages/activity-approval/activity-approval-page.ts +6 -6
  9. package/client/pages/activity-instance/activity-instance-search-page.ts +377 -0
  10. package/client/pages/activity-instance/activity-instance-view.ts +135 -0
  11. package/client/pages/activity-store/activity-store-page.ts +1 -1
  12. package/client/pages/activity-template/activity-template-list-page.ts +29 -1
  13. package/client/pages/activity-thread/activity-thread-page.ts +8 -3
  14. package/client/pages/activity-thread/activity-thread-view.ts +102 -0
  15. package/client/pages/installable-activity/installable-activity-list-page.ts +29 -1
  16. package/client/pages/todo/approval-waiting-list-page.ts +19 -9
  17. package/client/pages/todo/done-list-page.ts +344 -0
  18. package/client/pages/todo/draft-list-page.ts +13 -2
  19. package/client/pages/todo/todo-list-page.ts +14 -3
  20. package/client/route.ts +8 -0
  21. package/client/types/activity-instance-type.ts +123 -0
  22. package/client/types/activity-instance.ts +124 -0
  23. package/client/types/activity-model-type.ts +40 -0
  24. package/client/types/activity-search-key-item-type.ts +9 -0
  25. package/client/types/activity-thread-type.ts +19 -0
  26. package/client/types/activity-thread.ts +88 -0
  27. package/client/types/activity.ts +103 -0
  28. package/client/{types.js → types/types.ts} +0 -9
  29. package/dist-client/bootstrap.js +4 -1
  30. package/dist-client/bootstrap.js.map +1 -1
  31. package/dist-client/components/activity-starter-form.d.ts +1 -1
  32. package/dist-client/components/activity-starter-form.js +34 -9
  33. package/dist-client/components/activity-starter-form.js.map +1 -1
  34. package/dist-client/grist-editor/grist-editor-activity-search-key.d.ts +12 -0
  35. package/dist-client/grist-editor/grist-editor-activity-search-key.js +70 -0
  36. package/dist-client/grist-editor/grist-editor-activity-search-key.js.map +1 -0
  37. package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +17 -0
  38. package/dist-client/grist-editor/popup-activity-search-keys-input.js +177 -0
  39. package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +1 -0
  40. package/dist-client/pages/activity/activity-list-page.d.ts +4 -0
  41. package/dist-client/pages/activity/activity-list-page.js +121 -11
  42. package/dist-client/pages/activity/activity-list-page.js.map +1 -1
  43. package/dist-client/pages/activity/activity-partial-view.d.ts +13 -0
  44. package/dist-client/pages/activity/activity-partial-view.js +56 -0
  45. package/dist-client/pages/activity/activity-partial-view.js.map +1 -0
  46. package/dist-client/pages/activity/starter-list-page.js.map +1 -1
  47. package/dist-client/pages/activity-approval/activity-approval-page.js +6 -6
  48. package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -1
  49. package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +76 -0
  50. package/dist-client/pages/activity-instance/activity-instance-search-page.js +371 -0
  51. package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -0
  52. package/dist-client/pages/activity-instance/activity-instance-view.d.ts +14 -0
  53. package/dist-client/pages/activity-instance/activity-instance-view.js +130 -0
  54. package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -0
  55. package/dist-client/pages/activity-store/activity-store-page.js +1 -1
  56. package/dist-client/pages/activity-store/activity-store-page.js.map +1 -1
  57. package/dist-client/pages/activity-template/activity-template-list-page.js +29 -1
  58. package/dist-client/pages/activity-template/activity-template-list-page.js.map +1 -1
  59. package/dist-client/pages/activity-thread/activity-thread-page.js +8 -3
  60. package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -1
  61. package/dist-client/pages/activity-thread/activity-thread-view.d.ts +11 -0
  62. package/dist-client/pages/activity-thread/activity-thread-view.js +103 -0
  63. package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -0
  64. package/dist-client/pages/installable-activity/installable-activity-list-page.js +29 -1
  65. package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -1
  66. package/dist-client/pages/todo/approval-waiting-list-page.js +19 -9
  67. package/dist-client/pages/todo/approval-waiting-list-page.js.map +1 -1
  68. package/dist-client/pages/todo/done-list-page.d.ts +44 -0
  69. package/dist-client/pages/todo/done-list-page.js +342 -0
  70. package/dist-client/pages/todo/done-list-page.js.map +1 -0
  71. package/dist-client/pages/todo/draft-list-page.js +12 -2
  72. package/dist-client/pages/todo/draft-list-page.js.map +1 -1
  73. package/dist-client/pages/todo/todo-list-page.js +13 -3
  74. package/dist-client/pages/todo/todo-list-page.js.map +1 -1
  75. package/dist-client/route.d.ts +1 -1
  76. package/dist-client/route.js +6 -0
  77. package/dist-client/route.js.map +1 -1
  78. package/dist-client/tsconfig.tsbuildinfo +1 -1
  79. package/dist-client/types/activity-instance-type.d.ts +76 -0
  80. package/dist-client/types/activity-instance-type.js +11 -0
  81. package/dist-client/types/activity-instance-type.js.map +1 -0
  82. package/dist-client/types/activity-instance.d.ts +70 -0
  83. package/dist-client/types/activity-instance.js +36 -0
  84. package/dist-client/types/activity-instance.js.map +1 -0
  85. package/dist-client/types/activity-model-type.d.ts +31 -0
  86. package/dist-client/types/activity-model-type.js +18 -0
  87. package/dist-client/types/activity-model-type.js.map +1 -0
  88. package/dist-client/types/activity-search-key-item-type.d.ts +6 -0
  89. package/dist-client/types/activity-search-key-item-type.js +3 -0
  90. package/dist-client/types/activity-search-key-item-type.js.map +1 -0
  91. package/dist-client/types/activity-thread-type.d.ts +15 -0
  92. package/dist-client/types/activity-thread-type.js +7 -0
  93. package/dist-client/types/activity-thread-type.js.map +1 -0
  94. package/dist-client/types/activity-thread.d.ts +37 -0
  95. package/dist-client/types/activity-thread.js +51 -0
  96. package/dist-client/types/activity-thread.js.map +1 -0
  97. package/dist-client/types/activity.d.ts +65 -0
  98. package/dist-client/types/activity.js +35 -0
  99. package/dist-client/types/activity.js.map +1 -0
  100. package/dist-client/{types.d.ts → types/types.d.ts} +3 -7
  101. package/dist-client/{types.js → types/types.js} +0 -8
  102. package/dist-client/types/types.js.map +1 -0
  103. package/dist-server/controllers/activity-approval/approve.js +2 -0
  104. package/dist-server/controllers/activity-approval/approve.js.map +1 -1
  105. package/dist-server/controllers/activity-approval/reject.js +2 -0
  106. package/dist-server/controllers/activity-approval/reject.js.map +1 -1
  107. package/dist-server/controllers/{activity-installation-controller.js → activity-installation/activity-installation-controller.js} +8 -0
  108. package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -0
  109. package/dist-server/controllers/activity-installation/call-webhook.js.map +1 -0
  110. package/dist-server/controllers/activity-instance/abort.js +1 -1
  111. package/dist-server/controllers/activity-instance/abort.js.map +1 -1
  112. package/dist-server/controllers/activity-instance/adjust.js +1 -1
  113. package/dist-server/controllers/activity-instance/adjust.js.map +1 -1
  114. package/dist-server/controllers/activity-instance/delegate.js +5 -0
  115. package/dist-server/controllers/activity-instance/delegate.js.map +1 -1
  116. package/dist-server/controllers/activity-instance/draft.js +16 -1
  117. package/dist-server/controllers/activity-instance/draft.js.map +1 -1
  118. package/dist-server/controllers/activity-instance/post.js +38 -3
  119. package/dist-server/controllers/activity-instance/post.js.map +1 -1
  120. package/dist-server/controllers/activity-instance/start.js +1 -1
  121. package/dist-server/controllers/activity-instance/start.js.map +1 -1
  122. package/dist-server/controllers/activity-thread/submit.js +1 -1
  123. package/dist-server/controllers/activity-thread/submit.js.map +1 -1
  124. package/dist-server/controllers/common.js +72 -25
  125. package/dist-server/controllers/common.js.map +1 -1
  126. package/dist-server/controllers/index.js +1 -1
  127. package/dist-server/controllers/index.js.map +1 -1
  128. package/dist-server/service/activity/activity-history.js +38 -1
  129. package/dist-server/service/activity/activity-history.js.map +1 -1
  130. package/dist-server/service/activity/activity-search-key-item-type.js +28 -0
  131. package/dist-server/service/activity/activity-search-key-item-type.js.map +1 -0
  132. package/dist-server/service/activity/activity-type.js +56 -0
  133. package/dist-server/service/activity/activity-type.js.map +1 -1
  134. package/dist-server/service/activity/activity.js +40 -4
  135. package/dist-server/service/activity/activity.js.map +1 -1
  136. package/dist-server/service/activity-approval/event-subscriber.js +1 -1
  137. package/dist-server/service/activity-approval/event-subscriber.js.map +1 -1
  138. package/dist-server/service/activity-instance/activity-instance-history.js +53 -0
  139. package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -1
  140. package/dist-server/service/activity-instance/activity-instance-query.js +29 -0
  141. package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -1
  142. package/dist-server/service/activity-instance/activity-instance-type.js +16 -0
  143. package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -1
  144. package/dist-server/service/activity-instance/activity-instance.js +63 -0
  145. package/dist-server/service/activity-instance/activity-instance.js.map +1 -1
  146. package/dist-server/service/activity-instance/event-subscriber.js +4 -4
  147. package/dist-server/service/activity-instance/event-subscriber.js.map +1 -1
  148. package/dist-server/service/activity-thread/activity-thread-query.js +27 -0
  149. package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -1
  150. package/dist-server/service/activity-thread/activity-thread.js +4 -1
  151. package/dist-server/service/activity-thread/activity-thread.js.map +1 -1
  152. package/dist-server/service/installable-activity/installable-activity-mutation.js +1 -1
  153. package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -1
  154. package/dist-server/service/installable-activity/installable-activity-query.js +1 -1
  155. package/dist-server/service/installable-activity/installable-activity-query.js.map +1 -1
  156. package/dist-server/service/installable-activity/installable-activity.js.map +1 -1
  157. package/dist-server/tsconfig.tsbuildinfo +1 -1
  158. package/package.json +9 -8
  159. package/server/controllers/activity-approval/approve.ts +3 -0
  160. package/server/controllers/activity-approval/reject.ts +3 -0
  161. package/server/controllers/{activity-installation-controller.ts → activity-installation/activity-installation-controller.ts} +12 -1
  162. package/server/controllers/activity-instance/abort.ts +1 -1
  163. package/server/controllers/activity-instance/adjust.ts +1 -1
  164. package/server/controllers/activity-instance/delegate.ts +9 -1
  165. package/server/controllers/activity-instance/draft.ts +16 -5
  166. package/server/controllers/activity-instance/post.ts +54 -6
  167. package/server/controllers/activity-instance/start.ts +1 -1
  168. package/server/controllers/activity-thread/submit.ts +1 -0
  169. package/server/controllers/common.ts +85 -28
  170. package/server/controllers/index.ts +1 -1
  171. package/server/service/activity/activity-history.ts +32 -1
  172. package/server/service/activity/activity-search-key-item-type.ts +16 -0
  173. package/server/service/activity/activity-type.ts +46 -1
  174. package/server/service/activity/activity.ts +34 -4
  175. package/server/service/activity-approval/event-subscriber.ts +1 -1
  176. package/server/service/activity-instance/activity-instance-history.ts +41 -0
  177. package/server/service/activity-instance/activity-instance-query.ts +30 -1
  178. package/server/service/activity-instance/activity-instance-type.ts +12 -0
  179. package/server/service/activity-instance/activity-instance.ts +49 -0
  180. package/server/service/activity-instance/event-subscriber.ts +4 -4
  181. package/server/service/activity-thread/activity-thread-query.ts +24 -0
  182. package/server/service/activity-thread/activity-thread.ts +6 -3
  183. package/server/service/installable-activity/installable-activity-mutation.ts +1 -1
  184. package/server/service/installable-activity/installable-activity-query.ts +1 -1
  185. package/server/service/installable-activity/installable-activity.ts +3 -1
  186. package/things-factory.config.js +5 -1
  187. package/translations/en.json +7 -0
  188. package/translations/ko.json +7 -0
  189. package/translations/ms.json +7 -0
  190. package/translations/zh.json +7 -0
  191. package/dist-client/types.js.map +0 -1
  192. package/dist-server/controllers/activity-installation-controller.js.map +0 -1
  193. package/dist-server/controllers/call-webhook.js.map +0 -1
  194. /package/dist-server/controllers/{call-webhook.js → activity-installation/call-webhook.js} +0 -0
  195. /package/server/controllers/{call-webhook.ts → activity-installation/call-webhook.ts} +0 -0
@@ -0,0 +1,124 @@
1
+ import { Domain, User, Role } from '@operato/shell'
2
+ import { OrgMemberTargetType, OrgMemberTarget, ApprovalLineItem } from '@things-factory/organization'
3
+
4
+ import { ActivityThread } from './activity-thread'
5
+ import { Activity, ActivityType, ActivityUIType } from './activity'
6
+
7
+ export enum ActivityInstanceStatus {
8
+ Draft = 'draft',
9
+ Posted = 'posted',
10
+ WaitingAssignment = 'waiting-assignment',
11
+ Assigned = 'assigned',
12
+ Started = 'started',
13
+ Pending = 'pending',
14
+ Ended = 'ended',
15
+ Aborted = 'aborted'
16
+ }
17
+
18
+ export class AssigneeItem {
19
+ type?: OrgMemberTargetType
20
+
21
+ value?: string
22
+
23
+ assignee?: OrgMemberTarget
24
+ }
25
+
26
+ export class ActivityInstance {
27
+ id?: string
28
+
29
+ version?: number = 1
30
+
31
+ domain?: Domain
32
+
33
+ name?: string
34
+
35
+ description?: string
36
+
37
+ activityType?: ActivityType
38
+
39
+ adhocType?: string
40
+
41
+ key01?: string = ''
42
+
43
+ key02?: string = ''
44
+
45
+ key03?: string = ''
46
+
47
+ key04?: string = ''
48
+
49
+ key05?: string = ''
50
+
51
+ activityThreads?: ActivityThread[]
52
+
53
+ uiType?: ActivityUIType
54
+
55
+ uiSource?: string
56
+
57
+ priority?: number = 1
58
+
59
+ state?: ActivityInstanceStatus
60
+
61
+ reason?: string
62
+
63
+ threadsMin?: number = 0
64
+
65
+ threadsMax?: number = 0
66
+
67
+ input?: { [key: string]: any }
68
+
69
+ output?: { [key: string]: any }
70
+
71
+ refBy?: string
72
+
73
+ activity?: Activity
74
+
75
+ assigneeRole?: Role
76
+
77
+ supervisoryRole?: Role
78
+
79
+ dueAt?: Date
80
+
81
+ transaction?: string
82
+
83
+ assignees?: AssigneeItem[]
84
+
85
+ approvalLine?: ApprovalLineItem[]
86
+
87
+ createdAt?: Date
88
+
89
+ updatedAt?: Date
90
+
91
+ assignedAt?: Date
92
+
93
+ startedAt?: Date
94
+
95
+ terminatedAt?: Date
96
+
97
+ creator?: User
98
+
99
+ creatorId?: string
100
+
101
+ updater?: User
102
+
103
+ updaterId?: string
104
+
105
+ starter?: User
106
+
107
+ starterId?: string
108
+
109
+ terminator?: User
110
+
111
+ terminatorId?: string
112
+
113
+ thumbnail?: string
114
+
115
+ isDelegatable(): boolean {
116
+ switch (this.state) {
117
+ case ActivityInstanceStatus.Posted:
118
+ case ActivityInstanceStatus.Assigned:
119
+ return true
120
+ default:
121
+ return false
122
+ }
123
+ }
124
+ }
@@ -0,0 +1,40 @@
1
+ export enum ActivityModelItemInoutType {
2
+ in = 'in',
3
+ out = 'out',
4
+ inout = 'inout'
5
+ }
6
+
7
+ export enum ActivityModelItemType {
8
+ number = 'number',
9
+ text = 'text',
10
+ textarea = 'textarea',
11
+ boolean = 'boolean',
12
+ select = 'select',
13
+ file = 'file'
14
+ }
15
+
16
+ export class ActivityModelItem {
17
+ name?: string
18
+
19
+ description?: string
20
+
21
+ tag?: string
22
+
23
+ active?: boolean
24
+
25
+ hidden?: boolean
26
+
27
+ mandatory?: boolean
28
+
29
+ inout?: ActivityModelItemInoutType
30
+
31
+ type?: ActivityModelItemType
32
+
33
+ options?: { [option: string]: any }
34
+
35
+ unit?: string
36
+
37
+ quantifier?: number[]
38
+
39
+ spec?: { [key: string]: any }
40
+ }
@@ -0,0 +1,9 @@
1
+ export class ActivitySearchKeyItem {
2
+ name?: string
3
+
4
+ description?: string
5
+
6
+ inputKey?: string
7
+
8
+ tKey?: string
9
+ }
@@ -0,0 +1,19 @@
1
+ import { ActivityThread, ActivityThreadStatus } from './activity-thread'
2
+
3
+ export class ActivityThreadPatch {
4
+ id?: string
5
+
6
+ state?: ActivityThreadStatus
7
+
8
+ active?: boolean
9
+ }
10
+
11
+ export class ActivityThreadSave {
12
+ output?: { [key: string]: any }
13
+ }
14
+
15
+ export class ActivityThreadList {
16
+ items?: ActivityThread[]
17
+
18
+ total?: number
19
+ }
@@ -0,0 +1,88 @@
1
+ import { Domain, User } from '@operato/shell'
2
+
3
+ import { ActivityInstance } from './activity-instance'
4
+
5
+ export enum ActivityThreadStatus {
6
+ Assigned = 'assigned',
7
+ Started = 'started',
8
+ Delegated = 'delegated',
9
+ Submitted = 'submitted',
10
+ Escalated = 'escalated',
11
+ Rejected = 'rejected',
12
+ Ended = 'ended',
13
+ Aborted = 'aborted'
14
+ }
15
+
16
+ export class ActivityThread {
17
+ id?: string
18
+
19
+ domain?: Domain
20
+
21
+ version?: number = 1
22
+
23
+ activityInstance?: ActivityInstance
24
+
25
+ state?: ActivityThreadStatus
26
+
27
+ output?: { [key: string]: any }
28
+
29
+ assignee?: User
30
+
31
+ round?: number = 1
32
+
33
+ transaction?: string
34
+
35
+ dueAt?: Date
36
+
37
+ assignedAt?: Date
38
+
39
+ startedAt?: Date
40
+
41
+ terminatedAt?: Date
42
+
43
+ createdAt?: Date
44
+
45
+ updatedAt?: Date
46
+
47
+ creator?: User
48
+
49
+ updater?: User
50
+
51
+ terminator?: User
52
+
53
+ isPendingStarted(): boolean {
54
+ switch (this.state) {
55
+ case ActivityThreadStatus.Assigned:
56
+ return true
57
+ default:
58
+ return false
59
+ }
60
+ }
61
+
62
+ isPendingEnded(): boolean {
63
+ switch (this.state) {
64
+ case ActivityThreadStatus.Started:
65
+ case ActivityThreadStatus.Rejected:
66
+ case ActivityThreadStatus.Submitted:
67
+ return true
68
+ default:
69
+ return false
70
+ }
71
+ }
72
+
73
+ isValid(): boolean {
74
+ switch (this.state) {
75
+ case ActivityThreadStatus.Assigned:
76
+ case ActivityThreadStatus.Started:
77
+ case ActivityThreadStatus.Ended:
78
+ case ActivityThreadStatus.Rejected:
79
+ case ActivityThreadStatus.Escalated:
80
+ case ActivityThreadStatus.Aborted:
81
+ case ActivityThreadStatus.Submitted:
82
+ return true
83
+ case ActivityThreadStatus.Delegated:
84
+ default:
85
+ return false
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,103 @@
1
+ import { Domain, User, Role } from '@operato/shell'
2
+ import { ApprovalLineItem, AssigneeItem } from '@things-factory/organization'
3
+
4
+ import { ActivityModelItem } from './activity-model-type'
5
+ import { ActivitySearchKeyItem } from './activity-search-key-item-type'
6
+
7
+ export enum ActivityStatus {
8
+ Draft = 'draft',
9
+ Released = 'released',
10
+ Deprecated = 'deprecated'
11
+ }
12
+
13
+ export enum ActivityType {
14
+ Task = 'task',
15
+ Service = 'service',
16
+ Send = 'send',
17
+ Receive = 'receive',
18
+ User = 'user',
19
+ Manual = 'manual',
20
+ BusinessRule = 'business-rule',
21
+ Script = 'script',
22
+ Subprocess = 'sub-process',
23
+ Call = 'call'
24
+ }
25
+
26
+ export enum ActivityUIType {
27
+ Generated = 'generated',
28
+ Template = 'template',
29
+ Board = 'board',
30
+ CustomElement = 'custom-element',
31
+ Page = 'page',
32
+ External = 'external'
33
+ }
34
+
35
+ export class Activity {
36
+ id?: string
37
+
38
+ version?: number = 1
39
+
40
+ domain?: Domain
41
+
42
+ name?: string
43
+
44
+ description?: string
45
+
46
+ activityType?: ActivityType
47
+
48
+ state?: ActivityStatus
49
+
50
+ searchKeys?: ActivitySearchKeyItem[]
51
+
52
+ model?: ActivityModelItem[]
53
+
54
+ priority?: number = 1
55
+
56
+ startable?: boolean
57
+
58
+ schedule?: string
59
+
60
+ timzeone?: string
61
+
62
+ standardTime?: number
63
+
64
+ cycleTime?: number
65
+
66
+ tactTime?: number
67
+
68
+ leadTime?: number
69
+
70
+ issuerRole?: Role
71
+
72
+ assigneeRole?: Role
73
+
74
+ supervisoryRole?: Role
75
+
76
+ assignees?: AssigneeItem[]
77
+
78
+ approvalLine?: ApprovalLineItem[]
79
+
80
+ uiType?: ActivityUIType
81
+
82
+ uiSource?: string
83
+
84
+ viewType?: ActivityUIType
85
+
86
+ viewSource?: string
87
+
88
+ reportType?: ActivityUIType
89
+
90
+ reportSource?: string
91
+
92
+ createdAt?: Date
93
+
94
+ updatedAt?: Date
95
+
96
+ client?: User
97
+
98
+ creator?: User
99
+
100
+ updater?: User
101
+
102
+ thumbnail?: string
103
+ }
@@ -1,12 +1,3 @@
1
- export const ActivityInstanceStatus = [
2
- { display: '', value: '' },
3
- { display: 'posted', value: 'posted' },
4
- { display: 'Assigned', value: 'assigned' },
5
- { display: 'Started', value: 'started' },
6
- { display: 'Ended', value: 'ended' },
7
- { display: 'Aborted', value: 'aborted' }
8
- ]
9
-
10
1
  export const Priorities = [
11
2
  { display: '', value: '' },
12
3
  { display: 'Emergency', value: 3 },
@@ -5,11 +5,12 @@ import { html } from 'lit-html';
5
5
  import { store } from '@operato/shell';
6
6
  import { openOverlay, TOOL_POSITION } from '@operato/layout';
7
7
  import { APPEND_CONTEXT_TOOL } from '@things-factory/context-ui';
8
- import { registerEditor as registerGristEditor, registerRenderer as registerGristRenderer } from '@operato/data-grist';
8
+ import { OxGristRendererJson5, registerEditor as registerGristEditor, registerRenderer as registerGristRenderer } from '@operato/data-grist';
9
9
  import { OxGristEditorDuration } from '@operato/grist-editor/ox-grist-editor-duration.js';
10
10
  import { OxGristEditorQuantifier } from '@operato/grist-editor/ox-grist-editor-quantifier.js';
11
11
  import { OxGristRendererDuration } from '@operato/grist-editor/ox-grist-renderer-duration.js';
12
12
  import { OxGristRendererQuantifier } from '@operato/grist-editor/ox-grist-renderer-quantifier.js';
13
+ import { GristEditorActivitySearchKeys } from './grist-editor/grist-editor-activity-search-key.js';
13
14
  export default function bootstrap() {
14
15
  ;
15
16
  [
@@ -44,5 +45,7 @@ export default function bootstrap() {
44
45
  registerGristRenderer('duration', OxGristRendererDuration);
45
46
  registerGristEditor('quantifier', OxGristEditorQuantifier);
46
47
  registerGristRenderer('quantifier', OxGristRendererQuantifier);
48
+ registerGristEditor('activity-search-keys', GristEditorActivitySearchKeys);
49
+ registerGristRenderer('activity-search-keys', OxGristRendererJson5);
47
50
  }
48
51
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mDAAmD,CAAA;AAC1D,OAAO,iDAAiD,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACtH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAA;AAEjG,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,CAAC;IAAA;QACC;YACE,QAAQ,EAAE,IAAI,CAAA,6EAA6E;YAC3F,OAAO,EAAE,kBAAkB;SAC5B;QACD;YACE,QAAQ,EAAE,IAAI,CAAA,yEAAyE;YACvF,OAAO,EAAE,gBAAgB;SAC1B;KACF,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,KAAK,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE;gBACJ,QAAQ,EAAE,aAAa,CAAC,KAAK;gBAC7B,QAAQ,EAAE,IAAI,CAAA;;qBAED,KAAK,EAAC,CAAC,EAAC,EAAE;oBACjB,WAAW,CAAC,yBAAyB,EAAE;wBACrC,QAAQ;qBACT,CAAC,CAAA;gBACJ,CAAC;;;SAGJ;gBACD,OAAO;aACR;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAA;IACtD,qBAAqB,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAA;IAC1D,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;IAC1D,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAA;AAChE,CAAC","sourcesContent":["import '@material/mwc-icon'\nimport './templates/activity-approval-context-template.js'\nimport './templates/activity-thread-context-template.js'\n\nimport { html } from 'lit-html'\nimport { store } from '@operato/shell'\nimport { openOverlay, TOOL_POSITION } from '@operato/layout'\nimport { APPEND_CONTEXT_TOOL } from '@things-factory/context-ui'\n\nimport { registerEditor as registerGristEditor, registerRenderer as registerGristRenderer } from '@operato/data-grist'\nimport { OxGristEditorDuration } from '@operato/grist-editor/ox-grist-editor-duration.js'\nimport { OxGristEditorQuantifier } from '@operato/grist-editor/ox-grist-editor-quantifier.js'\nimport { OxGristRendererDuration } from '@operato/grist-editor/ox-grist-renderer-duration.js'\nimport { OxGristRendererQuantifier } from '@operato/grist-editor/ox-grist-renderer-quantifier.js'\n\nexport default function bootstrap() {\n ;[\n {\n template: html` <activity-approval-context-template></activity-approval-context-template> `,\n context: 'activityApproval'\n },\n {\n template: html` <activity-thread-context-template></activity-thread-context-template> `,\n context: 'activityThread'\n }\n ].forEach(({ template, context }) => {\n store.dispatch({\n type: APPEND_CONTEXT_TOOL,\n tool: {\n position: TOOL_POSITION.FRONT,\n template: html`\n <mwc-icon\n @click=${async e => {\n openOverlay('context-toolbar-overlay', {\n template\n })\n }}\n >info</mwc-icon\n >\n `,\n context\n }\n })\n })\n\n registerGristEditor('duration', OxGristEditorDuration)\n registerGristRenderer('duration', OxGristRendererDuration)\n registerGristEditor('quantifier', OxGristEditorQuantifier)\n registerGristRenderer('quantifier', OxGristRendererQuantifier)\n}\n"]}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mDAAmD,CAAA;AAC1D,OAAO,iDAAiD,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EACL,oBAAoB,EACpB,cAAc,IAAI,mBAAmB,EACrC,gBAAgB,IAAI,qBAAqB,EAC1C,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAA;AACjG,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;AAElG,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,CAAC;IAAA;QACC;YACE,QAAQ,EAAE,IAAI,CAAA,6EAA6E;YAC3F,OAAO,EAAE,kBAAkB;SAC5B;QACD;YACE,QAAQ,EAAE,IAAI,CAAA,yEAAyE;YACvF,OAAO,EAAE,gBAAgB;SAC1B;KACF,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,KAAK,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE;gBACJ,QAAQ,EAAE,aAAa,CAAC,KAAK;gBAC7B,QAAQ,EAAE,IAAI,CAAA;;qBAED,KAAK,EAAC,CAAC,EAAC,EAAE;oBACjB,WAAW,CAAC,yBAAyB,EAAE;wBACrC,QAAQ;qBACT,CAAC,CAAA;gBACJ,CAAC;;;SAGJ;gBACD,OAAO;aACR;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAA;IACtD,qBAAqB,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAA;IAC1D,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;IAC1D,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAA;IAE9D,mBAAmB,CAAC,sBAAsB,EAAE,6BAA6B,CAAC,CAAA;IAC1E,qBAAqB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAA;AACrE,CAAC","sourcesContent":["import '@material/mwc-icon'\nimport './templates/activity-approval-context-template.js'\nimport './templates/activity-thread-context-template.js'\n\nimport { html } from 'lit-html'\nimport { store } from '@operato/shell'\nimport { openOverlay, TOOL_POSITION } from '@operato/layout'\nimport { APPEND_CONTEXT_TOOL } from '@things-factory/context-ui'\n\nimport {\n OxGristRendererJson5,\n registerEditor as registerGristEditor,\n registerRenderer as registerGristRenderer\n} from '@operato/data-grist'\nimport { OxGristEditorDuration } from '@operato/grist-editor/ox-grist-editor-duration.js'\nimport { OxGristEditorQuantifier } from '@operato/grist-editor/ox-grist-editor-quantifier.js'\nimport { OxGristRendererDuration } from '@operato/grist-editor/ox-grist-renderer-duration.js'\nimport { OxGristRendererQuantifier } from '@operato/grist-editor/ox-grist-renderer-quantifier.js'\nimport { GristEditorActivitySearchKeys } from './grist-editor/grist-editor-activity-search-key.js'\n\nexport default function bootstrap() {\n ;[\n {\n template: html` <activity-approval-context-template></activity-approval-context-template> `,\n context: 'activityApproval'\n },\n {\n template: html` <activity-thread-context-template></activity-thread-context-template> `,\n context: 'activityThread'\n }\n ].forEach(({ template, context }) => {\n store.dispatch({\n type: APPEND_CONTEXT_TOOL,\n tool: {\n position: TOOL_POSITION.FRONT,\n template: html`\n <mwc-icon\n @click=${async e => {\n openOverlay('context-toolbar-overlay', {\n template\n })\n }}\n >info</mwc-icon\n >\n `,\n context\n }\n })\n })\n\n registerGristEditor('duration', OxGristEditorDuration)\n registerGristRenderer('duration', OxGristRendererDuration)\n registerGristEditor('quantifier', OxGristEditorQuantifier)\n registerGristRenderer('quantifier', OxGristRendererQuantifier)\n\n registerGristEditor('activity-search-keys', GristEditorActivitySearchKeys)\n registerGristRenderer('activity-search-keys', OxGristRendererJson5)\n}\n"]}
@@ -7,7 +7,7 @@ declare const ActivityStarterForm_base: (new (...args: any[]) => LitElement) & t
7
7
  export declare class ActivityStarterForm extends ActivityStarterForm_base {
8
8
  static styles: import("lit").CSSResult[];
9
9
  activityId?: string;
10
- activity?: any;
10
+ activity: any;
11
11
  activityInstance: any;
12
12
  render(): import("lit-html").TemplateResult<1>;
13
13
  firstUpdated(): void;
@@ -5,7 +5,7 @@ import '@operato/property-editor/ox-properties-dynamic-view.js';
5
5
  import '@things-factory/organization';
6
6
  import gql from 'graphql-tag';
7
7
  import { css, html, LitElement } from 'lit';
8
- import { customElement, property } from 'lit/decorators.js';
8
+ import { customElement, property, state } from 'lit/decorators.js';
9
9
  import { when } from 'lit/directives/when.js';
10
10
  import { client } from '@operato/graphql';
11
11
  import { i18next, localize } from '@operato/i18n';
@@ -17,14 +17,14 @@ let ActivityStarterForm = class ActivityStarterForm extends localize(i18next)(Li
17
17
  this.activityInstance = {};
18
18
  }
19
19
  render() {
20
- var _a, _b;
21
- const { model, thumbnail } = this.activity || {};
20
+ var _a, _b, _c, _d;
21
+ var { model, thumbnail } = this.activity || {};
22
22
  const inputSpec = (model || [])
23
23
  .filter(item => item.inout === 'in' || item.inout === 'inout')
24
24
  .map(item => {
25
25
  return Object.assign(Object.assign({}, item), { label: item.name });
26
26
  });
27
- const { id, name, description, input, state, approvalLine, assignees, threadsMin = 0, threadsMax = 0 } = this.activityInstance || {};
27
+ var { id, name, description, input, state, approvalLine = (_a = this.activity) === null || _a === void 0 ? void 0 : _a.approvalLine, assignees = (_b = this.activity) === null || _b === void 0 ? void 0 : _b.assignees, threadsMin = 0, threadsMax = 0 } = this.activityInstance;
28
28
  const draftable = !id;
29
29
  const postable = id && state === 'draft';
30
30
  return html `
@@ -33,7 +33,7 @@ let ActivityStarterForm = class ActivityStarterForm extends localize(i18next)(Li
33
33
  <label for="name">title</label>
34
34
  <input
35
35
  id="name"
36
- .value=${name || ((_a = this.activity) === null || _a === void 0 ? void 0 : _a.name)}
36
+ .value=${name || ((_c = this.activity) === null || _c === void 0 ? void 0 : _c.name)}
37
37
  @change=${e => (this.activityInstance.name = e.currentTarget.value)}
38
38
  />
39
39
  </section>
@@ -42,7 +42,7 @@ let ActivityStarterForm = class ActivityStarterForm extends localize(i18next)(Li
42
42
  <label for="description">description</label>
43
43
  <textarea
44
44
  id="description"
45
- .value=${description || ((_b = this.activity) === null || _b === void 0 ? void 0 : _b.description)}
45
+ .value=${description || ((_d = this.activity) === null || _d === void 0 ? void 0 : _d.description)}
46
46
  @change=${e => {
47
47
  this.activityInstance.description = e.currentTarget.value;
48
48
  }}
@@ -137,6 +137,26 @@ let ActivityStarterForm = class ActivityStarterForm extends localize(i18next)(Li
137
137
  name
138
138
  description
139
139
  state
140
+ assignees {
141
+ type
142
+ value
143
+ assignee {
144
+ id
145
+ name
146
+ description
147
+ controlNo
148
+ }
149
+ }
150
+ approvalLine {
151
+ type
152
+ value
153
+ approver {
154
+ id
155
+ name
156
+ description
157
+ controlNo
158
+ }
159
+ }
140
160
  thumbnail
141
161
  model {
142
162
  name
@@ -161,7 +181,12 @@ let ActivityStarterForm = class ActivityStarterForm extends localize(i18next)(Li
161
181
  }
162
182
  async draftActivityInstance() {
163
183
  const { activityId } = this;
164
- const activityInstance = Object.assign({ activityId, name: this.activity.name, description: this.activity.description }, this.activityInstance);
184
+ var { name, description, assignees, approvalLine } = this.activity;
185
+ const activityInstance = Object.assign({ activityId,
186
+ name,
187
+ description,
188
+ assignees,
189
+ approvalLine }, this.activityInstance);
165
190
  const response = await client.mutate({
166
191
  mutation: gql `
167
192
  mutation ($activityInstance: NewActivityInstance!) {
@@ -407,11 +432,11 @@ __decorate([
407
432
  __metadata("design:type", String)
408
433
  ], ActivityStarterForm.prototype, "activityId", void 0);
409
434
  __decorate([
410
- property({ type: Object }),
435
+ state(),
411
436
  __metadata("design:type", Object)
412
437
  ], ActivityStarterForm.prototype, "activity", void 0);
413
438
  __decorate([
414
- property({ type: Object }),
439
+ state(),
415
440
  __metadata("design:type", Object)
416
441
  ], ActivityStarterForm.prototype, "activityInstance", void 0);
417
442
  ActivityStarterForm = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"activity-starter-form.js","sourceRoot":"","sources":["../../client/components/activity-starter-form.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-button'\nimport '@material/mwc-icon-button'\nimport '@operato/property-editor/ox-properties-dynamic-view.js'\nimport '@things-factory/organization'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify, openPopup } from '@operato/layout'\nimport { ScrollbarStyles } from '@operato/styles'\n\n@customElement('activity-starter-form')\nexport class ActivityStarterForm extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n }\n\n content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: var(--padding-default);\n overflow: auto;\n }\n\n section {\n display: flex;\n flex-direction: column;\n }\n\n #description {\n height: 60px;\n }\n\n .button-container {\n display: flex;\n margin-left: auto;\n padding: var(--padding-default);\n }\n\n mwc-button {\n margin-left: var(--margin-default);\n }\n `\n ]\n\n @property({ type: String }) activityId?: string\n @property({ type: Object }) activity?: any\n @property({ type: Object }) activityInstance: any = {}\n\n render() {\n const { model, thumbnail } = this.activity || {}\n\n const inputSpec = (model || [])\n .filter(item => item.inout === 'in' || item.inout === 'inout')\n .map(item => {\n return {\n ...item,\n label: item.name\n }\n })\n\n const {\n id,\n name,\n description,\n input,\n state,\n approvalLine,\n assignees,\n threadsMin = 0,\n threadsMax = 0\n } = this.activityInstance || {}\n const draftable = !id\n const postable = id && state === 'draft'\n\n return html`\n <content>\n <section>\n <label for=\"name\">title</label>\n <input\n id=\"name\"\n .value=${name || this.activity?.name}\n @change=${e => (this.activityInstance.name = e.currentTarget.value)}\n />\n </section>\n\n <section>\n <label for=\"description\">description</label>\n <textarea\n id=\"description\"\n .value=${description || this.activity?.description}\n @change=${e => {\n this.activityInstance.description = e.currentTarget.value\n }}\n ></textarea>\n </section>\n\n <section>\n <label for=\"threads-min\">Threads Min</label>\n <input\n id=\"threadsMin\"\n type=\"number\"\n .value=${threadsMin || 0}\n @change=${e => (this.activityInstance.threadsMin = e.currentTarget.valueAsNumber)}\n />\n\n <label for=\"threads-max\">Threads Max</label>\n <input\n id=\"threads-max\"\n type=\"number\"\n .value=${threadsMax || 0}\n @change=${e => (this.activityInstance.threadsMax = e.currentTarget.valueAsNumber)}\n />\n </section>\n\n <section>\n <label>Assignees</label>\n ${assignees\n ? html`\n <assignees-view\n .value=${assignees}\n @click=${this.onClickAssignees.bind(this)}\n @change=${e => (this.activityInstance.assignees = e.currentTarget.value)}\n ></assignees-view>\n `\n : html`<mwc-icon-button icon=\"group_add\" @click=${this.onClickAssignees.bind(this)}></mwc-icon-button>`}\n </section>\n\n <section>\n <label>Approval Line</label>\n ${approvalLine\n ? html`\n <approval-line-view\n .model=${approvalLine}\n @click=${this.onClickApprovalLine.bind(this)}\n @change=${e => (this.activityInstance.approvalLine = e.currentTarget.value)}\n ></approval-line-view>\n `\n : html`<mwc-icon-button icon=\"group_add\" @click=${this.onClickApprovalLine.bind(this)}></mwc-icon-button>`}\n </section>\n\n <section>\n <img src=${thumbnail} />\n </section>\n\n <label>Input</label>\n\n ${!model\n ? html``\n : html`\n <ox-properties-dynamic-view\n .props=${inputSpec}\n .value=${input}\n @property-change=${e => {\n this.activityInstance.input = e.currentTarget.value\n console.log('activity-instance', this.activityInstance.input)\n }}\n ></ox-properties-dynamic-view>\n `}\n </content>\n\n <div class=\"button-container\">\n <mwc-button raised @click=${e => history.back()}>${i18next.t('button.close')}</mwc-button>\n ${when(\n draftable,\n () => html`\n <mwc-button raised @click=${this.draftActivityInstance.bind(this)}>${i18next.t('button.draft')}</mwc-button>\n `\n )}\n ${when(\n postable,\n () => html`\n <mwc-button raised @click=${this.updateActivityInstance.bind(this)}>${i18next.t('button.save')}</mwc-button>\n <mwc-button raised @click=${this.postActivityInstance.bind(this)}>${i18next.t('button.post')}</mwc-button>\n `\n )}\n </div>\n `\n }\n\n firstUpdated() {\n this.fetchActivity(this.activityId)\n }\n\n async fetchActivity(id) {\n const response = await client.query({\n query: gql`\n query activity($id: String!) {\n activity(id: $id) {\n id\n name\n description\n state\n thumbnail\n model {\n name\n description\n active\n tag\n inout\n type\n unit\n options\n quantifier\n spec\n }\n }\n }\n `,\n variables: {\n id\n }\n })\n\n this.activity = response.data.activity\n }\n\n async draftActivityInstance() {\n const { activityId } = this\n\n const activityInstance = {\n activityId,\n name: this.activity.name,\n description: this.activity.description,\n ...this.activityInstance\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($activityInstance: NewActivityInstance!) {\n draftActivityInstance(activityInstance: $activityInstance) {\n id\n name\n description\n input\n state\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n threadsMin\n threadsMax\n }\n }\n `,\n variables: {\n activityInstance\n }\n })\n\n if (!response.errors) {\n this.activityInstance = response.data.draftActivityInstance\n notify({\n message: i18next.t('text.info_x_successfully', {\n x: `${i18next.t('label.activity-instance')} ${i18next.t('text.draft')}`\n })\n })\n }\n }\n\n async updateActivityInstance() {\n const {\n id,\n name,\n description,\n input,\n threadsMin = 0,\n threadsMax = 0,\n assignees,\n approvalLine\n } = this.activityInstance\n\n const patch = {\n name: name || this.activity.name,\n description: description || this.activity.description,\n input,\n threadsMin,\n threadsMax,\n assignees,\n approvalLine\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!, $patch: ActivityInstancePatch!) {\n updateActivityInstance(id: $id, patch: $patch) {\n id\n name\n description\n input\n state\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n threadsMin\n threadsMax\n }\n }\n `,\n variables: {\n id,\n patch\n }\n })\n\n if (!response.errors) {\n this.activityInstance = response.data.updateActivityInstance\n notify({\n message: i18next.t('text.info_x_successfully', {\n x: `${i18next.t('label.activity-instance')} ${i18next.t('text.save')}`\n })\n })\n }\n }\n\n async postActivityInstance() {\n const {\n id,\n name,\n description,\n input,\n threadsMin = 0,\n threadsMax = 0,\n assignees,\n approvalLine\n } = this.activityInstance\n\n const activityInstance = {\n id,\n name: name || this.activity.name,\n description: description || this.activity.description,\n threadsMin,\n threadsMax,\n input,\n assignees,\n approvalLine\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($activityInstance: ActivityInstancePost!) {\n postActivityInstance(activityInstance: $activityInstance) {\n id\n name\n description\n input\n state\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n threadsMin\n threadsMax\n }\n }\n `,\n variables: {\n activityInstance\n }\n })\n\n if (!response.errors) {\n this.activityInstance = response.data.postActivityInstance\n notify({\n message: i18next.t('text.info_x_successfully', {\n x: `${i18next.t('label.activity-instance')} ${i18next.t('text.assign')}`\n })\n })\n }\n }\n\n onClickAssignees() {\n const { assignees } = this.activityInstance || {}\n\n const popup = openPopup(\n html`\n <assignees-editor-popup\n .value=${assignees}\n .confirmCallback=${value => {\n this.activityInstance.assignees = value\n this.requestUpdate()\n }}\n ></assignees-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/assignees-editor',\n size: 'large',\n title: i18next.t('title.assignee list')\n }\n )\n popup.onclosed = () => {}\n }\n\n onClickApprovalLine() {\n const { approvalLine } = this.activityInstance || {}\n\n const popup = openPopup(\n html`\n <approval-line-items-editor-popup\n .value=${approvalLine}\n .confirmCallback=${value => {\n this.activityInstance.approvalLine = value\n this.requestUpdate()\n }}\n ></approval-line-items-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/approval-line-items-editor',\n size: 'large',\n title: i18next.t('title.approval-line item list')\n }\n )\n popup.onclosed = () => {}\n }\n}\n"]}
1
+ {"version":3,"file":"activity-starter-form.js","sourceRoot":"","sources":["../../client/components/activity-starter-form.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-button'\nimport '@material/mwc-icon-button'\nimport '@operato/property-editor/ox-properties-dynamic-view.js'\nimport '@things-factory/organization'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify, openPopup } from '@operato/layout'\nimport { ScrollbarStyles } from '@operato/styles'\n\n@customElement('activity-starter-form')\nexport class ActivityStarterForm extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n }\n\n content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: var(--padding-default);\n overflow: auto;\n }\n\n section {\n display: flex;\n flex-direction: column;\n }\n\n #description {\n height: 60px;\n }\n\n .button-container {\n display: flex;\n margin-left: auto;\n padding: var(--padding-default);\n }\n\n mwc-button {\n margin-left: var(--margin-default);\n }\n `\n ]\n\n @property({ type: String }) activityId?: string\n\n @state() activity: any\n @state() activityInstance: any = {}\n\n render() {\n var { model, thumbnail } = this.activity || {}\n\n const inputSpec = (model || [])\n .filter(item => item.inout === 'in' || item.inout === 'inout')\n .map(item => {\n return {\n ...item,\n label: item.name\n }\n })\n\n var {\n id,\n name,\n description,\n input,\n state,\n approvalLine = this.activity?.approvalLine,\n assignees = this.activity?.assignees,\n threadsMin = 0,\n threadsMax = 0\n } = this.activityInstance\n\n const draftable = !id\n const postable = id && state === 'draft'\n\n return html`\n <content>\n <section>\n <label for=\"name\">title</label>\n <input\n id=\"name\"\n .value=${name || this.activity?.name}\n @change=${e => (this.activityInstance.name = e.currentTarget.value)}\n />\n </section>\n\n <section>\n <label for=\"description\">description</label>\n <textarea\n id=\"description\"\n .value=${description || this.activity?.description}\n @change=${e => {\n this.activityInstance.description = e.currentTarget.value\n }}\n ></textarea>\n </section>\n\n <section>\n <label for=\"threads-min\">Threads Min</label>\n <input\n id=\"threadsMin\"\n type=\"number\"\n .value=${threadsMin || 0}\n @change=${e => (this.activityInstance.threadsMin = e.currentTarget.valueAsNumber)}\n />\n\n <label for=\"threads-max\">Threads Max</label>\n <input\n id=\"threads-max\"\n type=\"number\"\n .value=${threadsMax || 0}\n @change=${e => (this.activityInstance.threadsMax = e.currentTarget.valueAsNumber)}\n />\n </section>\n\n <section>\n <label>Assignees</label>\n ${assignees\n ? html`\n <assignees-view\n .value=${assignees}\n @click=${this.onClickAssignees.bind(this)}\n @change=${e => (this.activityInstance.assignees = e.currentTarget.value)}\n ></assignees-view>\n `\n : html`<mwc-icon-button icon=\"group_add\" @click=${this.onClickAssignees.bind(this)}></mwc-icon-button>`}\n </section>\n\n <section>\n <label>Approval Line</label>\n ${approvalLine\n ? html`\n <approval-line-view\n .model=${approvalLine}\n @click=${this.onClickApprovalLine.bind(this)}\n @change=${e => (this.activityInstance.approvalLine = e.currentTarget.value)}\n ></approval-line-view>\n `\n : html`<mwc-icon-button icon=\"group_add\" @click=${this.onClickApprovalLine.bind(this)}></mwc-icon-button>`}\n </section>\n\n <section>\n <img src=${thumbnail} />\n </section>\n\n <label>Input</label>\n\n ${!model\n ? html``\n : html`\n <ox-properties-dynamic-view\n .props=${inputSpec}\n .value=${input}\n @property-change=${e => {\n this.activityInstance.input = e.currentTarget.value\n console.log('activity-instance', this.activityInstance.input)\n }}\n ></ox-properties-dynamic-view>\n `}\n </content>\n\n <div class=\"button-container\">\n <mwc-button raised @click=${e => history.back()}>${i18next.t('button.close')}</mwc-button>\n ${when(\n draftable,\n () => html`\n <mwc-button raised @click=${this.draftActivityInstance.bind(this)}>${i18next.t('button.draft')}</mwc-button>\n `\n )}\n ${when(\n postable,\n () => html`\n <mwc-button raised @click=${this.updateActivityInstance.bind(this)}>${i18next.t('button.save')}</mwc-button>\n <mwc-button raised @click=${this.postActivityInstance.bind(this)}>${i18next.t('button.post')}</mwc-button>\n `\n )}\n </div>\n `\n }\n\n firstUpdated() {\n this.fetchActivity(this.activityId)\n }\n\n async fetchActivity(id) {\n const response = await client.query({\n query: gql`\n query activity($id: String!) {\n activity(id: $id) {\n id\n name\n description\n state\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n thumbnail\n model {\n name\n description\n active\n tag\n inout\n type\n unit\n options\n quantifier\n spec\n }\n }\n }\n `,\n variables: {\n id\n }\n })\n\n this.activity = response.data.activity\n }\n\n async draftActivityInstance() {\n const { activityId } = this\n var { name, description, assignees, approvalLine } = this.activity\n\n const activityInstance = {\n activityId,\n name,\n description,\n assignees,\n approvalLine,\n ...this.activityInstance\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($activityInstance: NewActivityInstance!) {\n draftActivityInstance(activityInstance: $activityInstance) {\n id\n name\n description\n input\n state\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n threadsMin\n threadsMax\n }\n }\n `,\n variables: {\n activityInstance\n }\n })\n\n if (!response.errors) {\n this.activityInstance = response.data.draftActivityInstance\n notify({\n message: i18next.t('text.info_x_successfully', {\n x: `${i18next.t('label.activity-instance')} ${i18next.t('text.draft')}`\n })\n })\n }\n }\n\n async updateActivityInstance() {\n const {\n id,\n name,\n description,\n input,\n threadsMin = 0,\n threadsMax = 0,\n assignees,\n approvalLine\n } = this.activityInstance\n\n const patch = {\n name: name || this.activity.name,\n description: description || this.activity.description,\n input,\n threadsMin,\n threadsMax,\n assignees,\n approvalLine\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!, $patch: ActivityInstancePatch!) {\n updateActivityInstance(id: $id, patch: $patch) {\n id\n name\n description\n input\n state\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n threadsMin\n threadsMax\n }\n }\n `,\n variables: {\n id,\n patch\n }\n })\n\n if (!response.errors) {\n this.activityInstance = response.data.updateActivityInstance\n notify({\n message: i18next.t('text.info_x_successfully', {\n x: `${i18next.t('label.activity-instance')} ${i18next.t('text.save')}`\n })\n })\n }\n }\n\n async postActivityInstance() {\n const {\n id,\n name,\n description,\n input,\n threadsMin = 0,\n threadsMax = 0,\n assignees,\n approvalLine\n } = this.activityInstance\n\n const activityInstance = {\n id,\n name: name || this.activity.name,\n description: description || this.activity.description,\n threadsMin,\n threadsMax,\n input,\n assignees,\n approvalLine\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($activityInstance: ActivityInstancePost!) {\n postActivityInstance(activityInstance: $activityInstance) {\n id\n name\n description\n input\n state\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n value\n approver {\n id\n name\n description\n controlNo\n }\n }\n threadsMin\n threadsMax\n }\n }\n `,\n variables: {\n activityInstance\n }\n })\n\n if (!response.errors) {\n this.activityInstance = response.data.postActivityInstance\n notify({\n message: i18next.t('text.info_x_successfully', {\n x: `${i18next.t('label.activity-instance')} ${i18next.t('text.assign')}`\n })\n })\n }\n }\n\n onClickAssignees() {\n const { assignees } = this.activityInstance || {}\n\n const popup = openPopup(\n html`\n <assignees-editor-popup\n .value=${assignees}\n .confirmCallback=${value => {\n this.activityInstance.assignees = value\n this.requestUpdate()\n }}\n ></assignees-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/assignees-editor',\n size: 'large',\n title: i18next.t('title.assignee list')\n }\n )\n popup.onclosed = () => {}\n }\n\n onClickApprovalLine() {\n const { approvalLine } = this.activityInstance || {}\n\n const popup = openPopup(\n html`\n <approval-line-items-editor-popup\n .value=${approvalLine}\n .confirmCallback=${value => {\n this.activityInstance.approvalLine = value\n this.requestUpdate()\n }}\n ></approval-line-items-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/approval-line-items-editor',\n size: 'large',\n title: i18next.t('title.approval-line item list')\n }\n )\n popup.onclosed = () => {}\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+ import '../grist-editor/popup-activity-search-keys-input.js';
5
+ import { OxGristEditor } from '@operato/data-grist';
6
+ export declare class GristEditorActivitySearchKeys extends OxGristEditor {
7
+ private popup?;
8
+ get editorTemplate(): import("lit-html").TemplateResult<1>;
9
+ _onclick(e: Event): void;
10
+ _onkeydown(e: KeyboardEvent): void;
11
+ openEditorPopup(): Promise<void>;
12
+ }