@things-factory/worklist 10.1.248 → 10.1.250

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 (724) hide show
  1. package/dist-client/activity-cells.d.ts +21 -0
  2. package/dist-client/activity-cells.js +117 -0
  3. package/dist-client/activity-cells.js.map +1 -0
  4. package/dist-client/activity-state-counts.d.ts +6 -0
  5. package/dist-client/activity-state-counts.js +23 -0
  6. package/dist-client/activity-state-counts.js.map +1 -0
  7. package/dist-client/activity-summary-generator.d.ts +2 -0
  8. package/dist-client/activity-summary-generator.js +155 -0
  9. package/dist-client/activity-summary-generator.js.map +1 -0
  10. package/dist-client/approval-progress.d.ts +27 -0
  11. package/dist-client/approval-progress.js +42 -0
  12. package/dist-client/approval-progress.js.map +1 -0
  13. package/dist-client/bootstrap.d.ts +5 -0
  14. package/dist-client/bootstrap.js +63 -0
  15. package/dist-client/bootstrap.js.map +1 -0
  16. package/dist-client/chip-counts.d.ts +7 -0
  17. package/dist-client/chip-counts.js +11 -0
  18. package/dist-client/chip-counts.js.map +1 -0
  19. package/dist-client/chip-filters.d.ts +60 -0
  20. package/dist-client/chip-filters.js +102 -0
  21. package/dist-client/chip-filters.js.map +1 -0
  22. package/dist-client/components/activity-/bowner-view.d.ts +1 -0
  23. package/dist-client/components/activity-/bowner-view.js +104 -0
  24. package/dist-client/components/activity-/bowner-view.js.map +1 -0
  25. package/dist-client/components/activity-approval-ribon.d.ts +31 -0
  26. package/dist-client/components/activity-approval-ribon.js +103 -0
  27. package/dist-client/components/activity-approval-ribon.js.map +1 -0
  28. package/dist-client/components/activity-fields.d.ts +77 -0
  29. package/dist-client/components/activity-fields.js +424 -0
  30. package/dist-client/components/activity-fields.js.map +1 -0
  31. package/dist-client/components/activity-instance-preview.d.ts +2 -0
  32. package/dist-client/components/activity-instance-preview.js +177 -0
  33. package/dist-client/components/activity-instance-preview.js.map +1 -0
  34. package/dist-client/components/activity-instance-ribon.d.ts +32 -0
  35. package/dist-client/components/activity-instance-ribon.js +91 -0
  36. package/dist-client/components/activity-instance-ribon.js.map +1 -0
  37. package/dist-client/components/activity-intro-view.d.ts +1 -0
  38. package/dist-client/components/activity-intro-view.js +104 -0
  39. package/dist-client/components/activity-intro-view.js.map +1 -0
  40. package/dist-client/components/activity-reporter-view.d.ts +1 -0
  41. package/dist-client/components/activity-reporter-view.js +103 -0
  42. package/dist-client/components/activity-reporter-view.js.map +1 -0
  43. package/dist-client/components/activity-starter-form.d.ts +19 -0
  44. package/dist-client/components/activity-starter-form.js +264 -0
  45. package/dist-client/components/activity-starter-form.js.map +1 -0
  46. package/dist-client/components/activity-thread-ribon.d.ts +38 -0
  47. package/dist-client/components/activity-thread-ribon.js +95 -0
  48. package/dist-client/components/activity-thread-ribon.js.map +1 -0
  49. package/dist-client/components/activity-thread-timeline.d.ts +28 -0
  50. package/dist-client/components/activity-thread-timeline.js +339 -0
  51. package/dist-client/components/activity-thread-timeline.js.map +1 -0
  52. package/dist-client/components/can-pick.d.ts +15 -0
  53. package/dist-client/components/can-pick.js +16 -0
  54. package/dist-client/components/can-pick.js.map +1 -0
  55. package/dist-client/components/decision-content.d.ts +35 -0
  56. package/dist-client/components/decision-content.js +331 -0
  57. package/dist-client/components/decision-content.js.map +1 -0
  58. package/dist-client/components/decision-slots.d.ts +153 -0
  59. package/dist-client/components/decision-slots.js +152 -0
  60. package/dist-client/components/decision-slots.js.map +1 -0
  61. package/dist-client/components/mutation-outcome.d.ts +57 -0
  62. package/dist-client/components/mutation-outcome.js +78 -0
  63. package/dist-client/components/mutation-outcome.js.map +1 -0
  64. package/dist-client/components/say-outcome.d.ts +25 -0
  65. package/dist-client/components/say-outcome.js +51 -0
  66. package/dist-client/components/say-outcome.js.map +1 -0
  67. package/dist-client/components/state-ribon.d.ts +48 -0
  68. package/dist-client/components/state-ribon.js +225 -0
  69. package/dist-client/components/state-ribon.js.map +1 -0
  70. package/dist-client/components/timeline-entries.d.ts +38 -0
  71. package/dist-client/components/timeline-entries.js +62 -0
  72. package/dist-client/components/timeline-entries.js.map +1 -0
  73. package/dist-client/components/work-box-groups.d.ts +25 -0
  74. package/dist-client/components/work-box-groups.js +98 -0
  75. package/dist-client/components/work-box-groups.js.map +1 -0
  76. package/dist-client/due.d.ts +16 -0
  77. package/dist-client/due.js +78 -0
  78. package/dist-client/due.js.map +1 -0
  79. package/dist-client/entity360/person-open-work-section.d.ts +23 -0
  80. package/dist-client/entity360/person-open-work-section.js +79 -0
  81. package/dist-client/entity360/person-open-work-section.js.map +1 -0
  82. package/dist-client/grist-editor/grist-editor-activity-search-key.d.ts +12 -0
  83. package/dist-client/grist-editor/grist-editor-activity-search-key.js +70 -0
  84. package/dist-client/grist-editor/grist-editor-activity-search-key.js.map +1 -0
  85. package/dist-client/grist-editor/grist-renderer-activity-search-key.d.ts +3 -0
  86. package/dist-client/grist-editor/grist-renderer-activity-search-key.js +25 -0
  87. package/dist-client/grist-editor/grist-renderer-activity-search-key.js.map +1 -0
  88. package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +17 -0
  89. package/dist-client/grist-editor/popup-activity-search-keys-input.js +175 -0
  90. package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +1 -0
  91. package/dist-client/index.d.ts +6 -0
  92. package/dist-client/index.js +7 -0
  93. package/dist-client/index.js.map +1 -0
  94. package/dist-client/my-work-menus.d.ts +90 -0
  95. package/dist-client/my-work-menus.js +20 -0
  96. package/dist-client/my-work-menus.js.map +1 -0
  97. package/dist-client/pages/activity/activity-list-page.d.ts +53 -0
  98. package/dist-client/pages/activity/activity-list-page.js +600 -0
  99. package/dist-client/pages/activity/activity-list-page.js.map +1 -0
  100. package/dist-client/pages/activity/activity-model-item-list.d.ts +24 -0
  101. package/dist-client/pages/activity/activity-model-item-list.js +292 -0
  102. package/dist-client/pages/activity/activity-model-item-list.js.map +1 -0
  103. package/dist-client/pages/activity/activity-page.d.ts +56 -0
  104. package/dist-client/pages/activity/activity-page.js +396 -0
  105. package/dist-client/pages/activity/activity-page.js.map +1 -0
  106. package/dist-client/pages/activity/activity-partial-view.d.ts +13 -0
  107. package/dist-client/pages/activity/activity-partial-view.js +56 -0
  108. package/dist-client/pages/activity/activity-partial-view.js.map +1 -0
  109. package/dist-client/pages/activity/assignee-roles-cell.d.ts +32 -0
  110. package/dist-client/pages/activity/assignee-roles-cell.js +26 -0
  111. package/dist-client/pages/activity/assignee-roles-cell.js.map +1 -0
  112. package/dist-client/pages/activity/starter-list-page.d.ts +31 -0
  113. package/dist-client/pages/activity/starter-list-page.js +172 -0
  114. package/dist-client/pages/activity/starter-list-page.js.map +1 -0
  115. package/dist-client/pages/activity-approval/activity-approval-importer.d.ts +23 -0
  116. package/dist-client/pages/activity-approval/activity-approval-importer.js +94 -0
  117. package/dist-client/pages/activity-approval/activity-approval-importer.js.map +1 -0
  118. package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +55 -0
  119. package/dist-client/pages/activity-approval/activity-approval-list-page.js +253 -0
  120. package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -0
  121. package/dist-client/pages/activity-approval/activity-approval-page.d.ts +158 -0
  122. package/dist-client/pages/activity-approval/activity-approval-page.js +876 -0
  123. package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -0
  124. package/dist-client/pages/activity-approval/approval-gate.d.ts +29 -0
  125. package/dist-client/pages/activity-approval/approval-gate.js +21 -0
  126. package/dist-client/pages/activity-approval/approval-gate.js.map +1 -0
  127. package/dist-client/pages/activity-catalog/activity-catalog-page.d.ts +31 -0
  128. package/dist-client/pages/activity-catalog/activity-catalog-page.js +420 -0
  129. package/dist-client/pages/activity-catalog/activity-catalog-page.js.map +1 -0
  130. package/dist-client/pages/activity-catalog/activity-detail-actions.d.ts +34 -0
  131. package/dist-client/pages/activity-catalog/activity-detail-actions.js +18 -0
  132. package/dist-client/pages/activity-catalog/activity-detail-actions.js.map +1 -0
  133. package/dist-client/pages/activity-catalog/activity-detail-page.d.ts +90 -0
  134. package/dist-client/pages/activity-catalog/activity-detail-page.js +525 -0
  135. package/dist-client/pages/activity-catalog/activity-detail-page.js.map +1 -0
  136. package/dist-client/pages/activity-catalog/activity-guide.d.ts +16 -0
  137. package/dist-client/pages/activity-catalog/activity-guide.js +5 -0
  138. package/dist-client/pages/activity-catalog/activity-guide.js.map +1 -0
  139. package/dist-client/pages/activity-catalog/activity-panels.d.ts +80 -0
  140. package/dist-client/pages/activity-catalog/activity-panels.js +53 -0
  141. package/dist-client/pages/activity-catalog/activity-panels.js.map +1 -0
  142. package/dist-client/pages/activity-catalog/activity-stage.d.ts +31 -0
  143. package/dist-client/pages/activity-catalog/activity-stage.js +44 -0
  144. package/dist-client/pages/activity-catalog/activity-stage.js.map +1 -0
  145. package/dist-client/pages/activity-instance/activity-instance-list-page.d.ts +42 -0
  146. package/dist-client/pages/activity-instance/activity-instance-list-page.js +306 -0
  147. package/dist-client/pages/activity-instance/activity-instance-list-page.js.map +1 -0
  148. package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +69 -0
  149. package/dist-client/pages/activity-instance/activity-instance-search-page.js +309 -0
  150. package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -0
  151. package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +54 -0
  152. package/dist-client/pages/activity-instance/activity-instance-start-page.js +557 -0
  153. package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +1 -0
  154. package/dist-client/pages/activity-instance/activity-instance-view.d.ts +36 -0
  155. package/dist-client/pages/activity-instance/activity-instance-view.js +495 -0
  156. package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -0
  157. package/dist-client/pages/activity-instance/discard-offer.d.ts +11 -0
  158. package/dist-client/pages/activity-instance/discard-offer.js +11 -0
  159. package/dist-client/pages/activity-instance/discard-offer.js.map +1 -0
  160. package/dist-client/pages/activity-stats/activity-stats-importer.d.ts +23 -0
  161. package/dist-client/pages/activity-stats/activity-stats-importer.js +94 -0
  162. package/dist-client/pages/activity-stats/activity-stats-importer.js.map +1 -0
  163. package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +55 -0
  164. package/dist-client/pages/activity-stats/activity-stats-list-page.js +253 -0
  165. package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -0
  166. package/dist-client/pages/activity-store/activity-store-page.d.ts +41 -0
  167. package/dist-client/pages/activity-store/activity-store-page.js +210 -0
  168. package/dist-client/pages/activity-store/activity-store-page.js.map +1 -0
  169. package/dist-client/pages/activity-supervisor/reporter-list-page.d.ts +30 -0
  170. package/dist-client/pages/activity-supervisor/reporter-list-page.js +190 -0
  171. package/dist-client/pages/activity-supervisor/reporter-list-page.js.map +1 -0
  172. package/dist-client/pages/activity-template/activity-template-importer.d.ts +11 -0
  173. package/dist-client/pages/activity-template/activity-template-importer.js +98 -0
  174. package/dist-client/pages/activity-template/activity-template-importer.js.map +1 -0
  175. package/dist-client/pages/activity-template/activity-template-list-page.d.ts +53 -0
  176. package/dist-client/pages/activity-template/activity-template-list-page.js +377 -0
  177. package/dist-client/pages/activity-template/activity-template-list-page.js.map +1 -0
  178. package/dist-client/pages/activity-template/activity-template-model-item-list.d.ts +1 -0
  179. package/dist-client/pages/activity-template/activity-template-model-item-list.js +41 -0
  180. package/dist-client/pages/activity-template/activity-template-model-item-list.js.map +1 -0
  181. package/dist-client/pages/activity-thread/activity-thread-importer.d.ts +11 -0
  182. package/dist-client/pages/activity-thread/activity-thread-importer.js +96 -0
  183. package/dist-client/pages/activity-thread/activity-thread-importer.js.map +1 -0
  184. package/dist-client/pages/activity-thread/activity-thread-list-page.d.ts +52 -0
  185. package/dist-client/pages/activity-thread/activity-thread-list-page.js +248 -0
  186. package/dist-client/pages/activity-thread/activity-thread-list-page.js.map +1 -0
  187. package/dist-client/pages/activity-thread/activity-thread-page.d.ts +91 -0
  188. package/dist-client/pages/activity-thread/activity-thread-page.js +594 -0
  189. package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -0
  190. package/dist-client/pages/activity-thread/activity-thread-view-page.d.ts +56 -0
  191. package/dist-client/pages/activity-thread/activity-thread-view-page.js +386 -0
  192. package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -0
  193. package/dist-client/pages/activity-thread/activity-thread-view.d.ts +31 -0
  194. package/dist-client/pages/activity-thread/activity-thread-view.js +134 -0
  195. package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -0
  196. package/dist-client/pages/activity-thread/thread-sections.d.ts +34 -0
  197. package/dist-client/pages/activity-thread/thread-sections.js +36 -0
  198. package/dist-client/pages/activity-thread/thread-sections.js.map +1 -0
  199. package/dist-client/pages/approval-progress/approval-progress-page.d.ts +46 -0
  200. package/dist-client/pages/approval-progress/approval-progress-page.js +294 -0
  201. package/dist-client/pages/approval-progress/approval-progress-page.js.map +1 -0
  202. package/dist-client/pages/installable-activity/installable-activity-list-page.d.ts +64 -0
  203. package/dist-client/pages/installable-activity/installable-activity-list-page.js +424 -0
  204. package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -0
  205. package/dist-client/pages/installable-activity/installable-activity-model-item-list.d.ts +1 -0
  206. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js +20 -0
  207. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js.map +1 -0
  208. package/dist-client/pages/todo/approval-done-list-page.d.ts +42 -0
  209. package/dist-client/pages/todo/approval-done-list-page.js +365 -0
  210. package/dist-client/pages/todo/approval-done-list-page.js.map +1 -0
  211. package/dist-client/pages/todo/approval-pending-list-page.d.ts +79 -0
  212. package/dist-client/pages/todo/approval-pending-list-page.js +683 -0
  213. package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -0
  214. package/dist-client/pages/todo/done-list-calendar-page.d.ts +47 -0
  215. package/dist-client/pages/todo/done-list-calendar-page.js +379 -0
  216. package/dist-client/pages/todo/done-list-calendar-page.js.map +1 -0
  217. package/dist-client/pages/todo/draft-list-page.d.ts +64 -0
  218. package/dist-client/pages/todo/draft-list-page.js +404 -0
  219. package/dist-client/pages/todo/draft-list-page.js.map +1 -0
  220. package/dist-client/pages/todo/list-thumbnail.d.ts +25 -0
  221. package/dist-client/pages/todo/list-thumbnail.js +25 -0
  222. package/dist-client/pages/todo/list-thumbnail.js.map +1 -0
  223. package/dist-client/pages/todo/pickable-list-page.d.ts +37 -0
  224. package/dist-client/pages/todo/pickable-list-page.js +271 -0
  225. package/dist-client/pages/todo/pickable-list-page.js.map +1 -0
  226. package/dist-client/pages/todo/todo-list-page.d.ts +66 -0
  227. package/dist-client/pages/todo/todo-list-page.js +503 -0
  228. package/dist-client/pages/todo/todo-list-page.js.map +1 -0
  229. package/dist-client/pages/todo/work-box.d.ts +52 -0
  230. package/dist-client/pages/todo/work-box.js +54 -0
  231. package/dist-client/pages/todo/work-box.js.map +1 -0
  232. package/dist-client/pages/work-door/door-links.d.ts +22 -0
  233. package/dist-client/pages/work-door/door-links.js +20 -0
  234. package/dist-client/pages/work-door/door-links.js.map +1 -0
  235. package/dist-client/pages/work-door/door-sentence.d.ts +75 -0
  236. package/dist-client/pages/work-door/door-sentence.js +107 -0
  237. package/dist-client/pages/work-door/door-sentence.js.map +1 -0
  238. package/dist-client/pages/work-door/door-words.d.ts +48 -0
  239. package/dist-client/pages/work-door/door-words.js +84 -0
  240. package/dist-client/pages/work-door/door-words.js.map +1 -0
  241. package/dist-client/route.d.ts +1 -0
  242. package/dist-client/route.js +80 -0
  243. package/dist-client/route.js.map +1 -0
  244. package/dist-client/templates/activity-approval-context-template.d.ts +3 -0
  245. package/dist-client/templates/activity-approval-context-template.js +105 -0
  246. package/dist-client/templates/activity-approval-context-template.js.map +1 -0
  247. package/dist-client/templates/activity-instance-context-template.d.ts +3 -0
  248. package/dist-client/templates/activity-instance-context-template.js +118 -0
  249. package/dist-client/templates/activity-instance-context-template.js.map +1 -0
  250. package/dist-client/templates/activity-thread-context-template.d.ts +3 -0
  251. package/dist-client/templates/activity-thread-context-template.js +74 -0
  252. package/dist-client/templates/activity-thread-context-template.js.map +1 -0
  253. package/dist-client/templates/context-panel.d.ts +26 -0
  254. package/dist-client/templates/context-panel.js +182 -0
  255. package/dist-client/templates/context-panel.js.map +1 -0
  256. package/dist-client/tsconfig.tsbuildinfo +1 -0
  257. package/dist-client/types/activity-approval.d.ts +36 -0
  258. package/dist-client/types/activity-approval.js +17 -0
  259. package/dist-client/types/activity-approval.js.map +1 -0
  260. package/dist-client/types/activity-instance-type.d.ts +77 -0
  261. package/dist-client/types/activity-instance-type.js +11 -0
  262. package/dist-client/types/activity-instance-type.js.map +1 -0
  263. package/dist-client/types/activity-instance.d.ts +72 -0
  264. package/dist-client/types/activity-instance.js +36 -0
  265. package/dist-client/types/activity-instance.js.map +1 -0
  266. package/dist-client/types/activity-model-type.d.ts +31 -0
  267. package/dist-client/types/activity-model-type.js +18 -0
  268. package/dist-client/types/activity-model-type.js.map +1 -0
  269. package/dist-client/types/activity-search-key-item-type.d.ts +6 -0
  270. package/dist-client/types/activity-search-key-item-type.js +3 -0
  271. package/dist-client/types/activity-search-key-item-type.js.map +1 -0
  272. package/dist-client/types/activity-thread-history.d.ts +28 -0
  273. package/dist-client/types/activity-thread-history.js +7 -0
  274. package/dist-client/types/activity-thread-history.js.map +1 -0
  275. package/dist-client/types/activity-thread-type.d.ts +15 -0
  276. package/dist-client/types/activity-thread-type.js +7 -0
  277. package/dist-client/types/activity-thread-type.js.map +1 -0
  278. package/dist-client/types/activity-thread.d.ts +39 -0
  279. package/dist-client/types/activity-thread.js +18 -0
  280. package/dist-client/types/activity-thread.js.map +1 -0
  281. package/dist-client/types/activity.d.ts +68 -0
  282. package/dist-client/types/activity.js +40 -0
  283. package/dist-client/types/activity.js.map +1 -0
  284. package/dist-client/types/types.d.ts +23 -0
  285. package/dist-client/types/types.js +42 -0
  286. package/dist-client/types/types.js.map +1 -0
  287. package/dist-client/when.d.ts +4 -0
  288. package/dist-client/when.js +72 -0
  289. package/dist-client/when.js.map +1 -0
  290. package/dist-client/work-calendar-sources.d.ts +96 -0
  291. package/dist-client/work-calendar-sources.js +88 -0
  292. package/dist-client/work-calendar-sources.js.map +1 -0
  293. package/dist-server/controllers/activity-approval/_abort.d.ts +5 -0
  294. package/dist-server/controllers/activity-approval/_abort.js +29 -0
  295. package/dist-server/controllers/activity-approval/_abort.js.map +1 -0
  296. package/dist-server/controllers/activity-approval/abort.d.ts +5 -0
  297. package/dist-server/controllers/activity-approval/abort.js +35 -0
  298. package/dist-server/controllers/activity-approval/abort.js.map +1 -0
  299. package/dist-server/controllers/activity-approval/approval-line.d.ts +138 -0
  300. package/dist-server/controllers/activity-approval/approval-line.js +185 -0
  301. package/dist-server/controllers/activity-approval/approval-line.js.map +1 -0
  302. package/dist-server/controllers/activity-approval/approve.d.ts +5 -0
  303. package/dist-server/controllers/activity-approval/approve.js +142 -0
  304. package/dist-server/controllers/activity-approval/approve.js.map +1 -0
  305. package/dist-server/controllers/activity-approval/check-authority.d.ts +8 -0
  306. package/dist-server/controllers/activity-approval/check-authority.js +29 -0
  307. package/dist-server/controllers/activity-approval/check-authority.js.map +1 -0
  308. package/dist-server/controllers/activity-approval/claim.d.ts +42 -0
  309. package/dist-server/controllers/activity-approval/claim.js +77 -0
  310. package/dist-server/controllers/activity-approval/claim.js.map +1 -0
  311. package/dist-server/controllers/activity-approval/create-approval.d.ts +41 -0
  312. package/dist-server/controllers/activity-approval/create-approval.js +85 -0
  313. package/dist-server/controllers/activity-approval/create-approval.js.map +1 -0
  314. package/dist-server/controllers/activity-approval/delegate.d.ts +23 -0
  315. package/dist-server/controllers/activity-approval/delegate.js +113 -0
  316. package/dist-server/controllers/activity-approval/delegate.js.map +1 -0
  317. package/dist-server/controllers/activity-approval/delegation.d.ts +21 -0
  318. package/dist-server/controllers/activity-approval/delegation.js +17 -0
  319. package/dist-server/controllers/activity-approval/delegation.js.map +1 -0
  320. package/dist-server/controllers/activity-approval/opinion.d.ts +10 -0
  321. package/dist-server/controllers/activity-approval/opinion.js +43 -0
  322. package/dist-server/controllers/activity-approval/opinion.js.map +1 -0
  323. package/dist-server/controllers/activity-approval/reject.d.ts +5 -0
  324. package/dist-server/controllers/activity-approval/reject.js +93 -0
  325. package/dist-server/controllers/activity-approval/reject.js.map +1 -0
  326. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.d.ts +21 -0
  327. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js +60 -0
  328. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js.map +1 -0
  329. package/dist-server/controllers/activity-approval/save.d.ts +5 -0
  330. package/dist-server/controllers/activity-approval/save.js +56 -0
  331. package/dist-server/controllers/activity-approval/save.js.map +1 -0
  332. package/dist-server/controllers/activity-approval/seat-standing.d.ts +66 -0
  333. package/dist-server/controllers/activity-approval/seat-standing.js +57 -0
  334. package/dist-server/controllers/activity-approval/seat-standing.js.map +1 -0
  335. package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +79 -0
  336. package/dist-server/controllers/activity-installation/activity-installation-controller.js +99 -0
  337. package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -0
  338. package/dist-server/controllers/activity-installation/call-webhook.d.ts +3 -0
  339. package/dist-server/controllers/activity-installation/call-webhook.js +42 -0
  340. package/dist-server/controllers/activity-installation/call-webhook.js.map +1 -0
  341. package/dist-server/controllers/activity-installation/installable-to-activity.d.ts +77 -0
  342. package/dist-server/controllers/activity-installation/installable-to-activity.js +68 -0
  343. package/dist-server/controllers/activity-installation/installable-to-activity.js.map +1 -0
  344. package/dist-server/controllers/activity-installation/registry-conflict.d.ts +47 -0
  345. package/dist-server/controllers/activity-installation/registry-conflict.js +47 -0
  346. package/dist-server/controllers/activity-installation/registry-conflict.js.map +1 -0
  347. package/dist-server/controllers/activity-instance/abort.d.ts +5 -0
  348. package/dist-server/controllers/activity-instance/abort.js +62 -0
  349. package/dist-server/controllers/activity-instance/abort.js.map +1 -0
  350. package/dist-server/controllers/activity-instance/approval-expectation.d.ts +34 -0
  351. package/dist-server/controllers/activity-instance/approval-expectation.js +18 -0
  352. package/dist-server/controllers/activity-instance/approval-expectation.js.map +1 -0
  353. package/dist-server/controllers/activity-instance/approval-line-input.d.ts +29 -0
  354. package/dist-server/controllers/activity-instance/approval-line-input.js +44 -0
  355. package/dist-server/controllers/activity-instance/approval-line-input.js.map +1 -0
  356. package/dist-server/controllers/activity-instance/assign.d.ts +8 -0
  357. package/dist-server/controllers/activity-instance/assign.js +152 -0
  358. package/dist-server/controllers/activity-instance/assign.js.map +1 -0
  359. package/dist-server/controllers/activity-instance/assignee-input.d.ts +25 -0
  360. package/dist-server/controllers/activity-instance/assignee-input.js +28 -0
  361. package/dist-server/controllers/activity-instance/assignee-input.js.map +1 -0
  362. package/dist-server/controllers/activity-instance/claim-draft.d.ts +17 -0
  363. package/dist-server/controllers/activity-instance/claim-draft.js +30 -0
  364. package/dist-server/controllers/activity-instance/claim-draft.js.map +1 -0
  365. package/dist-server/controllers/activity-instance/discard-draft.d.ts +22 -0
  366. package/dist-server/controllers/activity-instance/discard-draft.js +54 -0
  367. package/dist-server/controllers/activity-instance/discard-draft.js.map +1 -0
  368. package/dist-server/controllers/activity-instance/draft.d.ts +3 -0
  369. package/dist-server/controllers/activity-instance/draft.js +93 -0
  370. package/dist-server/controllers/activity-instance/draft.js.map +1 -0
  371. package/dist-server/controllers/activity-instance/end.d.ts +6 -0
  372. package/dist-server/controllers/activity-instance/end.js +65 -0
  373. package/dist-server/controllers/activity-instance/end.js.map +1 -0
  374. package/dist-server/controllers/activity-instance/entitlement.d.ts +25 -0
  375. package/dist-server/controllers/activity-instance/entitlement.js +110 -0
  376. package/dist-server/controllers/activity-instance/entitlement.js.map +1 -0
  377. package/dist-server/controllers/activity-instance/index.d.ts +6 -0
  378. package/dist-server/controllers/activity-instance/index.js +10 -0
  379. package/dist-server/controllers/activity-instance/index.js.map +1 -0
  380. package/dist-server/controllers/activity-instance/issue.d.ts +3 -0
  381. package/dist-server/controllers/activity-instance/issue.js +272 -0
  382. package/dist-server/controllers/activity-instance/issue.js.map +1 -0
  383. package/dist-server/controllers/activity-instance/pick.d.ts +2 -0
  384. package/dist-server/controllers/activity-instance/pick.js +112 -0
  385. package/dist-server/controllers/activity-instance/pick.js.map +1 -0
  386. package/dist-server/controllers/activity-read/assert-may-read.d.ts +20 -0
  387. package/dist-server/controllers/activity-read/assert-may-read.js +108 -0
  388. package/dist-server/controllers/activity-read/assert-may-read.js.map +1 -0
  389. package/dist-server/controllers/activity-read/participates.d.ts +41 -0
  390. package/dist-server/controllers/activity-read/participates.js +42 -0
  391. package/dist-server/controllers/activity-read/participates.js.map +1 -0
  392. package/dist-server/controllers/activity-thread/_abort.d.ts +5 -0
  393. package/dist-server/controllers/activity-thread/_abort.js +36 -0
  394. package/dist-server/controllers/activity-thread/_abort.js.map +1 -0
  395. package/dist-server/controllers/activity-thread/abort.d.ts +5 -0
  396. package/dist-server/controllers/activity-thread/abort.js +45 -0
  397. package/dist-server/controllers/activity-thread/abort.js.map +1 -0
  398. package/dist-server/controllers/activity-thread/check-authority.d.ts +2 -0
  399. package/dist-server/controllers/activity-thread/check-authority.js +65 -0
  400. package/dist-server/controllers/activity-thread/check-authority.js.map +1 -0
  401. package/dist-server/controllers/activity-thread/delegate.d.ts +7 -0
  402. package/dist-server/controllers/activity-thread/delegate.js +66 -0
  403. package/dist-server/controllers/activity-thread/delegate.js.map +1 -0
  404. package/dist-server/controllers/activity-thread/end.d.ts +6 -0
  405. package/dist-server/controllers/activity-thread/end.js +44 -0
  406. package/dist-server/controllers/activity-thread/end.js.map +1 -0
  407. package/dist-server/controllers/activity-thread/index.d.ts +7 -0
  408. package/dist-server/controllers/activity-thread/index.js +11 -0
  409. package/dist-server/controllers/activity-thread/index.js.map +1 -0
  410. package/dist-server/controllers/activity-thread/restart.d.ts +2 -0
  411. package/dist-server/controllers/activity-thread/restart.js +63 -0
  412. package/dist-server/controllers/activity-thread/restart.js.map +1 -0
  413. package/dist-server/controllers/activity-thread/save.d.ts +3 -0
  414. package/dist-server/controllers/activity-thread/save.js +45 -0
  415. package/dist-server/controllers/activity-thread/save.js.map +1 -0
  416. package/dist-server/controllers/activity-thread/start.d.ts +2 -0
  417. package/dist-server/controllers/activity-thread/start.js +43 -0
  418. package/dist-server/controllers/activity-thread/start.js.map +1 -0
  419. package/dist-server/controllers/activity-thread/submit.d.ts +6 -0
  420. package/dist-server/controllers/activity-thread/submit.js +90 -0
  421. package/dist-server/controllers/activity-thread/submit.js.map +1 -0
  422. package/dist-server/controllers/common.d.ts +34 -0
  423. package/dist-server/controllers/common.js +346 -0
  424. package/dist-server/controllers/common.js.map +1 -0
  425. package/dist-server/controllers/index.d.ts +5 -0
  426. package/dist-server/controllers/index.js +18 -0
  427. package/dist-server/controllers/index.js.map +1 -0
  428. package/dist-server/index.d.ts +6 -0
  429. package/dist-server/index.js +18 -0
  430. package/dist-server/index.js.map +1 -0
  431. package/dist-server/role-tasks.d.ts +2 -0
  432. package/dist-server/role-tasks.js +16 -0
  433. package/dist-server/role-tasks.js.map +1 -0
  434. package/dist-server/routes.d.ts +1 -0
  435. package/dist-server/routes.js +57 -0
  436. package/dist-server/routes.js.map +1 -0
  437. package/dist-server/service/activity/activity-decision-key-item-type.d.ts +206 -0
  438. package/dist-server/service/activity/activity-decision-key-item-type.js +182 -0
  439. package/dist-server/service/activity/activity-decision-key-item-type.js.map +1 -0
  440. package/dist-server/service/activity/activity-history.d.ts +44 -0
  441. package/dist-server/service/activity/activity-history.js +220 -0
  442. package/dist-server/service/activity/activity-history.js.map +1 -0
  443. package/dist-server/service/activity/activity-model-type.d.ts +49 -0
  444. package/dist-server/service/activity/activity-model-type.js +138 -0
  445. package/dist-server/service/activity/activity-model-type.js.map +1 -0
  446. package/dist-server/service/activity/activity-mutation.d.ts +12 -0
  447. package/dist-server/service/activity/activity-mutation.js +416 -0
  448. package/dist-server/service/activity/activity-mutation.js.map +1 -0
  449. package/dist-server/service/activity/activity-query.d.ts +24 -0
  450. package/dist-server/service/activity/activity-query.js +310 -0
  451. package/dist-server/service/activity/activity-query.js.map +1 -0
  452. package/dist-server/service/activity/activity-search-key-item-type.d.ts +6 -0
  453. package/dist-server/service/activity/activity-search-key-item-type.js +28 -0
  454. package/dist-server/service/activity/activity-search-key-item-type.js.map +1 -0
  455. package/dist-server/service/activity/activity-type.d.ts +84 -0
  456. package/dist-server/service/activity/activity-type.js +269 -0
  457. package/dist-server/service/activity/activity-type.js.map +1 -0
  458. package/dist-server/service/activity/activity.d.ts +135 -0
  459. package/dist-server/service/activity/activity.js +328 -0
  460. package/dist-server/service/activity/activity.js.map +1 -0
  461. package/dist-server/service/activity/approval-line-seats.d.ts +12 -0
  462. package/dist-server/service/activity/approval-line-seats.js +68 -0
  463. package/dist-server/service/activity/approval-line-seats.js.map +1 -0
  464. package/dist-server/service/activity/credential-field.d.ts +35 -0
  465. package/dist-server/service/activity/credential-field.js +89 -0
  466. package/dist-server/service/activity/credential-field.js.map +1 -0
  467. package/dist-server/service/activity/decision-key-declaration.d.ts +106 -0
  468. package/dist-server/service/activity/decision-key-declaration.js +181 -0
  469. package/dist-server/service/activity/decision-key-declaration.js.map +1 -0
  470. package/dist-server/service/activity/declaration-guard-subscriber.d.ts +24 -0
  471. package/dist-server/service/activity/declaration-guard-subscriber.js +46 -0
  472. package/dist-server/service/activity/declaration-guard-subscriber.js.map +1 -0
  473. package/dist-server/service/activity/event-subscriber.d.ts +7 -0
  474. package/dist-server/service/activity/event-subscriber.js +21 -0
  475. package/dist-server/service/activity/event-subscriber.js.map +1 -0
  476. package/dist-server/service/activity/freeze-decision-sentences-for.d.ts +11 -0
  477. package/dist-server/service/activity/freeze-decision-sentences-for.js +18 -0
  478. package/dist-server/service/activity/freeze-decision-sentences-for.js.map +1 -0
  479. package/dist-server/service/activity/index.d.ts +9 -0
  480. package/dist-server/service/activity/index.js +13 -0
  481. package/dist-server/service/activity/index.js.map +1 -0
  482. package/dist-server/service/activity/search-key-declaration.d.ts +38 -0
  483. package/dist-server/service/activity/search-key-declaration.js +49 -0
  484. package/dist-server/service/activity/search-key-declaration.js.map +1 -0
  485. package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +8 -0
  486. package/dist-server/service/activity-approval/activity-approval-mutation.js +81 -0
  487. package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -0
  488. package/dist-server/service/activity-approval/activity-approval-query.d.ts +42 -0
  489. package/dist-server/service/activity-approval/activity-approval-query.js +391 -0
  490. package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -0
  491. package/dist-server/service/activity-approval/activity-approval-subscription.d.ts +6 -0
  492. package/dist-server/service/activity-approval/activity-approval-subscription.js +39 -0
  493. package/dist-server/service/activity-approval/activity-approval-subscription.js.map +1 -0
  494. package/dist-server/service/activity-approval/activity-approval-type.d.ts +10 -0
  495. package/dist-server/service/activity-approval/activity-approval-type.js +39 -0
  496. package/dist-server/service/activity-approval/activity-approval-type.js.map +1 -0
  497. package/dist-server/service/activity-approval/activity-approval.d.ts +67 -0
  498. package/dist-server/service/activity-approval/activity-approval.js +183 -0
  499. package/dist-server/service/activity-approval/activity-approval.js.map +1 -0
  500. package/dist-server/service/activity-approval/event-subscriber.d.ts +7 -0
  501. package/dist-server/service/activity-approval/event-subscriber.js +46 -0
  502. package/dist-server/service/activity-approval/event-subscriber.js.map +1 -0
  503. package/dist-server/service/activity-approval/index.d.ts +8 -0
  504. package/dist-server/service/activity-approval/index.js +12 -0
  505. package/dist-server/service/activity-approval/index.js.map +1 -0
  506. package/dist-server/service/activity-approval/my-pending-approvals.d.ts +33 -0
  507. package/dist-server/service/activity-approval/my-pending-approvals.js +52 -0
  508. package/dist-server/service/activity-approval/my-pending-approvals.js.map +1 -0
  509. package/dist-server/service/activity-instance/activity-instance-history.d.ts +60 -0
  510. package/dist-server/service/activity-instance/activity-instance-history.js +294 -0
  511. package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -0
  512. package/dist-server/service/activity-instance/activity-instance-mutation.d.ts +16 -0
  513. package/dist-server/service/activity-instance/activity-instance-mutation.js +185 -0
  514. package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -0
  515. package/dist-server/service/activity-instance/activity-instance-query.d.ts +27 -0
  516. package/dist-server/service/activity-instance/activity-instance-query.js +386 -0
  517. package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -0
  518. package/dist-server/service/activity-instance/activity-instance-subscription.d.ts +6 -0
  519. package/dist-server/service/activity-instance/activity-instance-subscription.js +39 -0
  520. package/dist-server/service/activity-instance/activity-instance-subscription.js.map +1 -0
  521. package/dist-server/service/activity-instance/activity-instance-type.d.ts +107 -0
  522. package/dist-server/service/activity-instance/activity-instance-type.js +301 -0
  523. package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -0
  524. package/dist-server/service/activity-instance/activity-instance.d.ts +81 -0
  525. package/dist-server/service/activity-instance/activity-instance.js +324 -0
  526. package/dist-server/service/activity-instance/activity-instance.js.map +1 -0
  527. package/dist-server/service/activity-instance/assignee-pool.d.ts +59 -0
  528. package/dist-server/service/activity-instance/assignee-pool.js +99 -0
  529. package/dist-server/service/activity-instance/assignee-pool.js.map +1 -0
  530. package/dist-server/service/activity-instance/draft-list-states.d.ts +39 -0
  531. package/dist-server/service/activity-instance/draft-list-states.js +51 -0
  532. package/dist-server/service/activity-instance/draft-list-states.js.map +1 -0
  533. package/dist-server/service/activity-instance/event-subscriber.d.ts +21 -0
  534. package/dist-server/service/activity-instance/event-subscriber.js +59 -0
  535. package/dist-server/service/activity-instance/event-subscriber.js.map +1 -0
  536. package/dist-server/service/activity-instance/index.d.ts +9 -0
  537. package/dist-server/service/activity-instance/index.js +13 -0
  538. package/dist-server/service/activity-instance/index.js.map +1 -0
  539. package/dist-server/service/activity-instance/request-box.d.ts +2 -0
  540. package/dist-server/service/activity-instance/request-box.js +18 -0
  541. package/dist-server/service/activity-instance/request-box.js.map +1 -0
  542. package/dist-server/service/activity-stats/activity-stats-query.d.ts +9 -0
  543. package/dist-server/service/activity-stats/activity-stats-query.js +230 -0
  544. package/dist-server/service/activity-stats/activity-stats-query.js.map +1 -0
  545. package/dist-server/service/activity-stats/activity-stats-type.d.ts +27 -0
  546. package/dist-server/service/activity-stats/activity-stats-type.js +74 -0
  547. package/dist-server/service/activity-stats/activity-stats-type.js.map +1 -0
  548. package/dist-server/service/activity-stats/event-placement.d.ts +55 -0
  549. package/dist-server/service/activity-stats/event-placement.js +82 -0
  550. package/dist-server/service/activity-stats/event-placement.js.map +1 -0
  551. package/dist-server/service/activity-stats/index.d.ts +2 -0
  552. package/dist-server/service/activity-stats/index.js +6 -0
  553. package/dist-server/service/activity-stats/index.js.map +1 -0
  554. package/dist-server/service/activity-summary/activity-summary-query.d.ts +8 -0
  555. package/dist-server/service/activity-summary/activity-summary-query.js +137 -0
  556. package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -0
  557. package/dist-server/service/activity-summary/activity-summary.d.ts +6 -0
  558. package/dist-server/service/activity-summary/activity-summary.js +28 -0
  559. package/dist-server/service/activity-summary/activity-summary.js.map +1 -0
  560. package/dist-server/service/activity-summary/index.d.ts +5 -0
  561. package/dist-server/service/activity-summary/index.js +9 -0
  562. package/dist-server/service/activity-summary/index.js.map +1 -0
  563. package/dist-server/service/activity-summary/open-work.d.ts +4 -0
  564. package/dist-server/service/activity-summary/open-work.js +51 -0
  565. package/dist-server/service/activity-summary/open-work.js.map +1 -0
  566. package/dist-server/service/activity-summary/person-open-work.d.ts +17 -0
  567. package/dist-server/service/activity-summary/person-open-work.js +68 -0
  568. package/dist-server/service/activity-summary/person-open-work.js.map +1 -0
  569. package/dist-server/service/activity-template/activity-template-history.d.ts +32 -0
  570. package/dist-server/service/activity-template/activity-template-history.js +165 -0
  571. package/dist-server/service/activity-template/activity-template-history.js.map +1 -0
  572. package/dist-server/service/activity-template/activity-template-mutation.d.ts +10 -0
  573. package/dist-server/service/activity-template/activity-template-mutation.js +194 -0
  574. package/dist-server/service/activity-template/activity-template-mutation.js.map +1 -0
  575. package/dist-server/service/activity-template/activity-template-query.d.ts +14 -0
  576. package/dist-server/service/activity-template/activity-template-query.js +112 -0
  577. package/dist-server/service/activity-template/activity-template-query.js.map +1 -0
  578. package/dist-server/service/activity-template/activity-template-type.d.ts +44 -0
  579. package/dist-server/service/activity-template/activity-template-type.js +164 -0
  580. package/dist-server/service/activity-template/activity-template-type.js.map +1 -0
  581. package/dist-server/service/activity-template/activity-template.d.ts +36 -0
  582. package/dist-server/service/activity-template/activity-template.js +154 -0
  583. package/dist-server/service/activity-template/activity-template.js.map +1 -0
  584. package/dist-server/service/activity-template/event-subscriber.d.ts +7 -0
  585. package/dist-server/service/activity-template/event-subscriber.js +21 -0
  586. package/dist-server/service/activity-template/event-subscriber.js.map +1 -0
  587. package/dist-server/service/activity-template/index.d.ts +8 -0
  588. package/dist-server/service/activity-template/index.js +12 -0
  589. package/dist-server/service/activity-template/index.js.map +1 -0
  590. package/dist-server/service/activity-thread/activity-thread-history-query.d.ts +10 -0
  591. package/dist-server/service/activity-thread/activity-thread-history-query.js +69 -0
  592. package/dist-server/service/activity-thread/activity-thread-history-query.js.map +1 -0
  593. package/dist-server/service/activity-thread/activity-thread-history.d.ts +39 -0
  594. package/dist-server/service/activity-thread/activity-thread-history.js +211 -0
  595. package/dist-server/service/activity-thread/activity-thread-history.js.map +1 -0
  596. package/dist-server/service/activity-thread/activity-thread-mutation.d.ts +20 -0
  597. package/dist-server/service/activity-thread/activity-thread-mutation.js +115 -0
  598. package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -0
  599. package/dist-server/service/activity-thread/activity-thread-query.d.ts +24 -0
  600. package/dist-server/service/activity-thread/activity-thread-query.js +276 -0
  601. package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -0
  602. package/dist-server/service/activity-thread/activity-thread-subscription.d.ts +6 -0
  603. package/dist-server/service/activity-thread/activity-thread-subscription.js +38 -0
  604. package/dist-server/service/activity-thread/activity-thread-subscription.js.map +1 -0
  605. package/dist-server/service/activity-thread/activity-thread-type.d.ts +15 -0
  606. package/dist-server/service/activity-thread/activity-thread-type.js +50 -0
  607. package/dist-server/service/activity-thread/activity-thread-type.js.map +1 -0
  608. package/dist-server/service/activity-thread/activity-thread.d.ts +47 -0
  609. package/dist-server/service/activity-thread/activity-thread.js +197 -0
  610. package/dist-server/service/activity-thread/activity-thread.js.map +1 -0
  611. package/dist-server/service/activity-thread/event-subscriber.d.ts +13 -0
  612. package/dist-server/service/activity-thread/event-subscriber.js +45 -0
  613. package/dist-server/service/activity-thread/event-subscriber.js.map +1 -0
  614. package/dist-server/service/activity-thread/index.d.ts +10 -0
  615. package/dist-server/service/activity-thread/index.js +14 -0
  616. package/dist-server/service/activity-thread/index.js.map +1 -0
  617. package/dist-server/service/activity-thread/my-open-threads.d.ts +33 -0
  618. package/dist-server/service/activity-thread/my-open-threads.js +85 -0
  619. package/dist-server/service/activity-thread/my-open-threads.js.map +1 -0
  620. package/dist-server/service/activity-thread/todo-order.d.ts +49 -0
  621. package/dist-server/service/activity-thread/todo-order.js +70 -0
  622. package/dist-server/service/activity-thread/todo-order.js.map +1 -0
  623. package/dist-server/service/approval-notice/approval-notice-rules.d.ts +67 -0
  624. package/dist-server/service/approval-notice/approval-notice-rules.js +67 -0
  625. package/dist-server/service/approval-notice/approval-notice-rules.js.map +1 -0
  626. package/dist-server/service/approval-notice/approval-notice.d.ts +11 -0
  627. package/dist-server/service/approval-notice/approval-notice.js +76 -0
  628. package/dist-server/service/approval-notice/approval-notice.js.map +1 -0
  629. package/dist-server/service/approval-progress/approval-progress-query.d.ts +14 -0
  630. package/dist-server/service/approval-progress/approval-progress-query.js +142 -0
  631. package/dist-server/service/approval-progress/approval-progress-query.js.map +1 -0
  632. package/dist-server/service/approval-progress/approval-progress-rule.d.ts +67 -0
  633. package/dist-server/service/approval-progress/approval-progress-rule.js +102 -0
  634. package/dist-server/service/approval-progress/approval-progress-rule.js.map +1 -0
  635. package/dist-server/service/approval-progress/approval-progress-type.d.ts +44 -0
  636. package/dist-server/service/approval-progress/approval-progress-type.js +172 -0
  637. package/dist-server/service/approval-progress/approval-progress-type.js.map +1 -0
  638. package/dist-server/service/approval-progress/index.d.ts +2 -0
  639. package/dist-server/service/approval-progress/index.js +6 -0
  640. package/dist-server/service/approval-progress/index.js.map +1 -0
  641. package/dist-server/service/approval-progress/waiting-on.d.ts +15 -0
  642. package/dist-server/service/approval-progress/waiting-on.js +40 -0
  643. package/dist-server/service/approval-progress/waiting-on.js.map +1 -0
  644. package/dist-server/service/index.d.ts +24 -0
  645. package/dist-server/service/index.js +80 -0
  646. package/dist-server/service/index.js.map +1 -0
  647. package/dist-server/service/installable-activity/activity-readiness.d.ts +58 -0
  648. package/dist-server/service/installable-activity/activity-readiness.js +105 -0
  649. package/dist-server/service/installable-activity/activity-readiness.js.map +1 -0
  650. package/dist-server/service/installable-activity/index.d.ts +6 -0
  651. package/dist-server/service/installable-activity/index.js +10 -0
  652. package/dist-server/service/installable-activity/index.js.map +1 -0
  653. package/dist-server/service/installable-activity/installable-activity-mutation.d.ts +11 -0
  654. package/dist-server/service/installable-activity/installable-activity-mutation.js +83 -0
  655. package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -0
  656. package/dist-server/service/installable-activity/installable-activity-query.d.ts +22 -0
  657. package/dist-server/service/installable-activity/installable-activity-query.js +127 -0
  658. package/dist-server/service/installable-activity/installable-activity-query.js.map +1 -0
  659. package/dist-server/service/installable-activity/installable-activity-type.d.ts +5 -0
  660. package/dist-server/service/installable-activity/installable-activity-type.js +21 -0
  661. package/dist-server/service/installable-activity/installable-activity-type.js.map +1 -0
  662. package/dist-server/service/installable-activity/installable-activity.d.ts +92 -0
  663. package/dist-server/service/installable-activity/installable-activity.js +140 -0
  664. package/dist-server/service/installable-activity/installable-activity.js.map +1 -0
  665. package/dist-server/service/nulls-last.d.ts +30 -0
  666. package/dist-server/service/nulls-last.js +37 -0
  667. package/dist-server/service/nulls-last.js.map +1 -0
  668. package/dist-server/service/subscription/roles-of.d.ts +9 -0
  669. package/dist-server/service/subscription/roles-of.js +17 -0
  670. package/dist-server/service/subscription/roles-of.js.map +1 -0
  671. package/dist-server/service/subscription/subscription-filters.d.ts +47 -0
  672. package/dist-server/service/subscription/subscription-filters.js +57 -0
  673. package/dist-server/service/subscription/subscription-filters.js.map +1 -0
  674. package/dist-server/service/work-door/activity-lookup.d.ts +70 -0
  675. package/dist-server/service/work-door/activity-lookup.js +110 -0
  676. package/dist-server/service/work-door/activity-lookup.js.map +1 -0
  677. package/dist-server/service/work-door/approval-line-standing.d.ts +106 -0
  678. package/dist-server/service/work-door/approval-line-standing.js +65 -0
  679. package/dist-server/service/work-door/approval-line-standing.js.map +1 -0
  680. package/dist-server/service/work-door/index.d.ts +15 -0
  681. package/dist-server/service/work-door/index.js +20 -0
  682. package/dist-server/service/work-door/index.js.map +1 -0
  683. package/dist-server/service/work-door/pass-work-door.d.ts +74 -0
  684. package/dist-server/service/work-door/pass-work-door.js +45 -0
  685. package/dist-server/service/work-door/pass-work-door.js.map +1 -0
  686. package/dist-server/service/work-door/work-door-declaration.d.ts +135 -0
  687. package/dist-server/service/work-door/work-door-declaration.js +87 -0
  688. package/dist-server/service/work-door/work-door-declaration.js.map +1 -0
  689. package/dist-server/service/work-door/work-door-event.d.ts +20 -0
  690. package/dist-server/service/work-door/work-door-event.js +25 -0
  691. package/dist-server/service/work-door/work-door-event.js.map +1 -0
  692. package/dist-server/service/work-door/work-door-journal-service.d.ts +47 -0
  693. package/dist-server/service/work-door/work-door-journal-service.js +75 -0
  694. package/dist-server/service/work-door/work-door-journal-service.js.map +1 -0
  695. package/dist-server/service/work-door/work-door-journal.d.ts +30 -0
  696. package/dist-server/service/work-door/work-door-journal.js +94 -0
  697. package/dist-server/service/work-door/work-door-journal.js.map +1 -0
  698. package/dist-server/service/work-door/work-door-not-used.d.ts +39 -0
  699. package/dist-server/service/work-door/work-door-not-used.js +86 -0
  700. package/dist-server/service/work-door/work-door-not-used.js.map +1 -0
  701. package/dist-server/service/work-door/work-door-resolver.d.ts +32 -0
  702. package/dist-server/service/work-door/work-door-resolver.js +152 -0
  703. package/dist-server/service/work-door/work-door-resolver.js.map +1 -0
  704. package/dist-server/service/work-door/work-door-service.d.ts +36 -0
  705. package/dist-server/service/work-door/work-door-service.js +127 -0
  706. package/dist-server/service/work-door/work-door-service.js.map +1 -0
  707. package/dist-server/service/work-door/work-door-type.d.ts +88 -0
  708. package/dist-server/service/work-door/work-door-type.js +206 -0
  709. package/dist-server/service/work-door/work-door-type.js.map +1 -0
  710. package/dist-server/service/work-door/work-door.d.ts +187 -0
  711. package/dist-server/service/work-door/work-door.js +119 -0
  712. package/dist-server/service/work-door/work-door.js.map +1 -0
  713. package/dist-server/tsconfig.tsbuildinfo +1 -0
  714. package/package.json +10 -10
  715. package/shared/approval-step.d.ts +21 -0
  716. package/shared/approval-step.js +55 -0
  717. package/tests/approval-progress-db.test.ts +143 -0
  718. package/things-factory.config.js +1 -0
  719. package/translations/en.json +20 -1
  720. package/translations/es.json +20 -1
  721. package/translations/ja.json +20 -1
  722. package/translations/ko.json +20 -1
  723. package/translations/ms.json +20 -1
  724. package/translations/zh.json +20 -1
@@ -0,0 +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/web/icon/icon.js'\nimport '@material/web/textfield/outlined-text-field.js'\nimport '@material/web/textfield/filled-text-field.js'\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'\n\nimport { navigate } from '@operato/shell'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { ranMutation } from './say-outcome.js'\nimport { notify } from '@operato/layout'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\n\n@customElement('activity-starter-form')\nexport class ActivityStarterForm extends localize(i18next)(LitElement) {\n static styles = [\n CommonHeaderStyles,\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n color: var(--md-sys-color-on-surface);\n background-color: var(--md-sys-color-surface);\n }\n\n content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: var(--spacing-medium);\n gap: var(--spacing-medium);\n overflow: auto;\n }\n\n content > div {\n display: flex;\n flex-direction: column;\n }\n\n content label {\n font: var(--label-font);\n }\n content input,\n content textarea {\n border-radius: var(--border-radius);\n border: var(--border-dim-color);\n padding: var(--input-padding);\n margin: var(--input-margin);\n font: var(--input-font);\n }\n\n content [desc] {\n font-size: 0.9em;\n }\n\n #description {\n flex: 1;\n }\n `\n ]\n\n @property({ type: String }) activityId?: string\n\n @state() activity: any = {}\n @state() activityInstance: any = {}\n\n render() {\n var { thumbnail, startingType } = this.activity || {}\n var { name, description } = this.activityInstance\n\n return html`\n <content>\n <div desc>\n <span>${i18next.t('text.activity-draft-how')}</span>\n <span\n >${i18next.t('text.activity-draft-where', {\n action: i18next.t(startingType == 'issue' ? 'button.issue' : 'button.post')\n })}</span\n >\n </div>\n\n <md-outlined-text-field\n id=\"name\"\n type=\"text\"\n label=${String(i18next.t('label.title'))}\n .value=${name || this.activity?.name || ''}\n @change=${e => (this.activityInstance.name = e.currentTarget.value)}\n >\n </md-outlined-text-field>\n\n <md-filled-text-field\n id=\"description\"\n type=\"textarea\"\n label=${String(i18next.t('label.description'))}\n resize=\"none\"\n .value=${description || this.activity?.description || ''}\n @change=${e => {\n this.activityInstance.description = e.currentTarget.value\n }}\n >\n </md-filled-text-field>\n </content>\n\n <div class=\"footer\">\n <div filler></div>\n <button @click=${e => history.back()}><md-icon>close</md-icon>${i18next.t('button.close')}</button>\n <button @click=${this.draftActivityInstance.bind(this)} done>\n <md-icon>save</md-icon>${i18next.t('button.draft')}\n </button>\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 multiple\n startingType\n assignees {\n type\n value\n assignee {\n id\n name\n description\n controlNo\n }\n }\n approvalLine {\n type\n participation\n notifyAfter\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 var { id: activityId } = this.activity\n var { id, name, description, priority, threadsMin, threadsMax, dueAt, input, assignees, approvalLine } =\n this.activityInstance\n\n name ||= this.activity.name\n description ||= this.activity.description\n assignees ||= this.activity.assignees\n approvalLine ||= this.activity.approvalLine\n\n var activityInstance = {\n id,\n activityId,\n name,\n description,\n priority,\n threadsMax,\n threadsMin,\n dueAt,\n input,\n assignees,\n approvalLine\n }\n\n const outcome = await ranMutation(() => client.mutate({\n mutation: gql`\n mutation ($activityInstance: ActivityInstanceDraft!) {\n draftActivityInstance(activityInstance: $activityInstance) {\n id\n name\n description\n input\n output\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 participation\n notifyAfter\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 (!outcome.ok) { return\n }\n\n this.activityInstance = outcome.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 this.openActivityInstanceStart(this.activityInstance)\n }\n\n openActivityInstanceStart(activityInstance) {\n navigate(`activity-instance-start/${activityInstance.id}?title=${activityInstance.name}`, false, this)\n }\n}\n"]}
@@ -0,0 +1,38 @@
1
+ import '@material/web/button/elevated-button.js';
2
+ import '@operato/property-editor/ox-properties-dynamic-view.js';
3
+ import '@things-factory/organization/dist-client/component/approval-line-brief.js';
4
+ import '../templates/activity-thread-context-template.js';
5
+ import { LitElement } from 'lit';
6
+ declare const ActivityThreadRibon_base: (new (...args: any[]) => LitElement) & typeof LitElement;
7
+ /**
8
+ * 업무 하나의 머리 — **지금 어떤 상태이고, 누구 손에 있나.**
9
+ *
10
+ * 모양은 `state-ribon.ts` 가 정한다(그 파일의 머리말에 왜 채운 띠를 걷었는지 적어 두었다).
11
+ * 여기서는 이 화면이 무엇을 보일지만 고른다.
12
+ */
13
+ export declare class ActivityThreadRibon extends ActivityThreadRibon_base {
14
+ static styles: import("lit").CSSResult[][];
15
+ activityThread: any;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ /**
18
+ * 이 건의 기본 정보 — **팝업으로 연다.**
19
+ *
20
+ * ── 왜 aside 가 아닌가 (2026-09-06) ────────────────────────────────────
21
+ * 전에는 화면 오른쪽에서 나오는 aside 판이었다. 두 가지가 걸린다.
22
+ *
23
+ * 자리를 다툰다 화면 오른쪽 세로 패널은 operato-twin 의 twin-entity360 이 쓰는 자리다
24
+ * (position: fixed · right: 0 · height: 100vh). 같은 자리에 둘이 선다.
25
+ * 전역 슬롯이다 VIEWPART_POSITION.ASIDEBAR 은 앱이 하나만 갖는다. 열 개가 넘는 패키지가
26
+ * 그 자리를 쓰고 있어(twin 의 AI 협의 도크 · board-ui · help · more-ui …),
27
+ * 이 패널을 열면 그중 열려 있던 것이 닫힌다.
28
+ *
29
+ * 그리고 자리의 뜻이 다르다. 오른쪽 드로어는 **보고 있는 대상을 따라다니는 상세**이고(360 이
30
+ * 그것이다 — 포커스가 바뀌면 내용이 바뀌고 화면을 옮겨도 남는다), 이 패널은 **이 화면의 이 건**에
31
+ * 대한 것이라 화면을 벗어나면 뜻이 없다. 페이지에 매인 것을 앱 전역 자리에 두지 않는다.
32
+ *
33
+ * 내용도 팝업 크기다 — 값 여덟 줄과 접힌 타임라인이라 세로 100vh 를 쓸 일이 없었다.
34
+ */
35
+ private openInfo;
36
+ updated(changes: any): void;
37
+ }
38
+ export {};
@@ -0,0 +1,95 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/button/elevated-button.js';
3
+ import '@operato/property-editor/ox-properties-dynamic-view.js';
4
+ import '@things-factory/organization/dist-client/component/approval-line-brief.js';
5
+ import '../templates/activity-thread-context-template.js';
6
+ import { html, LitElement } from 'lit';
7
+ import { customElement, property } from 'lit/decorators.js';
8
+ import { i18next, localize } from '@operato/i18n';
9
+ import { entity360Name, openPopup } from '@operato/layout';
10
+ import { currentApprovalOrder } from '../approval-progress.js';
11
+ import { StateRibonStyles } from './state-ribon.js';
12
+ /**
13
+ * 업무 하나의 머리 — **지금 어떤 상태이고, 누구 손에 있나.**
14
+ *
15
+ * 모양은 `state-ribon.ts` 가 정한다(그 파일의 머리말에 왜 채운 띠를 걷었는지 적어 두었다).
16
+ * 여기서는 이 화면이 무엇을 보일지만 고른다.
17
+ */
18
+ let ActivityThreadRibon = class ActivityThreadRibon extends localize(i18next)(LitElement) {
19
+ static { this.styles = [StateRibonStyles]; }
20
+ render() {
21
+ const { state, assignee, activityInstance, activityApprovals } = this.activityThread;
22
+ const { description, approvalLine } = activityInstance || {};
23
+ return html `
24
+ <span class="state">
25
+ <i class="dot"></i>
26
+ ${i18next.t('label.activity-state-' + state)}
27
+ </span>
28
+
29
+ <md-icon
30
+ class="info"
31
+ role="button"
32
+ tabindex="0"
33
+ title=${String(i18next.t('label.thread-info'))}
34
+ @click=${() => this.openInfo(state)}
35
+ @keydown=${(e) => {
36
+ if (e.key === 'Enter' || e.key === ' ') {
37
+ e.preventDefault();
38
+ this.openInfo(state);
39
+ }
40
+ }}
41
+ >info</md-icon
42
+ >
43
+
44
+ <span class="desc" title=${description || ''}>${description || ''}</span>
45
+
46
+
47
+ ${approvalLine
48
+ ? html `<approval-line-brief
49
+ .model=${approvalLine}
50
+ .current=${currentApprovalOrder(activityApprovals)}
51
+ ></approval-line-brief>`
52
+ : assignee
53
+ ? html `<span class="who"
54
+ ><span class="who-label">${i18next.t('field.assignee')}</span>${entity360Name(assignee)}</span
55
+ >`
56
+ : ''}
57
+ `;
58
+ }
59
+ /**
60
+ * 이 건의 기본 정보 — **팝업으로 연다.**
61
+ *
62
+ * ── 왜 aside 가 아닌가 (2026-09-06) ────────────────────────────────────
63
+ * 전에는 화면 오른쪽에서 나오는 aside 판이었다. 두 가지가 걸린다.
64
+ *
65
+ * 자리를 다툰다 화면 오른쪽 세로 패널은 operato-twin 의 twin-entity360 이 쓰는 자리다
66
+ * (position: fixed · right: 0 · height: 100vh). 같은 자리에 둘이 선다.
67
+ * 전역 슬롯이다 VIEWPART_POSITION.ASIDEBAR 은 앱이 하나만 갖는다. 열 개가 넘는 패키지가
68
+ * 그 자리를 쓰고 있어(twin 의 AI 협의 도크 · board-ui · help · more-ui …),
69
+ * 이 패널을 열면 그중 열려 있던 것이 닫힌다.
70
+ *
71
+ * 그리고 자리의 뜻이 다르다. 오른쪽 드로어는 **보고 있는 대상을 따라다니는 상세**이고(360 이
72
+ * 그것이다 — 포커스가 바뀌면 내용이 바뀌고 화면을 옮겨도 남는다), 이 패널은 **이 화면의 이 건**에
73
+ * 대한 것이라 화면을 벗어나면 뜻이 없다. 페이지에 매인 것을 앱 전역 자리에 두지 않는다.
74
+ *
75
+ * 내용도 팝업 크기다 — 값 여덟 줄과 접힌 타임라인이라 세로 100vh 를 쓸 일이 없었다.
76
+ */
77
+ openInfo(state) {
78
+ openPopup(html `<activity-thread-context-template .activityThread=${this.activityThread} state=${state}></activity-thread-context-template>`, { title: i18next.t('label.thread-info') });
79
+ }
80
+ updated(changes) {
81
+ if (changes.has('activityThread') && this.activityThread) {
82
+ const { state } = this.activityThread;
83
+ this.setAttribute('state', state);
84
+ }
85
+ }
86
+ };
87
+ __decorate([
88
+ property({ type: Object }),
89
+ __metadata("design:type", Object)
90
+ ], ActivityThreadRibon.prototype, "activityThread", void 0);
91
+ ActivityThreadRibon = __decorate([
92
+ customElement('activity-thread-ribon')
93
+ ], ActivityThreadRibon);
94
+ export { ActivityThreadRibon };
95
+ //# sourceMappingURL=activity-thread-ribon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-thread-ribon.js","sourceRoot":"","sources":["../../client/components/activity-thread-ribon.ts"],"names":[],"mappings":";AAAA,OAAO,yCAAyC,CAAA;AAChD,OAAO,wDAAwD,CAAA;AAC/D,OAAO,2EAA2E,CAAA;AAClF,OAAO,kDAAkD,CAAA;AAEzD,OAAO,EAAO,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;;GAKG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;aAC7D,WAAM,GAAG,CAAC,gBAAgB,CAAC,AAArB,CAAqB;IAIlC,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,cAAc,CAAA;QACpF,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAA;QAE5D,OAAO,IAAI,CAAA;;;UAGL,OAAO,CAAC,CAAC,CAAC,uBAAuB,GAAG,KAAK,CAAC;;;;;;;gBAOpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;iBACrC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;mBACxB,CAAC,CAAgB,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;;;;iCAIwB,WAAW,IAAI,EAAE,IAAI,WAAW,IAAI,EAAE;;;QAG/D,YAAY;YACZ,CAAC,CAAC,IAAI,CAAA;qBACO,YAAY;uBACV,oBAAoB,CAAC,iBAAiB,CAAC;kCAC5B;YAC1B,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,IAAI,CAAA;yCACyB,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,aAAa,CAAC,QAAQ,CAAC;cACvF;gBACJ,CAAC,CAAC,EAAE;KACT,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,QAAQ,CAAC,KAAa;QAC5B,SAAS,CACP,IAAI,CAAA,qDAAqD,IAAI,CAAC,cAAc,UAAU,KAAK,sCAAsC,EACjI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAC1C,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAA;YAErC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;;AA1E2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2DAAoB;AAHpC,mBAAmB;IAD/B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,mBAAmB,CA8E/B","sourcesContent":["import '@material/web/button/elevated-button.js'\nimport '@operato/property-editor/ox-properties-dynamic-view.js'\nimport '@things-factory/organization/dist-client/component/approval-line-brief.js'\nimport '../templates/activity-thread-context-template.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\nimport { entity360Name, openPopup } from '@operato/layout'\n\nimport { currentApprovalOrder } from '../approval-progress.js'\nimport { StateRibonStyles } from './state-ribon.js'\n\n/**\n * 업무 하나의 머리 — **지금 어떤 상태이고, 누구 손에 있나.**\n *\n * 모양은 `state-ribon.ts` 가 정한다(그 파일의 머리말에 왜 채운 띠를 걷었는지 적어 두었다).\n * 여기서는 이 화면이 무엇을 보일지만 고른다.\n */\n@customElement('activity-thread-ribon')\nexport class ActivityThreadRibon extends localize(i18next)(LitElement) {\n static styles = [StateRibonStyles]\n\n @property({ type: Object }) activityThread: any\n\n render() {\n const { state, assignee, activityInstance, activityApprovals } = this.activityThread\n const { description, approvalLine } = activityInstance || {}\n\n return html`\n <span class=\"state\">\n <i class=\"dot\"></i>\n ${i18next.t('label.activity-state-' + state)}\n </span>\n\n <md-icon\n class=\"info\"\n role=\"button\"\n tabindex=\"0\"\n title=${String(i18next.t('label.thread-info'))}\n @click=${() => this.openInfo(state)}\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n this.openInfo(state)\n }\n }}\n >info</md-icon\n >\n\n <span class=\"desc\" title=${description || ''}>${description || ''}</span>\n\n\n ${approvalLine\n ? html`<approval-line-brief\n .model=${approvalLine}\n .current=${currentApprovalOrder(activityApprovals)}\n ></approval-line-brief>`\n : assignee\n ? html`<span class=\"who\"\n ><span class=\"who-label\">${i18next.t('field.assignee')}</span>${entity360Name(assignee)}</span\n >`\n : ''}\n `\n }\n\n /**\n * 이 건의 기본 정보 — **팝업으로 연다.**\n *\n * ── 왜 aside 가 아닌가 (2026-09-06) ────────────────────────────────────\n * 전에는 화면 오른쪽에서 나오는 aside 판이었다. 두 가지가 걸린다.\n *\n * 자리를 다툰다 화면 오른쪽 세로 패널은 operato-twin 의 twin-entity360 이 쓰는 자리다\n * (position: fixed · right: 0 · height: 100vh). 같은 자리에 둘이 선다.\n * 전역 슬롯이다 VIEWPART_POSITION.ASIDEBAR 은 앱이 하나만 갖는다. 열 개가 넘는 패키지가\n * 그 자리를 쓰고 있어(twin 의 AI 협의 도크 · board-ui · help · more-ui …),\n * 이 패널을 열면 그중 열려 있던 것이 닫힌다.\n *\n * 그리고 자리의 뜻이 다르다. 오른쪽 드로어는 **보고 있는 대상을 따라다니는 상세**이고(360 이\n * 그것이다 — 포커스가 바뀌면 내용이 바뀌고 화면을 옮겨도 남는다), 이 패널은 **이 화면의 이 건**에\n * 대한 것이라 화면을 벗어나면 뜻이 없다. 페이지에 매인 것을 앱 전역 자리에 두지 않는다.\n *\n * 내용도 팝업 크기다 — 값 여덟 줄과 접힌 타임라인이라 세로 100vh 를 쓸 일이 없었다.\n */\n private openInfo(state: string) {\n openPopup(\n html`<activity-thread-context-template .activityThread=${this.activityThread} state=${state}></activity-thread-context-template>`,\n { title: i18next.t('label.thread-info') }\n )\n }\n\n updated(changes) {\n if (changes.has('activityThread') && this.activityThread) {\n const { state } = this.activityThread\n\n this.setAttribute('state', state)\n }\n }\n}\n"]}
@@ -0,0 +1,28 @@
1
+ import '@material/web/icon/icon.js';
2
+ import '@things-factory/organization/dist-client/component/approval-line-view.js';
3
+ import { LitElement, nothing } from 'lit';
4
+ import { ActivityThread } from '../types/activity-thread.js';
5
+ import { ActivityThreadHistory } from '../types/activity-thread-history.js';
6
+ import { ActivityApproval } from '../types/activity-approval.js';
7
+ export declare class ActivityThreadTimeline extends LitElement {
8
+ static styles: import("lit").CSSResult[];
9
+ activityThread?: ActivityThread;
10
+ subtitle?: string;
11
+ shortForm?: boolean;
12
+ /**
13
+ * 펴 둘 것인가 — **담는 화면이 정한다.**
14
+ *
15
+ * 기본은 접는다. 펴는 곳은 둘이다.
16
+ * 완료 조회 지난 일을 보러 온 화면이라 이력이 곧 본문이다
17
+ * 보일 항목 없음 화면이 「타임라인의 상신 사유를 보고 판단하세요」로 여기를 가리킨다
18
+ */
19
+ open?: boolean;
20
+ render(): import("lit-html").TemplateResult<1> | typeof nothing;
21
+ /** 접혔을 때 보이는 한 줄 — 마지막 기록의 「무엇을 · 누가 · 언제」. */
22
+ lastLine(item: any): string;
23
+ renderActivityThreadHistory(activityThreadHistory: ActivityThreadHistory): import("lit-html").TemplateResult<1>;
24
+ renderActivityApproval(activityApproval: ActivityApproval): import("lit-html").TemplateResult<1>;
25
+ /** 적힌 말이 없으면 상자를 그리지 않는다 — 빈 회색 상자는 내용이 있는 줄과 구별되지 않는다. */
26
+ renderSaid(said?: string): import("lit-html").TemplateResult<1> | typeof nothing;
27
+ renderOutput(output: any): string;
28
+ }
@@ -0,0 +1,339 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import '@things-factory/organization/dist-client/component/approval-line-view.js';
4
+ import { html, css, LitElement, nothing } from 'lit';
5
+ import { customElement, property } from 'lit/decorators.js';
6
+ import { i18next } from '@operato/i18n';
7
+ import { whenText } from '../when.js';
8
+ import { timelineEntries, whenOf } from './timeline-entries.js';
9
+ import { ActivityThread } from '../types/activity-thread.js';
10
+ import { entity360Name } from '@operato/layout';
11
+ let ActivityThreadTimeline = class ActivityThreadTimeline extends LitElement {
12
+ static { this.styles = [
13
+ css `
14
+ /*
15
+ * 업무 하나가 지나온 자취 — **언제 · 무슨 일이 · 누구에 의해.**
16
+ *
17
+ * ── 무엇을 고쳤나 (2026-09-06) ─────────────────────────────────────
18
+ * 1. 절 제목이 단추처럼 생겼었다. border: 2px 에 border-radius: 15px 인 알약이라
19
+ * 누를 수 있는 것으로 보인다. 이 화면에서 알약은 거르개(chip)의 모양이다.
20
+ * 2. 말풍선 꼬리에 #f4f4f4 가, 표 선에 lightgray 가 하드코딩되어 있었다. 어두운
21
+ * 화면에서 밝은 회색이 그대로 나온다.
22
+ * 3. 시각이 Tuesday, September 1, 2026 at 11:51 AM 이었다. when.ts 머리말 참조.
23
+ *
24
+ * ── 내용이 없는 줄에 상자를 그리지 않는다 ─────────────────────────
25
+ * 의견이나 결과가 없는 줄에도 회색 상자가 min-height: 20px 으로 깔려 있었다. 저장 ·
26
+ * 게시처럼 적을 것이 없는 기록이 대부분이라, 화면의 절반이 빈 회색 상자였다.
27
+ */
28
+ /*
29
+ * 절 하나이므로 다른 절과 같은 카드로 둔다. 전에는 카드 밖에 그냥 놓여 있어서 「업무 정보」
30
+ * 카드와 위계가 어긋났다 — 같은 층의 두 절인데 하나만 면 위에 있었다.
31
+ */
32
+ :host {
33
+ display: block;
34
+ padding: 14px;
35
+ background: var(--ui-panel, #ffffff);
36
+ border: 1px solid var(--ui-line, #d5dce0);
37
+ border-radius: var(--ui-r, 10px);
38
+ color: var(--ui-ink, #17242c);
39
+ font-size: var(--ui-t-body, 13px);
40
+ }
41
+
42
+ /* 그릴 것이 없으면 빈 카드를 남기지 않는다. */
43
+ :host(:not(:has(ol))) {
44
+ display: none;
45
+ }
46
+
47
+ /*
48
+ * ── 접어 둔다 (2026-09-06) ────────────────────────────────────────
49
+ * 이력은 참고다. 결재자가 먼저 읽는 것은 「무엇을 승인하나」이고, 이력은 그것으로 판단이
50
+ * 안 설 때 펴 보는 것이다. 그런데 이 카드가 내용 절과 똑같은 무게로 서 있었다.
51
+ *
52
+ * 접어 두되 **마지막에 무슨 일이 있었는지 한 줄은 남긴다.** 「이력 4건」만 있으면 펴 볼지
53
+ * 말지를 정할 수가 없다.
54
+ *
55
+ * 펴 두어야 하는 화면이 있다 — 지난 일을 보러 온 화면(완료 조회), 그리고 보일 항목이 하나도
56
+ * 없어서 「타임라인의 상신 사유를 보고 판단하세요」라고 안내한 경우다. 그때 접혀 있으면 그
57
+ * 안내가 거짓말이 된다. 그래서 여는 쪽은 담는 화면이 정한다(open 속성).
58
+ */
59
+ h2 {
60
+ margin: 0;
61
+ font-size: var(--ui-t-title, 15px);
62
+ font-weight: 600;
63
+ color: var(--ui-ink, #17242c);
64
+ }
65
+
66
+ summary {
67
+ display: flex;
68
+ align-items: baseline;
69
+ gap: var(--spacing-medium, 8px);
70
+ cursor: pointer;
71
+ list-style: none;
72
+ }
73
+
74
+ summary::-webkit-details-marker {
75
+ display: none;
76
+ }
77
+
78
+ /* 펴고 접는 표시. 색만으로 말하지 않으려고 방향이 바뀐다. */
79
+ .chevron {
80
+ flex: none;
81
+ font-size: 18px;
82
+ color: var(--ui-muted, #57676f);
83
+ transition: transform 0.12s ease;
84
+ }
85
+
86
+ details[open] .chevron {
87
+ transform: rotate(90deg);
88
+ }
89
+
90
+ /* 접혔을 때 보이는 한 줄 — 마지막에 무슨 일이 있었나. */
91
+ .last {
92
+ flex: 1;
93
+ min-width: 0;
94
+ overflow: hidden;
95
+ text-overflow: ellipsis;
96
+ white-space: nowrap;
97
+ font-size: var(--ui-t-small, 11.5px);
98
+ color: var(--ui-faint, #8a959c);
99
+ }
100
+
101
+ details[open] .last {
102
+ display: none;
103
+ }
104
+
105
+ .count {
106
+ flex: none;
107
+ font-size: var(--ui-t-small, 11.5px);
108
+ color: var(--ui-muted, #57676f);
109
+ font-variant-numeric: tabular-nums;
110
+ }
111
+
112
+ ol {
113
+ list-style: none;
114
+ margin: var(--spacing-medium, 8px) 0 0;
115
+ padding: 0;
116
+ }
117
+
118
+ li {
119
+ display: grid;
120
+ grid-template-columns: max-content 16px 1fr;
121
+ align-items: start;
122
+ column-gap: var(--spacing-small, 4px);
123
+ }
124
+
125
+ /* 시각 — 자릿수를 맞춰 위아래를 바로 비교할 수 있게. */
126
+ [date] {
127
+ padding-top: 1px;
128
+ font-family: var(--ui-mono, ui-monospace, Menlo, monospace);
129
+ font-size: var(--ui-t-small, 11.5px);
130
+ font-variant-numeric: tabular-nums;
131
+ color: var(--ui-faint, #8a959c);
132
+ white-space: nowrap;
133
+ }
134
+
135
+ /*
136
+ * 점과 그 아래로 이어지는 세로선.
137
+ *
138
+ * 칸을 세로로 늘려(align-self: stretch) 그 안에 점과 선을 그린다. 전에는 칸이 9px 이라
139
+ * 선 높이를 calc(100% + 100px) 으로 짐작해서 늘렸고, 줄 높이가 그보다 낮으면 선이 다음
140
+ * 줄을 지나 카드 아래까지 흘러내렸다.
141
+ */
142
+ [status] {
143
+ position: relative;
144
+ align-self: stretch;
145
+ width: 9px;
146
+ margin-left: 3px;
147
+ }
148
+
149
+ [status]::after {
150
+ content: '';
151
+ position: absolute;
152
+ top: 4px;
153
+ left: 0;
154
+ width: 9px;
155
+ height: 9px;
156
+ border-radius: 50%;
157
+ background-color: var(--ui-accent, #00727e);
158
+ }
159
+
160
+ [status]::before {
161
+ content: '';
162
+ position: absolute;
163
+ top: 15px;
164
+ bottom: 0;
165
+ left: 3px;
166
+ width: 2px;
167
+ background-color: var(--ui-line, #d5dce0);
168
+ }
169
+
170
+ li:last-child [status]::before {
171
+ display: none;
172
+ }
173
+
174
+ [info] {
175
+ min-width: 0;
176
+ padding-bottom: var(--spacing-large, 16px);
177
+ }
178
+
179
+ li:last-child [info] {
180
+ padding-bottom: 0;
181
+ }
182
+
183
+ /* 무슨 일이 있었나 — 이 줄에서 먼저 읽혀야 하는 값. */
184
+ [what] {
185
+ font-weight: 600;
186
+ }
187
+
188
+ /* 누가 — 곁말이다. 아이콘은 두지 않는다(이름 앞의 원형 아이콘이 값처럼 보였다). */
189
+ [who] {
190
+ margin-left: var(--spacing-small, 4px);
191
+ font-size: var(--ui-t-small, 11.5px);
192
+ color: var(--ui-faint, #8a959c);
193
+ }
194
+
195
+ /* 적힌 말 — 의견 · 사유 · 결과. 없으면 이 요소 자체를 그리지 않는다. */
196
+ p {
197
+ /* 줄을 바꿔 아래에 두되(block), 폭은 내용만큼만 — 짧은 의견에 화면 폭짜리 상자가 생겼다. */
198
+ display: block;
199
+ width: fit-content;
200
+ max-width: 100%;
201
+ margin: 5px 0 0;
202
+ padding: 7px 10px;
203
+ background: var(--ui-panel-2, #eef1f3);
204
+ border-radius: var(--ui-r-small, 6px);
205
+ color: var(--ui-ink, #17242c);
206
+ font-size: var(--ui-t-small, 11.5px);
207
+ line-height: 1.5;
208
+ word-break: keep-all;
209
+ }
210
+
211
+ @media only screen and (max-width: 460px) {
212
+ li {
213
+ grid-template-columns: 16px 1fr;
214
+ }
215
+
216
+ /* 좁은 화면에서는 시각을 내용 아래로 내린다 — 한 줄의 절반을 시각에 내줄 수 없다. */
217
+ [date] {
218
+ grid-column: 2;
219
+ grid-row: 2;
220
+ padding: 0 0 var(--spacing-medium, 8px);
221
+ }
222
+ }
223
+ `
224
+ ]; }
225
+ render() {
226
+ const { activityApprovals = [], activityThreadHistories = [] } = this.activityThread || {};
227
+ /*
228
+ * **정렬 키와 표시 키가 같아야 한다.**
229
+ *
230
+ * 전에는 둘 다 updatedAt 으로 정렬해 놓고, 결재 줄만 terminatedAt 을 보여 주었다. 그래서
231
+ * 시각이 오르내리는 목록이 나왔다 — 11:51 승인됨 · 11:50 제출 · 11:50 게시 · 11:51 상신.
232
+ * 시간 순으로 읽으라고 만든 화면인데 시간 순이 아니었다.
233
+ */
234
+ /* 한 사람의 한 행동이 한 줄이 되게 거르고, 같은 시각이면 일어난 순서로 놓는다(timeline-entries). */
235
+ const timeline = timelineEntries(activityThreadHistories, activityApprovals, { shortForm: this.shortForm });
236
+ if (!timeline.length) {
237
+ return nothing;
238
+ }
239
+ return html `
240
+ <details ?open=${this.open}>
241
+ <summary>
242
+ <md-icon class="chevron">chevron_right</md-icon>
243
+ <h2>${this.subtitle || i18next.t('label.timeline')}</h2>
244
+ <span class="count">${i18next.t('text.timeline-count', { count: timeline.length })}</span>
245
+ <span class="last">${this.lastLine(timeline[timeline.length - 1])}</span>
246
+ </summary>
247
+
248
+ <ol>
249
+ ${timeline.map(item => 'reason' in item
250
+ ? this.renderActivityThreadHistory(item)
251
+ : this.renderActivityApproval(item))}
252
+ </ol>
253
+ </details>
254
+ `;
255
+ }
256
+ /** 접혔을 때 보이는 한 줄 — 마지막 기록의 「무엇을 · 누가 · 언제」. */
257
+ lastLine(item) {
258
+ const what = 'reason' in item
259
+ ? i18next.t('label.activity-transaction-' + item.transaction)
260
+ : i18next.t('label.activity-state-' + item.judgment);
261
+ const who = item?.updater?.name || item?.approver?.name || '';
262
+ return [what, who, whenText(whenOf(item))].filter(Boolean).join(' · ');
263
+ }
264
+ renderActivityThreadHistory(activityThreadHistory) {
265
+ const { updater, updatedAt, state, reason, output, transaction } = activityThreadHistory;
266
+ return html `
267
+ <li>
268
+ <span date>${whenText(updatedAt)}</span>
269
+ <span status></span>
270
+
271
+ <span info>
272
+ <span what>${i18next.t('label.activity-transaction-' + transaction)}</span>
273
+ ${updater?.name ? html `<span who>${entity360Name(updater)}</span>` : nothing}
274
+ ${this.renderSaid(reason || (output ? this.renderOutput(output) : ''))}
275
+ </span>
276
+ </li>
277
+ `;
278
+ }
279
+ renderActivityApproval(activityApproval) {
280
+ const { judgment, approver, comment, createdAt, terminatedAt } = activityApproval;
281
+ return html `
282
+ <li>
283
+ <span date>${whenText(terminatedAt ?? createdAt)}</span>
284
+ <span status></span>
285
+ <span info>
286
+ <span what>${i18next.t('label.activity-state-' + judgment)}</span>
287
+ ${approver?.name ? html `<span who>${entity360Name(approver)}</span>` : nothing}
288
+ ${this.renderSaid(comment)}
289
+ </span>
290
+ </li>
291
+ `;
292
+ }
293
+ /** 적힌 말이 없으면 상자를 그리지 않는다 — 빈 회색 상자는 내용이 있는 줄과 구별되지 않는다. */
294
+ renderSaid(said) {
295
+ return said ? html `<p>${said}</p>` : nothing;
296
+ }
297
+ renderOutput(output) {
298
+ const keys = Object.keys(output);
299
+ if (keys.length === 0) {
300
+ return '';
301
+ }
302
+ const firstKey = keys[0];
303
+ let value = output[firstKey];
304
+ // 값이 객체이거나 긴 문자열인 경우 처리
305
+ if (typeof value === 'object') {
306
+ value = Array.isArray(value) ? '[...]' : '{...}';
307
+ }
308
+ else if (typeof value === 'string' && value.length > 50) {
309
+ value = value.substring(0, 47) + '...';
310
+ }
311
+ let result = `${firstKey}: ${value}`;
312
+ // 추가 속성이 있는 경우 표시
313
+ if (keys.length > 1) {
314
+ result += ' ' + i18next.t('text.and-n-more-fields', { n: keys.length - 1 });
315
+ }
316
+ return result;
317
+ }
318
+ };
319
+ __decorate([
320
+ property({ type: Object }),
321
+ __metadata("design:type", ActivityThread)
322
+ ], ActivityThreadTimeline.prototype, "activityThread", void 0);
323
+ __decorate([
324
+ property({ type: String }),
325
+ __metadata("design:type", String)
326
+ ], ActivityThreadTimeline.prototype, "subtitle", void 0);
327
+ __decorate([
328
+ property({ type: Boolean, attribute: 'short-form' }),
329
+ __metadata("design:type", Boolean)
330
+ ], ActivityThreadTimeline.prototype, "shortForm", void 0);
331
+ __decorate([
332
+ property({ type: Boolean }),
333
+ __metadata("design:type", Boolean)
334
+ ], ActivityThreadTimeline.prototype, "open", void 0);
335
+ ActivityThreadTimeline = __decorate([
336
+ customElement('activity-thread-timeline')
337
+ ], ActivityThreadTimeline);
338
+ export { ActivityThreadTimeline };
339
+ //# sourceMappingURL=activity-thread-timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-thread-timeline.js","sourceRoot":"","sources":["../../client/components/activity-thread-timeline.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@things-factory/organization/dist-client/component/approval-line-view.js'\n\nimport { html, css, LitElement, nothing } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\n\nimport { whenText } from '../when.js'\nimport { timelineEntries, whenOf } from './timeline-entries.js'\n\nimport { ActivityThread } from '../types/activity-thread.js'\nimport { ActivityThreadHistory } from '../types/activity-thread-history.js'\nimport { ActivityApproval } from '../types/activity-approval.js'\nimport { entity360Name } from '@operato/layout'\n\n\n@customElement('activity-thread-timeline')\nexport class ActivityThreadTimeline extends LitElement {\n static styles = [\n css`\n /*\n * 업무 하나가 지나온 자취 — **언제 · 무슨 일이 · 누구에 의해.**\n *\n * ── 무엇을 고쳤나 (2026-09-06) ─────────────────────────────────────\n * 1. 절 제목이 단추처럼 생겼었다. border: 2px 에 border-radius: 15px 인 알약이라\n * 누를 수 있는 것으로 보인다. 이 화면에서 알약은 거르개(chip)의 모양이다.\n * 2. 말풍선 꼬리에 #f4f4f4 가, 표 선에 lightgray 가 하드코딩되어 있었다. 어두운\n * 화면에서 밝은 회색이 그대로 나온다.\n * 3. 시각이 Tuesday, September 1, 2026 at 11:51 AM 이었다. when.ts 머리말 참조.\n *\n * ── 내용이 없는 줄에 상자를 그리지 않는다 ─────────────────────────\n * 의견이나 결과가 없는 줄에도 회색 상자가 min-height: 20px 으로 깔려 있었다. 저장 ·\n * 게시처럼 적을 것이 없는 기록이 대부분이라, 화면의 절반이 빈 회색 상자였다.\n */\n /*\n * 절 하나이므로 다른 절과 같은 카드로 둔다. 전에는 카드 밖에 그냥 놓여 있어서 「업무 정보」\n * 카드와 위계가 어긋났다 — 같은 층의 두 절인데 하나만 면 위에 있었다.\n */\n :host {\n display: block;\n padding: 14px;\n background: var(--ui-panel, #ffffff);\n border: 1px solid var(--ui-line, #d5dce0);\n border-radius: var(--ui-r, 10px);\n color: var(--ui-ink, #17242c);\n font-size: var(--ui-t-body, 13px);\n }\n\n /* 그릴 것이 없으면 빈 카드를 남기지 않는다. */\n :host(:not(:has(ol))) {\n display: none;\n }\n\n /*\n * ── 접어 둔다 (2026-09-06) ────────────────────────────────────────\n * 이력은 참고다. 결재자가 먼저 읽는 것은 「무엇을 승인하나」이고, 이력은 그것으로 판단이\n * 안 설 때 펴 보는 것이다. 그런데 이 카드가 내용 절과 똑같은 무게로 서 있었다.\n *\n * 접어 두되 **마지막에 무슨 일이 있었는지 한 줄은 남긴다.** 「이력 4건」만 있으면 펴 볼지\n * 말지를 정할 수가 없다.\n *\n * 펴 두어야 하는 화면이 있다 — 지난 일을 보러 온 화면(완료 조회), 그리고 보일 항목이 하나도\n * 없어서 「타임라인의 상신 사유를 보고 판단하세요」라고 안내한 경우다. 그때 접혀 있으면 그\n * 안내가 거짓말이 된다. 그래서 여는 쪽은 담는 화면이 정한다(open 속성).\n */\n h2 {\n margin: 0;\n font-size: var(--ui-t-title, 15px);\n font-weight: 600;\n color: var(--ui-ink, #17242c);\n }\n\n summary {\n display: flex;\n align-items: baseline;\n gap: var(--spacing-medium, 8px);\n cursor: pointer;\n list-style: none;\n }\n\n summary::-webkit-details-marker {\n display: none;\n }\n\n /* 펴고 접는 표시. 색만으로 말하지 않으려고 방향이 바뀐다. */\n .chevron {\n flex: none;\n font-size: 18px;\n color: var(--ui-muted, #57676f);\n transition: transform 0.12s ease;\n }\n\n details[open] .chevron {\n transform: rotate(90deg);\n }\n\n /* 접혔을 때 보이는 한 줄 — 마지막에 무슨 일이 있었나. */\n .last {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--ui-t-small, 11.5px);\n color: var(--ui-faint, #8a959c);\n }\n\n details[open] .last {\n display: none;\n }\n\n .count {\n flex: none;\n font-size: var(--ui-t-small, 11.5px);\n color: var(--ui-muted, #57676f);\n font-variant-numeric: tabular-nums;\n }\n\n ol {\n list-style: none;\n margin: var(--spacing-medium, 8px) 0 0;\n padding: 0;\n }\n\n li {\n display: grid;\n grid-template-columns: max-content 16px 1fr;\n align-items: start;\n column-gap: var(--spacing-small, 4px);\n }\n\n /* 시각 — 자릿수를 맞춰 위아래를 바로 비교할 수 있게. */\n [date] {\n padding-top: 1px;\n font-family: var(--ui-mono, ui-monospace, Menlo, monospace);\n font-size: var(--ui-t-small, 11.5px);\n font-variant-numeric: tabular-nums;\n color: var(--ui-faint, #8a959c);\n white-space: nowrap;\n }\n\n /*\n * 점과 그 아래로 이어지는 세로선.\n *\n * 칸을 세로로 늘려(align-self: stretch) 그 안에 점과 선을 그린다. 전에는 칸이 9px 이라\n * 선 높이를 calc(100% + 100px) 으로 짐작해서 늘렸고, 줄 높이가 그보다 낮으면 선이 다음\n * 줄을 지나 카드 아래까지 흘러내렸다.\n */\n [status] {\n position: relative;\n align-self: stretch;\n width: 9px;\n margin-left: 3px;\n }\n\n [status]::after {\n content: '';\n position: absolute;\n top: 4px;\n left: 0;\n width: 9px;\n height: 9px;\n border-radius: 50%;\n background-color: var(--ui-accent, #00727e);\n }\n\n [status]::before {\n content: '';\n position: absolute;\n top: 15px;\n bottom: 0;\n left: 3px;\n width: 2px;\n background-color: var(--ui-line, #d5dce0);\n }\n\n li:last-child [status]::before {\n display: none;\n }\n\n [info] {\n min-width: 0;\n padding-bottom: var(--spacing-large, 16px);\n }\n\n li:last-child [info] {\n padding-bottom: 0;\n }\n\n /* 무슨 일이 있었나 — 이 줄에서 먼저 읽혀야 하는 값. */\n [what] {\n font-weight: 600;\n }\n\n /* 누가 — 곁말이다. 아이콘은 두지 않는다(이름 앞의 원형 아이콘이 값처럼 보였다). */\n [who] {\n margin-left: var(--spacing-small, 4px);\n font-size: var(--ui-t-small, 11.5px);\n color: var(--ui-faint, #8a959c);\n }\n\n /* 적힌 말 — 의견 · 사유 · 결과. 없으면 이 요소 자체를 그리지 않는다. */\n p {\n /* 줄을 바꿔 아래에 두되(block), 폭은 내용만큼만 — 짧은 의견에 화면 폭짜리 상자가 생겼다. */\n display: block;\n width: fit-content;\n max-width: 100%;\n margin: 5px 0 0;\n padding: 7px 10px;\n background: var(--ui-panel-2, #eef1f3);\n border-radius: var(--ui-r-small, 6px);\n color: var(--ui-ink, #17242c);\n font-size: var(--ui-t-small, 11.5px);\n line-height: 1.5;\n word-break: keep-all;\n }\n\n @media only screen and (max-width: 460px) {\n li {\n grid-template-columns: 16px 1fr;\n }\n\n /* 좁은 화면에서는 시각을 내용 아래로 내린다 — 한 줄의 절반을 시각에 내줄 수 없다. */\n [date] {\n grid-column: 2;\n grid-row: 2;\n padding: 0 0 var(--spacing-medium, 8px);\n }\n }\n `\n ]\n\n @property({ type: Object }) activityThread?: ActivityThread\n @property({ type: String }) subtitle?: string\n @property({ type: Boolean, attribute: 'short-form' }) shortForm?: boolean\n\n /**\n * 펴 둘 것인가 — **담는 화면이 정한다.**\n *\n * 기본은 접는다. 펴는 곳은 둘이다.\n * 완료 조회 지난 일을 보러 온 화면이라 이력이 곧 본문이다\n * 보일 항목 없음 화면이 「타임라인의 상신 사유를 보고 판단하세요」로 여기를 가리킨다\n */\n @property({ type: Boolean }) open?: boolean\n\n render() {\n const { activityApprovals = [], activityThreadHistories = [] } = this.activityThread || {}\n\n /*\n * **정렬 키와 표시 키가 같아야 한다.**\n *\n * 전에는 둘 다 updatedAt 으로 정렬해 놓고, 결재 줄만 terminatedAt 을 보여 주었다. 그래서\n * 시각이 오르내리는 목록이 나왔다 — 11:51 승인됨 · 11:50 제출 · 11:50 게시 · 11:51 상신.\n * 시간 순으로 읽으라고 만든 화면인데 시간 순이 아니었다.\n */\n /* 한 사람의 한 행동이 한 줄이 되게 거르고, 같은 시각이면 일어난 순서로 놓는다(timeline-entries). */\n const timeline = timelineEntries(activityThreadHistories, activityApprovals, { shortForm: this.shortForm })\n\n if (!timeline.length) {\n return nothing\n }\n\n return html`\n <details ?open=${this.open}>\n <summary>\n <md-icon class=\"chevron\">chevron_right</md-icon>\n <h2>${this.subtitle || i18next.t('label.timeline')}</h2>\n <span class=\"count\">${i18next.t('text.timeline-count', { count: timeline.length })}</span>\n <span class=\"last\">${this.lastLine(timeline[timeline.length - 1])}</span>\n </summary>\n\n <ol>\n ${timeline.map(item =>\n 'reason' in item\n ? this.renderActivityThreadHistory(item as ActivityThreadHistory)\n : this.renderActivityApproval(item as ActivityApproval)\n )}\n </ol>\n </details>\n `\n }\n\n /** 접혔을 때 보이는 한 줄 — 마지막 기록의 「무엇을 · 누가 · 언제」. */\n lastLine(item: any): string {\n const what =\n 'reason' in item\n ? i18next.t('label.activity-transaction-' + item.transaction)\n : i18next.t('label.activity-state-' + item.judgment)\n\n const who = item?.updater?.name || item?.approver?.name || ''\n\n return [what, who, whenText(whenOf(item))].filter(Boolean).join(' · ')\n }\n\n renderActivityThreadHistory(activityThreadHistory: ActivityThreadHistory) {\n const { updater, updatedAt, state, reason, output, transaction } = activityThreadHistory\n\n return html`\n <li>\n <span date>${whenText(updatedAt)}</span>\n <span status></span>\n\n <span info>\n <span what>${i18next.t('label.activity-transaction-' + transaction)}</span>\n ${updater?.name ? html`<span who>${entity360Name(updater)}</span>` : nothing}\n ${this.renderSaid(reason || (output ? this.renderOutput(output) : ''))}\n </span>\n </li>\n `\n }\n\n renderActivityApproval(activityApproval: ActivityApproval) {\n const { judgment, approver, comment, createdAt, terminatedAt } = activityApproval\n\n return html`\n <li>\n <span date>${whenText(terminatedAt ?? createdAt)}</span>\n <span status></span>\n <span info>\n <span what>${i18next.t('label.activity-state-' + judgment)}</span>\n ${approver?.name ? html`<span who>${entity360Name(approver)}</span>` : nothing}\n ${this.renderSaid(comment)}\n </span>\n </li>\n `\n }\n\n /** 적힌 말이 없으면 상자를 그리지 않는다 — 빈 회색 상자는 내용이 있는 줄과 구별되지 않는다. */\n renderSaid(said?: string) {\n return said ? html`<p>${said}</p>` : nothing\n }\n\n renderOutput(output: any) {\n const keys = Object.keys(output)\n if (keys.length === 0) {\n return ''\n }\n\n const firstKey = keys[0]\n let value = output[firstKey]\n\n // 값이 객체이거나 긴 문자열인 경우 처리\n if (typeof value === 'object') {\n value = Array.isArray(value) ? '[...]' : '{...}'\n } else if (typeof value === 'string' && value.length > 50) {\n value = value.substring(0, 47) + '...'\n }\n\n let result = `${firstKey}: ${value}`\n\n // 추가 속성이 있는 경우 표시\n if (keys.length > 1) {\n result += ' ' + i18next.t('text.and-n-more-fields', { n: keys.length - 1 })\n }\n\n return result\n }\n}\n"]}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Whether the preview offers "pick" - the same condition the server's pick applies.
3
+ *
4
+ * The server (controllers/activity-instance/pick.ts) picks when the caller is entitled and the
5
+ * instance is issued or unassigned. The screen used to compare the instance's thread count with
6
+ * threadsMax instead: a limit the server never applies, read from the thread list that asks a
7
+ * management privilege a picker does not hold - and with threadsMax at its default 0, never true.
8
+ *
9
+ * Entitlement is not repeated here: the pickable list already lists only what the caller may pick,
10
+ * and a refusal from the server says why.
11
+ */
12
+ export declare const PICKABLE_STATES: readonly ["issued", "unassigned"];
13
+ export declare function canPick(instance: {
14
+ state?: string;
15
+ } | null | undefined, picked: boolean): boolean;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Whether the preview offers "pick" - the same condition the server's pick applies.
3
+ *
4
+ * The server (controllers/activity-instance/pick.ts) picks when the caller is entitled and the
5
+ * instance is issued or unassigned. The screen used to compare the instance's thread count with
6
+ * threadsMax instead: a limit the server never applies, read from the thread list that asks a
7
+ * management privilege a picker does not hold - and with threadsMax at its default 0, never true.
8
+ *
9
+ * Entitlement is not repeated here: the pickable list already lists only what the caller may pick,
10
+ * and a refusal from the server says why.
11
+ */
12
+ export const PICKABLE_STATES = ['issued', 'unassigned'];
13
+ export function canPick(instance, picked) {
14
+ return !picked && PICKABLE_STATES.includes(String(instance?.state ?? ''));
15
+ }
16
+ //# sourceMappingURL=can-pick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"can-pick.js","sourceRoot":"","sources":["../../client/components/can-pick.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAU,CAAA;AAEhE,MAAM,UAAU,OAAO,CAAC,QAA+C,EAAE,MAAe;IACtF,OAAO,CAAC,MAAM,IAAK,eAAqC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;AAClG,CAAC","sourcesContent":["/**\n * Whether the preview offers \"pick\" - the same condition the server's pick applies.\n *\n * The server (controllers/activity-instance/pick.ts) picks when the caller is entitled and the\n * instance is issued or unassigned. The screen used to compare the instance's thread count with\n * threadsMax instead: a limit the server never applies, read from the thread list that asks a\n * management privilege a picker does not hold - and with threadsMax at its default 0, never true.\n *\n * Entitlement is not repeated here: the pickable list already lists only what the caller may pick,\n * and a refusal from the server says why.\n */\nexport const PICKABLE_STATES = ['issued', 'unassigned'] as const\n\nexport function canPick(instance: { state?: string } | null | undefined, picked: boolean): boolean {\n return !picked && (PICKABLE_STATES as readonly string[]).includes(String(instance?.state ?? ''))\n}\n"]}