@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,225 @@
1
+ import { css } from 'lit';
2
+ /**
3
+ * 업무 · 결재 화면의 머리 띠 — **세 화면이 한 모양을 쓴다.**
4
+ *
5
+ * activity-thread-ribon · activity-approval-ribon · activity-instance-ribon 이 같은 자리에 같은
6
+ * 것을 보인다(상태 · 설명 · 결재선 또는 담당자). 그런데 셋이 각자 100여 줄의 CSS 를 갖고 있었고,
7
+ * 상태색 여덟 개가 세 벌로 복사되어 있었다.
8
+ *
9
+ * ── 채운 띠를 걷은 이유 — 글자가 안 읽혔다 ─────────────────────────────────
10
+ * 전에는 상태마다 다른 색으로 띠 전체를 채우고 그 위에 흰 글자를 얹었다. 색은 하드코딩된 hex 여덟
11
+ * 개였고, --md-sys-color-on-primary(대개 흰색)를 글자색으로 썼다. contrast 를 계산하면 12px 글자
12
+ * 기준 AA(4.5:1)에 네 개가 못 미친다.
13
+ *
14
+ * started #56af45 2.76 ← 작업자가 가장 오래 보는 상태
15
+ * ended #02acae 2.79
16
+ * rejected #f27429 2.87
17
+ * submitted #428df3 3.31
18
+ * unassigned #5f7184 5.02 (통과)
19
+ * escalated #595de5 5.09 (통과)
20
+ * aborted #cb3a33 5.01 (통과)
21
+ * delegated #8654b0 5.37 (통과)
22
+ *
23
+ * 색을 여덟 개 다시 고르는 대신 **띠를 채우지 않는다.** SurfaceStyles 가 정한 규칙과 같다 —
24
+ * 흰 면에 1px 선을 두르고, 색은 상태 앞의 점 하나가 말한다. 글자는 --ui-ink 라 어느 상태에서든
25
+ * 읽히고, 점은 UI 요소라 3:1 기준으로 판단한다.
26
+ *
27
+ * ── 색 여덟 개를 뜻 여섯 개로 ──────────────────────────────────────────────
28
+ * 하드코딩된 hex 는 앱 팔레트를 따르지 않는다. worklist 는 framework 패키지라 operato-plant ·
29
+ * operato-gangsters · operato-dataset 이 모두 이 화면을 쓰는데, 어느 앱에서도 그 앱 색이 아니었다.
30
+ * 토큰으로 바꾸면 앱마다 자기 라이트 · 다크 테마를 따라온다.
31
+ *
32
+ * unassigned · assigned --ui-muted 아직 시작하지 않았다
33
+ * started --ui-accent 내 손에서 진행 중이다
34
+ * submitted · escalated · delegated --ui-info 남의 판단을 기다린다
35
+ * rejected --ui-warn 되돌아왔다. 다시 해야 한다
36
+ * ended · approved --ui-good 끝났다
37
+ * aborted --ui-crit 중단됐다
38
+ *
39
+ * 색만으로 뜻을 전하지 않는다 — 상태 이름을 항상 함께 적는다.
40
+ */
41
+ /**
42
+ * The state → colour mapping above, alone - for anything that shows a worklist state, not only the
43
+ * ribbon. Set on `:host([state=...])`; read `--worklist-state-color`. The activity instance view kept
44
+ * a fourth copy of the old eight hex colours after the ribbons moved to meanings; three of them were
45
+ * under 3:1 on a light surface (started 2.62 · rejected 2.73 · ended 2.65, measured on :4000
46
+ * 2026-09-24) and `unassigned` had none, so it drew tomato.
47
+ */
48
+ export const WorklistStateColors = css `
49
+ :host([state='unassigned']),
50
+ :host([state='assigned']),
51
+ :host([state='draft']) {
52
+ --worklist-state-color: var(--ui-muted, #57676f);
53
+ }
54
+
55
+ :host([state='started']),
56
+ :host([state='issued']),
57
+ :host([state='posted']) {
58
+ --worklist-state-color: var(--ui-accent, #00727e);
59
+ }
60
+
61
+ :host([state='submitted']),
62
+ :host([state='escalated']),
63
+ :host([state='delegated']),
64
+ :host([state='pending']) {
65
+ --worklist-state-color: var(--ui-info, #2b72ad);
66
+ }
67
+
68
+ :host([state='rejected']) {
69
+ --worklist-state-color: var(--ui-warn, #9f5e02);
70
+ }
71
+
72
+ :host([state='ended']),
73
+ :host([state='approved']) {
74
+ --worklist-state-color: var(--ui-good, #297d39);
75
+ }
76
+
77
+ :host([state='aborted']),
78
+ :host([state='deprecated']) {
79
+ --worklist-state-color: var(--ui-crit, #d14946);
80
+ }
81
+ `;
82
+ const StateRibonOwnStyles = css `
83
+ /*
84
+ * ── 면을 갖지 않는다 (2026-09-06) ─────────────────────────────────────
85
+ * 채운 색 띠를 걷어내면서 흰 면(--ui-panel)으로 바꿨는데, 그것이 카드와 **같은 색**이었다.
86
+ * 그래서 한 화면에 흰 블록이 넷이 되고(머리 띠 · 내용 · 타임라인 · 의견) 위계가 사라졌다.
87
+ * 실측: 결재 화면의 네 블록이 전부 rgb(255,255,255) 에 1px 테두리였다.
88
+ *
89
+ * 이 띠가 말하는 것(상태 · 설명 · 결재선)은 전부 보조다. 사용자가 먼저 묻는 것은 「무엇을
90
+ * 승인하나」이지 「지금 몇 단계인가」가 아니다.
91
+ *
92
+ * 그래서 페이지 바탕이 비치게 두고 아래 구분선도 없앤다. 흰 면은 「읽을 내용」에만 남는다 —
93
+ * 그 규칙이 서면 카드가 곧 본문이라는 것이 모양만으로 읽힌다.
94
+ */
95
+ :host {
96
+ display: flex;
97
+ align-items: center;
98
+ gap: var(--spacing-medium, 8px);
99
+
100
+ /* office control height, the same for mouse and finger (WCAG AA target, user decision 2026-09-17) */
101
+ min-height: 36px;
102
+ padding: 0 var(--spacing-large, 16px);
103
+ box-sizing: border-box;
104
+
105
+ color: var(--ui-ink, #17242c);
106
+ font-size: var(--ui-t-body, 13px);
107
+ }
108
+
109
+ /* ── 상태 ────────────────────────────────────────────────────────────── */
110
+ .state {
111
+ display: inline-flex;
112
+ align-items: center;
113
+ gap: 6px;
114
+ flex: none;
115
+ font-weight: 600;
116
+ white-space: nowrap;
117
+ }
118
+
119
+ /*
120
+ * 상태색을 쓰는 자리는 이 점 하나다. 기본값은 --ui-muted — 서버가 아직 모르는 상태 이름이
121
+ * 오더라도 점이 사라지지 않고 회색으로 남는다(색이 없으면 상태가 없는 것처럼 보인다).
122
+ */
123
+ .dot {
124
+ width: 8px;
125
+ height: 8px;
126
+ border-radius: 50%;
127
+ background: var(--worklist-state-color, var(--ui-muted, #57676f));
128
+ }
129
+
130
+ /* ── 설명 ────────────────────────────────────────────────────────────── */
131
+ /*
132
+ * 한 줄로 자른다. 이 자리는 머리 띠라 높이가 고정이고, 설명이 길면 아래 내용을 밀어낸다.
133
+ * 전체 글은 정보 아이콘이 여는 overlay 가 갖는다.
134
+ *
135
+ * ── 늘어나지 않는다 (2026-09-20, :4000 실측) ──────────────────────────
136
+ * flex: 1 은 남는 자리를 전부 설명이 가져가게 한다. 그러면 그 뒤의 결재선 · 담당자가 띠의
137
+ * 오른쪽 끝으로 밀린다. 1024px 창의 결재 화면에서 잰 값이다:
138
+ *
139
+ * 설명 「화면 발행 승인」 제 너비 75px → 늘어나서 417px
140
+ * 결재선 왼쪽 끝 x=407 → x=750
141
+ * 본문이 시작하는 자리 x=254
142
+ *
143
+ * 결재선은 이 화면에서 「지금 누구 차례인가」를 말하는 유일한 자리인데, 본문을 훑어 내려가는
144
+ * 눈이 지나는 왼쪽 축에서 496px 떨어져 있었다. 창이 넓어질수록 더 멀어진다 — 설명이 가져가는
145
+ * 자리가 창 폭을 따라 늘기 때문이다.
146
+ *
147
+ * 늘리지 않으면 셋이 왼쪽부터 차례로 선다(상태 · 설명 · 결재선). 긴 설명에서는 여전히 잘린다 —
148
+ * min-width: 0 과 ellipsis 가 이미 있고, 그때는 결재선이 예전 자리로 돌아간다.
149
+ */
150
+ .desc {
151
+ flex: 0 1 auto;
152
+ min-width: 0;
153
+ overflow: hidden;
154
+ text-overflow: ellipsis;
155
+ white-space: nowrap;
156
+ color: var(--ui-muted, #57676f);
157
+ }
158
+
159
+ /* ── 정보 아이콘 ─────────────────────────────────────────────────────── */
160
+ /*
161
+ * 상태 바로 뒤에 둔다. 전에는 띠의 오른쪽 끝, 결재선 바로 왼쪽에 있었다 — 그 자리에서는
162
+ * **결재선의 일부처럼** 읽힌다(결재선을 펴 보는 단추인가 하고 누르게 된다).
163
+ *
164
+ * 이 아이콘이 여는 것은 이 건의 기본 정보이고, 그 패널의 첫 줄이 상태다. 상태 옆에 붙여
165
+ * 두 개가 한 덩어리로 읽히게 한다 — 앞의 gap 만 좁혀서 붙이고 뒤는 띠의 기본 간격을 쓴다.
166
+ */
167
+ .info {
168
+ flex: none;
169
+ margin-left: calc(var(--spacing-medium, 8px) * -1 + 4px);
170
+ cursor: pointer;
171
+ color: var(--ui-muted, #57676f);
172
+ font-size: 18px;
173
+ }
174
+
175
+ .info:hover {
176
+ color: var(--ui-ink, #17242c);
177
+ }
178
+
179
+ /* 키보드로 온 것이 보여야 한다 — 이 아이콘은 role=button 이라 탭 순서에 든다. */
180
+ .info:focus-visible {
181
+ outline: 2px solid var(--ui-accent, #00727e);
182
+ outline-offset: 2px;
183
+ border-radius: 50%;
184
+ color: var(--ui-ink, #17242c);
185
+ }
186
+
187
+ /* ── 담당자 ──────────────────────────────────────────────────────────── */
188
+ .who {
189
+ display: inline-flex;
190
+ align-items: baseline;
191
+ gap: 5px;
192
+ flex: none;
193
+ white-space: nowrap;
194
+ }
195
+
196
+ .who-label {
197
+ font-size: var(--ui-t-small, 11.5px);
198
+ color: var(--ui-muted, #57676f);
199
+ }
200
+
201
+ /* ── 결재선 ──────────────────────────────────────────────────────────── */
202
+ approval-line-brief {
203
+ flex: none;
204
+ font-size: var(--ui-t-small, 11.5px);
205
+ }
206
+
207
+ /*
208
+ * 좁은 화면 — 결재선과 담당자를 감춘다. 상태와 설명이 먼저다.
209
+ *
210
+ * 결재선은 단계마다 44px 이상을 쓴다. 세 단계면 이음선까지 200px 을 넘고, 460px 화면에서는
211
+ * 설명이 들어갈 자리가 남지 않는다.
212
+ */
213
+ @media only screen and (max-width: 460px) {
214
+ :host {
215
+ padding: 0 var(--spacing-medium, 8px);
216
+ }
217
+
218
+ .who,
219
+ approval-line-brief {
220
+ display: none;
221
+ }
222
+ }
223
+ `;
224
+ export const StateRibonStyles = [WorklistStateColors, StateRibonOwnStyles];
225
+ //# sourceMappingURL=state-ribon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-ribon.js","sourceRoot":"","sources":["../../client/components/state-ribon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCrC,CAAA;AAED,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6I9B,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAA","sourcesContent":["import { css } from 'lit'\n\n/**\n * 업무 · 결재 화면의 머리 띠 — **세 화면이 한 모양을 쓴다.**\n *\n * activity-thread-ribon · activity-approval-ribon · activity-instance-ribon 이 같은 자리에 같은\n * 것을 보인다(상태 · 설명 · 결재선 또는 담당자). 그런데 셋이 각자 100여 줄의 CSS 를 갖고 있었고,\n * 상태색 여덟 개가 세 벌로 복사되어 있었다.\n *\n * ── 채운 띠를 걷은 이유 — 글자가 안 읽혔다 ─────────────────────────────────\n * 전에는 상태마다 다른 색으로 띠 전체를 채우고 그 위에 흰 글자를 얹었다. 색은 하드코딩된 hex 여덟\n * 개였고, --md-sys-color-on-primary(대개 흰색)를 글자색으로 썼다. contrast 를 계산하면 12px 글자\n * 기준 AA(4.5:1)에 네 개가 못 미친다.\n *\n * started #56af45 2.76 ← 작업자가 가장 오래 보는 상태\n * ended #02acae 2.79\n * rejected #f27429 2.87\n * submitted #428df3 3.31\n * unassigned #5f7184 5.02 (통과)\n * escalated #595de5 5.09 (통과)\n * aborted #cb3a33 5.01 (통과)\n * delegated #8654b0 5.37 (통과)\n *\n * 색을 여덟 개 다시 고르는 대신 **띠를 채우지 않는다.** SurfaceStyles 가 정한 규칙과 같다 —\n * 흰 면에 1px 선을 두르고, 색은 상태 앞의 점 하나가 말한다. 글자는 --ui-ink 라 어느 상태에서든\n * 읽히고, 점은 UI 요소라 3:1 기준으로 판단한다.\n *\n * ── 색 여덟 개를 뜻 여섯 개로 ──────────────────────────────────────────────\n * 하드코딩된 hex 는 앱 팔레트를 따르지 않는다. worklist 는 framework 패키지라 operato-plant ·\n * operato-gangsters · operato-dataset 이 모두 이 화면을 쓰는데, 어느 앱에서도 그 앱 색이 아니었다.\n * 토큰으로 바꾸면 앱마다 자기 라이트 · 다크 테마를 따라온다.\n *\n * unassigned · assigned --ui-muted 아직 시작하지 않았다\n * started --ui-accent 내 손에서 진행 중이다\n * submitted · escalated · delegated --ui-info 남의 판단을 기다린다\n * rejected --ui-warn 되돌아왔다. 다시 해야 한다\n * ended · approved --ui-good 끝났다\n * aborted --ui-crit 중단됐다\n *\n * 색만으로 뜻을 전하지 않는다 — 상태 이름을 항상 함께 적는다.\n */\n/**\n * The state → colour mapping above, alone - for anything that shows a worklist state, not only the\n * ribbon. Set on `:host([state=...])`; read `--worklist-state-color`. The activity instance view kept\n * a fourth copy of the old eight hex colours after the ribbons moved to meanings; three of them were\n * under 3:1 on a light surface (started 2.62 · rejected 2.73 · ended 2.65, measured on :4000\n * 2026-09-24) and `unassigned` had none, so it drew tomato.\n */\nexport const WorklistStateColors = css`\n :host([state='unassigned']),\n :host([state='assigned']),\n :host([state='draft']) {\n --worklist-state-color: var(--ui-muted, #57676f);\n }\n\n :host([state='started']),\n :host([state='issued']),\n :host([state='posted']) {\n --worklist-state-color: var(--ui-accent, #00727e);\n }\n\n :host([state='submitted']),\n :host([state='escalated']),\n :host([state='delegated']),\n :host([state='pending']) {\n --worklist-state-color: var(--ui-info, #2b72ad);\n }\n\n :host([state='rejected']) {\n --worklist-state-color: var(--ui-warn, #9f5e02);\n }\n\n :host([state='ended']),\n :host([state='approved']) {\n --worklist-state-color: var(--ui-good, #297d39);\n }\n\n :host([state='aborted']),\n :host([state='deprecated']) {\n --worklist-state-color: var(--ui-crit, #d14946);\n }\n`\n\nconst StateRibonOwnStyles = css`\n /*\n * ── 면을 갖지 않는다 (2026-09-06) ─────────────────────────────────────\n * 채운 색 띠를 걷어내면서 흰 면(--ui-panel)으로 바꿨는데, 그것이 카드와 **같은 색**이었다.\n * 그래서 한 화면에 흰 블록이 넷이 되고(머리 띠 · 내용 · 타임라인 · 의견) 위계가 사라졌다.\n * 실측: 결재 화면의 네 블록이 전부 rgb(255,255,255) 에 1px 테두리였다.\n *\n * 이 띠가 말하는 것(상태 · 설명 · 결재선)은 전부 보조다. 사용자가 먼저 묻는 것은 「무엇을\n * 승인하나」이지 「지금 몇 단계인가」가 아니다.\n *\n * 그래서 페이지 바탕이 비치게 두고 아래 구분선도 없앤다. 흰 면은 「읽을 내용」에만 남는다 —\n * 그 규칙이 서면 카드가 곧 본문이라는 것이 모양만으로 읽힌다.\n */\n :host {\n display: flex;\n align-items: center;\n gap: var(--spacing-medium, 8px);\n\n /* office control height, the same for mouse and finger (WCAG AA target, user decision 2026-09-17) */\n min-height: 36px;\n padding: 0 var(--spacing-large, 16px);\n box-sizing: border-box;\n\n color: var(--ui-ink, #17242c);\n font-size: var(--ui-t-body, 13px);\n }\n\n /* ── 상태 ────────────────────────────────────────────────────────────── */\n .state {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex: none;\n font-weight: 600;\n white-space: nowrap;\n }\n\n /*\n * 상태색을 쓰는 자리는 이 점 하나다. 기본값은 --ui-muted — 서버가 아직 모르는 상태 이름이\n * 오더라도 점이 사라지지 않고 회색으로 남는다(색이 없으면 상태가 없는 것처럼 보인다).\n */\n .dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--worklist-state-color, var(--ui-muted, #57676f));\n }\n\n /* ── 설명 ────────────────────────────────────────────────────────────── */\n /*\n * 한 줄로 자른다. 이 자리는 머리 띠라 높이가 고정이고, 설명이 길면 아래 내용을 밀어낸다.\n * 전체 글은 정보 아이콘이 여는 overlay 가 갖는다.\n *\n * ── 늘어나지 않는다 (2026-09-20, :4000 실측) ──────────────────────────\n * flex: 1 은 남는 자리를 전부 설명이 가져가게 한다. 그러면 그 뒤의 결재선 · 담당자가 띠의\n * 오른쪽 끝으로 밀린다. 1024px 창의 결재 화면에서 잰 값이다:\n *\n * 설명 「화면 발행 승인」 제 너비 75px → 늘어나서 417px\n * 결재선 왼쪽 끝 x=407 → x=750\n * 본문이 시작하는 자리 x=254\n *\n * 결재선은 이 화면에서 「지금 누구 차례인가」를 말하는 유일한 자리인데, 본문을 훑어 내려가는\n * 눈이 지나는 왼쪽 축에서 496px 떨어져 있었다. 창이 넓어질수록 더 멀어진다 — 설명이 가져가는\n * 자리가 창 폭을 따라 늘기 때문이다.\n *\n * 늘리지 않으면 셋이 왼쪽부터 차례로 선다(상태 · 설명 · 결재선). 긴 설명에서는 여전히 잘린다 —\n * min-width: 0 과 ellipsis 가 이미 있고, 그때는 결재선이 예전 자리로 돌아간다.\n */\n .desc {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--ui-muted, #57676f);\n }\n\n /* ── 정보 아이콘 ─────────────────────────────────────────────────────── */\n /*\n * 상태 바로 뒤에 둔다. 전에는 띠의 오른쪽 끝, 결재선 바로 왼쪽에 있었다 — 그 자리에서는\n * **결재선의 일부처럼** 읽힌다(결재선을 펴 보는 단추인가 하고 누르게 된다).\n *\n * 이 아이콘이 여는 것은 이 건의 기본 정보이고, 그 패널의 첫 줄이 상태다. 상태 옆에 붙여\n * 두 개가 한 덩어리로 읽히게 한다 — 앞의 gap 만 좁혀서 붙이고 뒤는 띠의 기본 간격을 쓴다.\n */\n .info {\n flex: none;\n margin-left: calc(var(--spacing-medium, 8px) * -1 + 4px);\n cursor: pointer;\n color: var(--ui-muted, #57676f);\n font-size: 18px;\n }\n\n .info:hover {\n color: var(--ui-ink, #17242c);\n }\n\n /* 키보드로 온 것이 보여야 한다 — 이 아이콘은 role=button 이라 탭 순서에 든다. */\n .info:focus-visible {\n outline: 2px solid var(--ui-accent, #00727e);\n outline-offset: 2px;\n border-radius: 50%;\n color: var(--ui-ink, #17242c);\n }\n\n /* ── 담당자 ──────────────────────────────────────────────────────────── */\n .who {\n display: inline-flex;\n align-items: baseline;\n gap: 5px;\n flex: none;\n white-space: nowrap;\n }\n\n .who-label {\n font-size: var(--ui-t-small, 11.5px);\n color: var(--ui-muted, #57676f);\n }\n\n /* ── 결재선 ──────────────────────────────────────────────────────────── */\n approval-line-brief {\n flex: none;\n font-size: var(--ui-t-small, 11.5px);\n }\n\n /*\n * 좁은 화면 — 결재선과 담당자를 감춘다. 상태와 설명이 먼저다.\n *\n * 결재선은 단계마다 44px 이상을 쓴다. 세 단계면 이음선까지 200px 을 넘고, 460px 화면에서는\n * 설명이 들어갈 자리가 남지 않는다.\n */\n @media only screen and (max-width: 460px) {\n :host {\n padding: 0 var(--spacing-medium, 8px);\n }\n\n .who,\n approval-line-brief {\n display: none;\n }\n }\n`\n\nexport const StateRibonStyles = [WorklistStateColors, StateRibonOwnStyles]\n"]}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * What a thread's timeline lists, and in what order - one line per thing a person did.
3
+ *
4
+ * A thread keeps two records of one decision: the approval row (who judged, what they wrote) and
5
+ * the thread history the judgment wrote (`approve` · `reject` · `escalate`, with the same comment
6
+ * as its reason). Listing both drew an approval by 경영지원 as 「상신 정연희」 and 「승인됨 정연희」
7
+ * with the comment twice (2026-10-16) - and 「상신」, the word `escalate` carries, read as if the
8
+ * approver had put the request up. The approval row is the judgment; the history line is dropped.
9
+ *
10
+ * Putting something up writes `post` and `submit` at the same moment, so one 상신 showed as
11
+ * 「제출」 and 「게시」 - in either order, the time being equal. `post` is dropped where the thread
12
+ * was submitted; a tie in time keeps the order things happen in.
13
+ *
14
+ * Kept free of imports so the test runner can hold it.
15
+ */
16
+ type HistoryLine = {
17
+ transaction?: string;
18
+ reason?: any;
19
+ updatedAt?: any;
20
+ createdAt?: any;
21
+ terminatedAt?: any;
22
+ };
23
+ type ApprovalLine = {
24
+ judgment?: string;
25
+ updatedAt?: any;
26
+ createdAt?: any;
27
+ terminatedAt?: any;
28
+ };
29
+ /** The moment a line shows - and is sorted by. */
30
+ export declare function whenOf(item: any): number;
31
+ /**
32
+ * `shortForm` is every screen's timeline today. Without it every history line stays - the long form
33
+ * is the record as stored - and only the order of lines at one moment is set.
34
+ */
35
+ export declare function timelineEntries<H extends HistoryLine, A extends ApprovalLine>(histories: readonly H[], approvals: readonly A[], { shortForm }?: {
36
+ shortForm?: boolean;
37
+ }): (H | A)[];
38
+ export {};
@@ -0,0 +1,62 @@
1
+ /**
2
+ * What a thread's timeline lists, and in what order - one line per thing a person did.
3
+ *
4
+ * A thread keeps two records of one decision: the approval row (who judged, what they wrote) and
5
+ * the thread history the judgment wrote (`approve` · `reject` · `escalate`, with the same comment
6
+ * as its reason). Listing both drew an approval by 경영지원 as 「상신 정연희」 and 「승인됨 정연희」
7
+ * with the comment twice (2026-10-16) - and 「상신」, the word `escalate` carries, read as if the
8
+ * approver had put the request up. The approval row is the judgment; the history line is dropped.
9
+ *
10
+ * Putting something up writes `post` and `submit` at the same moment, so one 상신 showed as
11
+ * 「제출」 and 「게시」 - in either order, the time being equal. `post` is dropped where the thread
12
+ * was submitted; a tie in time keeps the order things happen in.
13
+ *
14
+ * Kept free of imports so the test runner can hold it.
15
+ */
16
+ /** History lines an approval row already says, or that are no step anyone took. */
17
+ const NOT_SHOWN = ['approve', 'reject', 'escalate', 'save'];
18
+ /** The order things happen in on one thread, for lines at the same moment. Approval rows sit at 4; an unknown step with them. */
19
+ const STEP_ORDER = {
20
+ post: 0,
21
+ start: 1,
22
+ restart: 1,
23
+ delegate: 2,
24
+ submit: 3,
25
+ /* the judgment's own lines follow the approval row that made them */
26
+ approve: 5,
27
+ reject: 5,
28
+ escalate: 5,
29
+ end: 6,
30
+ abort: 6
31
+ };
32
+ const APPROVAL_ORDER = 4;
33
+ /** The moment a line shows - and is sorted by. */
34
+ export function whenOf(item) {
35
+ const at = item?.terminatedAt ?? item?.updatedAt ?? item?.createdAt;
36
+ const ms = at === null || at === undefined || at === '' ? NaN : Date.parse(String(at));
37
+ return Number.isFinite(ms) ? ms : 0;
38
+ }
39
+ function isHistory(item) {
40
+ return 'reason' in item;
41
+ }
42
+ function stepOf(item) {
43
+ return isHistory(item) ? STEP_ORDER[String(item.transaction)] ?? APPROVAL_ORDER : APPROVAL_ORDER;
44
+ }
45
+ /**
46
+ * `shortForm` is every screen's timeline today. Without it every history line stays - the long form
47
+ * is the record as stored - and only the order of lines at one moment is set.
48
+ */
49
+ export function timelineEntries(histories, approvals, { shortForm = false } = {}) {
50
+ const submitted = histories.some(item => item.transaction === 'submit');
51
+ const shown = (item) => !shortForm ||
52
+ (!NOT_SHOWN.some(word => String(item.transaction).includes(word)) && !(item.transaction === 'post' && submitted));
53
+ const lines = [
54
+ ...histories.filter(item => !!item.transaction && shown(item)),
55
+ ...approvals.filter(item => item.judgment)
56
+ ];
57
+ return lines
58
+ .map((item, at) => ({ item, at }))
59
+ .sort((a, b) => whenOf(a.item) - whenOf(b.item) || stepOf(a.item) - stepOf(b.item) || a.at - b.at)
60
+ .map(({ item }) => item);
61
+ }
62
+ //# sourceMappingURL=timeline-entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-entries.js","sourceRoot":"","sources":["../../client/components/timeline-entries.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * What a thread's timeline lists, and in what order - one line per thing a person did.\n *\n * A thread keeps two records of one decision: the approval row (who judged, what they wrote) and\n * the thread history the judgment wrote (`approve` · `reject` · `escalate`, with the same comment\n * as its reason). Listing both drew an approval by 경영지원 as 「상신 정연희」 and 「승인됨 정연희」\n * with the comment twice (2026-10-16) - and 「상신」, the word `escalate` carries, read as if the\n * approver had put the request up. The approval row is the judgment; the history line is dropped.\n *\n * Putting something up writes `post` and `submit` at the same moment, so one 상신 showed as\n * 「제출」 and 「게시」 - in either order, the time being equal. `post` is dropped where the thread\n * was submitted; a tie in time keeps the order things happen in.\n *\n * Kept free of imports so the test runner can hold it.\n */\n\n/** History lines an approval row already says, or that are no step anyone took. */\nconst NOT_SHOWN = ['approve', 'reject', 'escalate', 'save']\n\n/** The order things happen in on one thread, for lines at the same moment. Approval rows sit at 4; an unknown step with them. */\nconst STEP_ORDER: Record<string, number> = {\n post: 0,\n start: 1,\n restart: 1,\n delegate: 2,\n submit: 3,\n /* the judgment's own lines follow the approval row that made them */\n approve: 5,\n reject: 5,\n escalate: 5,\n end: 6,\n abort: 6\n}\nconst APPROVAL_ORDER = 4\n\ntype HistoryLine = { transaction?: string; reason?: any; updatedAt?: any; createdAt?: any; terminatedAt?: any }\ntype ApprovalLine = { judgment?: string; updatedAt?: any; createdAt?: any; terminatedAt?: any }\n\n/** The moment a line shows - and is sorted by. */\nexport function whenOf(item: any): number {\n const at = item?.terminatedAt ?? item?.updatedAt ?? item?.createdAt\n\n const ms = at === null || at === undefined || at === '' ? NaN : Date.parse(String(at))\n\n return Number.isFinite(ms) ? ms : 0\n}\n\nfunction isHistory(item: any): item is HistoryLine {\n return 'reason' in item\n}\n\nfunction stepOf(item: HistoryLine | ApprovalLine): number {\n return isHistory(item) ? STEP_ORDER[String(item.transaction)] ?? APPROVAL_ORDER : APPROVAL_ORDER\n}\n\n/**\n * `shortForm` is every screen's timeline today. Without it every history line stays - the long form\n * is the record as stored - and only the order of lines at one moment is set.\n */\nexport function timelineEntries<H extends HistoryLine, A extends ApprovalLine>(\n histories: readonly H[],\n approvals: readonly A[],\n { shortForm = false }: { shortForm?: boolean } = {}\n): (H | A)[] {\n const submitted = histories.some(item => item.transaction === 'submit')\n const shown = (item: H) =>\n !shortForm ||\n (!NOT_SHOWN.some(word => String(item.transaction).includes(word)) && !(item.transaction === 'post' && submitted))\n\n const lines = [\n ...histories.filter(item => !!item.transaction && shown(item)),\n ...approvals.filter(item => item.judgment)\n ]\n\n return lines\n .map((item, at) => ({ item, at }))\n .sort((a, b) => whenOf(a.item) - whenOf(b.item) || stepOf(a.item) - stepOf(b.item) || a.at - b.at)\n .map(({ item }) => item)\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { LitElement } from 'lit';
2
+ export type WorkBoxGroupTab = {
3
+ key: string;
4
+ /** Translation key of the tab's name. */
5
+ label: string;
6
+ /** Translation key of what the group is, shown on hover. */
7
+ hint: string;
8
+ /** Undefined draws no number - a count that could not be read is not zero. */
9
+ count?: number;
10
+ };
11
+ /**
12
+ * The groups of a work box, drawn the one way all three boxes draw them (pages/todo/work-box.ts).
13
+ *
14
+ * It sits above the list, outside the grid's headroom. In the headroom it would fold away with the
15
+ * filters, and with it the only way to the other groups. Filters may fold - unfolding gives the
16
+ * whole list back - but this must not.
17
+ *
18
+ * Choosing fires `select` with the group's key; the page changes its address.
19
+ */
20
+ export declare class WorkBoxGroups extends LitElement {
21
+ static styles: import("lit").CSSResult;
22
+ groups: WorkBoxGroupTab[];
23
+ selected: string;
24
+ render(): import("lit-html").TemplateResult<1>[];
25
+ }
@@ -0,0 +1,98 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { i18next } from '@operato/i18n';
5
+ /**
6
+ * The groups of a work box, drawn the one way all three boxes draw them (pages/todo/work-box.ts).
7
+ *
8
+ * It sits above the list, outside the grid's headroom. In the headroom it would fold away with the
9
+ * filters, and with it the only way to the other groups. Filters may fold - unfolding gives the
10
+ * whole list back - but this must not.
11
+ *
12
+ * Choosing fires `select` with the group's key; the page changes its address.
13
+ */
14
+ let WorkBoxGroups = class WorkBoxGroups extends LitElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.groups = [];
18
+ this.selected = '';
19
+ }
20
+ static { this.styles = css `
21
+ :host {
22
+ flex: none;
23
+ display: flex;
24
+ gap: var(--spacing-large);
25
+ padding: 0 var(--spacing-medium);
26
+ border-bottom: 1px solid var(--ui-line, #d5dce0);
27
+ }
28
+
29
+ button {
30
+ border: none;
31
+ background: none;
32
+ padding: var(--spacing-medium) 2px calc(var(--spacing-medium) - 2px);
33
+ border-bottom: 2px solid transparent;
34
+ font: inherit;
35
+ font-size: 14px;
36
+ color: var(--ui-muted, #57676f);
37
+ cursor: pointer;
38
+ }
39
+
40
+ button:hover:not([data-selected]) {
41
+ color: var(--ui-ink, #17272f);
42
+ }
43
+
44
+ /*
45
+ * ── 색은 밑줄이 말하고, 글자는 읽히는 색으로 ──────────────────────────────
46
+ * 고른 탭의 글자를 --ui-accent 로 두었는데, 그 토큰이 브랜드 초록(#0e8a56)이 되면서 14px
47
+ * 글자로는 안 읽히게 됐다.
48
+ *
49
+ * [확인함] 초록 #0e8a56 · 배경 rgb(240 242 244) → 대비 3.91. 본문 글자 기준 4.5 미달이다.
50
+ * 흰 바탕 기준으로는 4.39 인데, **이 앱 배경은 흰색이 아니라** 더 나쁘다.
51
+ *
52
+ * --ui-ink 15.1 고른 탭 글자
53
+ * --ui-muted 5.52 안 고른 탭 글자
54
+ * --ui-accent 3.91 밑줄 — UI 요소는 3.0 기준이라 통과한다
55
+ *
56
+ * 밑줄은 선택을 가장 강하게 표시하는 자리다. 브랜드색이 거기 남으면 잃는 것이 없다.
57
+ */
58
+ button[data-selected] {
59
+ font-weight: 600;
60
+ color: var(--ui-ink, #17272f);
61
+ border-bottom-color: var(--ui-accent, #262e38);
62
+ }
63
+
64
+ .n {
65
+ margin-left: 4px;
66
+ color: var(--ui-faint, #8a959c);
67
+ }
68
+
69
+ button[data-selected] .n {
70
+ color: inherit;
71
+ }
72
+ `; }
73
+ render() {
74
+ return this.groups.map(({ key, label, hint, count }) => html `
75
+ <button
76
+ ?data-selected=${this.selected === key}
77
+ title=${i18next.t(hint)}
78
+ @click=${() => this.dispatchEvent(new CustomEvent('select', { detail: key }))}
79
+ >
80
+ ${i18next.t(label)}
81
+ ${count !== undefined ? html `<span class="n">${count.toLocaleString(i18next.language || undefined)}</span>` : ''}
82
+ </button>
83
+ `);
84
+ }
85
+ };
86
+ __decorate([
87
+ property({ type: Array }),
88
+ __metadata("design:type", Array)
89
+ ], WorkBoxGroups.prototype, "groups", void 0);
90
+ __decorate([
91
+ property({ type: String }),
92
+ __metadata("design:type", Object)
93
+ ], WorkBoxGroups.prototype, "selected", void 0);
94
+ WorkBoxGroups = __decorate([
95
+ customElement('work-box-groups')
96
+ ], WorkBoxGroups);
97
+ export { WorkBoxGroups };
98
+ //# sourceMappingURL=work-box-groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-box-groups.js","sourceRoot":"","sources":["../../client/components/work-box-groups.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAYvC;;;;;;;;GAQG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAuDsB,WAAM,GAAsB,EAAE,CAAA;QAC7B,aAAQ,GAAG,EAAE,CAAA;IAgB3C,CAAC;aAvEQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDlB,AApDY,CAoDZ;IAKD,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA;;2BAEhB,IAAI,CAAC,QAAQ,KAAK,GAAG;kBAC9B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;mBACd,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;;YAE3E,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAChB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA,mBAAmB,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;OAEnH,CACF,CAAA;IACH,CAAC;;AAhB0B;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;6CAA+B;AAC7B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CAAc;AAxD9B,aAAa;IADzB,aAAa,CAAC,iBAAiB,CAAC;GACpB,aAAa,CAwEzB","sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { i18next } from '@operato/i18n'\n\nexport type WorkBoxGroupTab = {\n key: string\n /** Translation key of the tab's name. */\n label: string\n /** Translation key of what the group is, shown on hover. */\n hint: string\n /** Undefined draws no number - a count that could not be read is not zero. */\n count?: number\n}\n\n/**\n * The groups of a work box, drawn the one way all three boxes draw them (pages/todo/work-box.ts).\n *\n * It sits above the list, outside the grid's headroom. In the headroom it would fold away with the\n * filters, and with it the only way to the other groups. Filters may fold - unfolding gives the\n * whole list back - but this must not.\n *\n * Choosing fires `select` with the group's key; the page changes its address.\n */\n@customElement('work-box-groups')\nexport class WorkBoxGroups extends LitElement {\n static styles = css`\n :host {\n flex: none;\n display: flex;\n gap: var(--spacing-large);\n padding: 0 var(--spacing-medium);\n border-bottom: 1px solid var(--ui-line, #d5dce0);\n }\n\n button {\n border: none;\n background: none;\n padding: var(--spacing-medium) 2px calc(var(--spacing-medium) - 2px);\n border-bottom: 2px solid transparent;\n font: inherit;\n font-size: 14px;\n color: var(--ui-muted, #57676f);\n cursor: pointer;\n }\n\n button:hover:not([data-selected]) {\n color: var(--ui-ink, #17272f);\n }\n\n /*\n * ── 색은 밑줄이 말하고, 글자는 읽히는 색으로 ──────────────────────────────\n * 고른 탭의 글자를 --ui-accent 로 두었는데, 그 토큰이 브랜드 초록(#0e8a56)이 되면서 14px\n * 글자로는 안 읽히게 됐다.\n *\n * [확인함] 초록 #0e8a56 · 배경 rgb(240 242 244) → 대비 3.91. 본문 글자 기준 4.5 미달이다.\n * 흰 바탕 기준으로는 4.39 인데, **이 앱 배경은 흰색이 아니라** 더 나쁘다.\n *\n * --ui-ink 15.1 고른 탭 글자\n * --ui-muted 5.52 안 고른 탭 글자\n * --ui-accent 3.91 밑줄 — UI 요소는 3.0 기준이라 통과한다\n *\n * 밑줄은 선택을 가장 강하게 표시하는 자리다. 브랜드색이 거기 남으면 잃는 것이 없다.\n */\n button[data-selected] {\n font-weight: 600;\n color: var(--ui-ink, #17272f);\n border-bottom-color: var(--ui-accent, #262e38);\n }\n\n .n {\n margin-left: 4px;\n color: var(--ui-faint, #8a959c);\n }\n\n button[data-selected] .n {\n color: inherit;\n }\n `\n\n @property({ type: Array }) groups: WorkBoxGroupTab[] = []\n @property({ type: String }) selected = ''\n\n render() {\n return this.groups.map(\n ({ key, label, hint, count }) => html`\n <button\n ?data-selected=${this.selected === key}\n title=${i18next.t(hint)}\n @click=${() => this.dispatchEvent(new CustomEvent('select', { detail: key }))}\n >\n ${i18next.t(label)}\n ${count !== undefined ? html`<span class=\"n\">${count.toLocaleString(i18next.language || undefined)}</span>` : ''}\n </button>\n `\n )\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 남은 시간을 사람의 말로 — 값을 알 수 없으면 **빈 문자열이 아니라 모른다고 말한다.**
3
+ *
4
+ * 기한이 지난 것은 「지남」을 붙인다. 전에는 `- ` 를 앞에 붙였는데, 그 하이픈이 「값이 없다」와
5
+ * 구별되지 않았다.
6
+ */
7
+ export declare function dueText(dueAt: unknown, asOf?: number): string;
8
+ /**
9
+ * 화면에 살아 있는 남은 시간 — 1분마다 다시 낸다.
10
+ *
11
+ * `isActive` 를 받는 이유는 화면이 뒤로 간 뒤에도 도는 것을 막기 위해서다. 예전에는 각 화면이
12
+ * `this.active` 를 직접 봤다.
13
+ */
14
+ export declare function dueTimer(dueAt: unknown, isActive?: () => boolean): AsyncGenerator<string, void, unknown>;
15
+ /** 기한이 지났나 — 줄을 강조할지 정하는 자리가 쓴다. */
16
+ export declare function isOverdue(dueAt: unknown, asOf?: number): boolean;
@@ -0,0 +1,78 @@
1
+ import { i18next } from '@operato/i18n';
2
+ import { sleep } from '@operato/utils';
3
+ /*
4
+ * 기한까지 얼마나 남았나 — **한 곳에서만 계산한다.**
5
+ *
6
+ * ── 왜 모았나 (2026-09-01) ─────────────────────────────────────────────────
7
+ * 같은 함수가 세 화면에 복사되어 있었고 구현이 갈려 있었다.
8
+ *
9
+ * activity-instance-list-page.ts Date.parse(exp) 맞음
10
+ * todo-list-page.ts Date.parse(exp) 맞음
11
+ * approval-pending-list-page.ts Number(exp) 틀림
12
+ *
13
+ * `dueAt` 은 ISO 문자열이다(`"2026-09-02T03:48:27.289Z"`). 그것을 `Number()` 로 읽으면 NaN 이고,
14
+ * 그러면 날·시·분이 모두 NaN 이라 falsy 가 되어 전부 빠지고 `positive` 도 거짓이 된다. 남는 것은
15
+ * 접두사 `- ` 하나다.
16
+ *
17
+ * 그래서 **내 결재함의 「남은 시간」 칸은 기한이 있어도 하이픈 하나만 나왔다.** 오류는 나지 않는다.
18
+ * 실측: Number("2026-09-02T03:48:27.289Z") = NaN, Date.parse(같은 값) = 1788320907289.
19
+ *
20
+ * 복사본이 셋이면 한 곳을 고쳐도 나머지 둘은 그대로다. 그래서 옮기지 않고 모았다.
21
+ */
22
+ const MIN = 60;
23
+ const HOUR = 60 * MIN;
24
+ const DAY = 24 * HOUR;
25
+ /**
26
+ * 남은 시간을 사람의 말로 — 값을 알 수 없으면 **빈 문자열이 아니라 모른다고 말한다.**
27
+ *
28
+ * 기한이 지난 것은 「지남」을 붙인다. 전에는 `- ` 를 앞에 붙였는데, 그 하이픈이 「값이 없다」와
29
+ * 구별되지 않았다.
30
+ */
31
+ export function dueText(dueAt, asOf = Date.now()) {
32
+ const at = dueAt === null || dueAt === undefined || dueAt === '' ? NaN : Date.parse(String(dueAt));
33
+ if (!Number.isFinite(at)) {
34
+ return i18next.t('text.no-due');
35
+ }
36
+ let secs = Math.round((at - asOf) / 1000);
37
+ const overdue = secs < 0;
38
+ secs = Math.abs(secs);
39
+ const days = Math.floor(secs / DAY);
40
+ secs -= days * DAY;
41
+ const hours = Math.floor(secs / HOUR);
42
+ secs -= hours * HOUR;
43
+ const minutes = Math.floor(secs / MIN);
44
+ const parts = [
45
+ days ? `${days}${i18next.t('label.days')}` : '',
46
+ hours ? `${hours}${i18next.t('label.hours')}` : '',
47
+ /* 날이 있으면 분까지 적지 않는다 — 「3일 5시간 12분」은 읽는 사람이 쓰지 않는 정밀도다. */
48
+ !days && minutes ? `${minutes}${i18next.t('label.minutes')}` : ''
49
+ ].filter(Boolean);
50
+ /* 1분도 안 남은 것은 0 으로 적지 않는다. 곧이라는 뜻이다. */
51
+ if (!parts.length) {
52
+ return i18next.t(overdue ? 'text.due-just-passed' : 'text.due-within-a-minute');
53
+ }
54
+ return i18next.t(overdue ? 'text.due-overdue-by' : 'text.due-left-in', { span: parts.join(' ') });
55
+ }
56
+ /**
57
+ * 화면에 살아 있는 남은 시간 — 1분마다 다시 낸다.
58
+ *
59
+ * `isActive` 를 받는 이유는 화면이 뒤로 간 뒤에도 도는 것을 막기 위해서다. 예전에는 각 화면이
60
+ * `this.active` 를 직접 봤다.
61
+ */
62
+ export async function* dueTimer(dueAt, isActive = () => true) {
63
+ /* 기한이 없으면 한 번만 말하고 끝낸다 — 1분마다 같은 말을 다시 낼 일이 없다. */
64
+ if (dueAt === null || dueAt === undefined || dueAt === '') {
65
+ yield dueText(dueAt);
66
+ return;
67
+ }
68
+ while (isActive()) {
69
+ yield dueText(dueAt);
70
+ await sleep(60 * 1000);
71
+ }
72
+ }
73
+ /** 기한이 지났나 — 줄을 강조할지 정하는 자리가 쓴다. */
74
+ export function isOverdue(dueAt, asOf = Date.now()) {
75
+ const at = dueAt === null || dueAt === undefined || dueAt === '' ? NaN : Date.parse(String(dueAt));
76
+ return Number.isFinite(at) && at < asOf;
77
+ }
78
+ //# sourceMappingURL=due.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"due.js","sourceRoot":"","sources":["../client/due.ts"],"names":[],"mappings":"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","sourcesContent":["import { i18next } from '@operato/i18n'\nimport { sleep } from '@operato/utils'\n\n/*\n * 기한까지 얼마나 남았나 — **한 곳에서만 계산한다.**\n *\n * ── 왜 모았나 (2026-09-01) ─────────────────────────────────────────────────\n * 같은 함수가 세 화면에 복사되어 있었고 구현이 갈려 있었다.\n *\n * activity-instance-list-page.ts Date.parse(exp) 맞음\n * todo-list-page.ts Date.parse(exp) 맞음\n * approval-pending-list-page.ts Number(exp) 틀림\n *\n * `dueAt` 은 ISO 문자열이다(`\"2026-09-02T03:48:27.289Z\"`). 그것을 `Number()` 로 읽으면 NaN 이고,\n * 그러면 날·시·분이 모두 NaN 이라 falsy 가 되어 전부 빠지고 `positive` 도 거짓이 된다. 남는 것은\n * 접두사 `- ` 하나다.\n *\n * 그래서 **내 결재함의 「남은 시간」 칸은 기한이 있어도 하이픈 하나만 나왔다.** 오류는 나지 않는다.\n * 실측: Number(\"2026-09-02T03:48:27.289Z\") = NaN, Date.parse(같은 값) = 1788320907289.\n *\n * 복사본이 셋이면 한 곳을 고쳐도 나머지 둘은 그대로다. 그래서 옮기지 않고 모았다.\n */\n\nconst MIN = 60\nconst HOUR = 60 * MIN\nconst DAY = 24 * HOUR\n\n/**\n * 남은 시간을 사람의 말로 — 값을 알 수 없으면 **빈 문자열이 아니라 모른다고 말한다.**\n *\n * 기한이 지난 것은 「지남」을 붙인다. 전에는 `- ` 를 앞에 붙였는데, 그 하이픈이 「값이 없다」와\n * 구별되지 않았다.\n */\nexport function dueText(dueAt: unknown, asOf: number = Date.now()): string {\n const at = dueAt === null || dueAt === undefined || dueAt === '' ? NaN : Date.parse(String(dueAt))\n\n if (!Number.isFinite(at)) {\n return i18next.t('text.no-due')\n }\n\n let secs = Math.round((at - asOf) / 1000)\n const overdue = secs < 0\n\n secs = Math.abs(secs)\n const days = Math.floor(secs / DAY)\n secs -= days * DAY\n const hours = Math.floor(secs / HOUR)\n secs -= hours * HOUR\n const minutes = Math.floor(secs / MIN)\n\n const parts = [\n days ? `${days}${i18next.t('label.days')}` : '',\n hours ? `${hours}${i18next.t('label.hours')}` : '',\n /* 날이 있으면 분까지 적지 않는다 — 「3일 5시간 12분」은 읽는 사람이 쓰지 않는 정밀도다. */\n !days && minutes ? `${minutes}${i18next.t('label.minutes')}` : ''\n ].filter(Boolean)\n\n /* 1분도 안 남은 것은 0 으로 적지 않는다. 곧이라는 뜻이다. */\n if (!parts.length) {\n return i18next.t(overdue ? 'text.due-just-passed' : 'text.due-within-a-minute')\n }\n\n return i18next.t(overdue ? 'text.due-overdue-by' : 'text.due-left-in', { span: parts.join(' ') })\n}\n\n/**\n * 화면에 살아 있는 남은 시간 — 1분마다 다시 낸다.\n *\n * `isActive` 를 받는 이유는 화면이 뒤로 간 뒤에도 도는 것을 막기 위해서다. 예전에는 각 화면이\n * `this.active` 를 직접 봤다.\n */\nexport async function* dueTimer(dueAt: unknown, isActive: () => boolean = () => true) {\n /* 기한이 없으면 한 번만 말하고 끝낸다 — 1분마다 같은 말을 다시 낼 일이 없다. */\n if (dueAt === null || dueAt === undefined || dueAt === '') {\n yield dueText(dueAt)\n return\n }\n\n while (isActive()) {\n yield dueText(dueAt)\n await sleep(60 * 1000)\n }\n}\n\n/** 기한이 지났나 — 줄을 강조할지 정하는 자리가 쓴다. */\nexport function isOverdue(dueAt: unknown, asOf: number = Date.now()): boolean {\n const at = dueAt === null || dueAt === undefined || dueAt === '' ? NaN : Date.parse(String(dueAt))\n\n return Number.isFinite(at) && at < asOf\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { LitElement } from 'lit';
2
+ import { type Entity360DoorAnswer, type Entity360Subject } from '@operato/layout';
3
+ /**
4
+ * The person 360's open-work section (ADR-0067 person 360 ruling, ADR-0091): how many to-dos are
5
+ * assigned to the person and how many approvals are waiting on them - counts only. The items stay
6
+ * with the person and the site owner; this section never lists them.
7
+ *
8
+ * `personOpenWork` answers null for someone who is not on this site - 「없음」, not zero.
9
+ */
10
+ type OpenWork = {
11
+ toDos: number;
12
+ approvalsPending: number;
13
+ };
14
+ export declare function registerPersonOpenWorkSection(): void;
15
+ export declare class PersonOpenWorkSection extends LitElement {
16
+ static styles: import("lit").CSSResult;
17
+ subject?: Entity360Subject;
18
+ answer?: Entity360DoorAnswer<OpenWork | null>;
19
+ updated(changed: Map<string, unknown>): void;
20
+ private read;
21
+ render(): import("lit-html").TemplateResult<1>;
22
+ }
23
+ export {};