@things-factory/worklist 10.1.248 → 10.1.249
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.
- package/dist-client/activity-cells.d.ts +21 -0
- package/dist-client/activity-cells.js +117 -0
- package/dist-client/activity-cells.js.map +1 -0
- package/dist-client/activity-state-counts.d.ts +6 -0
- package/dist-client/activity-state-counts.js +23 -0
- package/dist-client/activity-state-counts.js.map +1 -0
- package/dist-client/activity-summary-generator.d.ts +2 -0
- package/dist-client/activity-summary-generator.js +155 -0
- package/dist-client/activity-summary-generator.js.map +1 -0
- package/dist-client/approval-progress.d.ts +18 -0
- package/dist-client/approval-progress.js +31 -0
- package/dist-client/approval-progress.js.map +1 -0
- package/dist-client/bootstrap.d.ts +5 -0
- package/dist-client/bootstrap.js +63 -0
- package/dist-client/bootstrap.js.map +1 -0
- package/dist-client/chip-counts.d.ts +7 -0
- package/dist-client/chip-counts.js +11 -0
- package/dist-client/chip-counts.js.map +1 -0
- package/dist-client/chip-filters.d.ts +60 -0
- package/dist-client/chip-filters.js +102 -0
- package/dist-client/chip-filters.js.map +1 -0
- package/dist-client/components/activity-/bowner-view.d.ts +1 -0
- package/dist-client/components/activity-/bowner-view.js +104 -0
- package/dist-client/components/activity-/bowner-view.js.map +1 -0
- package/dist-client/components/activity-approval-ribon.d.ts +31 -0
- package/dist-client/components/activity-approval-ribon.js +103 -0
- package/dist-client/components/activity-approval-ribon.js.map +1 -0
- package/dist-client/components/activity-fields.d.ts +77 -0
- package/dist-client/components/activity-fields.js +424 -0
- package/dist-client/components/activity-fields.js.map +1 -0
- package/dist-client/components/activity-instance-preview.d.ts +2 -0
- package/dist-client/components/activity-instance-preview.js +177 -0
- package/dist-client/components/activity-instance-preview.js.map +1 -0
- package/dist-client/components/activity-instance-ribon.d.ts +32 -0
- package/dist-client/components/activity-instance-ribon.js +91 -0
- package/dist-client/components/activity-instance-ribon.js.map +1 -0
- package/dist-client/components/activity-intro-view.d.ts +1 -0
- package/dist-client/components/activity-intro-view.js +104 -0
- package/dist-client/components/activity-intro-view.js.map +1 -0
- package/dist-client/components/activity-reporter-view.d.ts +1 -0
- package/dist-client/components/activity-reporter-view.js +103 -0
- package/dist-client/components/activity-reporter-view.js.map +1 -0
- package/dist-client/components/activity-starter-form.d.ts +19 -0
- package/dist-client/components/activity-starter-form.js +264 -0
- package/dist-client/components/activity-starter-form.js.map +1 -0
- package/dist-client/components/activity-thread-ribon.d.ts +38 -0
- package/dist-client/components/activity-thread-ribon.js +95 -0
- package/dist-client/components/activity-thread-ribon.js.map +1 -0
- package/dist-client/components/activity-thread-timeline.d.ts +28 -0
- package/dist-client/components/activity-thread-timeline.js +339 -0
- package/dist-client/components/activity-thread-timeline.js.map +1 -0
- package/dist-client/components/can-pick.d.ts +15 -0
- package/dist-client/components/can-pick.js +16 -0
- package/dist-client/components/can-pick.js.map +1 -0
- package/dist-client/components/decision-content.d.ts +35 -0
- package/dist-client/components/decision-content.js +331 -0
- package/dist-client/components/decision-content.js.map +1 -0
- package/dist-client/components/decision-slots.d.ts +153 -0
- package/dist-client/components/decision-slots.js +152 -0
- package/dist-client/components/decision-slots.js.map +1 -0
- package/dist-client/components/mutation-outcome.d.ts +57 -0
- package/dist-client/components/mutation-outcome.js +78 -0
- package/dist-client/components/mutation-outcome.js.map +1 -0
- package/dist-client/components/say-outcome.d.ts +25 -0
- package/dist-client/components/say-outcome.js +51 -0
- package/dist-client/components/say-outcome.js.map +1 -0
- package/dist-client/components/state-ribon.d.ts +48 -0
- package/dist-client/components/state-ribon.js +225 -0
- package/dist-client/components/state-ribon.js.map +1 -0
- package/dist-client/components/timeline-entries.d.ts +38 -0
- package/dist-client/components/timeline-entries.js +62 -0
- package/dist-client/components/timeline-entries.js.map +1 -0
- package/dist-client/components/work-box-groups.d.ts +25 -0
- package/dist-client/components/work-box-groups.js +98 -0
- package/dist-client/components/work-box-groups.js.map +1 -0
- package/dist-client/due.d.ts +16 -0
- package/dist-client/due.js +78 -0
- package/dist-client/due.js.map +1 -0
- package/dist-client/entity360/person-open-work-section.d.ts +23 -0
- package/dist-client/entity360/person-open-work-section.js +79 -0
- package/dist-client/entity360/person-open-work-section.js.map +1 -0
- package/dist-client/grist-editor/grist-editor-activity-search-key.d.ts +12 -0
- package/dist-client/grist-editor/grist-editor-activity-search-key.js +70 -0
- package/dist-client/grist-editor/grist-editor-activity-search-key.js.map +1 -0
- package/dist-client/grist-editor/grist-renderer-activity-search-key.d.ts +3 -0
- package/dist-client/grist-editor/grist-renderer-activity-search-key.js +25 -0
- package/dist-client/grist-editor/grist-renderer-activity-search-key.js.map +1 -0
- package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +17 -0
- package/dist-client/grist-editor/popup-activity-search-keys-input.js +175 -0
- package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +1 -0
- package/dist-client/index.d.ts +6 -0
- package/dist-client/index.js +7 -0
- package/dist-client/index.js.map +1 -0
- package/dist-client/my-work-menus.d.ts +90 -0
- package/dist-client/my-work-menus.js +20 -0
- package/dist-client/my-work-menus.js.map +1 -0
- package/dist-client/pages/activity/activity-list-page.d.ts +53 -0
- package/dist-client/pages/activity/activity-list-page.js +600 -0
- package/dist-client/pages/activity/activity-list-page.js.map +1 -0
- package/dist-client/pages/activity/activity-model-item-list.d.ts +24 -0
- package/dist-client/pages/activity/activity-model-item-list.js +292 -0
- package/dist-client/pages/activity/activity-model-item-list.js.map +1 -0
- package/dist-client/pages/activity/activity-page.d.ts +56 -0
- package/dist-client/pages/activity/activity-page.js +396 -0
- package/dist-client/pages/activity/activity-page.js.map +1 -0
- package/dist-client/pages/activity/activity-partial-view.d.ts +13 -0
- package/dist-client/pages/activity/activity-partial-view.js +56 -0
- package/dist-client/pages/activity/activity-partial-view.js.map +1 -0
- package/dist-client/pages/activity/assignee-roles-cell.d.ts +32 -0
- package/dist-client/pages/activity/assignee-roles-cell.js +26 -0
- package/dist-client/pages/activity/assignee-roles-cell.js.map +1 -0
- package/dist-client/pages/activity/starter-list-page.d.ts +31 -0
- package/dist-client/pages/activity/starter-list-page.js +172 -0
- package/dist-client/pages/activity/starter-list-page.js.map +1 -0
- package/dist-client/pages/activity-approval/activity-approval-importer.d.ts +23 -0
- package/dist-client/pages/activity-approval/activity-approval-importer.js +94 -0
- package/dist-client/pages/activity-approval/activity-approval-importer.js.map +1 -0
- package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +55 -0
- package/dist-client/pages/activity-approval/activity-approval-list-page.js +253 -0
- package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -0
- package/dist-client/pages/activity-approval/activity-approval-page.d.ts +158 -0
- package/dist-client/pages/activity-approval/activity-approval-page.js +875 -0
- package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -0
- package/dist-client/pages/activity-approval/approval-gate.d.ts +29 -0
- package/dist-client/pages/activity-approval/approval-gate.js +21 -0
- package/dist-client/pages/activity-approval/approval-gate.js.map +1 -0
- package/dist-client/pages/activity-catalog/activity-catalog-page.d.ts +31 -0
- package/dist-client/pages/activity-catalog/activity-catalog-page.js +420 -0
- package/dist-client/pages/activity-catalog/activity-catalog-page.js.map +1 -0
- package/dist-client/pages/activity-catalog/activity-detail-actions.d.ts +34 -0
- package/dist-client/pages/activity-catalog/activity-detail-actions.js +18 -0
- package/dist-client/pages/activity-catalog/activity-detail-actions.js.map +1 -0
- package/dist-client/pages/activity-catalog/activity-detail-page.d.ts +90 -0
- package/dist-client/pages/activity-catalog/activity-detail-page.js +525 -0
- package/dist-client/pages/activity-catalog/activity-detail-page.js.map +1 -0
- package/dist-client/pages/activity-catalog/activity-guide.d.ts +16 -0
- package/dist-client/pages/activity-catalog/activity-guide.js +5 -0
- package/dist-client/pages/activity-catalog/activity-guide.js.map +1 -0
- package/dist-client/pages/activity-catalog/activity-panels.d.ts +80 -0
- package/dist-client/pages/activity-catalog/activity-panels.js +53 -0
- package/dist-client/pages/activity-catalog/activity-panels.js.map +1 -0
- package/dist-client/pages/activity-catalog/activity-stage.d.ts +31 -0
- package/dist-client/pages/activity-catalog/activity-stage.js +44 -0
- package/dist-client/pages/activity-catalog/activity-stage.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-list-page.d.ts +42 -0
- package/dist-client/pages/activity-instance/activity-instance-list-page.js +306 -0
- package/dist-client/pages/activity-instance/activity-instance-list-page.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +69 -0
- package/dist-client/pages/activity-instance/activity-instance-search-page.js +309 -0
- package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +54 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js +557 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-view.d.ts +36 -0
- package/dist-client/pages/activity-instance/activity-instance-view.js +494 -0
- package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -0
- package/dist-client/pages/activity-instance/discard-offer.d.ts +11 -0
- package/dist-client/pages/activity-instance/discard-offer.js +11 -0
- package/dist-client/pages/activity-instance/discard-offer.js.map +1 -0
- package/dist-client/pages/activity-stats/activity-stats-importer.d.ts +23 -0
- package/dist-client/pages/activity-stats/activity-stats-importer.js +94 -0
- package/dist-client/pages/activity-stats/activity-stats-importer.js.map +1 -0
- package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +55 -0
- package/dist-client/pages/activity-stats/activity-stats-list-page.js +253 -0
- package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -0
- package/dist-client/pages/activity-store/activity-store-page.d.ts +41 -0
- package/dist-client/pages/activity-store/activity-store-page.js +210 -0
- package/dist-client/pages/activity-store/activity-store-page.js.map +1 -0
- package/dist-client/pages/activity-supervisor/reporter-list-page.d.ts +30 -0
- package/dist-client/pages/activity-supervisor/reporter-list-page.js +190 -0
- package/dist-client/pages/activity-supervisor/reporter-list-page.js.map +1 -0
- package/dist-client/pages/activity-template/activity-template-importer.d.ts +11 -0
- package/dist-client/pages/activity-template/activity-template-importer.js +98 -0
- package/dist-client/pages/activity-template/activity-template-importer.js.map +1 -0
- package/dist-client/pages/activity-template/activity-template-list-page.d.ts +53 -0
- package/dist-client/pages/activity-template/activity-template-list-page.js +377 -0
- package/dist-client/pages/activity-template/activity-template-list-page.js.map +1 -0
- package/dist-client/pages/activity-template/activity-template-model-item-list.d.ts +1 -0
- package/dist-client/pages/activity-template/activity-template-model-item-list.js +41 -0
- package/dist-client/pages/activity-template/activity-template-model-item-list.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-importer.d.ts +11 -0
- package/dist-client/pages/activity-thread/activity-thread-importer.js +96 -0
- package/dist-client/pages/activity-thread/activity-thread-importer.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-list-page.d.ts +52 -0
- package/dist-client/pages/activity-thread/activity-thread-list-page.js +248 -0
- package/dist-client/pages/activity-thread/activity-thread-list-page.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-page.d.ts +91 -0
- package/dist-client/pages/activity-thread/activity-thread-page.js +593 -0
- package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-view-page.d.ts +56 -0
- package/dist-client/pages/activity-thread/activity-thread-view-page.js +385 -0
- package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-view.d.ts +31 -0
- package/dist-client/pages/activity-thread/activity-thread-view.js +134 -0
- package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -0
- package/dist-client/pages/activity-thread/thread-sections.d.ts +34 -0
- package/dist-client/pages/activity-thread/thread-sections.js +36 -0
- package/dist-client/pages/activity-thread/thread-sections.js.map +1 -0
- package/dist-client/pages/installable-activity/installable-activity-list-page.d.ts +64 -0
- package/dist-client/pages/installable-activity/installable-activity-list-page.js +424 -0
- package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -0
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.d.ts +1 -0
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.js +20 -0
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.js.map +1 -0
- package/dist-client/pages/todo/approval-done-list-page.d.ts +42 -0
- package/dist-client/pages/todo/approval-done-list-page.js +365 -0
- package/dist-client/pages/todo/approval-done-list-page.js.map +1 -0
- package/dist-client/pages/todo/approval-pending-list-page.d.ts +79 -0
- package/dist-client/pages/todo/approval-pending-list-page.js +683 -0
- package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -0
- package/dist-client/pages/todo/done-list-calendar-page.d.ts +47 -0
- package/dist-client/pages/todo/done-list-calendar-page.js +379 -0
- package/dist-client/pages/todo/done-list-calendar-page.js.map +1 -0
- package/dist-client/pages/todo/draft-list-page.d.ts +64 -0
- package/dist-client/pages/todo/draft-list-page.js +404 -0
- package/dist-client/pages/todo/draft-list-page.js.map +1 -0
- package/dist-client/pages/todo/list-thumbnail.d.ts +25 -0
- package/dist-client/pages/todo/list-thumbnail.js +25 -0
- package/dist-client/pages/todo/list-thumbnail.js.map +1 -0
- package/dist-client/pages/todo/pickable-list-page.d.ts +37 -0
- package/dist-client/pages/todo/pickable-list-page.js +271 -0
- package/dist-client/pages/todo/pickable-list-page.js.map +1 -0
- package/dist-client/pages/todo/todo-list-page.d.ts +66 -0
- package/dist-client/pages/todo/todo-list-page.js +503 -0
- package/dist-client/pages/todo/todo-list-page.js.map +1 -0
- package/dist-client/pages/todo/work-box.d.ts +52 -0
- package/dist-client/pages/todo/work-box.js +54 -0
- package/dist-client/pages/todo/work-box.js.map +1 -0
- package/dist-client/pages/work-door/door-links.d.ts +22 -0
- package/dist-client/pages/work-door/door-links.js +20 -0
- package/dist-client/pages/work-door/door-links.js.map +1 -0
- package/dist-client/pages/work-door/door-sentence.d.ts +75 -0
- package/dist-client/pages/work-door/door-sentence.js +107 -0
- package/dist-client/pages/work-door/door-sentence.js.map +1 -0
- package/dist-client/pages/work-door/door-words.d.ts +48 -0
- package/dist-client/pages/work-door/door-words.js +84 -0
- package/dist-client/pages/work-door/door-words.js.map +1 -0
- package/dist-client/route.d.ts +1 -0
- package/dist-client/route.js +77 -0
- package/dist-client/route.js.map +1 -0
- package/dist-client/templates/activity-approval-context-template.d.ts +3 -0
- package/dist-client/templates/activity-approval-context-template.js +105 -0
- package/dist-client/templates/activity-approval-context-template.js.map +1 -0
- package/dist-client/templates/activity-instance-context-template.d.ts +3 -0
- package/dist-client/templates/activity-instance-context-template.js +118 -0
- package/dist-client/templates/activity-instance-context-template.js.map +1 -0
- package/dist-client/templates/activity-thread-context-template.d.ts +3 -0
- package/dist-client/templates/activity-thread-context-template.js +74 -0
- package/dist-client/templates/activity-thread-context-template.js.map +1 -0
- package/dist-client/templates/context-panel.d.ts +26 -0
- package/dist-client/templates/context-panel.js +182 -0
- package/dist-client/templates/context-panel.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-client/types/activity-approval.d.ts +36 -0
- package/dist-client/types/activity-approval.js +17 -0
- package/dist-client/types/activity-approval.js.map +1 -0
- package/dist-client/types/activity-instance-type.d.ts +77 -0
- package/dist-client/types/activity-instance-type.js +11 -0
- package/dist-client/types/activity-instance-type.js.map +1 -0
- package/dist-client/types/activity-instance.d.ts +72 -0
- package/dist-client/types/activity-instance.js +36 -0
- package/dist-client/types/activity-instance.js.map +1 -0
- package/dist-client/types/activity-model-type.d.ts +31 -0
- package/dist-client/types/activity-model-type.js +18 -0
- package/dist-client/types/activity-model-type.js.map +1 -0
- package/dist-client/types/activity-search-key-item-type.d.ts +6 -0
- package/dist-client/types/activity-search-key-item-type.js +3 -0
- package/dist-client/types/activity-search-key-item-type.js.map +1 -0
- package/dist-client/types/activity-thread-history.d.ts +28 -0
- package/dist-client/types/activity-thread-history.js +7 -0
- package/dist-client/types/activity-thread-history.js.map +1 -0
- package/dist-client/types/activity-thread-type.d.ts +15 -0
- package/dist-client/types/activity-thread-type.js +7 -0
- package/dist-client/types/activity-thread-type.js.map +1 -0
- package/dist-client/types/activity-thread.d.ts +39 -0
- package/dist-client/types/activity-thread.js +18 -0
- package/dist-client/types/activity-thread.js.map +1 -0
- package/dist-client/types/activity.d.ts +68 -0
- package/dist-client/types/activity.js +40 -0
- package/dist-client/types/activity.js.map +1 -0
- package/dist-client/types/types.d.ts +23 -0
- package/dist-client/types/types.js +42 -0
- package/dist-client/types/types.js.map +1 -0
- package/dist-client/when.d.ts +4 -0
- package/dist-client/when.js +72 -0
- package/dist-client/when.js.map +1 -0
- package/dist-client/work-calendar-sources.d.ts +96 -0
- package/dist-client/work-calendar-sources.js +88 -0
- package/dist-client/work-calendar-sources.js.map +1 -0
- package/dist-server/controllers/activity-approval/_abort.d.ts +5 -0
- package/dist-server/controllers/activity-approval/_abort.js +29 -0
- package/dist-server/controllers/activity-approval/_abort.js.map +1 -0
- package/dist-server/controllers/activity-approval/abort.d.ts +5 -0
- package/dist-server/controllers/activity-approval/abort.js +35 -0
- package/dist-server/controllers/activity-approval/abort.js.map +1 -0
- package/dist-server/controllers/activity-approval/approval-line.d.ts +138 -0
- package/dist-server/controllers/activity-approval/approval-line.js +186 -0
- package/dist-server/controllers/activity-approval/approval-line.js.map +1 -0
- package/dist-server/controllers/activity-approval/approve.d.ts +5 -0
- package/dist-server/controllers/activity-approval/approve.js +142 -0
- package/dist-server/controllers/activity-approval/approve.js.map +1 -0
- package/dist-server/controllers/activity-approval/check-authority.d.ts +8 -0
- package/dist-server/controllers/activity-approval/check-authority.js +29 -0
- package/dist-server/controllers/activity-approval/check-authority.js.map +1 -0
- package/dist-server/controllers/activity-approval/claim.d.ts +42 -0
- package/dist-server/controllers/activity-approval/claim.js +77 -0
- package/dist-server/controllers/activity-approval/claim.js.map +1 -0
- package/dist-server/controllers/activity-approval/create-approval.d.ts +41 -0
- package/dist-server/controllers/activity-approval/create-approval.js +85 -0
- package/dist-server/controllers/activity-approval/create-approval.js.map +1 -0
- package/dist-server/controllers/activity-approval/delegate.d.ts +23 -0
- package/dist-server/controllers/activity-approval/delegate.js +113 -0
- package/dist-server/controllers/activity-approval/delegate.js.map +1 -0
- package/dist-server/controllers/activity-approval/delegation.d.ts +21 -0
- package/dist-server/controllers/activity-approval/delegation.js +17 -0
- package/dist-server/controllers/activity-approval/delegation.js.map +1 -0
- package/dist-server/controllers/activity-approval/opinion.d.ts +10 -0
- package/dist-server/controllers/activity-approval/opinion.js +43 -0
- package/dist-server/controllers/activity-approval/opinion.js.map +1 -0
- package/dist-server/controllers/activity-approval/reject.d.ts +5 -0
- package/dist-server/controllers/activity-approval/reject.js +93 -0
- package/dist-server/controllers/activity-approval/reject.js.map +1 -0
- package/dist-server/controllers/activity-approval/resolve-judgeable-seats.d.ts +21 -0
- package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js +60 -0
- package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js.map +1 -0
- package/dist-server/controllers/activity-approval/save.d.ts +5 -0
- package/dist-server/controllers/activity-approval/save.js +56 -0
- package/dist-server/controllers/activity-approval/save.js.map +1 -0
- package/dist-server/controllers/activity-approval/seat-standing.d.ts +66 -0
- package/dist-server/controllers/activity-approval/seat-standing.js +57 -0
- package/dist-server/controllers/activity-approval/seat-standing.js.map +1 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +79 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.js +99 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -0
- package/dist-server/controllers/activity-installation/call-webhook.d.ts +3 -0
- package/dist-server/controllers/activity-installation/call-webhook.js +42 -0
- package/dist-server/controllers/activity-installation/call-webhook.js.map +1 -0
- package/dist-server/controllers/activity-installation/installable-to-activity.d.ts +77 -0
- package/dist-server/controllers/activity-installation/installable-to-activity.js +68 -0
- package/dist-server/controllers/activity-installation/installable-to-activity.js.map +1 -0
- package/dist-server/controllers/activity-installation/registry-conflict.d.ts +47 -0
- package/dist-server/controllers/activity-installation/registry-conflict.js +47 -0
- package/dist-server/controllers/activity-installation/registry-conflict.js.map +1 -0
- package/dist-server/controllers/activity-instance/abort.d.ts +5 -0
- package/dist-server/controllers/activity-instance/abort.js +62 -0
- package/dist-server/controllers/activity-instance/abort.js.map +1 -0
- package/dist-server/controllers/activity-instance/approval-expectation.d.ts +34 -0
- package/dist-server/controllers/activity-instance/approval-expectation.js +18 -0
- package/dist-server/controllers/activity-instance/approval-expectation.js.map +1 -0
- package/dist-server/controllers/activity-instance/approval-line-input.d.ts +29 -0
- package/dist-server/controllers/activity-instance/approval-line-input.js +44 -0
- package/dist-server/controllers/activity-instance/approval-line-input.js.map +1 -0
- package/dist-server/controllers/activity-instance/assign.d.ts +8 -0
- package/dist-server/controllers/activity-instance/assign.js +152 -0
- package/dist-server/controllers/activity-instance/assign.js.map +1 -0
- package/dist-server/controllers/activity-instance/assignee-input.d.ts +25 -0
- package/dist-server/controllers/activity-instance/assignee-input.js +28 -0
- package/dist-server/controllers/activity-instance/assignee-input.js.map +1 -0
- package/dist-server/controllers/activity-instance/claim-draft.d.ts +17 -0
- package/dist-server/controllers/activity-instance/claim-draft.js +30 -0
- package/dist-server/controllers/activity-instance/claim-draft.js.map +1 -0
- package/dist-server/controllers/activity-instance/discard-draft.d.ts +22 -0
- package/dist-server/controllers/activity-instance/discard-draft.js +54 -0
- package/dist-server/controllers/activity-instance/discard-draft.js.map +1 -0
- package/dist-server/controllers/activity-instance/draft.d.ts +3 -0
- package/dist-server/controllers/activity-instance/draft.js +93 -0
- package/dist-server/controllers/activity-instance/draft.js.map +1 -0
- package/dist-server/controllers/activity-instance/end.d.ts +6 -0
- package/dist-server/controllers/activity-instance/end.js +65 -0
- package/dist-server/controllers/activity-instance/end.js.map +1 -0
- package/dist-server/controllers/activity-instance/entitlement.d.ts +25 -0
- package/dist-server/controllers/activity-instance/entitlement.js +110 -0
- package/dist-server/controllers/activity-instance/entitlement.js.map +1 -0
- package/dist-server/controllers/activity-instance/index.d.ts +6 -0
- package/dist-server/controllers/activity-instance/index.js +10 -0
- package/dist-server/controllers/activity-instance/index.js.map +1 -0
- package/dist-server/controllers/activity-instance/issue.d.ts +3 -0
- package/dist-server/controllers/activity-instance/issue.js +272 -0
- package/dist-server/controllers/activity-instance/issue.js.map +1 -0
- package/dist-server/controllers/activity-instance/pick.d.ts +2 -0
- package/dist-server/controllers/activity-instance/pick.js +112 -0
- package/dist-server/controllers/activity-instance/pick.js.map +1 -0
- package/dist-server/controllers/activity-read/assert-may-read.d.ts +20 -0
- package/dist-server/controllers/activity-read/assert-may-read.js +108 -0
- package/dist-server/controllers/activity-read/assert-may-read.js.map +1 -0
- package/dist-server/controllers/activity-read/participates.d.ts +41 -0
- package/dist-server/controllers/activity-read/participates.js +42 -0
- package/dist-server/controllers/activity-read/participates.js.map +1 -0
- package/dist-server/controllers/activity-thread/_abort.d.ts +5 -0
- package/dist-server/controllers/activity-thread/_abort.js +36 -0
- package/dist-server/controllers/activity-thread/_abort.js.map +1 -0
- package/dist-server/controllers/activity-thread/abort.d.ts +5 -0
- package/dist-server/controllers/activity-thread/abort.js +45 -0
- package/dist-server/controllers/activity-thread/abort.js.map +1 -0
- package/dist-server/controllers/activity-thread/check-authority.d.ts +2 -0
- package/dist-server/controllers/activity-thread/check-authority.js +65 -0
- package/dist-server/controllers/activity-thread/check-authority.js.map +1 -0
- package/dist-server/controllers/activity-thread/delegate.d.ts +7 -0
- package/dist-server/controllers/activity-thread/delegate.js +66 -0
- package/dist-server/controllers/activity-thread/delegate.js.map +1 -0
- package/dist-server/controllers/activity-thread/end.d.ts +6 -0
- package/dist-server/controllers/activity-thread/end.js +44 -0
- package/dist-server/controllers/activity-thread/end.js.map +1 -0
- package/dist-server/controllers/activity-thread/index.d.ts +7 -0
- package/dist-server/controllers/activity-thread/index.js +11 -0
- package/dist-server/controllers/activity-thread/index.js.map +1 -0
- package/dist-server/controllers/activity-thread/restart.d.ts +2 -0
- package/dist-server/controllers/activity-thread/restart.js +63 -0
- package/dist-server/controllers/activity-thread/restart.js.map +1 -0
- package/dist-server/controllers/activity-thread/save.d.ts +3 -0
- package/dist-server/controllers/activity-thread/save.js +45 -0
- package/dist-server/controllers/activity-thread/save.js.map +1 -0
- package/dist-server/controllers/activity-thread/start.d.ts +2 -0
- package/dist-server/controllers/activity-thread/start.js +43 -0
- package/dist-server/controllers/activity-thread/start.js.map +1 -0
- package/dist-server/controllers/activity-thread/submit.d.ts +6 -0
- package/dist-server/controllers/activity-thread/submit.js +90 -0
- package/dist-server/controllers/activity-thread/submit.js.map +1 -0
- package/dist-server/controllers/common.d.ts +34 -0
- package/dist-server/controllers/common.js +346 -0
- package/dist-server/controllers/common.js.map +1 -0
- package/dist-server/controllers/index.d.ts +5 -0
- package/dist-server/controllers/index.js +18 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/index.d.ts +6 -0
- package/dist-server/index.js +18 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/role-tasks.d.ts +2 -0
- package/dist-server/role-tasks.js +16 -0
- package/dist-server/role-tasks.js.map +1 -0
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +57 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/activity/activity-decision-key-item-type.d.ts +206 -0
- package/dist-server/service/activity/activity-decision-key-item-type.js +182 -0
- package/dist-server/service/activity/activity-decision-key-item-type.js.map +1 -0
- package/dist-server/service/activity/activity-history.d.ts +44 -0
- package/dist-server/service/activity/activity-history.js +220 -0
- package/dist-server/service/activity/activity-history.js.map +1 -0
- package/dist-server/service/activity/activity-model-type.d.ts +49 -0
- package/dist-server/service/activity/activity-model-type.js +138 -0
- package/dist-server/service/activity/activity-model-type.js.map +1 -0
- package/dist-server/service/activity/activity-mutation.d.ts +12 -0
- package/dist-server/service/activity/activity-mutation.js +416 -0
- package/dist-server/service/activity/activity-mutation.js.map +1 -0
- package/dist-server/service/activity/activity-query.d.ts +24 -0
- package/dist-server/service/activity/activity-query.js +310 -0
- package/dist-server/service/activity/activity-query.js.map +1 -0
- package/dist-server/service/activity/activity-search-key-item-type.d.ts +6 -0
- package/dist-server/service/activity/activity-search-key-item-type.js +28 -0
- package/dist-server/service/activity/activity-search-key-item-type.js.map +1 -0
- package/dist-server/service/activity/activity-type.d.ts +84 -0
- package/dist-server/service/activity/activity-type.js +269 -0
- package/dist-server/service/activity/activity-type.js.map +1 -0
- package/dist-server/service/activity/activity.d.ts +135 -0
- package/dist-server/service/activity/activity.js +328 -0
- package/dist-server/service/activity/activity.js.map +1 -0
- package/dist-server/service/activity/approval-line-seats.d.ts +12 -0
- package/dist-server/service/activity/approval-line-seats.js +68 -0
- package/dist-server/service/activity/approval-line-seats.js.map +1 -0
- package/dist-server/service/activity/credential-field.d.ts +35 -0
- package/dist-server/service/activity/credential-field.js +89 -0
- package/dist-server/service/activity/credential-field.js.map +1 -0
- package/dist-server/service/activity/decision-key-declaration.d.ts +106 -0
- package/dist-server/service/activity/decision-key-declaration.js +181 -0
- package/dist-server/service/activity/decision-key-declaration.js.map +1 -0
- package/dist-server/service/activity/declaration-guard-subscriber.d.ts +24 -0
- package/dist-server/service/activity/declaration-guard-subscriber.js +46 -0
- package/dist-server/service/activity/declaration-guard-subscriber.js.map +1 -0
- package/dist-server/service/activity/event-subscriber.d.ts +7 -0
- package/dist-server/service/activity/event-subscriber.js +21 -0
- package/dist-server/service/activity/event-subscriber.js.map +1 -0
- package/dist-server/service/activity/freeze-decision-sentences-for.d.ts +11 -0
- package/dist-server/service/activity/freeze-decision-sentences-for.js +18 -0
- package/dist-server/service/activity/freeze-decision-sentences-for.js.map +1 -0
- package/dist-server/service/activity/index.d.ts +9 -0
- package/dist-server/service/activity/index.js +13 -0
- package/dist-server/service/activity/index.js.map +1 -0
- package/dist-server/service/activity/search-key-declaration.d.ts +38 -0
- package/dist-server/service/activity/search-key-declaration.js +49 -0
- package/dist-server/service/activity/search-key-declaration.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +8 -0
- package/dist-server/service/activity-approval/activity-approval-mutation.js +81 -0
- package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-query.d.ts +42 -0
- package/dist-server/service/activity-approval/activity-approval-query.js +391 -0
- package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-subscription.d.ts +6 -0
- package/dist-server/service/activity-approval/activity-approval-subscription.js +39 -0
- package/dist-server/service/activity-approval/activity-approval-subscription.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-type.d.ts +10 -0
- package/dist-server/service/activity-approval/activity-approval-type.js +39 -0
- package/dist-server/service/activity-approval/activity-approval-type.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval.d.ts +67 -0
- package/dist-server/service/activity-approval/activity-approval.js +183 -0
- package/dist-server/service/activity-approval/activity-approval.js.map +1 -0
- package/dist-server/service/activity-approval/event-subscriber.d.ts +7 -0
- package/dist-server/service/activity-approval/event-subscriber.js +46 -0
- package/dist-server/service/activity-approval/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-approval/index.d.ts +8 -0
- package/dist-server/service/activity-approval/index.js +12 -0
- package/dist-server/service/activity-approval/index.js.map +1 -0
- package/dist-server/service/activity-approval/my-pending-approvals.d.ts +33 -0
- package/dist-server/service/activity-approval/my-pending-approvals.js +52 -0
- package/dist-server/service/activity-approval/my-pending-approvals.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-history.d.ts +60 -0
- package/dist-server/service/activity-instance/activity-instance-history.js +294 -0
- package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-mutation.d.ts +16 -0
- package/dist-server/service/activity-instance/activity-instance-mutation.js +185 -0
- package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-query.d.ts +27 -0
- package/dist-server/service/activity-instance/activity-instance-query.js +386 -0
- package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-subscription.d.ts +6 -0
- package/dist-server/service/activity-instance/activity-instance-subscription.js +39 -0
- package/dist-server/service/activity-instance/activity-instance-subscription.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-type.d.ts +107 -0
- package/dist-server/service/activity-instance/activity-instance-type.js +301 -0
- package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance.d.ts +81 -0
- package/dist-server/service/activity-instance/activity-instance.js +324 -0
- package/dist-server/service/activity-instance/activity-instance.js.map +1 -0
- package/dist-server/service/activity-instance/assignee-pool.d.ts +59 -0
- package/dist-server/service/activity-instance/assignee-pool.js +99 -0
- package/dist-server/service/activity-instance/assignee-pool.js.map +1 -0
- package/dist-server/service/activity-instance/draft-list-states.d.ts +39 -0
- package/dist-server/service/activity-instance/draft-list-states.js +51 -0
- package/dist-server/service/activity-instance/draft-list-states.js.map +1 -0
- package/dist-server/service/activity-instance/event-subscriber.d.ts +21 -0
- package/dist-server/service/activity-instance/event-subscriber.js +59 -0
- package/dist-server/service/activity-instance/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-instance/index.d.ts +9 -0
- package/dist-server/service/activity-instance/index.js +13 -0
- package/dist-server/service/activity-instance/index.js.map +1 -0
- package/dist-server/service/activity-instance/request-box.d.ts +2 -0
- package/dist-server/service/activity-instance/request-box.js +18 -0
- package/dist-server/service/activity-instance/request-box.js.map +1 -0
- package/dist-server/service/activity-stats/activity-stats-query.d.ts +9 -0
- package/dist-server/service/activity-stats/activity-stats-query.js +230 -0
- package/dist-server/service/activity-stats/activity-stats-query.js.map +1 -0
- package/dist-server/service/activity-stats/activity-stats-type.d.ts +27 -0
- package/dist-server/service/activity-stats/activity-stats-type.js +74 -0
- package/dist-server/service/activity-stats/activity-stats-type.js.map +1 -0
- package/dist-server/service/activity-stats/event-placement.d.ts +55 -0
- package/dist-server/service/activity-stats/event-placement.js +82 -0
- package/dist-server/service/activity-stats/event-placement.js.map +1 -0
- package/dist-server/service/activity-stats/index.d.ts +2 -0
- package/dist-server/service/activity-stats/index.js +6 -0
- package/dist-server/service/activity-stats/index.js.map +1 -0
- package/dist-server/service/activity-summary/activity-summary-query.d.ts +8 -0
- package/dist-server/service/activity-summary/activity-summary-query.js +137 -0
- package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -0
- package/dist-server/service/activity-summary/activity-summary.d.ts +6 -0
- package/dist-server/service/activity-summary/activity-summary.js +28 -0
- package/dist-server/service/activity-summary/activity-summary.js.map +1 -0
- package/dist-server/service/activity-summary/index.d.ts +5 -0
- package/dist-server/service/activity-summary/index.js +9 -0
- package/dist-server/service/activity-summary/index.js.map +1 -0
- package/dist-server/service/activity-summary/open-work.d.ts +4 -0
- package/dist-server/service/activity-summary/open-work.js +51 -0
- package/dist-server/service/activity-summary/open-work.js.map +1 -0
- package/dist-server/service/activity-summary/person-open-work.d.ts +17 -0
- package/dist-server/service/activity-summary/person-open-work.js +68 -0
- package/dist-server/service/activity-summary/person-open-work.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-history.d.ts +32 -0
- package/dist-server/service/activity-template/activity-template-history.js +165 -0
- package/dist-server/service/activity-template/activity-template-history.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-mutation.d.ts +10 -0
- package/dist-server/service/activity-template/activity-template-mutation.js +194 -0
- package/dist-server/service/activity-template/activity-template-mutation.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-query.d.ts +14 -0
- package/dist-server/service/activity-template/activity-template-query.js +112 -0
- package/dist-server/service/activity-template/activity-template-query.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-type.d.ts +44 -0
- package/dist-server/service/activity-template/activity-template-type.js +164 -0
- package/dist-server/service/activity-template/activity-template-type.js.map +1 -0
- package/dist-server/service/activity-template/activity-template.d.ts +36 -0
- package/dist-server/service/activity-template/activity-template.js +154 -0
- package/dist-server/service/activity-template/activity-template.js.map +1 -0
- package/dist-server/service/activity-template/event-subscriber.d.ts +7 -0
- package/dist-server/service/activity-template/event-subscriber.js +21 -0
- package/dist-server/service/activity-template/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-template/index.d.ts +8 -0
- package/dist-server/service/activity-template/index.js +12 -0
- package/dist-server/service/activity-template/index.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-history-query.d.ts +10 -0
- package/dist-server/service/activity-thread/activity-thread-history-query.js +69 -0
- package/dist-server/service/activity-thread/activity-thread-history-query.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-history.d.ts +39 -0
- package/dist-server/service/activity-thread/activity-thread-history.js +211 -0
- package/dist-server/service/activity-thread/activity-thread-history.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-mutation.d.ts +20 -0
- package/dist-server/service/activity-thread/activity-thread-mutation.js +115 -0
- package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-query.d.ts +24 -0
- package/dist-server/service/activity-thread/activity-thread-query.js +276 -0
- package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-subscription.d.ts +6 -0
- package/dist-server/service/activity-thread/activity-thread-subscription.js +38 -0
- package/dist-server/service/activity-thread/activity-thread-subscription.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-type.d.ts +15 -0
- package/dist-server/service/activity-thread/activity-thread-type.js +50 -0
- package/dist-server/service/activity-thread/activity-thread-type.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread.d.ts +47 -0
- package/dist-server/service/activity-thread/activity-thread.js +197 -0
- package/dist-server/service/activity-thread/activity-thread.js.map +1 -0
- package/dist-server/service/activity-thread/event-subscriber.d.ts +13 -0
- package/dist-server/service/activity-thread/event-subscriber.js +45 -0
- package/dist-server/service/activity-thread/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-thread/index.d.ts +10 -0
- package/dist-server/service/activity-thread/index.js +14 -0
- package/dist-server/service/activity-thread/index.js.map +1 -0
- package/dist-server/service/activity-thread/my-open-threads.d.ts +33 -0
- package/dist-server/service/activity-thread/my-open-threads.js +85 -0
- package/dist-server/service/activity-thread/my-open-threads.js.map +1 -0
- package/dist-server/service/activity-thread/todo-order.d.ts +49 -0
- package/dist-server/service/activity-thread/todo-order.js +70 -0
- package/dist-server/service/activity-thread/todo-order.js.map +1 -0
- package/dist-server/service/approval-notice/approval-notice-rules.d.ts +67 -0
- package/dist-server/service/approval-notice/approval-notice-rules.js +67 -0
- package/dist-server/service/approval-notice/approval-notice-rules.js.map +1 -0
- package/dist-server/service/approval-notice/approval-notice.d.ts +11 -0
- package/dist-server/service/approval-notice/approval-notice.js +76 -0
- package/dist-server/service/approval-notice/approval-notice.js.map +1 -0
- package/dist-server/service/index.d.ts +23 -0
- package/dist-server/service/index.js +75 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/installable-activity/activity-readiness.d.ts +58 -0
- package/dist-server/service/installable-activity/activity-readiness.js +105 -0
- package/dist-server/service/installable-activity/activity-readiness.js.map +1 -0
- package/dist-server/service/installable-activity/index.d.ts +6 -0
- package/dist-server/service/installable-activity/index.js +10 -0
- package/dist-server/service/installable-activity/index.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity-mutation.d.ts +11 -0
- package/dist-server/service/installable-activity/installable-activity-mutation.js +83 -0
- package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity-query.d.ts +22 -0
- package/dist-server/service/installable-activity/installable-activity-query.js +127 -0
- package/dist-server/service/installable-activity/installable-activity-query.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity-type.d.ts +5 -0
- package/dist-server/service/installable-activity/installable-activity-type.js +21 -0
- package/dist-server/service/installable-activity/installable-activity-type.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity.d.ts +92 -0
- package/dist-server/service/installable-activity/installable-activity.js +140 -0
- package/dist-server/service/installable-activity/installable-activity.js.map +1 -0
- package/dist-server/service/nulls-last.d.ts +30 -0
- package/dist-server/service/nulls-last.js +37 -0
- package/dist-server/service/nulls-last.js.map +1 -0
- package/dist-server/service/subscription/roles-of.d.ts +9 -0
- package/dist-server/service/subscription/roles-of.js +17 -0
- package/dist-server/service/subscription/roles-of.js.map +1 -0
- package/dist-server/service/subscription/subscription-filters.d.ts +47 -0
- package/dist-server/service/subscription/subscription-filters.js +57 -0
- package/dist-server/service/subscription/subscription-filters.js.map +1 -0
- package/dist-server/service/work-door/activity-lookup.d.ts +70 -0
- package/dist-server/service/work-door/activity-lookup.js +110 -0
- package/dist-server/service/work-door/activity-lookup.js.map +1 -0
- package/dist-server/service/work-door/approval-line-standing.d.ts +106 -0
- package/dist-server/service/work-door/approval-line-standing.js +65 -0
- package/dist-server/service/work-door/approval-line-standing.js.map +1 -0
- package/dist-server/service/work-door/index.d.ts +15 -0
- package/dist-server/service/work-door/index.js +20 -0
- package/dist-server/service/work-door/index.js.map +1 -0
- package/dist-server/service/work-door/pass-work-door.d.ts +74 -0
- package/dist-server/service/work-door/pass-work-door.js +45 -0
- package/dist-server/service/work-door/pass-work-door.js.map +1 -0
- package/dist-server/service/work-door/work-door-declaration.d.ts +135 -0
- package/dist-server/service/work-door/work-door-declaration.js +87 -0
- package/dist-server/service/work-door/work-door-declaration.js.map +1 -0
- package/dist-server/service/work-door/work-door-event.d.ts +20 -0
- package/dist-server/service/work-door/work-door-event.js +25 -0
- package/dist-server/service/work-door/work-door-event.js.map +1 -0
- package/dist-server/service/work-door/work-door-journal-service.d.ts +47 -0
- package/dist-server/service/work-door/work-door-journal-service.js +75 -0
- package/dist-server/service/work-door/work-door-journal-service.js.map +1 -0
- package/dist-server/service/work-door/work-door-journal.d.ts +30 -0
- package/dist-server/service/work-door/work-door-journal.js +94 -0
- package/dist-server/service/work-door/work-door-journal.js.map +1 -0
- package/dist-server/service/work-door/work-door-not-used.d.ts +39 -0
- package/dist-server/service/work-door/work-door-not-used.js +86 -0
- package/dist-server/service/work-door/work-door-not-used.js.map +1 -0
- package/dist-server/service/work-door/work-door-resolver.d.ts +32 -0
- package/dist-server/service/work-door/work-door-resolver.js +152 -0
- package/dist-server/service/work-door/work-door-resolver.js.map +1 -0
- package/dist-server/service/work-door/work-door-service.d.ts +36 -0
- package/dist-server/service/work-door/work-door-service.js +127 -0
- package/dist-server/service/work-door/work-door-service.js.map +1 -0
- package/dist-server/service/work-door/work-door-type.d.ts +88 -0
- package/dist-server/service/work-door/work-door-type.js +206 -0
- package/dist-server/service/work-door/work-door-type.js.map +1 -0
- package/dist-server/service/work-door/work-door.d.ts +187 -0
- package/dist-server/service/work-door/work-door.js +119 -0
- package/dist-server/service/work-door/work-door.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from 'typeorm';
|
|
2
|
+
import { HistoryEntitySubscriber } from '@operato/typeorm-history';
|
|
3
|
+
import { ActivityInstance } from './activity-instance.js';
|
|
4
|
+
import { ActivityInstanceHistory } from './activity-instance-history.js';
|
|
5
|
+
/**
|
|
6
|
+
* The pool's role ids on what is published - the subscription filter decides by them (subscription-filters.ts).
|
|
7
|
+
*
|
|
8
|
+
* A many-to-many is not a column: the saved object carries the roles only when the caller had them, and its
|
|
9
|
+
* RelationId is not filled in on a write. Asked here once per event when it is missing, never once per
|
|
10
|
+
* subscriber. An update with no entity (a query-builder UPDATE) publishes nothing to read, as before.
|
|
11
|
+
*/
|
|
12
|
+
export declare function withPoolIds(activityInstance: ActivityInstance, manager: EntityManager): Promise<ActivityInstance>;
|
|
13
|
+
export declare class ActivityInstanceSubscriber implements EntitySubscriberInterface<ActivityInstance> {
|
|
14
|
+
listenTo(): typeof ActivityInstance;
|
|
15
|
+
afterInsert(event: InsertEvent<ActivityInstance>): Promise<any | void>;
|
|
16
|
+
afterUpdate(event: UpdateEvent<ActivityInstance>): Promise<any | void>;
|
|
17
|
+
}
|
|
18
|
+
export declare class ActivityInstanceHistoryEntitySubscriber extends HistoryEntitySubscriber<ActivityInstance, ActivityInstanceHistory> {
|
|
19
|
+
get entity(): typeof ActivityInstance;
|
|
20
|
+
get historyEntity(): typeof ActivityInstanceHistory;
|
|
21
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActivityInstanceHistoryEntitySubscriber = exports.ActivityInstanceSubscriber = void 0;
|
|
4
|
+
exports.withPoolIds = withPoolIds;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const typeorm_1 = require("typeorm");
|
|
7
|
+
const typeorm_history_1 = require("@operato/typeorm-history");
|
|
8
|
+
const shell_1 = require("@things-factory/shell");
|
|
9
|
+
const activity_instance_js_1 = require("./activity-instance.js");
|
|
10
|
+
const activity_instance_history_js_1 = require("./activity-instance-history.js");
|
|
11
|
+
const assignee_pool_js_1 = require("./assignee-pool.js");
|
|
12
|
+
/**
|
|
13
|
+
* The pool's role ids on what is published - the subscription filter decides by them (subscription-filters.ts).
|
|
14
|
+
*
|
|
15
|
+
* A many-to-many is not a column: the saved object carries the roles only when the caller had them, and its
|
|
16
|
+
* RelationId is not filled in on a write. Asked here once per event when it is missing, never once per
|
|
17
|
+
* subscriber. An update with no entity (a query-builder UPDATE) publishes nothing to read, as before.
|
|
18
|
+
*/
|
|
19
|
+
async function withPoolIds(activityInstance, manager) {
|
|
20
|
+
if (!activityInstance?.id)
|
|
21
|
+
return activityInstance;
|
|
22
|
+
if (activityInstance.assigneeRoleIds || activityInstance.assigneeRoles) {
|
|
23
|
+
return Object.assign(activityInstance, { assigneeRoleIds: (0, assignee_pool_js_1.poolIdsOf)(activityInstance) });
|
|
24
|
+
}
|
|
25
|
+
const rows = await manager.query(`SELECT ${assignee_pool_js_1.CASE_POOL.roleColumn} AS roles_id FROM ${assignee_pool_js_1.CASE_POOL.table} WHERE ${assignee_pool_js_1.CASE_POOL.caseColumn} = ${manager.connection.driver.createParameter('id', 0)}`, [activityInstance.id]);
|
|
26
|
+
return Object.assign(activityInstance, { assigneeRoleIds: rows.map(row => row.roles_id) });
|
|
27
|
+
}
|
|
28
|
+
let ActivityInstanceSubscriber = class ActivityInstanceSubscriber {
|
|
29
|
+
listenTo() {
|
|
30
|
+
return activity_instance_js_1.ActivityInstance;
|
|
31
|
+
}
|
|
32
|
+
async afterInsert(event) {
|
|
33
|
+
shell_1.pubsub.publish('activity-instance', {
|
|
34
|
+
activityInstance: await withPoolIds(event.entity, event.manager)
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async afterUpdate(event) {
|
|
38
|
+
shell_1.pubsub.publish('activity-instance', {
|
|
39
|
+
activityInstance: await withPoolIds(event.entity, event.manager)
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.ActivityInstanceSubscriber = ActivityInstanceSubscriber;
|
|
44
|
+
exports.ActivityInstanceSubscriber = ActivityInstanceSubscriber = tslib_1.__decorate([
|
|
45
|
+
(0, typeorm_1.EventSubscriber)()
|
|
46
|
+
], ActivityInstanceSubscriber);
|
|
47
|
+
let ActivityInstanceHistoryEntitySubscriber = class ActivityInstanceHistoryEntitySubscriber extends typeorm_history_1.HistoryEntitySubscriber {
|
|
48
|
+
get entity() {
|
|
49
|
+
return activity_instance_js_1.ActivityInstance;
|
|
50
|
+
}
|
|
51
|
+
get historyEntity() {
|
|
52
|
+
return activity_instance_history_js_1.ActivityInstanceHistory;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.ActivityInstanceHistoryEntitySubscriber = ActivityInstanceHistoryEntitySubscriber;
|
|
56
|
+
exports.ActivityInstanceHistoryEntitySubscriber = ActivityInstanceHistoryEntitySubscriber = tslib_1.__decorate([
|
|
57
|
+
(0, typeorm_1.EventSubscriber)()
|
|
58
|
+
], ActivityInstanceHistoryEntitySubscriber);
|
|
59
|
+
//# sourceMappingURL=event-subscriber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../server/service/activity-instance/event-subscriber.ts"],"names":[],"mappings":";;;AAgBA,kCAYC;;AA5BD,qCAA6G;AAE7G,8DAAkE;AAClE,iDAA8C;AAE9C,iEAAyD;AACzD,iFAAwE;AACxE,yDAAyD;AAEzD;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAAC,gBAAkC,EAAE,OAAsB;IAC1F,IAAI,CAAC,gBAAgB,EAAE,EAAE;QAAE,OAAO,gBAAgB,CAAA;IAClD,IAAI,gBAAgB,CAAC,eAAe,IAAI,gBAAgB,CAAC,aAAa,EAAE,CAAC;QACvE,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,eAAe,EAAE,IAAA,4BAAS,EAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,MAAM,IAAI,GAA2B,MAAM,OAAO,CAAC,KAAK,CACtD,UAAU,4BAAS,CAAC,UAAU,qBAAqB,4BAAS,CAAC,KAAK,UAAU,4BAAS,CAAC,UAAU,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAC1J,CAAC,gBAAgB,CAAC,EAAE,CAAC,CACtB,CAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC5F,CAAC;AAGM,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,QAAQ;QACN,OAAO,uCAAgB,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAoC;QACpD,cAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAClC,gBAAgB,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,MAA0B,EAAE,KAAK,CAAC,OAAO,CAAC;SACrF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAoC;QACpD,cAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAClC,gBAAgB,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,MAA0B,EAAE,KAAK,CAAC,OAAO,CAAC;SACrF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAhBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,yBAAe,GAAE;GACL,0BAA0B,CAgBtC;AAGM,IAAM,uCAAuC,GAA7C,MAAM,uCAAwC,SAAQ,yCAG5D;IACC,IAAW,MAAM;QACf,OAAO,uCAAgB,CAAA;IACzB,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,sDAAuB,CAAA;IAChC,CAAC;CAEF,CAAA;AAZY,0FAAuC;kDAAvC,uCAAuC;IADnD,IAAA,yBAAe,GAAE;GACL,uCAAuC,CAYnD","sourcesContent":["import { EntityManager, EventSubscriber, EntitySubscriberInterface, InsertEvent, UpdateEvent } from 'typeorm'\n\nimport { HistoryEntitySubscriber } from '@operato/typeorm-history'\nimport { pubsub } from '@things-factory/shell'\n\nimport { ActivityInstance } from './activity-instance.js'\nimport { ActivityInstanceHistory } from './activity-instance-history.js'\nimport { CASE_POOL, poolIdsOf } from './assignee-pool.js'\n\n/**\n * The pool's role ids on what is published - the subscription filter decides by them (subscription-filters.ts).\n *\n * A many-to-many is not a column: the saved object carries the roles only when the caller had them, and its\n * RelationId is not filled in on a write. Asked here once per event when it is missing, never once per\n * subscriber. An update with no entity (a query-builder UPDATE) publishes nothing to read, as before.\n */\nexport async function withPoolIds(activityInstance: ActivityInstance, manager: EntityManager): Promise<ActivityInstance> {\n if (!activityInstance?.id) return activityInstance\n if (activityInstance.assigneeRoleIds || activityInstance.assigneeRoles) {\n return Object.assign(activityInstance, { assigneeRoleIds: poolIdsOf(activityInstance) })\n }\n\n const rows: { roles_id: string }[] = await manager.query(\n `SELECT ${CASE_POOL.roleColumn} AS roles_id FROM ${CASE_POOL.table} WHERE ${CASE_POOL.caseColumn} = ${manager.connection.driver.createParameter('id', 0)}`,\n [activityInstance.id]\n )\n\n return Object.assign(activityInstance, { assigneeRoleIds: rows.map(row => row.roles_id) })\n}\n\n@EventSubscriber()\nexport class ActivityInstanceSubscriber implements EntitySubscriberInterface<ActivityInstance> {\n listenTo() {\n return ActivityInstance\n }\n\n async afterInsert(event: InsertEvent<ActivityInstance>): Promise<any | void> {\n pubsub.publish('activity-instance', {\n activityInstance: await withPoolIds(event.entity as ActivityInstance, event.manager)\n })\n }\n\n async afterUpdate(event: UpdateEvent<ActivityInstance>): Promise<any | void> {\n pubsub.publish('activity-instance', {\n activityInstance: await withPoolIds(event.entity as ActivityInstance, event.manager)\n })\n }\n}\n\n@EventSubscriber()\nexport class ActivityInstanceHistoryEntitySubscriber extends HistoryEntitySubscriber<\n ActivityInstance,\n ActivityInstanceHistory\n> {\n public get entity() {\n return ActivityInstance\n }\n\n public get historyEntity() {\n return ActivityInstanceHistory\n }\n\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ActivityInstance } from "./activity-instance.js";
|
|
2
|
+
import { ActivityInstanceHistory } from "./activity-instance-history.js";
|
|
3
|
+
import { ActivityInstanceMutation } from "./activity-instance-mutation.js";
|
|
4
|
+
import { ActivityInstanceQuery } from "./activity-instance-query.js";
|
|
5
|
+
import { ActivityInstanceSubscription } from "./activity-instance-subscription.js";
|
|
6
|
+
import { ActivityInstanceHistoryEntitySubscriber, ActivityInstanceSubscriber } from "./event-subscriber.js";
|
|
7
|
+
export declare const entities: (typeof ActivityInstance | typeof ActivityInstanceHistory)[];
|
|
8
|
+
export declare const resolvers: (typeof ActivityInstanceMutation | typeof ActivityInstanceQuery | typeof ActivityInstanceSubscription)[];
|
|
9
|
+
export declare const subscribers: (typeof ActivityInstanceSubscriber | typeof ActivityInstanceHistoryEntitySubscriber)[];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.subscribers = exports.resolvers = exports.entities = void 0;
|
|
4
|
+
const activity_instance_js_1 = require("./activity-instance.js");
|
|
5
|
+
const activity_instance_history_js_1 = require("./activity-instance-history.js");
|
|
6
|
+
const activity_instance_mutation_js_1 = require("./activity-instance-mutation.js");
|
|
7
|
+
const activity_instance_query_js_1 = require("./activity-instance-query.js");
|
|
8
|
+
const activity_instance_subscription_js_1 = require("./activity-instance-subscription.js");
|
|
9
|
+
const event_subscriber_js_1 = require("./event-subscriber.js");
|
|
10
|
+
exports.entities = [activity_instance_js_1.ActivityInstance, activity_instance_history_js_1.ActivityInstanceHistory];
|
|
11
|
+
exports.resolvers = [activity_instance_query_js_1.ActivityInstanceQuery, activity_instance_mutation_js_1.ActivityInstanceMutation, activity_instance_subscription_js_1.ActivityInstanceSubscription];
|
|
12
|
+
exports.subscribers = [event_subscriber_js_1.ActivityInstanceSubscriber, event_subscriber_js_1.ActivityInstanceHistoryEntitySubscriber];
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/activity-instance/index.ts"],"names":[],"mappings":";;;AAAA,iEAAyD;AACzD,iFAAwE;AACxE,mFAA0E;AAC1E,6EAAoE;AACpE,2FAAkF;AAClF,+DAA2G;AAE9F,QAAA,QAAQ,GAAG,CAAC,uCAAgB,EAAE,sDAAuB,CAAC,CAAA;AACtD,QAAA,SAAS,GAAG,CAAC,kDAAqB,EAAE,wDAAwB,EAAE,gEAA4B,CAAC,CAAA;AAC3F,QAAA,WAAW,GAAG,CAAC,gDAA0B,EAAE,6DAAuC,CAAC,CAAA","sourcesContent":["import { ActivityInstance } from \"./activity-instance.js\"\nimport { ActivityInstanceHistory } from \"./activity-instance-history.js\"\nimport { ActivityInstanceMutation } from \"./activity-instance-mutation.js\"\nimport { ActivityInstanceQuery } from \"./activity-instance-query.js\"\nimport { ActivityInstanceSubscription } from \"./activity-instance-subscription.js\"\nimport { ActivityInstanceHistoryEntitySubscriber, ActivityInstanceSubscriber } from \"./event-subscriber.js\"\n\nexport const entities = [ActivityInstance, ActivityInstanceHistory]\nexport const resolvers = [ActivityInstanceQuery, ActivityInstanceMutation, ActivityInstanceSubscription]\nexport const subscribers = [ActivityInstanceSubscriber, ActivityInstanceHistoryEntitySubscriber]\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestBoxWhere = requestBoxWhere;
|
|
4
|
+
/** One predicate for the request box and its badge. ai is an activity_instances alias. */
|
|
5
|
+
function requestBoxWhere(group) {
|
|
6
|
+
const active = "ai.state IN ('issued', 'unassigned', 'assigned', 'started', 'pending')";
|
|
7
|
+
const editing = `EXISTS (SELECT 1 FROM activity_threads request_thread
|
|
8
|
+
WHERE request_thread.activity_instance_id = ai.id
|
|
9
|
+
AND request_thread.assignee_id = ai.creator_id
|
|
10
|
+
AND request_thread.state IN ('assigned', 'started', 'rejected'))`;
|
|
11
|
+
switch (group) {
|
|
12
|
+
case 'draft': return `(ai.state = 'draft' OR (${active} AND ${editing}))`;
|
|
13
|
+
case 'progress': return `(${active} AND NOT ${editing})`;
|
|
14
|
+
case 'completed': return "ai.state IN ('ended', 'aborted')";
|
|
15
|
+
default: throw new Error('Unknown request box group');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=request-box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-box.js","sourceRoot":"","sources":["../../../server/service/activity-instance/request-box.ts"],"names":[],"mappings":";;AACA,0CAYC;AAbD,0FAA0F;AAC1F,SAAgB,eAAe,CAAC,KAAa;IAC3C,MAAM,MAAM,GAAG,wEAAwE,CAAA;IACvF,MAAM,OAAO,GAAG;;;uEAGqD,CAAA;IACrE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO,CAAC,CAAC,OAAO,2BAA2B,MAAM,QAAQ,OAAO,IAAI,CAAA;QACzE,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,MAAM,YAAY,OAAO,GAAG,CAAA;QACxD,KAAK,WAAW,CAAC,CAAC,OAAO,kCAAkC,CAAA;QAC3D,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACvD,CAAC;AACH,CAAC","sourcesContent":["/** One predicate for the request box and its badge. ai is an activity_instances alias. */\nexport function requestBoxWhere(group: string): string {\n const active = \"ai.state IN ('issued', 'unassigned', 'assigned', 'started', 'pending')\"\n const editing = `EXISTS (SELECT 1 FROM activity_threads request_thread\n WHERE request_thread.activity_instance_id = ai.id\n AND request_thread.assignee_id = ai.creator_id\n AND request_thread.state IN ('assigned', 'started', 'rejected'))`\n switch (group) {\n case 'draft': return `(ai.state = 'draft' OR (${active} AND ${editing}))`\n case 'progress': return `(${active} AND NOT ${editing})`\n case 'completed': return \"ai.state IN ('ended', 'aborted')\"\n default: throw new Error('Unknown request box group')\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ActivityEvent } from './activity-stats-type.js';
|
|
2
|
+
export declare class ActivityStatsQuery {
|
|
3
|
+
activityEvents(from: string, to: string, context: ResolverContext): Promise<ActivityEvent[]>;
|
|
4
|
+
private rolesOf;
|
|
5
|
+
/** 아직 내 앞에 있는 업무 — 「할 일」 목록과 같은 정의를 읽는다(myOpenThreadsWhere). */
|
|
6
|
+
private myOpenThreadEvents;
|
|
7
|
+
/** 아직 내 판단을 기다리는 결재 — 「내 결재함」과 같은 정의를 읽는다(myPendingApprovalsWhere). */
|
|
8
|
+
private myPendingApprovalEvents;
|
|
9
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActivityStatsQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
|
6
|
+
const shell_1 = require("@things-factory/shell");
|
|
7
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
8
|
+
const activity_stats_type_js_1 = require("./activity-stats-type.js");
|
|
9
|
+
const activity_thread_js_1 = require("../activity-thread/activity-thread.js");
|
|
10
|
+
const activity_approval_js_1 = require("../activity-approval/activity-approval.js");
|
|
11
|
+
const my_open_threads_js_1 = require("../activity-thread/my-open-threads.js");
|
|
12
|
+
const my_pending_approvals_js_1 = require("../activity-approval/my-pending-approvals.js");
|
|
13
|
+
const approval_line_js_1 = require("../../controllers/activity-approval/approval-line.js");
|
|
14
|
+
const event_placement_js_1 = require("./event-placement.js");
|
|
15
|
+
let ActivityStatsQuery = class ActivityStatsQuery {
|
|
16
|
+
async activityEvents(from, to, context) {
|
|
17
|
+
const { domain, user } = context.state;
|
|
18
|
+
if (!from) {
|
|
19
|
+
const beginOfToday = new Date();
|
|
20
|
+
beginOfToday.setHours(0, 0, 0, 0);
|
|
21
|
+
from = beginOfToday.toISOString().split('T').join(' ');
|
|
22
|
+
}
|
|
23
|
+
if (!to) {
|
|
24
|
+
const endOfToday = new Date();
|
|
25
|
+
endOfToday.setDate(endOfToday.getDate() + 1);
|
|
26
|
+
endOfToday.setHours(0, 0, 0, 0);
|
|
27
|
+
to = endOfToday.toISOString().split('T').join(' ');
|
|
28
|
+
}
|
|
29
|
+
const status = [activity_thread_js_1.ActivityThreadStatus.Ended, activity_thread_js_1.ActivityThreadStatus.Aborted];
|
|
30
|
+
var params = { filters: [{ name: 'terminatedAt', operator: 'between', value: [from, to] }] };
|
|
31
|
+
var doneItems = await (0, shell_1.getQueryBuilderFromListParams)({
|
|
32
|
+
repository: (0, shell_1.getRepository)(activity_thread_js_1.ActivityThread),
|
|
33
|
+
params,
|
|
34
|
+
domain,
|
|
35
|
+
alias: 'at'
|
|
36
|
+
})
|
|
37
|
+
.leftJoinAndSelect('at.activityInstance', 'ai')
|
|
38
|
+
.andWhere('at.state IN (:...status)', { status })
|
|
39
|
+
.andWhere('at.assignee = :user', { user: user.id })
|
|
40
|
+
.getMany();
|
|
41
|
+
const activityThreadDoneEvents = doneItems.map(({ id, activityInstance, terminatedAt, state }) => {
|
|
42
|
+
return {
|
|
43
|
+
id,
|
|
44
|
+
name: activityInstance.name,
|
|
45
|
+
date: terminatedAt,
|
|
46
|
+
priority: activityInstance.priority,
|
|
47
|
+
/*
|
|
48
|
+
* Giving up on work is not finishing it.
|
|
49
|
+
*
|
|
50
|
+
* This query asks for both endings — Ended and Aborted, three lines up — and then reported
|
|
51
|
+
* every one of them as Done. An aborted thread wore the same checkmark as a completed one,
|
|
52
|
+
* so the calendar answered "what did I finish this month" with a count that included the
|
|
53
|
+
* work that was dropped.
|
|
54
|
+
*/
|
|
55
|
+
state: state == activity_thread_js_1.ActivityThreadStatus.Aborted ? activity_stats_type_js_1.ActivityEventStatus.Aborted : activity_stats_type_js_1.ActivityEventStatus.Done,
|
|
56
|
+
basis: activity_stats_type_js_1.ActivityEventDateBasis.Terminated,
|
|
57
|
+
type: 'activity-thread'
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
/*
|
|
61
|
+
* **판단한 것만.** Derived from TERMINATED_JUDGMENTS rather than listed again by hand.
|
|
62
|
+
*
|
|
63
|
+
* This was a hand-written four (escalated, delegated, approved, rejected) while
|
|
64
|
+
* TERMINATED_JUDGMENTS holds six. The pending half asks the complement — NOT IN those six — so
|
|
65
|
+
* `aborted` and `closed` matched neither half and fell out of the calendar entirely: not
|
|
66
|
+
* waiting, not done, simply gone. Two hand-written copies of one definition, exactly what the
|
|
67
|
+
* comment on approvalPendingList warns about.
|
|
68
|
+
*
|
|
69
|
+
* Those two are excluded on purpose, and it is a different sentence from "not finished": the
|
|
70
|
+
* person never judged them. A thread being abandoned closes its open approvals around whoever
|
|
71
|
+
* held them (activity-thread/_abort.ts). Drawing that on 「what I did」 would credit someone
|
|
72
|
+
* with a decision they never made — and the icon set has no honest mark for it, since
|
|
73
|
+
* `judgment == Rejected ? Rejected : Approved` would stamp them 승인.
|
|
74
|
+
*/
|
|
75
|
+
const NOT_JUDGED_BY_A_PERSON = [
|
|
76
|
+
activity_approval_js_1.ActivityApprovalJudgment.Aborted,
|
|
77
|
+
activity_approval_js_1.ActivityApprovalJudgment.Closed
|
|
78
|
+
];
|
|
79
|
+
const judgment = approval_line_js_1.TERMINATED_JUDGMENTS.filter(one => !NOT_JUDGED_BY_A_PERSON.includes(one));
|
|
80
|
+
const approvalDoneItems = await (0, shell_1.getQueryBuilderFromListParams)({
|
|
81
|
+
repository: (0, shell_1.getRepository)(activity_approval_js_1.ActivityApproval),
|
|
82
|
+
params,
|
|
83
|
+
domain,
|
|
84
|
+
alias: 'ap'
|
|
85
|
+
})
|
|
86
|
+
.leftJoinAndSelect('ap.activityThread', 'at')
|
|
87
|
+
.leftJoinAndSelect('at.activityInstance', 'ai')
|
|
88
|
+
.andWhere('ap.judgment IN (:...judgment)', { judgment })
|
|
89
|
+
.andWhere('ap.approver = :user', { user: user.id })
|
|
90
|
+
.getMany();
|
|
91
|
+
const activityApprovalDoneEvents = approvalDoneItems.map(({ id, activityThread, terminatedAt, judgment }) => {
|
|
92
|
+
const activityInstance = activityThread.activityInstance;
|
|
93
|
+
return {
|
|
94
|
+
id,
|
|
95
|
+
name: activityInstance.name,
|
|
96
|
+
date: terminatedAt,
|
|
97
|
+
priority: activityInstance.priority,
|
|
98
|
+
/*
|
|
99
|
+
* Only a rejection is a rejection.
|
|
100
|
+
*
|
|
101
|
+
* This read `judgment == Approved || ActivityApprovalJudgment.Escalated`. The right side is
|
|
102
|
+
* not a comparison — it is the string 'escalated', which is always truthy, so the whole
|
|
103
|
+
* expression was always true and every approval on the calendar came back as Approved. A
|
|
104
|
+
* rejected request wore the 승인 icon (done_all instead of assignment_return): the calendar
|
|
105
|
+
* said the opposite of what happened.
|
|
106
|
+
*
|
|
107
|
+
* Of the four judgments that reach this list, three moved the request onward — approved,
|
|
108
|
+
* escalated to a supervisor, delegated to someone else — and one sent it back. The icon set
|
|
109
|
+
* draws that one distinction, so that is the one drawn.
|
|
110
|
+
*
|
|
111
|
+
* 위임 has no mark of its own here. It is not an approval and it is not a rejection, but
|
|
112
|
+
* ActivityEventStatus has no value for it and inventing one would change the API for a
|
|
113
|
+
* distinction the calendar cannot draw anyway. Marking it as sent-back would be the worse
|
|
114
|
+
* of the two available lies.
|
|
115
|
+
*/
|
|
116
|
+
state: judgment == activity_approval_js_1.ActivityApprovalJudgment.Rejected ? activity_stats_type_js_1.ActivityEventStatus.Rejected : activity_stats_type_js_1.ActivityEventStatus.Approved,
|
|
117
|
+
basis: activity_stats_type_js_1.ActivityEventDateBasis.Terminated,
|
|
118
|
+
type: 'activity-approval'
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
/*
|
|
122
|
+
* ── 안 끝난 것도 낸다 (2026-09-07) ─────────────────────────────────────
|
|
123
|
+
* 이 질의는 끝난 것만 냈다. 화면 이름이 「완료 달력」이었고, 정말로 끝난 것만 나왔다 — 달력이
|
|
124
|
+
* 아니라 기록부였다. 사람의 한 주에는 앞과 뒤가 다 있는데 뒤만 그렸다.
|
|
125
|
+
*
|
|
126
|
+
* 「안 얹는다」로 한 번 결론냈던 것을 되돌린 것이다. 그때 근거는 「plant 현장 달력의 filter 가
|
|
127
|
+
* 라인 하나뿐이라 결재가 안 맞는다」였는데, 그 달력은 **우리가 만든 것**이다. 지금 그렇게
|
|
128
|
+
* 생겼다는 건 현재 상태이지 제약이 아니었다.
|
|
129
|
+
*
|
|
130
|
+
* `ActivityEventStatus.Pending` 은 선언만 되어 있고 한 번도 나간 적이 없는 값이었다. 실을
|
|
131
|
+
* 자리가 이미 비어 있었다.
|
|
132
|
+
*/
|
|
133
|
+
const [pendingThreadEvents, pendingApprovalEvents] = await Promise.all([
|
|
134
|
+
this.myOpenThreadEvents({ from, to }, context),
|
|
135
|
+
this.myPendingApprovalEvents({ from, to }, context)
|
|
136
|
+
]);
|
|
137
|
+
return [
|
|
138
|
+
...activityThreadDoneEvents,
|
|
139
|
+
...activityApprovalDoneEvents,
|
|
140
|
+
...pendingThreadEvents,
|
|
141
|
+
...pendingApprovalEvents
|
|
142
|
+
];
|
|
143
|
+
}
|
|
144
|
+
async rolesOf(context) {
|
|
145
|
+
const { domain, user } = context.state;
|
|
146
|
+
const withRoles = await (0, shell_1.getRepository)(auth_base_1.User).findOne({
|
|
147
|
+
where: { id: user.id },
|
|
148
|
+
relations: ['roles']
|
|
149
|
+
});
|
|
150
|
+
return (withRoles?.roles || []).filter(role => role.domainId === domain.id).map(role => role.id);
|
|
151
|
+
}
|
|
152
|
+
/** 아직 내 앞에 있는 업무 — 「할 일」 목록과 같은 정의를 읽는다(myOpenThreadsWhere). */
|
|
153
|
+
async myOpenThreadEvents({ from, to }, context) {
|
|
154
|
+
const { domain, user } = context.state;
|
|
155
|
+
const roles = await this.rolesOf(context);
|
|
156
|
+
const items = await (0, shell_1.getQueryBuilderFromListParams)({
|
|
157
|
+
repository: (0, shell_1.getRepository)(activity_thread_js_1.ActivityThread),
|
|
158
|
+
params: { filters: [] },
|
|
159
|
+
domain,
|
|
160
|
+
alias: 'at'
|
|
161
|
+
})
|
|
162
|
+
.innerJoinAndSelect('at.activityInstance', 'ai')
|
|
163
|
+
.andWhere((0, my_open_threads_js_1.myOpenThreadsWhere)({ userId: user.id, roles }))
|
|
164
|
+
.getMany();
|
|
165
|
+
return items
|
|
166
|
+
.map(({ id, activityInstance, dueAt, assignedAt }) => ({
|
|
167
|
+
id,
|
|
168
|
+
name: activityInstance.name,
|
|
169
|
+
...(0, event_placement_js_1.placeOf)(dueAt, assignedAt),
|
|
170
|
+
priority: activityInstance.priority,
|
|
171
|
+
state: activity_stats_type_js_1.ActivityEventStatus.Pending,
|
|
172
|
+
type: 'activity-thread'
|
|
173
|
+
}))
|
|
174
|
+
.filter(event => (0, event_placement_js_1.withinPeriod)(event.date, from, to));
|
|
175
|
+
}
|
|
176
|
+
/** 아직 내 판단을 기다리는 결재 — 「내 결재함」과 같은 정의를 읽는다(myPendingApprovalsWhere). */
|
|
177
|
+
async myPendingApprovalEvents({ from, to }, context) {
|
|
178
|
+
const { domain, user } = context.state;
|
|
179
|
+
const roles = await this.rolesOf(context);
|
|
180
|
+
const items = await (0, shell_1.getQueryBuilderFromListParams)({
|
|
181
|
+
repository: (0, shell_1.getRepository)(activity_approval_js_1.ActivityApproval),
|
|
182
|
+
params: { filters: [] },
|
|
183
|
+
domain,
|
|
184
|
+
alias: 'ap'
|
|
185
|
+
})
|
|
186
|
+
.leftJoinAndSelect('ap.activityThread', 'at')
|
|
187
|
+
.leftJoinAndSelect('at.activityInstance', 'ai')
|
|
188
|
+
.andWhere((0, my_pending_approvals_js_1.myPendingApprovalsWhere)({ userId: user.id, roles }))
|
|
189
|
+
.getMany();
|
|
190
|
+
return items
|
|
191
|
+
.map(({ id, activityThread, createdAt }) => ({
|
|
192
|
+
id,
|
|
193
|
+
name: activityThread?.activityInstance?.name,
|
|
194
|
+
/*
|
|
195
|
+
* **The deadline here is the thread's, not the approval's.**
|
|
196
|
+
*
|
|
197
|
+
* activity_approvals has no due_at column — checked. So a judged-by date can only come
|
|
198
|
+
* from the request the approval hangs off, and that is the right value today: the approval
|
|
199
|
+
* has to be finished by the time the work is due.
|
|
200
|
+
*
|
|
201
|
+
* Written down because the screen reads it as the approval's own. The day an approval
|
|
202
|
+
* grows a deadline of its own the two values part, and whoever meets that day needs to
|
|
203
|
+
* know which one this line meant. (plant lane raised this, 2026-09-07.)
|
|
204
|
+
*
|
|
205
|
+
* The fallback is a different date entirely: `createApproval` writes the row when the turn
|
|
206
|
+
* arrives — submit for the first approver, approve for the next — so createdAt is the day
|
|
207
|
+
* it landed on this person.
|
|
208
|
+
*/
|
|
209
|
+
...(0, event_placement_js_1.placeOf)(activityThread?.dueAt, createdAt),
|
|
210
|
+
priority: activityThread?.activityInstance?.priority,
|
|
211
|
+
state: activity_stats_type_js_1.ActivityEventStatus.Pending,
|
|
212
|
+
type: 'activity-approval'
|
|
213
|
+
}))
|
|
214
|
+
.filter(event => (0, event_placement_js_1.withinPeriod)(event.date, from, to));
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
exports.ActivityStatsQuery = ActivityStatsQuery;
|
|
218
|
+
tslib_1.__decorate([
|
|
219
|
+
(0, type_graphql_1.Query)(returns => [activity_stats_type_js_1.ActivityEvent], { description: 'To fetch activity events by period' }),
|
|
220
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('from')),
|
|
221
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('to')),
|
|
222
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
223
|
+
tslib_1.__metadata("design:type", Function),
|
|
224
|
+
tslib_1.__metadata("design:paramtypes", [String, String, Object]),
|
|
225
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
226
|
+
], ActivityStatsQuery.prototype, "activityEvents", null);
|
|
227
|
+
exports.ActivityStatsQuery = ActivityStatsQuery = tslib_1.__decorate([
|
|
228
|
+
(0, type_graphql_1.Resolver)(ActivityStatsQuery)
|
|
229
|
+
], ActivityStatsQuery);
|
|
230
|
+
//# sourceMappingURL=activity-stats-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-stats-query.js","sourceRoot":"","sources":["../../../server/service/activity-stats/activity-stats-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { Role, User } from '@things-factory/auth-base'\nimport { ActivityEvent, ActivityEventDateBasis, ActivityEventStatus } from './activity-stats-type.js'\nimport { ActivityThread, ActivityThreadStatus } from '../activity-thread/activity-thread.js'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../activity-approval/activity-approval.js'\nimport { myOpenThreadsWhere } from '../activity-thread/my-open-threads.js'\nimport { myPendingApprovalsWhere } from '../activity-approval/my-pending-approvals.js'\nimport { TERMINATED_JUDGMENTS } from '../../controllers/activity-approval/approval-line.js'\nimport { placeOf, withinPeriod } from './event-placement.js'\n\n@Resolver(ActivityStatsQuery)\nexport class ActivityStatsQuery {\n @Query(returns => [ActivityEvent], { description: 'To fetch activity events by period' })\n async activityEvents(\n @Arg('from') from: string,\n @Arg('to') to: string,\n @Ctx() context: ResolverContext\n ): Promise<ActivityEvent[]> {\n const { domain, user } = context.state\n\n if (!from) {\n const beginOfToday = new Date()\n beginOfToday.setHours(0, 0, 0, 0)\n from = beginOfToday.toISOString().split('T').join(' ')\n }\n\n if (!to) {\n const endOfToday = new Date()\n endOfToday.setDate(endOfToday.getDate() + 1)\n endOfToday.setHours(0, 0, 0, 0)\n to = endOfToday.toISOString().split('T').join(' ')\n }\n\n const status = [ActivityThreadStatus.Ended, ActivityThreadStatus.Aborted]\n\n var params = { filters: [{ name: 'terminatedAt', operator: 'between', value: [from, to] }] }\n\n var doneItems = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityThread),\n params,\n domain,\n alias: 'at'\n })\n .leftJoinAndSelect('at.activityInstance', 'ai')\n .andWhere('at.state IN (:...status)', { status })\n .andWhere('at.assignee = :user', { user: user.id })\n .getMany()\n\n const activityThreadDoneEvents = doneItems.map(({ id, activityInstance, terminatedAt, state }) => {\n return {\n id,\n name: activityInstance.name,\n date: terminatedAt,\n priority: activityInstance.priority,\n /*\n * Giving up on work is not finishing it.\n *\n * This query asks for both endings — Ended and Aborted, three lines up — and then reported\n * every one of them as Done. An aborted thread wore the same checkmark as a completed one,\n * so the calendar answered \"what did I finish this month\" with a count that included the\n * work that was dropped.\n */\n state: state == ActivityThreadStatus.Aborted ? ActivityEventStatus.Aborted : ActivityEventStatus.Done,\n basis: ActivityEventDateBasis.Terminated,\n type: 'activity-thread'\n }\n })\n\n /*\n * **판단한 것만.** Derived from TERMINATED_JUDGMENTS rather than listed again by hand.\n *\n * This was a hand-written four (escalated, delegated, approved, rejected) while\n * TERMINATED_JUDGMENTS holds six. The pending half asks the complement — NOT IN those six — so\n * `aborted` and `closed` matched neither half and fell out of the calendar entirely: not\n * waiting, not done, simply gone. Two hand-written copies of one definition, exactly what the\n * comment on approvalPendingList warns about.\n *\n * Those two are excluded on purpose, and it is a different sentence from \"not finished\": the\n * person never judged them. A thread being abandoned closes its open approvals around whoever\n * held them (activity-thread/_abort.ts). Drawing that on 「what I did」 would credit someone\n * with a decision they never made — and the icon set has no honest mark for it, since\n * `judgment == Rejected ? Rejected : Approved` would stamp them 승인.\n */\n const NOT_JUDGED_BY_A_PERSON: readonly string[] = [\n ActivityApprovalJudgment.Aborted,\n ActivityApprovalJudgment.Closed\n ]\n const judgment = TERMINATED_JUDGMENTS.filter(one => !NOT_JUDGED_BY_A_PERSON.includes(one))\n\n const approvalDoneItems = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityApproval),\n params,\n domain,\n alias: 'ap'\n })\n .leftJoinAndSelect('ap.activityThread', 'at')\n .leftJoinAndSelect('at.activityInstance', 'ai')\n .andWhere('ap.judgment IN (:...judgment)', { judgment })\n .andWhere('ap.approver = :user', { user: user.id })\n .getMany()\n\n const activityApprovalDoneEvents = approvalDoneItems.map(({ id, activityThread, terminatedAt, judgment }) => {\n const activityInstance = activityThread.activityInstance\n\n return {\n id,\n name: activityInstance.name,\n date: terminatedAt,\n priority: activityInstance.priority,\n /*\n * Only a rejection is a rejection.\n *\n * This read `judgment == Approved || ActivityApprovalJudgment.Escalated`. The right side is\n * not a comparison — it is the string 'escalated', which is always truthy, so the whole\n * expression was always true and every approval on the calendar came back as Approved. A\n * rejected request wore the 승인 icon (done_all instead of assignment_return): the calendar\n * said the opposite of what happened.\n *\n * Of the four judgments that reach this list, three moved the request onward — approved,\n * escalated to a supervisor, delegated to someone else — and one sent it back. The icon set\n * draws that one distinction, so that is the one drawn.\n *\n * 위임 has no mark of its own here. It is not an approval and it is not a rejection, but\n * ActivityEventStatus has no value for it and inventing one would change the API for a\n * distinction the calendar cannot draw anyway. Marking it as sent-back would be the worse\n * of the two available lies.\n */\n state:\n judgment == ActivityApprovalJudgment.Rejected ? ActivityEventStatus.Rejected : ActivityEventStatus.Approved,\n basis: ActivityEventDateBasis.Terminated,\n type: 'activity-approval'\n }\n })\n\n /*\n * ── 안 끝난 것도 낸다 (2026-09-07) ─────────────────────────────────────\n * 이 질의는 끝난 것만 냈다. 화면 이름이 「완료 달력」이었고, 정말로 끝난 것만 나왔다 — 달력이\n * 아니라 기록부였다. 사람의 한 주에는 앞과 뒤가 다 있는데 뒤만 그렸다.\n *\n * 「안 얹는다」로 한 번 결론냈던 것을 되돌린 것이다. 그때 근거는 「plant 현장 달력의 filter 가\n * 라인 하나뿐이라 결재가 안 맞는다」였는데, 그 달력은 **우리가 만든 것**이다. 지금 그렇게\n * 생겼다는 건 현재 상태이지 제약이 아니었다.\n *\n * `ActivityEventStatus.Pending` 은 선언만 되어 있고 한 번도 나간 적이 없는 값이었다. 실을\n * 자리가 이미 비어 있었다.\n */\n const [pendingThreadEvents, pendingApprovalEvents] = await Promise.all([\n this.myOpenThreadEvents({ from, to }, context),\n this.myPendingApprovalEvents({ from, to }, context)\n ])\n\n return [\n ...activityThreadDoneEvents,\n ...activityApprovalDoneEvents,\n ...pendingThreadEvents,\n ...pendingApprovalEvents\n ]\n }\n\n private async rolesOf(context: ResolverContext): Promise<string[]> {\n const { domain, user } = context.state\n\n const withRoles = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n return (withRoles?.roles || []).filter(role => role.domainId === domain.id).map(role => role.id)\n }\n\n /** 아직 내 앞에 있는 업무 — 「할 일」 목록과 같은 정의를 읽는다(myOpenThreadsWhere). */\n private async myOpenThreadEvents(\n { from, to }: { from: string; to: string },\n context: ResolverContext\n ): Promise<ActivityEvent[]> {\n const { domain, user } = context.state\n const roles = await this.rolesOf(context)\n\n const items = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityThread),\n params: { filters: [] },\n domain,\n alias: 'at'\n })\n .innerJoinAndSelect('at.activityInstance', 'ai')\n .andWhere(myOpenThreadsWhere({ userId: user.id, roles }))\n .getMany()\n\n return items\n .map(({ id, activityInstance, dueAt, assignedAt }) => ({\n id,\n name: activityInstance.name,\n ...placeOf(dueAt, assignedAt),\n priority: activityInstance.priority,\n state: ActivityEventStatus.Pending,\n type: 'activity-thread'\n }))\n .filter(event => withinPeriod(event.date, from, to))\n }\n\n /** 아직 내 판단을 기다리는 결재 — 「내 결재함」과 같은 정의를 읽는다(myPendingApprovalsWhere). */\n private async myPendingApprovalEvents(\n { from, to }: { from: string; to: string },\n context: ResolverContext\n ): Promise<ActivityEvent[]> {\n const { domain, user } = context.state\n const roles = await this.rolesOf(context)\n\n const items = await getQueryBuilderFromListParams({\n repository: getRepository(ActivityApproval),\n params: { filters: [] },\n domain,\n alias: 'ap'\n })\n .leftJoinAndSelect('ap.activityThread', 'at')\n .leftJoinAndSelect('at.activityInstance', 'ai')\n .andWhere(myPendingApprovalsWhere({ userId: user.id, roles }))\n .getMany()\n\n return items\n .map(({ id, activityThread, createdAt }) => ({\n id,\n name: activityThread?.activityInstance?.name,\n /*\n * **The deadline here is the thread's, not the approval's.**\n *\n * activity_approvals has no due_at column — checked. So a judged-by date can only come\n * from the request the approval hangs off, and that is the right value today: the approval\n * has to be finished by the time the work is due.\n *\n * Written down because the screen reads it as the approval's own. The day an approval\n * grows a deadline of its own the two values part, and whoever meets that day needs to\n * know which one this line meant. (plant lane raised this, 2026-09-07.)\n *\n * The fallback is a different date entirely: `createApproval` writes the row when the turn\n * arrives — submit for the first approver, approve for the next — so createdAt is the day\n * it landed on this person.\n */\n ...placeOf(activityThread?.dueAt, createdAt),\n priority: activityThread?.activityInstance?.priority,\n state: ActivityEventStatus.Pending,\n type: 'activity-approval'\n }))\n .filter(event => withinPeriod(event.date, from, to))\n }\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ActivityEventDateBasis } from './event-placement.js';
|
|
2
|
+
export { ActivityEventDateBasis } from './event-placement.js';
|
|
3
|
+
export type { ActivityEventDateBasis as ActivityEventDateBasisType } from './event-placement.js';
|
|
4
|
+
/**
|
|
5
|
+
* How a finished item reads on the calendar.
|
|
6
|
+
*
|
|
7
|
+
* `Aborted` is not decoration. A thread that was given up on ends in the same query as one that was
|
|
8
|
+
* completed, and without a value of its own it was reported as `Done` — the calendar drew a
|
|
9
|
+
* checkmark on work nobody finished.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ActivityEventStatus: {
|
|
12
|
+
readonly Done: "done";
|
|
13
|
+
readonly Aborted: "aborted";
|
|
14
|
+
readonly Pending: "pending";
|
|
15
|
+
readonly Approved: "approved";
|
|
16
|
+
readonly Rejected: "rejected";
|
|
17
|
+
};
|
|
18
|
+
export type ActivityEventStatus = (typeof ActivityEventStatus)[keyof typeof ActivityEventStatus];
|
|
19
|
+
export declare class ActivityEvent {
|
|
20
|
+
id?: string;
|
|
21
|
+
name?: string;
|
|
22
|
+
type?: string;
|
|
23
|
+
priority?: number;
|
|
24
|
+
state?: ActivityEventStatus;
|
|
25
|
+
basis?: ActivityEventDateBasis;
|
|
26
|
+
date?: Date;
|
|
27
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActivityEvent = exports.ActivityEventStatus = exports.ActivityEventDateBasis = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
|
6
|
+
const event_placement_js_1 = require("./event-placement.js");
|
|
7
|
+
var event_placement_js_2 = require("./event-placement.js");
|
|
8
|
+
Object.defineProperty(exports, "ActivityEventDateBasis", { enumerable: true, get: function () { return event_placement_js_2.ActivityEventDateBasis; } });
|
|
9
|
+
/**
|
|
10
|
+
* How a finished item reads on the calendar.
|
|
11
|
+
*
|
|
12
|
+
* `Aborted` is not decoration. A thread that was given up on ends in the same query as one that was
|
|
13
|
+
* completed, and without a value of its own it was reported as `Done` — the calendar drew a
|
|
14
|
+
* checkmark on work nobody finished.
|
|
15
|
+
*/
|
|
16
|
+
/*
|
|
17
|
+
* A const map, not a TS `enum`.
|
|
18
|
+
*
|
|
19
|
+
* The placement rules beside this file are pure and belong under test, and this package's test
|
|
20
|
+
* runner is node's own strip-only TypeScript — which refuses `enum` outright
|
|
21
|
+
* (ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX). One `enum` in a file makes every module that imports it
|
|
22
|
+
* untestable there, however pure it is. registerEnumType takes a plain object, so nothing is lost
|
|
23
|
+
* at the schema boundary and the list stays the single source with the type derived from it.
|
|
24
|
+
*/
|
|
25
|
+
exports.ActivityEventStatus = {
|
|
26
|
+
Done: 'done',
|
|
27
|
+
Aborted: 'aborted',
|
|
28
|
+
Pending: 'pending',
|
|
29
|
+
Approved: 'approved',
|
|
30
|
+
Rejected: 'rejected'
|
|
31
|
+
};
|
|
32
|
+
(0, type_graphql_1.registerEnumType)(exports.ActivityEventStatus, {
|
|
33
|
+
name: 'ActivityEventStatus',
|
|
34
|
+
description: 'state enumeration of a Activity Event'
|
|
35
|
+
});
|
|
36
|
+
(0, type_graphql_1.registerEnumType)(event_placement_js_1.ActivityEventDateBasis, {
|
|
37
|
+
name: 'ActivityEventDateBasis',
|
|
38
|
+
description: 'what the date of an Activity Event means'
|
|
39
|
+
});
|
|
40
|
+
let ActivityEvent = class ActivityEvent {
|
|
41
|
+
};
|
|
42
|
+
exports.ActivityEvent = ActivityEvent;
|
|
43
|
+
tslib_1.__decorate([
|
|
44
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
45
|
+
tslib_1.__metadata("design:type", String)
|
|
46
|
+
], ActivityEvent.prototype, "id", void 0);
|
|
47
|
+
tslib_1.__decorate([
|
|
48
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
49
|
+
tslib_1.__metadata("design:type", String)
|
|
50
|
+
], ActivityEvent.prototype, "name", void 0);
|
|
51
|
+
tslib_1.__decorate([
|
|
52
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
53
|
+
tslib_1.__metadata("design:type", String)
|
|
54
|
+
], ActivityEvent.prototype, "type", void 0);
|
|
55
|
+
tslib_1.__decorate([
|
|
56
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
57
|
+
tslib_1.__metadata("design:type", Number)
|
|
58
|
+
], ActivityEvent.prototype, "priority", void 0);
|
|
59
|
+
tslib_1.__decorate([
|
|
60
|
+
(0, type_graphql_1.Field)(type => exports.ActivityEventStatus, { nullable: true }),
|
|
61
|
+
tslib_1.__metadata("design:type", String)
|
|
62
|
+
], ActivityEvent.prototype, "state", void 0);
|
|
63
|
+
tslib_1.__decorate([
|
|
64
|
+
(0, type_graphql_1.Field)(type => event_placement_js_1.ActivityEventDateBasis, { nullable: true }),
|
|
65
|
+
tslib_1.__metadata("design:type", String)
|
|
66
|
+
], ActivityEvent.prototype, "basis", void 0);
|
|
67
|
+
tslib_1.__decorate([
|
|
68
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
69
|
+
tslib_1.__metadata("design:type", Date)
|
|
70
|
+
], ActivityEvent.prototype, "date", void 0);
|
|
71
|
+
exports.ActivityEvent = ActivityEvent = tslib_1.__decorate([
|
|
72
|
+
(0, type_graphql_1.ObjectType)()
|
|
73
|
+
], ActivityEvent);
|
|
74
|
+
//# sourceMappingURL=activity-stats-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-stats-type.js","sourceRoot":"","sources":["../../../server/service/activity-stats/activity-stats-type.ts"],"names":[],"mappings":";;;;AAAA,+CAA2E;AAE3E,6DAA6D;AAE7D,2DAA6D;AAApD,4HAAA,sBAAsB,OAAA;AAG/B;;;;;;GAMG;AACH;;;;;;;;GAQG;AACU,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACZ,CAAA;AAIV,IAAA,+BAAgB,EAAC,2BAAmB,EAAE;IACpC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,uCAAuC;CACrD,CAAC,CAAA;AAEF,IAAA,+BAAgB,EAAC,2CAAsB,EAAE;IACvC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,0CAA0C;CACxD,CAAC,CAAA;AAGK,IAAM,aAAa,GAAnB,MAAM,aAAa;CA4BzB,CAAA;AA5BY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACf;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACT;AAUjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,2BAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAC5B;AAG3B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,2CAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAC5B;AAG9B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACnB,IAAI;2CAAA;wBA3BA,aAAa;IADzB,IAAA,yBAAU,GAAE;GACA,aAAa,CA4BzB","sourcesContent":["import { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { ActivityEventDateBasis } from './event-placement.js'\n\nexport { ActivityEventDateBasis } from './event-placement.js'\nexport type { ActivityEventDateBasis as ActivityEventDateBasisType } from './event-placement.js'\n\n/**\n * How a finished item reads on the calendar.\n *\n * `Aborted` is not decoration. A thread that was given up on ends in the same query as one that was\n * completed, and without a value of its own it was reported as `Done` — the calendar drew a\n * checkmark on work nobody finished.\n */\n/*\n * A const map, not a TS `enum`.\n *\n * The placement rules beside this file are pure and belong under test, and this package's test\n * runner is node's own strip-only TypeScript — which refuses `enum` outright\n * (ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX). One `enum` in a file makes every module that imports it\n * untestable there, however pure it is. registerEnumType takes a plain object, so nothing is lost\n * at the schema boundary and the list stays the single source with the type derived from it.\n */\nexport const ActivityEventStatus = {\n Done: 'done',\n Aborted: 'aborted',\n Pending: 'pending',\n Approved: 'approved',\n Rejected: 'rejected'\n} as const\n\nexport type ActivityEventStatus = (typeof ActivityEventStatus)[keyof typeof ActivityEventStatus]\n\nregisterEnumType(ActivityEventStatus, {\n name: 'ActivityEventStatus',\n description: 'state enumeration of a Activity Event'\n})\n\nregisterEnumType(ActivityEventDateBasis, {\n name: 'ActivityEventDateBasis',\n description: 'what the date of an Activity Event means'\n})\n\n@ObjectType()\nexport class ActivityEvent {\n @Field({ nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n priority?: number\n\n /*\n * Declared explicitly, which changes what crosses the wire: registerEnumType publishes an enum\n * by its **key**, so this now answers `Pending` rather than `pending`. Without the explicit type\n * reflection sees String and the raw value goes out — that inconsistency is worth removing while\n * this type has exactly one consumer (done-list-calendar-page), and that consumer already folds\n * case on both enum fields.\n */\n @Field(type => ActivityEventStatus, { nullable: true })\n state?: ActivityEventStatus\n\n @Field(type => ActivityEventDateBasis, { nullable: true })\n basis?: ActivityEventDateBasis\n\n @Field({ nullable: true })\n date?: Date\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **What the event's date means.** Not decoration — the reader acts on it.
|
|
3
|
+
*
|
|
4
|
+
* A finished item sits on the day it ended. An unfinished one sits on its deadline when it has
|
|
5
|
+
* one, and otherwise on the day it landed on this person. Those are two different sentences on the
|
|
6
|
+
* same square: "due by the 12th" and "arrived on the 12th". Drawn alike, an approver reads a
|
|
7
|
+
* deadline as an arrival and lets it pass, or reads an arrival as a deadline and reshuffles a week
|
|
8
|
+
* for nothing.
|
|
9
|
+
*
|
|
10
|
+
* It lives here, beside the rule that assigns it, rather than in activity-stats-type.ts where it
|
|
11
|
+
* is published to the schema. That file carries decorators, and this package's tests run on node's
|
|
12
|
+
* strip-only TypeScript, which parses neither decorators nor `enum` — a pure rule that imports
|
|
13
|
+
* either one cannot be tested at all. The vocabulary belongs with the rule; the type file imports
|
|
14
|
+
* it to register it.
|
|
15
|
+
*
|
|
16
|
+
* A const map rather than a TS `enum`, for the same reason. registerEnumType takes a plain object,
|
|
17
|
+
* so the schema is unaffected.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ActivityEventDateBasis: {
|
|
20
|
+
/** 이 날까지 해야 한다. */
|
|
21
|
+
readonly Due: "due";
|
|
22
|
+
/** 이 날 내 앞에 왔다 — 기한이 없어서 그 자리를 쓴다. */
|
|
23
|
+
readonly HandedOver: "handed-over";
|
|
24
|
+
/** 이 날 끝났다. */
|
|
25
|
+
readonly Terminated: "terminated";
|
|
26
|
+
};
|
|
27
|
+
export type ActivityEventDateBasis = (typeof ActivityEventDateBasis)[keyof typeof ActivityEventDateBasis];
|
|
28
|
+
/**
|
|
29
|
+
* Which day an unfinished item sits on, and what that day means.
|
|
30
|
+
*
|
|
31
|
+
* Its deadline when it has one — the only value that says when the work has to happen. Otherwise
|
|
32
|
+
* the day it landed on this person, which is honest as a position and keeps deadline-less items
|
|
33
|
+
* from vanishing from the calendar altogether.
|
|
34
|
+
*
|
|
35
|
+
* The two are different sentences on the same square — "due by the 12th" and "arrived on the 12th"
|
|
36
|
+
* — so the basis travels with the date. A screen cannot recover it later; by then both are just a
|
|
37
|
+
* date. See ActivityEventDateBasis.
|
|
38
|
+
*/
|
|
39
|
+
export declare function placeOf(dueAt?: Date, handedOverAt?: Date): {
|
|
40
|
+
date?: Date;
|
|
41
|
+
basis?: ActivityEventDateBasis;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Does this land inside the window the calendar asked for?
|
|
45
|
+
*
|
|
46
|
+
* Finished items filter in SQL on one column. Unfinished ones carry a per-row coordinate
|
|
47
|
+
* (deadline, else handover), and expressing that in SQL means standing up a COALESCE that behaves
|
|
48
|
+
* identically on all five drivers this framework supports. One calendar page is six weeks of one
|
|
49
|
+
* person's work, so it reads and then filters.
|
|
50
|
+
*
|
|
51
|
+
* Half-open: `from` counts, `to` does not. The caller passes the day after the last cell as `to`,
|
|
52
|
+
* so an item at exactly midnight on that boundary belongs to the next page, not this one — and
|
|
53
|
+
* counting both ends would draw it on two.
|
|
54
|
+
*/
|
|
55
|
+
export declare function withinPeriod(date: Date | undefined, from: string, to: string): boolean;
|