@things-factory/worklist 10.0.18 → 10.1.0
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-summary-generator.js +57 -11
- package/dist-client/activity-summary-generator.js.map +1 -1
- 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.js +6 -11
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/chip-filters.d.ts +53 -0
- package/dist-client/chip-filters.js +60 -0
- package/dist-client/chip-filters.js.map +1 -0
- package/dist-client/components/activity-approval-ribon.d.ts +19 -0
- package/dist-client/components/activity-approval-ribon.js +50 -126
- package/dist-client/components/activity-approval-ribon.js.map +1 -1
- package/dist-client/components/activity-fields.d.ts +50 -0
- package/dist-client/components/activity-fields.js +393 -0
- package/dist-client/components/activity-fields.js.map +1 -0
- package/dist-client/components/activity-instance-ribon.d.ts +19 -0
- package/dist-client/components/activity-instance-ribon.js +55 -122
- package/dist-client/components/activity-instance-ribon.js.map +1 -1
- package/dist-client/components/activity-thread-ribon.d.ts +25 -0
- package/dist-client/components/activity-thread-ribon.js +64 -121
- package/dist-client/components/activity-thread-ribon.js.map +1 -1
- package/dist-client/components/activity-thread-timeline.d.ts +14 -2
- package/dist-client/components/activity-thread-timeline.js +234 -104
- package/dist-client/components/activity-thread-timeline.js.map +1 -1
- package/dist-client/components/state-ribon.d.ts +40 -0
- package/dist-client/components/state-ribon.js +200 -0
- package/dist-client/components/state-ribon.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/pages/activity/activity-list-page.js +4 -6
- package/dist-client/pages/activity/activity-list-page.js.map +1 -1
- package/dist-client/pages/activity-approval/activity-approval-list-page.js +2 -1
- package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -1
- package/dist-client/pages/activity-approval/activity-approval-page.d.ts +52 -5
- package/dist-client/pages/activity-approval/activity-approval-page.js +265 -118
- package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-list-page.d.ts +0 -1
- package/dist-client/pages/activity-instance/activity-instance-list-page.js +8 -24
- package/dist-client/pages/activity-instance/activity-instance-list-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +1 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js +7 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-view.js +1 -1
- package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -1
- package/dist-client/pages/activity-stats/activity-stats-list-page.js +2 -1
- package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -1
- package/dist-client/pages/activity-thread/activity-thread-page.d.ts +30 -4
- package/dist-client/pages/activity-thread/activity-thread-page.js +142 -66
- package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -1
- package/dist-client/pages/activity-thread/activity-thread-view-page.d.ts +17 -6
- package/dist-client/pages/activity-thread/activity-thread-view-page.js +118 -65
- package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -1
- package/dist-client/pages/activity-thread/activity-thread-view.d.ts +24 -7
- package/dist-client/pages/activity-thread/activity-thread-view.js +84 -308
- package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -1
- package/dist-client/pages/installable-activity/installable-activity-list-page.d.ts +1 -1
- package/dist-client/pages/installable-activity/installable-activity-list-page.js +13 -9
- package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -1
- package/dist-client/pages/todo/approval-done-list-page.d.ts +1 -0
- package/dist-client/pages/todo/approval-done-list-page.js +111 -58
- package/dist-client/pages/todo/approval-done-list-page.js.map +1 -1
- package/dist-client/pages/todo/approval-pending-list-page.d.ts +32 -1
- package/dist-client/pages/todo/approval-pending-list-page.js +485 -130
- package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -1
- package/dist-client/pages/todo/done-list-calendar-page.d.ts +2 -0
- package/dist-client/pages/todo/done-list-calendar-page.js +213 -29
- package/dist-client/pages/todo/done-list-calendar-page.js.map +1 -1
- package/dist-client/pages/todo/done-list-page.d.ts +1 -0
- package/dist-client/pages/todo/done-list-page.js +126 -62
- package/dist-client/pages/todo/done-list-page.js.map +1 -1
- package/dist-client/pages/todo/draft-list-page.d.ts +1 -0
- package/dist-client/pages/todo/draft-list-page.js +82 -34
- package/dist-client/pages/todo/draft-list-page.js.map +1 -1
- package/dist-client/pages/todo/pickable-list-page.js +6 -10
- package/dist-client/pages/todo/pickable-list-page.js.map +1 -1
- package/dist-client/pages/todo/todo-list-page.d.ts +1 -1
- package/dist-client/pages/todo/todo-list-page.js +102 -78
- package/dist-client/pages/todo/todo-list-page.js.map +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +0 -6
- package/dist-client/route.js.map +1 -1
- package/dist-client/templates/activity-approval-context-template.js +60 -138
- package/dist-client/templates/activity-approval-context-template.js.map +1 -1
- package/dist-client/templates/activity-instance-context-template.js +13 -172
- package/dist-client/templates/activity-instance-context-template.js.map +1 -1
- package/dist-client/templates/activity-thread-context-template.js +39 -131
- package/dist-client/templates/activity-thread-context-template.js.map +1 -1
- 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 -1
- 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-server/controllers/activity-approval/_abort.js +2 -1
- package/dist-server/controllers/activity-approval/_abort.js.map +1 -1
- package/dist-server/controllers/activity-approval/approval-line.d.ts +106 -0
- package/dist-server/controllers/activity-approval/approval-line.js +151 -0
- package/dist-server/controllers/activity-approval/approval-line.js.map +1 -0
- package/dist-server/controllers/activity-approval/approve.js +61 -51
- package/dist-server/controllers/activity-approval/approve.js.map +1 -1
- 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 +78 -0
- package/dist-server/controllers/activity-approval/create-approval.js.map +1 -0
- package/dist-server/controllers/activity-approval/delegate.d.ts +16 -0
- package/dist-server/controllers/activity-approval/delegate.js +43 -7
- package/dist-server/controllers/activity-approval/delegate.js.map +1 -1
- 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.js +21 -1
- package/dist-server/controllers/activity-approval/reject.js.map +1 -1
- package/dist-server/controllers/activity-approval/save.js +26 -2
- package/dist-server/controllers/activity-approval/save.js.map +1 -1
- package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +26 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.js +45 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -1
- 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/issue.js +32 -0
- package/dist-server/controllers/activity-instance/issue.js.map +1 -1
- package/dist-server/controllers/activity-thread/restart.js +17 -1
- package/dist-server/controllers/activity-thread/restart.js.map +1 -1
- package/dist-server/controllers/activity-thread/submit.js +23 -43
- package/dist-server/controllers/activity-thread/submit.js.map +1 -1
- package/dist-server/controllers/common.js +46 -0
- package/dist-server/controllers/common.js.map +1 -1
- package/dist-server/controllers/index.d.ts +1 -0
- package/dist-server/controllers/index.js +8 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/service/activity/activity-mutation.js +25 -5
- package/dist-server/service/activity/activity-mutation.js.map +1 -1
- package/dist-server/service/activity/activity-type.d.ts +14 -0
- package/dist-server/service/activity/activity-type.js +8 -0
- package/dist-server/service/activity/activity-type.js.map +1 -1
- package/dist-server/service/activity/activity.d.ts +18 -0
- package/dist-server/service/activity/activity.js +5 -0
- package/dist-server/service/activity/activity.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval-mutation.js +3 -2
- package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval-query.d.ts +19 -1
- package/dist-server/service/activity-approval/activity-approval-query.js +186 -56
- package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -1
- package/dist-server/service/activity-approval/activity-approval.d.ts +29 -1
- package/dist-server/service/activity-approval/activity-approval.js +19 -0
- package/dist-server/service/activity-approval/activity-approval.js.map +1 -1
- package/dist-server/service/activity-approval/my-pending-approvals.d.ts +21 -0
- package/dist-server/service/activity-approval/my-pending-approvals.js +40 -0
- package/dist-server/service/activity-approval/my-pending-approvals.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-type.d.ts +20 -0
- package/dist-server/service/activity-instance/activity-instance-type.js +11 -0
- package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance.d.ts +6 -0
- package/dist-server/service/activity-instance/activity-instance.js +5 -0
- package/dist-server/service/activity-instance/activity-instance.js.map +1 -1
- package/dist-server/service/activity-stats/activity-stats-query.d.ts +5 -0
- package/dist-server/service/activity-stats/activity-stats-query.js +149 -11
- package/dist-server/service/activity-stats/activity-stats-query.js.map +1 -1
- package/dist-server/service/activity-stats/activity-stats-type.d.ts +19 -6
- package/dist-server/service/activity-stats/activity-stats-type.js +37 -10
- package/dist-server/service/activity-stats/activity-stats-type.js.map +1 -1
- 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-thread/activity-thread-query.js +48 -24
- package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -1
- package/dist-server/service/activity-thread/my-open-threads.d.ts +15 -0
- package/dist-server/service/activity-thread/my-open-threads.js +40 -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/installable-activity/installable-activity-mutation.d.ts +6 -0
- package/dist-server/service/installable-activity/installable-activity-mutation.js +7 -24
- package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -1
- 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/tsconfig.tsbuildinfo +1 -1
- package/helps/dataset/activity-instance-search-page.ko.md +5 -0
- package/helps/dataset/activity-instance-search-page.md +13 -0
- package/helps/worklist/activity-approval.ko.md +5 -0
- package/helps/worklist/activity-approval.md +14 -0
- package/helps/worklist/activity-bank-page.ko.md +5 -0
- package/helps/worklist/activity-bank-page.md +13 -0
- package/helps/worklist/activity-reporter-list.ko.md +5 -0
- package/helps/worklist/activity-reporter-list.md +13 -0
- package/helps/worklist/activity-store.ko.md +5 -0
- package/helps/worklist/activity-store.md +13 -0
- package/helps/worklist/activity-template.ko.md +5 -0
- package/helps/worklist/activity-template.md +13 -0
- package/helps/worklist/installable-activity.ko.md +5 -0
- package/helps/worklist/installable-activity.md +13 -0
- package/package.json +13 -12
- package/things-factory.config.js +0 -5
- package/translations/en.json +129 -51
- package/translations/ja.json +130 -52
- package/translations/ko.json +82 -4
- package/translations/ms.json +129 -51
- package/translations/zh.json +132 -54
- package/dist-client/pages/dashboard/dashboard-home.d.ts +0 -1
- package/dist-client/pages/dashboard/dashboard-home.js +0 -22
- package/dist-client/pages/dashboard/dashboard-home.js.map +0 -1
- package/dist-client/pages/worklist-home.d.ts +0 -1
- package/dist-client/pages/worklist-home.js +0 -17
- package/dist-client/pages/worklist-home.js.map +0 -1
package/dist-client/route.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
export default function route(page) {
|
|
2
2
|
switch (page) {
|
|
3
|
-
case 'worklist-home':
|
|
4
|
-
import('./pages/worklist-home.js');
|
|
5
|
-
return page;
|
|
6
|
-
case 'worklist-dashboard':
|
|
7
|
-
import('./pages/dashboard/dashboard-home.js');
|
|
8
|
-
return page;
|
|
9
3
|
case 'done-list-calendar':
|
|
10
4
|
import('./pages/todo/done-list-calendar-page.js');
|
|
11
5
|
return page;
|
package/dist-client/route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAY;IACxC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAY;IACxC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,oBAAoB;YACvB,MAAM,CAAC,yCAAyC,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;QAEb,KAAK,WAAW;YACd,MAAM,CAAC,gCAAgC,CAAC,CAAA;YACxC,OAAO,IAAI,CAAA;QAEb,KAAK,WAAW;YACd,MAAM,CAAC,gCAAgC,CAAC,CAAA;YACxC,OAAO,IAAI,CAAA;QAEb,KAAK,uBAAuB;YAC1B,MAAM,CAAC,4CAA4C,CAAC,CAAA;YACpD,OAAO,IAAI,CAAA;QAEb,KAAK,oBAAoB;YACvB,MAAM,CAAC,yCAAyC,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;QAEb,KAAK,YAAY;YACf,MAAM,CAAC,iCAAiC,CAAC,CAAA;YACzC,OAAO,IAAI,CAAA;QAEb,KAAK,eAAe;YAClB,MAAM,CAAC,oCAAoC,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;QAEb,KAAK,cAAc;YACjB,MAAM,CAAC,uCAAuC,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAA;QAEb,KAAK,eAAe;YAClB,MAAM,CAAC,mDAAmD,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;QAEb,KAAK,eAAe;YAClB,MAAM,CAAC,wCAAwC,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;QAEb,KAAK,UAAU;YACb,MAAM,CAAC,mCAAmC,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAA;QAEb,KAAK,yBAAyB;YAC5B,MAAM,CAAC,2DAA2D,CAAC,CAAA;YACnE,OAAO,IAAI,CAAA;QAEb,KAAK,iBAAiB;YACpB,MAAM,CAAC,iDAAiD,CAAC,CAAA;YACzD,OAAO,IAAI,CAAA;QAEb,KAAK,sBAAsB;YACzB,MAAM,CAAC,sDAAsD,CAAC,CAAA;YAC9D,OAAO,IAAI,CAAA;QAEb,KAAK,mBAAmB;YACtB,MAAM,CAAC,qDAAqD,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAA;QAEb,KAAK,wBAAwB;YAC3B,MAAM,CAAC,0DAA0D,CAAC,CAAA;YAClE,OAAO,IAAI,CAAA;QAEb,KAAK,0BAA0B;YAC7B,MAAM,CAAC,4DAA4D,CAAC,CAAA;YACpE,OAAO,IAAI,CAAA;QAEb,KAAK,wBAAwB;YAC3B,MAAM,CAAC,0DAA0D,CAAC,CAAA;YAClE,OAAO,IAAI,CAAA;QAEb,KAAK,gBAAgB;YACnB,MAAM,CAAC,+CAA+C,CAAC,CAAA;YACvD,OAAO,IAAI,CAAA;QAEb,KAAK,sBAAsB;YACzB,MAAM,CAAC,sDAAsD,CAAC,CAAA;YAC9D,OAAO,IAAI,CAAA;QAEb,KAAK,wBAAwB;YAC3B,MAAM,CAAC,uDAAuD,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;QAEb,KAAK,2BAA2B;YAC9B,MAAM,CAAC,6DAA6D,CAAC,CAAA;YACrE,OAAO,IAAI,CAAA;QAEb,KAAK,qBAAqB;YACxB,MAAM,CAAC,iDAAiD,CAAC,CAAA;YACzD,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC","sourcesContent":["export default function route(page: string) {\n switch (page) {\n case 'done-list-calendar':\n import('./pages/todo/done-list-calendar-page.js')\n return page\n\n case 'todo-list':\n import('./pages/todo/todo-list-page.js')\n return page\n\n case 'done-list':\n import('./pages/todo/done-list-page.js')\n return page\n\n case 'approval-pending-list':\n import('./pages/todo/approval-pending-list-page.js')\n return page\n\n case 'approval-done-list':\n import('./pages/todo/approval-done-list-page.js')\n return page\n\n case 'draft-list':\n import('./pages/todo/draft-list-page.js')\n return page\n\n case 'pickable-list':\n import('./pages/todo/pickable-list-page.js')\n return page\n\n case 'starter-list':\n import('./pages/activity/starter-list-page.js')\n return page\n\n case 'reporter-list':\n import('./pages/activity-supervisor/reporter-list-page.js')\n return page\n\n case 'activity-list':\n import('./pages/activity/activity-list-page.js')\n return page\n\n case 'activity':\n import('./pages/activity/activity-page.js')\n return page\n\n case 'activity-instance-start':\n import('./pages/activity-instance/activity-instance-start-page.js')\n return page\n\n case 'activity-thread':\n import('./pages/activity-thread/activity-thread-page.js')\n return page\n\n case 'activity-thread-view':\n import('./pages/activity-thread/activity-thread-view-page.js')\n return page\n\n case 'activity-approval':\n import('./pages/activity-approval/activity-approval-page.js')\n return page\n\n case 'activity-instance-list':\n import('./pages/activity-instance/activity-instance-list-page.js')\n return page\n\n case 'activity-instance-search':\n import('./pages/activity-instance/activity-instance-search-page.js')\n return page\n\n case 'activity-template-list':\n import('./pages/activity-template/activity-template-list-page.js')\n return page\n\n case 'activity-store':\n import('./pages/activity-store/activity-store-page.js')\n return page\n\n case 'activity-thread-list':\n import('./pages/activity-thread/activity-thread-list-page.js')\n return page\n\n case 'activity-approval-list':\n import('./pages/activity-approval/activity-approval-list-page')\n return page\n\n case 'installable-activity-list':\n import('./pages/installable-activity/installable-activity-list-page')\n return page\n\n case 'activity-stats-list':\n import('./pages/activity-stats/activity-stats-list-page')\n return page\n }\n}\n"]}
|
|
@@ -1,168 +1,90 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import '@material/web/icon/icon.js';
|
|
3
3
|
import '../components/activity-thread-timeline';
|
|
4
|
-
import { html,
|
|
4
|
+
import { html, LitElement, nothing } from 'lit';
|
|
5
5
|
import { customElement, property } from 'lit/decorators.js';
|
|
6
6
|
import { ContextToolbarOverlayStyle } from '@operato/context/ox-context-toolbar-overlay-style.js';
|
|
7
7
|
import { RouteController } from '@operato/shell';
|
|
8
8
|
import { i18next } from '@operato/i18n';
|
|
9
|
+
import { ContextPanelStyles, valueCell, whenCell } from './context-panel.js';
|
|
9
10
|
import '@things-factory/organization/dist-client/component/approval-line-view.js';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Who judged this step.
|
|
13
|
+
*
|
|
14
|
+
* An empty approver on a step nobody has reached is a state, not a missing value. The row used to
|
|
15
|
+
* fall through to the generic 「값 없음」, which covers "there is none, or the screen could not fetch
|
|
16
|
+
* it" — on a step that is simply waiting, that reads as a defect. Steps chosen by role have no
|
|
17
|
+
* person until someone acts, so every pending approval showed it.
|
|
18
|
+
*
|
|
19
|
+
* The role is not named here. The diagram two inches above already lights up the waiting step and
|
|
20
|
+
* labels it 역할; repeating it in this row says the same thing twice.
|
|
21
|
+
*
|
|
22
|
+
* Once a judgment exists the approver is a real person, and an empty one there would be a genuine
|
|
23
|
+
* gap — so that case keeps the generic fallback.
|
|
24
|
+
*/
|
|
25
|
+
function approverCell(name, judgment) {
|
|
26
|
+
if (name || judgment) {
|
|
27
|
+
return valueCell(name);
|
|
18
28
|
}
|
|
29
|
+
return html `<span class="none">${i18next.t('text.approver-not-yet')}</span>`;
|
|
19
30
|
}
|
|
20
|
-
const formatter = getSafeFormatter(navigator.language, { dateStyle: 'full', timeStyle: 'short' });
|
|
21
31
|
let ActivityApprovalContextTemplate = class ActivityApprovalContextTemplate extends LitElement {
|
|
22
32
|
constructor() {
|
|
23
33
|
super(...arguments);
|
|
24
34
|
this._routeCtrl = new RouteController(this);
|
|
25
35
|
}
|
|
26
|
-
static { this.styles = [
|
|
27
|
-
ContextToolbarOverlayStyle,
|
|
28
|
-
css `
|
|
29
|
-
:host {
|
|
30
|
-
background-color: var(--md-sys-color-surface);
|
|
31
|
-
width: 100%;
|
|
32
|
-
min-width: 450px;
|
|
33
|
-
max-height: 100%;
|
|
34
|
-
overflow: auto;
|
|
35
|
-
--context-ui-padding: 0;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
:host([state='assigned']) {
|
|
39
|
-
--worklist-status-color: #5f7184;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
:host([state='started']) {
|
|
43
|
-
--worklist-status-color: #56af45;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
:host([state='delegated']) {
|
|
47
|
-
--worklist-status-color: #8654b0;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
:host([state='submitted']) {
|
|
51
|
-
--worklist-status-color: #428df3;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
:host([state='escalated']) {
|
|
55
|
-
--worklist-status-color: #595de5;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
:host([state='rejected']) {
|
|
59
|
-
--worklist-status-color: #f27429;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
:host([state='ended']) {
|
|
63
|
-
--worklist-status-color: #02acae;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
:host([state='aborted']) {
|
|
67
|
-
--worklist-status-color: #cb3a33;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
[info],
|
|
71
|
-
[assignees] {
|
|
72
|
-
padding: var(--spacing-medium);
|
|
73
|
-
border-bottom: var(--border-dim-color);
|
|
74
|
-
color: var(--md-sys-color-secondary);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
[info] div {
|
|
78
|
-
display: flex;
|
|
79
|
-
align-items: center;
|
|
80
|
-
padding: var(--spacing-small);
|
|
81
|
-
border-radius: var(--border-radius);
|
|
82
|
-
text-align: right;
|
|
83
|
-
clear: both;
|
|
84
|
-
overflow: hidden;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
[info] div:nth-child(odd) {
|
|
88
|
-
background-color: var(--md-sys-color-background);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
[info] label {
|
|
92
|
-
display: inline-block;
|
|
93
|
-
width: 25%;
|
|
94
|
-
text-align: right;
|
|
95
|
-
margin-right: 20px;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
[info] span {
|
|
99
|
-
width: 15px;
|
|
100
|
-
height: 15px;
|
|
101
|
-
background-color: var(--worklist-status-color, tomato);
|
|
102
|
-
display: inline-block;
|
|
103
|
-
border-radius: 50%;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
:host:before {
|
|
107
|
-
content: '';
|
|
108
|
-
position: absolute;
|
|
109
|
-
width: 0;
|
|
110
|
-
height: 0;
|
|
111
|
-
border: 22px solid transparent;
|
|
112
|
-
border-left-color: var(--worklist-status-color);
|
|
113
|
-
border-right: 0;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
activity-thread-timeline {
|
|
117
|
-
margin: var(--spacing-medium);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
[thumbnail] {
|
|
121
|
-
display: flex;
|
|
122
|
-
justify-content: center;
|
|
123
|
-
align-items: center;
|
|
124
|
-
margin: var(--spacing-medium);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
img {
|
|
128
|
-
max-width: 85%;
|
|
129
|
-
height: auto;
|
|
130
|
-
}
|
|
131
|
-
`
|
|
132
|
-
]; }
|
|
36
|
+
static { this.styles = [ContextToolbarOverlayStyle, ContextPanelStyles]; }
|
|
133
37
|
render() {
|
|
134
38
|
const activityApproval = this._routeCtrl.context.activityApproval || this.activityApproval || {};
|
|
135
|
-
const { round, order, approver, createdAt, activityThread } = activityApproval || {};
|
|
39
|
+
const { round, order, approver, judgment, createdAt, activityThread } = activityApproval || {};
|
|
136
40
|
const { state, dueAt, assignedAt, assignee, activityInstance, activityApprovals } = activityThread || {};
|
|
137
41
|
const { name, description, thumbnail, approvalLine } = activityInstance || {};
|
|
138
42
|
return html `
|
|
139
43
|
<div flow>
|
|
140
44
|
<div approval-line>
|
|
141
|
-
|
|
45
|
+
<!-- 이 결재 줄의 순번이 곧 지금 단계다 — ribbon 과 같은 값을 쓴다. -->
|
|
46
|
+
${approvalLine
|
|
47
|
+
? html `<approval-line-view .model=${approvalLine} .current=${order}></approval-line-view>`
|
|
48
|
+
: html ``}
|
|
142
49
|
</div>
|
|
143
50
|
</div>
|
|
144
51
|
|
|
145
|
-
<
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
<
|
|
155
|
-
<
|
|
156
|
-
|
|
157
|
-
<
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
<
|
|
161
|
-
<
|
|
162
|
-
|
|
52
|
+
<dl class="given">
|
|
53
|
+
<!-- 차수는 1일 때 적지 않는다. 2차 이상일 때만 「되돌아왔다」는 사실이 된다. -->
|
|
54
|
+
${Number(round) > 1
|
|
55
|
+
? html `
|
|
56
|
+
<dt>${i18next.t('field.round')}</dt>
|
|
57
|
+
<dd class="strong">${round}</dd>
|
|
58
|
+
`
|
|
59
|
+
: nothing}
|
|
60
|
+
|
|
61
|
+
<dt>${i18next.t('field.approval-order')}</dt>
|
|
62
|
+
<dd class="strong">${valueCell(order)}</dd>
|
|
63
|
+
|
|
64
|
+
<dt>${i18next.t('field.wl-owner')}</dt>
|
|
65
|
+
<dd class="strong">${valueCell(assignee?.name)}</dd>
|
|
66
|
+
|
|
67
|
+
<dt>${i18next.t('field.approver')}</dt>
|
|
68
|
+
<dd class="strong">${approverCell(approver?.name, judgment)}</dd>
|
|
69
|
+
|
|
70
|
+
<dt>${i18next.t('field.assigned-at')}</dt>
|
|
71
|
+
<dd>${whenCell(assignedAt)}</dd>
|
|
72
|
+
|
|
73
|
+
<dt>${i18next.t('field.due-at')}</dt>
|
|
74
|
+
<dd>${whenCell(dueAt)}</dd>
|
|
75
|
+
|
|
76
|
+
<!-- 전에는 라벨이 since 였다 — 다섯 언어를 갖춘 화면에 영문 한 낱말이 박혀 있었다. -->
|
|
77
|
+
<dt>${i18next.t('field.approval-submitted-at')}</dt>
|
|
78
|
+
<dd>${whenCell(createdAt)}</dd>
|
|
79
|
+
</dl>
|
|
163
80
|
|
|
164
81
|
${activityApprovals && activityApprovals.length > 0
|
|
165
|
-
? html `
|
|
82
|
+
? html ` <!--
|
|
83
|
+
팝업 안에서는 편다. 팝업은 내용에 맞춰지지 않고 60%×60% 로 고정되므로
|
|
84
|
+
(@operato/popup 의 [hovering=center]), 접어 두면 아래가 흰 여백으로 남는다.
|
|
85
|
+
그리고 여기서 이력은 보조가 아니다 — 이 판을 여는 이유의 절반이 「어떻게 여기까지 왔나」다.
|
|
86
|
+
-->
|
|
87
|
+
<activity-thread-timeline .activityThread=${activityThread} open short-form></activity-thread-timeline> `
|
|
166
88
|
: nothing}
|
|
167
89
|
${thumbnail
|
|
168
90
|
? html ` <div thumbnail>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-approval-context-template.js","sourceRoot":"","sources":["../../client/templates/activity-approval-context-template.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,wCAAwC,CAAA;AAE/C,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"activity-approval-context-template.js","sourceRoot":"","sources":["../../client/templates/activity-approval-context-template.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '../components/activity-thread-timeline'\n\nimport { html, css, LitElement, nothing } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ContextToolbarOverlayStyle } from '@operato/context/ox-context-toolbar-overlay-style.js'\nimport { RouteController } from '@operato/shell'\nimport { i18next } from '@operato/i18n'\n\nimport { ContextPanelStyles, valueCell, whenCell } from './context-panel.js'\n\nimport '@things-factory/organization/dist-client/component/approval-line-view.js'\n\n/**\n * Who judged this step.\n *\n * An empty approver on a step nobody has reached is a state, not a missing value. The row used to\n * fall through to the generic 「값 없음」, which covers \"there is none, or the screen could not fetch\n * it\" — on a step that is simply waiting, that reads as a defect. Steps chosen by role have no\n * person until someone acts, so every pending approval showed it.\n *\n * The role is not named here. The diagram two inches above already lights up the waiting step and\n * labels it 역할; repeating it in this row says the same thing twice.\n *\n * Once a judgment exists the approver is a real person, and an empty one there would be a genuine\n * gap — so that case keeps the generic fallback.\n */\nfunction approverCell(name: string | undefined, judgment: string | undefined) {\n if (name || judgment) {\n return valueCell(name)\n }\n\n return html`<span class=\"none\">${i18next.t('text.approver-not-yet')}</span>`\n}\n\n@customElement('activity-approval-context-template')\nclass ActivityApprovalContextTemplate extends LitElement {\n static styles = [ContextToolbarOverlayStyle, ContextPanelStyles]\n\n @property({ type: Object }) private activityApproval\n\n private _routeCtrl = new RouteController(this)\n\n render() {\n const activityApproval = this._routeCtrl.context.activityApproval || this.activityApproval || {}\n\n const { round, order, approver, judgment, createdAt, activityThread } = activityApproval || {}\n const { state, dueAt, assignedAt, assignee, activityInstance, activityApprovals } = activityThread || {}\n const { name, description, thumbnail, approvalLine } = activityInstance || {}\n\n return html`\n <div flow>\n <div approval-line>\n <!-- 이 결재 줄의 순번이 곧 지금 단계다 — ribbon 과 같은 값을 쓴다. -->\n ${approvalLine\n ? html`<approval-line-view .model=${approvalLine} .current=${order}></approval-line-view>`\n : html``}\n </div>\n </div>\n\n <dl class=\"given\">\n <!-- 차수는 1일 때 적지 않는다. 2차 이상일 때만 「되돌아왔다」는 사실이 된다. -->\n ${Number(round) > 1\n ? html`\n <dt>${i18next.t('field.round')}</dt>\n <dd class=\"strong\">${round}</dd>\n `\n : nothing}\n\n <dt>${i18next.t('field.approval-order')}</dt>\n <dd class=\"strong\">${valueCell(order)}</dd>\n\n <dt>${i18next.t('field.wl-owner')}</dt>\n <dd class=\"strong\">${valueCell(assignee?.name)}</dd>\n\n <dt>${i18next.t('field.approver')}</dt>\n <dd class=\"strong\">${approverCell(approver?.name, judgment)}</dd>\n\n <dt>${i18next.t('field.assigned-at')}</dt>\n <dd>${whenCell(assignedAt)}</dd>\n\n <dt>${i18next.t('field.due-at')}</dt>\n <dd>${whenCell(dueAt)}</dd>\n\n <!-- 전에는 라벨이 since 였다 — 다섯 언어를 갖춘 화면에 영문 한 낱말이 박혀 있었다. -->\n <dt>${i18next.t('field.approval-submitted-at')}</dt>\n <dd>${whenCell(createdAt)}</dd>\n </dl>\n\n ${activityApprovals && activityApprovals.length > 0\n ? html` <!--\n 팝업 안에서는 편다. 팝업은 내용에 맞춰지지 않고 60%×60% 로 고정되므로\n (@operato/popup 의 [hovering=center]), 접어 두면 아래가 흰 여백으로 남는다.\n 그리고 여기서 이력은 보조가 아니다 — 이 판을 여는 이유의 절반이 「어떻게 여기까지 왔나」다.\n -->\n <activity-thread-timeline .activityThread=${activityThread} open short-form></activity-thread-timeline> `\n : nothing}\n ${thumbnail\n ? html` <div thumbnail>\n <img src=${thumbnail} />\n </div>`\n : html``}\n `\n }\n\n}\n"]}
|
|
@@ -1,175 +1,20 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import '@material/web/icon/icon.js';
|
|
3
3
|
import '@material/web/button/elevated-button.js';
|
|
4
|
-
import { html,
|
|
4
|
+
import { html, LitElement } from 'lit';
|
|
5
5
|
import { customElement, property } from 'lit/decorators.js';
|
|
6
6
|
import { ContextToolbarOverlayStyle } from '@operato/context/ox-context-toolbar-overlay-style.js';
|
|
7
7
|
import { RouteController } from '@operato/shell';
|
|
8
8
|
import { i18next } from '@operato/i18n';
|
|
9
|
+
import { ContextPanelStyles, whenCell } from './context-panel.js';
|
|
9
10
|
import { openPopup } from '@operato/layout';
|
|
10
11
|
import '@things-factory/organization/dist-client/component/approval-line-view.js';
|
|
11
|
-
function getSafeFormatter(locale, options) {
|
|
12
|
-
try {
|
|
13
|
-
const safeLocale = locale || 'en-US';
|
|
14
|
-
return new Intl.DateTimeFormat(safeLocale, options);
|
|
15
|
-
}
|
|
16
|
-
catch (e) {
|
|
17
|
-
console.warn(`Invalid locale or options provided: ${locale}, falling back to default en-US.`, e);
|
|
18
|
-
return new Intl.DateTimeFormat('en-US', options);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
const formatter = getSafeFormatter(navigator.language, { dateStyle: 'full', timeStyle: 'short' });
|
|
22
12
|
let ActivityInstanceContextTemplate = class ActivityInstanceContextTemplate extends LitElement {
|
|
23
13
|
constructor() {
|
|
24
14
|
super(...arguments);
|
|
25
15
|
this._routeCtrl = new RouteController(this);
|
|
26
16
|
}
|
|
27
|
-
static { this.styles = [
|
|
28
|
-
ContextToolbarOverlayStyle,
|
|
29
|
-
css `
|
|
30
|
-
:host {
|
|
31
|
-
background-color: var(--md-sys-color-surface);
|
|
32
|
-
width: 100%;
|
|
33
|
-
min-width: 450px;
|
|
34
|
-
max-height: 100%;
|
|
35
|
-
overflow: auto;
|
|
36
|
-
--context-ui-padding: 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
:host([state='draft']) {
|
|
40
|
-
--worklist-status-color: #5f7184;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
:host([state='issued']) {
|
|
44
|
-
--worklist-status-color: #56af45;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
:host([state='assigned']) {
|
|
48
|
-
--worklist-status-color: #428df3;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
:host([state='started']) {
|
|
52
|
-
--worklist-status-color: #595de5;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
:host([state='pending']) {
|
|
56
|
-
--worklist-status-color: #f27429;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
:host([state='ended']) {
|
|
60
|
-
--worklist-status-color: #02acae;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
:host([state='aborted']) {
|
|
64
|
-
--worklist-status-color: #cb3a33;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
:host:before {
|
|
68
|
-
content: '';
|
|
69
|
-
position: absolute;
|
|
70
|
-
width: 0;
|
|
71
|
-
height: 0;
|
|
72
|
-
border: 22px solid transparent;
|
|
73
|
-
border-left-color: var(--worklist-status-color);
|
|
74
|
-
border-right: 0;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
[info],
|
|
78
|
-
[assignees] {
|
|
79
|
-
padding: var(--spacing-medium);
|
|
80
|
-
border-bottom: var(--border-dim-color);
|
|
81
|
-
color: var(--md-sys-color-secondary);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
[info] div {
|
|
85
|
-
display: flex;
|
|
86
|
-
align-items: center;
|
|
87
|
-
padding: var(--spacing-small);
|
|
88
|
-
border-radius: var(--border-radius);
|
|
89
|
-
text-align: right;
|
|
90
|
-
clear: both;
|
|
91
|
-
overflow: hidden;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
[info] div:nth-child(odd) {
|
|
95
|
-
background-color: var(--md-sys-color-background);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
[info] label {
|
|
99
|
-
display: inline-block;
|
|
100
|
-
width: 25%;
|
|
101
|
-
text-align: right;
|
|
102
|
-
margin-right: 20px;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
[info] span {
|
|
106
|
-
width: 15px;
|
|
107
|
-
height: 15px;
|
|
108
|
-
background-color: var(--worklist-status-color, tomato);
|
|
109
|
-
display: inline-block;
|
|
110
|
-
border-radius: 50%;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
:host:before {
|
|
114
|
-
content: '';
|
|
115
|
-
position: absolute;
|
|
116
|
-
width: 0;
|
|
117
|
-
height: 0;
|
|
118
|
-
border: 22px solid transparent;
|
|
119
|
-
border-left-color: var(--worklist-status-color);
|
|
120
|
-
border-right: 0;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
section {
|
|
124
|
-
padding: var(--spacing-medium);
|
|
125
|
-
color: var(--md-sys-color-secondary);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
section label {
|
|
129
|
-
display: inline-block;
|
|
130
|
-
width: 25%;
|
|
131
|
-
margin-top: var(--spacing-medium);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
[assignees] {
|
|
135
|
-
text-align: right;
|
|
136
|
-
clear: both;
|
|
137
|
-
overflow: hidden;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
[assignees] label {
|
|
141
|
-
display: inline-block;
|
|
142
|
-
padding-left: var(--spacing-small);
|
|
143
|
-
width: 25%;
|
|
144
|
-
text-align: left;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
[assignees] md-elevated-button {
|
|
148
|
-
float: right;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
section input {
|
|
152
|
-
display: inline-block;
|
|
153
|
-
width: 70%;
|
|
154
|
-
border: var(--border-dim-color);
|
|
155
|
-
border-width: 0 0 1px 0;
|
|
156
|
-
margin-top: var(--spacing-medium);
|
|
157
|
-
font-size: var(--fontsize-large);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
[thumbnail] {
|
|
161
|
-
display: flex;
|
|
162
|
-
justify-content: center;
|
|
163
|
-
align-items: center;
|
|
164
|
-
margin: var(--spacing-medium);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
img {
|
|
168
|
-
max-width: 85%;
|
|
169
|
-
height: auto;
|
|
170
|
-
}
|
|
171
|
-
`
|
|
172
|
-
]; }
|
|
17
|
+
static { this.styles = [ContextToolbarOverlayStyle, ContextPanelStyles]; }
|
|
173
18
|
render() {
|
|
174
19
|
const activityInstance = this._routeCtrl.context.activityInstance || this.activityInstance || {};
|
|
175
20
|
const { activity, name, description, state, assignees, approvalLine, assignedAt, startedAt, dueAt, thumbnail } = activityInstance || {};
|
|
@@ -190,20 +35,16 @@ let ActivityInstanceContextTemplate = class ActivityInstanceContextTemplate exte
|
|
|
190
35
|
</md-elevated-button>`}
|
|
191
36
|
</div>
|
|
192
37
|
|
|
193
|
-
<
|
|
194
|
-
<
|
|
195
|
-
<
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
</
|
|
201
|
-
<
|
|
202
|
-
|
|
203
|
-
</div>
|
|
204
|
-
<div><label>${i18next.t('field.due-at')}</label> ${dueAt && formatter.format(new Date(dueAt))}</div>
|
|
205
|
-
<div><label>${i18next.t('field.started-at')}</label> ${startedAt && formatter.format(new Date(startedAt))}</div>
|
|
206
|
-
</div>
|
|
38
|
+
<dl class="given">
|
|
39
|
+
<dt>${i18next.t('field.assigned-at')}</dt>
|
|
40
|
+
<dd>${whenCell(assignedAt)}</dd>
|
|
41
|
+
|
|
42
|
+
<dt>${i18next.t('field.due-at')}</dt>
|
|
43
|
+
<dd>${whenCell(dueAt)}</dd>
|
|
44
|
+
|
|
45
|
+
<dt>${i18next.t('field.started-at')}</dt>
|
|
46
|
+
<dd>${whenCell(startedAt)}</dd>
|
|
47
|
+
</dl>
|
|
207
48
|
|
|
208
49
|
${startingType == 'issue'
|
|
209
50
|
? html `<div assignees>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-instance-context-template.js","sourceRoot":"","sources":["../../client/templates/activity-instance-context-template.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,yCAAyC,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAA;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,0EAA0E,CAAA;AAEjF,SAAS,gBAAgB,CAAC,MAAc,EAAE,OAAmC;IAC3E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAA;QACpC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,MAAM,kCAAkC,EAAE,CAAC,CAAC,CAAA;QAChG,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;AAEjG,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,UAAU;IAAxD;;QAsJU,eAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IA+GhD,CAAC;aApQQ,WAAM,GAAG;QACd,0BAA0B;QAC1B,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8IF;KACF,AAjJY,CAiJZ;IAMD,MAAM;QACJ,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAA;QAChG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAC5G,gBAAgB,IAAI,EAAE,CAAA;QACxB,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAA;QAEvC,oCAAoC;QAEpC,OAAO,IAAI,CAAA;;UAEL,YAAY;YACZ,CAAC,CAAC,IAAI,CAAA;;yBAES,YAAY;yBACZ,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;0BAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;;aAEzE;YACH,CAAC,CAAC,IAAI,CAAA,8BAA8B,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;;kCAE5D;;;;sBAIZ,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,oBAAoB,IAAI;sBAC/C,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,WAAW;;mBAExD,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;eAC7B,OAAO,CAAC,CAAC,CAAC,uBAAuB,GAAG,KAAK,CAAC;;;;mBAItC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;;sBAE3F,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;sBAC/E,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;;;QAGzG,YAAY,IAAI,OAAO;YACvB,CAAC,CAAC,IAAI,CAAA;;uBAES,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBACnC,SAAS;gBACT,CAAC,CAAC,IAAI,CAAA;;+BAES,SAAS;+BACT,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;gCAC5C,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;;mBAEtE;gBACH,CAAC,CAAC,IAAI,CAAA,8BAA8B,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;;wCAEzD;;iBAEvB;YACT,CAAC,CAAC,IAAI,CAAA,EAAE;QACR,SAAS;YACT,CAAC,CAAC,IAAI,CAAA;uBACS,SAAS;iBACf;YACT,CAAC,CAAC,IAAI,CAAA,EAAE;KACX,CAAA;IACH,CAAC;IAED,gBAAgB,CAAC,gBAAgB;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAA;QAE5C,MAAM,KAAK,GAAG,SAAS,CACrB,IAAI,CAAA;;mBAES,SAAS;6BACC,KAAK,CAAC,EAAE;YACzB,gBAAgB,CAAC,SAAS,GAAG,KAAK,CAAA;YAClC,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC;;OAEJ,EACD;YACE,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;SACxC,CACF,CAAA;QACD,KAAK,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IAC3B,CAAC;IAED,mBAAmB,CAAC,gBAAgB;QAClC,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAA;QAE/C,MAAM,KAAK,GAAG,SAAS,CACrB,IAAI,CAAA;;mBAES,YAAY;6BACF,KAAK,CAAC,EAAE;YACzB,gBAAgB,CAAC,YAAY,GAAG,KAAK,CAAA;YACrC,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC;;OAEJ,EACD;YACE,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,yCAAyC;YAC/C,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC;SAClD,CACF,CAAA;QACD,KAAK,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IAC3B,CAAC;;AAhHmC;IAAnC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yEAAyB;AApJhD,+BAA+B;IADpC,aAAa,CAAC,oCAAoC,CAAC;GAC9C,+BAA+B,CAqQpC","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/elevated-button.js'\n\nimport { html, css, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ContextToolbarOverlayStyle } from '@operato/context/ox-context-toolbar-overlay-style.js'\nimport { RouteController } from '@operato/shell'\nimport { i18next } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\n\nimport '@things-factory/organization/dist-client/component/approval-line-view.js'\n\nfunction getSafeFormatter(locale: string, options: Intl.DateTimeFormatOptions): Intl.DateTimeFormat {\n try {\n const safeLocale = locale || 'en-US'\n return new Intl.DateTimeFormat(safeLocale, options)\n } catch (e) {\n console.warn(`Invalid locale or options provided: ${locale}, falling back to default en-US.`, e)\n return new Intl.DateTimeFormat('en-US', options)\n }\n}\n\nconst formatter = getSafeFormatter(navigator.language, { dateStyle: 'full', timeStyle: 'short' })\n@customElement('activity-instance-context-template')\nclass ActivityInstanceContextTemplate extends LitElement {\n static styles = [\n ContextToolbarOverlayStyle,\n css`\n :host {\n background-color: var(--md-sys-color-surface);\n width: 100%;\n min-width: 450px;\n max-height: 100%;\n overflow: auto;\n --context-ui-padding: 0;\n }\n\n :host([state='draft']) {\n --worklist-status-color: #5f7184;\n }\n\n :host([state='issued']) {\n --worklist-status-color: #56af45;\n }\n\n :host([state='assigned']) {\n --worklist-status-color: #428df3;\n }\n\n :host([state='started']) {\n --worklist-status-color: #595de5;\n }\n\n :host([state='pending']) {\n --worklist-status-color: #f27429;\n }\n\n :host([state='ended']) {\n --worklist-status-color: #02acae;\n }\n\n :host([state='aborted']) {\n --worklist-status-color: #cb3a33;\n }\n\n :host:before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border: 22px solid transparent;\n border-left-color: var(--worklist-status-color);\n border-right: 0;\n }\n\n [info],\n [assignees] {\n padding: var(--spacing-medium);\n border-bottom: var(--border-dim-color);\n color: var(--md-sys-color-secondary);\n }\n\n [info] div {\n display: flex;\n align-items: center;\n padding: var(--spacing-small);\n border-radius: var(--border-radius);\n text-align: right;\n clear: both;\n overflow: hidden;\n }\n\n [info] div:nth-child(odd) {\n background-color: var(--md-sys-color-background);\n }\n\n [info] label {\n display: inline-block;\n width: 25%;\n text-align: right;\n margin-right: 20px;\n }\n\n [info] span {\n width: 15px;\n height: 15px;\n background-color: var(--worklist-status-color, tomato);\n display: inline-block;\n border-radius: 50%;\n }\n\n :host:before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border: 22px solid transparent;\n border-left-color: var(--worklist-status-color);\n border-right: 0;\n }\n\n section {\n padding: var(--spacing-medium);\n color: var(--md-sys-color-secondary);\n }\n\n section label {\n display: inline-block;\n width: 25%;\n margin-top: var(--spacing-medium);\n }\n\n [assignees] {\n text-align: right;\n clear: both;\n overflow: hidden;\n }\n\n [assignees] label {\n display: inline-block;\n padding-left: var(--spacing-small);\n width: 25%;\n text-align: left;\n }\n\n [assignees] md-elevated-button {\n float: right;\n }\n\n section input {\n display: inline-block;\n width: 70%;\n border: var(--border-dim-color);\n border-width: 0 0 1px 0;\n margin-top: var(--spacing-medium);\n font-size: var(--fontsize-large);\n }\n\n [thumbnail] {\n display: flex;\n justify-content: center;\n align-items: center;\n margin: var(--spacing-medium);\n }\n\n img {\n max-width: 85%;\n height: auto;\n }\n `\n ]\n\n @property({ type: Object }) private activityInstance\n\n private _routeCtrl = new RouteController(this)\n\n render() {\n const activityInstance = this._routeCtrl.context.activityInstance || this.activityInstance || {}\n const { activity, name, description, state, assignees, approvalLine, assignedAt, startedAt, dueAt, thumbnail } =\n activityInstance || {}\n const { startingType } = activity || {}\n\n // const editable = state == 'draft'\n\n return html`\n <div flow>\n ${approvalLine\n ? html`\n <approval-line-view\n .model=${approvalLine}\n @click=${() => this.onClickApprovalLine(activityInstance)}\n @change=${e => (activityInstance.approvalLine = e.currentTarget.value)}\n ></approval-line-view>\n `\n : html`<md-elevated-button @click=${() => this.onClickApprovalLine(activityInstance)}>\n <md-icon slot=\"icon\">group_add</md-icon>\n </md-elevated-button>`}\n </div>\n\n <div info>\n <div><label>${i18next.t('field.name')}</label> <strong>${name}</strong></div>\n <div><label>${i18next.t('field.description')}</label> ${description}</div>\n <div>\n <label>${i18next.t('field.status')}</label> <span></span> <strong\n >${i18next.t('label.activity-state-' + state)}</strong\n >\n </div>\n <div>\n <label>${i18next.t('field.assigned-at')}</label> ${assignedAt && formatter.format(new Date(assignedAt))}\n </div>\n <div><label>${i18next.t('field.due-at')}</label> ${dueAt && formatter.format(new Date(dueAt))}</div>\n <div><label>${i18next.t('field.started-at')}</label> ${startedAt && formatter.format(new Date(startedAt))}</div>\n </div>\n\n ${startingType == 'issue'\n ? html`<div assignees>\n <div>\n <label>${i18next.t('field.assignees')}</label>\n ${assignees\n ? html`\n <assignees-view\n .value=${assignees}\n @click=${() => this.onClickAssignees(activityInstance)}\n @change=${e => (activityInstance.assignees = e.currentTarget.value)}\n ></assignees-view>\n `\n : html`<md-elevated-button @click=${() => this.onClickAssignees(activityInstance)}>\n <md-icon slot=\"icon\">group_add</md-icon>\n </md-elevated-button>`}\n </div>\n </div>`\n : html``}\n ${thumbnail\n ? html` <div thumbnail>\n <img src=${thumbnail} />\n </div>`\n : html``}\n `\n }\n\n onClickAssignees(activityInstance) {\n const { assignees } = activityInstance || {}\n\n const popup = openPopup(\n html`\n <assignees-editor-popup\n .value=${assignees}\n .confirmCallback=${value => {\n activityInstance.assignees = value\n this.requestUpdate()\n }}\n ></assignees-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/assignees-editor',\n size: 'large',\n title: i18next.t('title.assignee list')\n }\n )\n popup.onclosed = () => {}\n }\n\n onClickApprovalLine(activityInstance) {\n const { approvalLine } = activityInstance || {}\n\n const popup = openPopup(\n html`\n <approval-line-items-editor-popup\n .value=${approvalLine}\n .confirmCallback=${value => {\n activityInstance.approvalLine = value\n this.requestUpdate()\n }}\n ></approval-line-items-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/approval-line-items-editor',\n size: 'large',\n title: i18next.t('title.approval-line item list')\n }\n )\n popup.onclosed = () => {}\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"activity-instance-context-template.js","sourceRoot":"","sources":["../../client/templates/activity-instance-context-template.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/elevated-button.js'\n\nimport { html, css, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ContextToolbarOverlayStyle } from '@operato/context/ox-context-toolbar-overlay-style.js'\nimport { RouteController } from '@operato/shell'\nimport { i18next } from '@operato/i18n'\n\nimport { ContextPanelStyles, whenCell } from './context-panel.js'\nimport { openPopup } from '@operato/layout'\n\nimport '@things-factory/organization/dist-client/component/approval-line-view.js'\n\n@customElement('activity-instance-context-template')\nclass ActivityInstanceContextTemplate extends LitElement {\n static styles = [ContextToolbarOverlayStyle, ContextPanelStyles]\n\n @property({ type: Object }) private activityInstance\n\n private _routeCtrl = new RouteController(this)\n\n render() {\n const activityInstance = this._routeCtrl.context.activityInstance || this.activityInstance || {}\n const { activity, name, description, state, assignees, approvalLine, assignedAt, startedAt, dueAt, thumbnail } =\n activityInstance || {}\n const { startingType } = activity || {}\n\n // const editable = state == 'draft'\n\n return html`\n <div flow>\n ${approvalLine\n ? html`\n <approval-line-view\n .model=${approvalLine}\n @click=${() => this.onClickApprovalLine(activityInstance)}\n @change=${e => (activityInstance.approvalLine = e.currentTarget.value)}\n ></approval-line-view>\n `\n : html`<md-elevated-button @click=${() => this.onClickApprovalLine(activityInstance)}>\n <md-icon slot=\"icon\">group_add</md-icon>\n </md-elevated-button>`}\n </div>\n\n <dl class=\"given\">\n <dt>${i18next.t('field.assigned-at')}</dt>\n <dd>${whenCell(assignedAt)}</dd>\n\n <dt>${i18next.t('field.due-at')}</dt>\n <dd>${whenCell(dueAt)}</dd>\n\n <dt>${i18next.t('field.started-at')}</dt>\n <dd>${whenCell(startedAt)}</dd>\n </dl>\n\n ${startingType == 'issue'\n ? html`<div assignees>\n <div>\n <label>${i18next.t('field.assignees')}</label>\n ${assignees\n ? html`\n <assignees-view\n .value=${assignees}\n @click=${() => this.onClickAssignees(activityInstance)}\n @change=${e => (activityInstance.assignees = e.currentTarget.value)}\n ></assignees-view>\n `\n : html`<md-elevated-button @click=${() => this.onClickAssignees(activityInstance)}>\n <md-icon slot=\"icon\">group_add</md-icon>\n </md-elevated-button>`}\n </div>\n </div>`\n : html``}\n ${thumbnail\n ? html` <div thumbnail>\n <img src=${thumbnail} />\n </div>`\n : html``}\n `\n }\n\n onClickAssignees(activityInstance) {\n const { assignees } = activityInstance || {}\n\n const popup = openPopup(\n html`\n <assignees-editor-popup\n .value=${assignees}\n .confirmCallback=${value => {\n activityInstance.assignees = value\n this.requestUpdate()\n }}\n ></assignees-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/assignees-editor',\n size: 'large',\n title: i18next.t('title.assignee list')\n }\n )\n popup.onclosed = () => {}\n }\n\n onClickApprovalLine(activityInstance) {\n const { approvalLine } = activityInstance || {}\n\n const popup = openPopup(\n html`\n <approval-line-items-editor-popup\n .value=${approvalLine}\n .confirmCallback=${value => {\n activityInstance.approvalLine = value\n this.requestUpdate()\n }}\n ></approval-line-items-editor-popup>\n `,\n {\n backdrop: true,\n help: 'organization/approval-line-items-editor',\n size: 'large',\n title: i18next.t('title.approval-line item list')\n }\n )\n popup.onclosed = () => {}\n }\n}\n"]}
|