@things-factory/worklist 10.1.270 → 10.1.272
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/bootstrap.d.ts +1 -0
- package/dist-client/bootstrap.js +1 -0
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/components/activity-thread-timeline.d.ts +2 -2
- package/dist-client/components/person-question-todo.d.ts +16 -0
- package/dist-client/components/person-question-todo.js +75 -0
- package/dist-client/components/person-question-todo.js.map +1 -0
- package/dist-client/components/source-link.d.ts +1 -1
- package/dist-client/pages/activity-instance/activity-instance-view.d.ts +1 -1
- package/dist-client/pages/activity-thread/activity-thread-view.d.ts +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/controllers/activity-approval/_abort.js +2 -0
- package/dist-server/controllers/activity-approval/_abort.js.map +1 -1
- package/dist-server/controllers/activity-approval/claim.js +6 -1
- package/dist-server/controllers/activity-approval/claim.js.map +1 -1
- package/dist-server/controllers/activity-instance/complete.js +4 -0
- package/dist-server/controllers/activity-instance/complete.js.map +1 -1
- package/dist-server/controllers/activity-instance/hand-out.d.ts +2 -0
- package/dist-server/controllers/activity-instance/hand-out.js +7 -0
- package/dist-server/controllers/activity-instance/hand-out.js.map +1 -1
- package/dist-server/controllers/common.js +2 -0
- package/dist-server/controllers/common.js.map +1 -1
- package/dist-server/service/activity/index.d.ts +1 -1
- package/dist-server/service/activity-approval/index.d.ts +1 -1
- package/dist-server/service/activity-instance/index.d.ts +1 -1
- package/dist-server/service/activity-template/index.d.ts +1 -1
- package/dist-server/service/activity-thread/index.d.ts +1 -1
- package/dist-server/service/approval-notice/approval-notice-rules.d.ts +9 -0
- package/dist-server/service/approval-notice/approval-notice-rules.js +25 -1
- package/dist-server/service/approval-notice/approval-notice-rules.js.map +1 -1
- package/dist-server/service/approval-notice/approval-notice.d.ts +22 -0
- package/dist-server/service/approval-notice/approval-notice.js +46 -0
- package/dist-server/service/approval-notice/approval-notice.js.map +1 -1
- package/dist-server/service/index.d.ts +5 -3
- package/dist-server/service/index.js +12 -2
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/person-question/index.d.ts +4 -0
- package/dist-server/service/person-question/index.js +19 -0
- package/dist-server/service/person-question/index.js.map +1 -0
- package/dist-server/service/person-question/person-question-activity.d.ts +67 -0
- package/dist-server/service/person-question/person-question-activity.js +46 -0
- package/dist-server/service/person-question/person-question-activity.js.map +1 -0
- package/dist-server/service/person-question/person-question-card.d.ts +1 -0
- package/dist-server/service/person-question/person-question-card.js +36 -0
- package/dist-server/service/person-question/person-question-card.js.map +1 -0
- package/dist-server/service/person-question/person-question-resolver.d.ts +10 -0
- package/dist-server/service/person-question/person-question-resolver.js +54 -0
- package/dist-server/service/person-question/person-question-resolver.js.map +1 -0
- package/dist-server/service/person-question/person-question-service.d.ts +17 -0
- package/dist-server/service/person-question/person-question-service.js +86 -0
- package/dist-server/service/person-question/person-question-service.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -10
- package/tests/approval-notice-db.test.ts +3 -1
- package/tests/complete-db.test.ts +2 -1
- package/tests/delegate-approval.test.ts +3 -1
- package/tests/hand-out-notice-db.test.ts +99 -0
- package/tests/person-question-db.test.ts +158 -0
- package/translations/en.json +21 -1
- package/translations/es.json +21 -1
- package/translations/ja.json +21 -1
- package/translations/ko.json +21 -1
- package/translations/ms.json +21 -1
- package/translations/zh.json +21 -1
|
@@ -2,4 +2,5 @@ import '@material/web/icon/icon.js';
|
|
|
2
2
|
import './templates/activity-approval-context-template.js';
|
|
3
3
|
import './templates/activity-thread-context-template.js';
|
|
4
4
|
import './templates/activity-instance-context-template.js';
|
|
5
|
+
import './components/person-question-todo.js';
|
|
5
6
|
export default function bootstrap(): void;
|
package/dist-client/bootstrap.js
CHANGED
|
@@ -2,6 +2,7 @@ import '@material/web/icon/icon.js';
|
|
|
2
2
|
import './templates/activity-approval-context-template.js';
|
|
3
3
|
import './templates/activity-thread-context-template.js';
|
|
4
4
|
import './templates/activity-instance-context-template.js';
|
|
5
|
+
import './components/person-question-todo.js';
|
|
5
6
|
import { html } from 'lit';
|
|
6
7
|
import { store } from '@operato/shell';
|
|
7
8
|
import { openOverlay, TOOL_POSITION } from '@operato/layout';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,mDAAmD,CAAA;AAC1D,OAAO,iDAAiD,CAAA;AACxD,OAAO,mDAAmD,CAAA;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,mDAAmD,CAAA;AAC1D,OAAO,iDAAiD,CAAA;AACxD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,sCAAsC,CAAA;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAE5E,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACtH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAA;AACjG,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;AAClG,OAAO,EAAE,+BAA+B,EAAE,MAAM,sDAAsD,CAAA;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAA;AAEvF,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,6BAA6B,EAAE,CAAC;IAEhC;;;;OAIG;IACH;QACE;YACE,QAAQ,EAAE,IAAI,CAAA,6EAA6E;YAC3F,OAAO,EAAE,kBAAkB;SAC5B;QACD;YACE,QAAQ,EAAE,IAAI,CAAA,yEAAyE;YACvF,OAAO,EAAE,gBAAgB;SAC1B;QACD;YACE,QAAQ,EAAE,IAAI,CAAA,6EAA6E;YAC3F,OAAO,EAAE,kBAAkB;SAC5B;KACF,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,KAAK,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE;gBACJ,QAAQ,EAAE,aAAa,CAAC,KAAK;gBAC7B,QAAQ,EAAE,IAAI,CAAA;;qBAED,KAAK,EAAC,CAAC,EAAC,EAAE;oBACjB,WAAW,CAAC,yBAAyB,EAAE;wBACrC,QAAQ;qBACT,CAAC,CAAA;gBACJ,CAAC;;;SAGJ;gBACD,OAAO;aACR;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAA;IACtD,qBAAqB,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAA;IAC1D,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;IAC1D,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAA;IAE9D,mBAAmB,CAAC,sBAAsB,EAAE,6BAA6B,CAAC,CAAA;IAC1E,qBAAqB,CAAC,sBAAsB,EAAE,+BAA+B,CAAC,CAAA;AAChF,CAAC","sourcesContent":["import '@material/web/icon/icon.js'\nimport './templates/activity-approval-context-template.js'\nimport './templates/activity-thread-context-template.js'\nimport './templates/activity-instance-context-template.js'\nimport './components/person-question-todo.js'\n\nimport { html } from 'lit'\nimport { store } from '@operato/shell'\nimport { openOverlay, TOOL_POSITION } from '@operato/layout'\nimport { APPEND_CONTEXT_TOOL } from '@things-factory/context-ui/dist-client'\n\nimport { registerEditor as registerGristEditor, registerRenderer as registerGristRenderer } from '@operato/data-grist'\nimport { OxGristEditorDuration } from '@operato/grist-editor/ox-grist-editor-duration.js'\nimport { OxGristEditorQuantifier } from '@operato/grist-editor/ox-grist-editor-quantifier.js'\nimport { OxGristRendererDuration } from '@operato/grist-editor/ox-grist-renderer-duration.js'\nimport { OxGristRendererQuantifier } from '@operato/grist-editor/ox-grist-renderer-quantifier.js'\nimport { GristEditorActivitySearchKeys } from './grist-editor/grist-editor-activity-search-key.js'\nimport { GristRendererActivitySearchKeys } from './grist-editor/grist-renderer-activity-search-key.js'\nimport { registerPersonOpenWorkSection } from './entity360/person-open-work-section.js'\n\nexport default function bootstrap() {\n registerPersonOpenWorkSection();\n\n /*\n * 여기에 'activity-info-overlay' aside viewpart 를 등록해 두었었다. 걷었다 —\n * 기본 정보는 이제 팝업으로 연다(activity-thread-ribon 의 openInfo 머리말 참조).\n * ASIDEBAR 은 앱이 하나만 갖는 자리이고, 페이지에 매인 패널이 그 자리를 차지할 이유가 없다.\n */\n [\n {\n template: html` <activity-approval-context-template></activity-approval-context-template> `,\n context: 'activityApproval'\n },\n {\n template: html` <activity-thread-context-template></activity-thread-context-template> `,\n context: 'activityThread'\n },\n {\n template: html` <activity-instance-context-template></activity-instance-context-template> `,\n context: 'activityInstance'\n }\n ].forEach(({ template, context }) => {\n store.dispatch({\n type: APPEND_CONTEXT_TOOL,\n tool: {\n position: TOOL_POSITION.FRONT,\n template: html`\n <md-icon\n @click=${async e => {\n openOverlay('context-toolbar-overlay', {\n template\n })\n }}\n >info</md-icon\n >\n `,\n context\n }\n })\n })\n\n registerGristEditor('duration', OxGristEditorDuration)\n registerGristRenderer('duration', OxGristRendererDuration)\n registerGristEditor('quantifier', OxGristEditorQuantifier)\n registerGristRenderer('quantifier', OxGristRendererQuantifier)\n\n registerGristEditor('activity-search-keys', GristEditorActivitySearchKeys)\n registerGristRenderer('activity-search-keys', GristRendererActivitySearchKeys)\n}\n"]}
|
|
@@ -17,12 +17,12 @@ export declare class ActivityThreadTimeline extends LitElement {
|
|
|
17
17
|
* 보일 항목 없음 화면이 「타임라인의 상신 사유를 보고 판단하세요」로 여기를 가리킨다
|
|
18
18
|
*/
|
|
19
19
|
open?: boolean;
|
|
20
|
-
render():
|
|
20
|
+
render(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
21
21
|
/** 접혔을 때 보이는 한 줄 — 마지막 기록의 「무엇을 · 누가 · 언제」. */
|
|
22
22
|
lastLine(item: any): string;
|
|
23
23
|
renderActivityThreadHistory(activityThreadHistory: ActivityThreadHistory): import("lit-html").TemplateResult<1>;
|
|
24
24
|
renderActivityApproval(activityApproval: ActivityApproval): import("lit-html").TemplateResult<1>;
|
|
25
25
|
/** 적힌 말이 없으면 상자를 그리지 않는다 — 빈 회색 상자는 내용이 있는 줄과 구별되지 않는다. */
|
|
26
|
-
renderSaid(said?: string):
|
|
26
|
+
renderSaid(said?: string): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
27
27
|
renderOutput(output: any): string;
|
|
28
28
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import '@material/web/button/filled-button.js';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
export declare class PersonQuestionTodo extends LitElement {
|
|
4
|
+
static styles: import("lit").CSSResult;
|
|
5
|
+
input: {
|
|
6
|
+
sessionId?: string;
|
|
7
|
+
asker?: string;
|
|
8
|
+
askerId?: string;
|
|
9
|
+
question?: string;
|
|
10
|
+
answered?: string;
|
|
11
|
+
decide?: string;
|
|
12
|
+
draft?: string;
|
|
13
|
+
};
|
|
14
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
private open;
|
|
16
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import '@material/web/button/filled-button.js';
|
|
3
|
+
import { css, html, LitElement, nothing } from 'lit';
|
|
4
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
5
|
+
import { i18next } from '@operato/i18n';
|
|
6
|
+
import { openEntity360Kind } from '@operato/layout';
|
|
7
|
+
import { store } from '@operato/shell';
|
|
8
|
+
import { askAssistant } from '@things-factory/ai-assistant/dist-client/index.js';
|
|
9
|
+
/*
|
|
10
|
+
* 본인 확인 요청 (ADR-0200 decision 3) - what the to-do shows: who asked what, what the records already answered, what
|
|
11
|
+
* is the person's to say and a draft from their records. The answer is given in the conversation it came from - the
|
|
12
|
+
* button opens it with the draft in the input, and answering there ends the to-do. Nothing is answered here.
|
|
13
|
+
*
|
|
14
|
+
* The conversation is listed on the person's own 360 (it is about them), so the button opens that 360 and the dock
|
|
15
|
+
* takes the conversation there.
|
|
16
|
+
*/
|
|
17
|
+
let PersonQuestionTodo = class PersonQuestionTodo extends LitElement {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.input = {};
|
|
21
|
+
}
|
|
22
|
+
static { this.styles = css `
|
|
23
|
+
:host {
|
|
24
|
+
display: block;
|
|
25
|
+
padding: var(--spacing-large, 12px);
|
|
26
|
+
font-size: var(--ui-t-body, 13px);
|
|
27
|
+
line-height: 1.6;
|
|
28
|
+
color: var(--ui-ink);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
dl {
|
|
32
|
+
margin: 0 0 var(--spacing-large, 12px);
|
|
33
|
+
display: grid;
|
|
34
|
+
grid-template-columns: max-content 1fr;
|
|
35
|
+
gap: var(--spacing-small, 4px) var(--spacing-large, 12px);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
dt {
|
|
39
|
+
color: var(--ui-muted);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
dd {
|
|
43
|
+
margin: 0;
|
|
44
|
+
white-space: pre-wrap;
|
|
45
|
+
overflow-wrap: anywhere;
|
|
46
|
+
}
|
|
47
|
+
`; }
|
|
48
|
+
render() {
|
|
49
|
+
const { asker, question, answered, decide, draft, sessionId } = this.input ?? {};
|
|
50
|
+
const row = (key, value) => (value ? html `<dt>${i18next.t(key)}</dt><dd>${value}</dd>` : nothing);
|
|
51
|
+
return html `<dl>
|
|
52
|
+
${row('field.person-question-asker', asker)} ${row('field.person-question', question)} ${row('field.person-question-answered', answered)}
|
|
53
|
+
${row('field.person-question-decide', decide)} ${row('field.person-question-draft', draft)}
|
|
54
|
+
</dl>
|
|
55
|
+
${sessionId ? html `<md-filled-button @click=${() => this.open()}>${i18next.t('button.person-question-open')}</md-filled-button>` : nothing}`;
|
|
56
|
+
}
|
|
57
|
+
open() {
|
|
58
|
+
const { sessionId, draft, asker, askerId } = this.input ?? {};
|
|
59
|
+
const me = store.getState().auth?.user;
|
|
60
|
+
if (!sessionId || !me?.id)
|
|
61
|
+
return;
|
|
62
|
+
openEntity360Kind('person', { id: me.id, name: me.name, email: me.email });
|
|
63
|
+
/* The answer is said to the one who asked - to the people of the conversation, which is what ends the to-do. */
|
|
64
|
+
void askAssistant({ sessionId, draft: draft || undefined, to: askerId && asker ? { id: askerId, name: asker } : undefined });
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
__decorate([
|
|
68
|
+
property({ attribute: false }),
|
|
69
|
+
__metadata("design:type", Object)
|
|
70
|
+
], PersonQuestionTodo.prototype, "input", void 0);
|
|
71
|
+
PersonQuestionTodo = __decorate([
|
|
72
|
+
customElement('person-question-todo')
|
|
73
|
+
], PersonQuestionTodo);
|
|
74
|
+
export { PersonQuestionTodo };
|
|
75
|
+
//# sourceMappingURL=person-question-todo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"person-question-todo.js","sourceRoot":"","sources":["../../client/components/person-question-todo.ts"],"names":[],"mappings":";AAAA,OAAO,uCAAuC,CAAA;AAE9C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAA;AAEhF;;;;;;;GAOG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QA4B2B,UAAK,GAAoI,EAAE,CAAA;IAoB7K,CAAC;aA/CQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBlB,AAzBY,CAyBZ;IAID,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;QAChF,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAClH,OAAO,IAAI,CAAA;UACL,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,gCAAgC,EAAE,QAAQ,CAAC;UACtI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC;;QAE1F,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA,4BAA4B,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAChJ,CAAC;IAEO,IAAI;QACV,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;QAC7D,MAAM,EAAE,GAAI,KAAK,CAAC,QAAQ,EAAU,CAAC,IAAI,EAAE,IAAI,CAAA;QAC/C,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE;YAAE,OAAM;QACjC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1E,gHAAgH;QAChH,KAAK,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IAC9H,CAAC;;AAnB+B;IAA/B,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;iDAA4I;AA5BhK,kBAAkB;IAD9B,aAAa,CAAC,sBAAsB,CAAC;GACzB,kBAAkB,CAgD9B","sourcesContent":["import '@material/web/button/filled-button.js'\n\nimport { css, html, LitElement, nothing } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { openEntity360Kind } from '@operato/layout'\nimport { store } from '@operato/shell'\nimport { askAssistant } from '@things-factory/ai-assistant/dist-client/index.js'\n\n/*\n * 본인 확인 요청 (ADR-0200 decision 3) - what the to-do shows: who asked what, what the records already answered, what\n * is the person's to say and a draft from their records. The answer is given in the conversation it came from - the\n * button opens it with the draft in the input, and answering there ends the to-do. Nothing is answered here.\n *\n * The conversation is listed on the person's own 360 (it is about them), so the button opens that 360 and the dock\n * takes the conversation there.\n */\n@customElement('person-question-todo')\nexport class PersonQuestionTodo extends LitElement {\n static styles = css`\n :host {\n display: block;\n padding: var(--spacing-large, 12px);\n font-size: var(--ui-t-body, 13px);\n line-height: 1.6;\n color: var(--ui-ink);\n }\n\n dl {\n margin: 0 0 var(--spacing-large, 12px);\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: var(--spacing-small, 4px) var(--spacing-large, 12px);\n }\n\n dt {\n color: var(--ui-muted);\n }\n\n dd {\n margin: 0;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n }\n `\n\n @property({ attribute: false }) input: { sessionId?: string; asker?: string; askerId?: string; question?: string; answered?: string; decide?: string; draft?: string } = {}\n\n render() {\n const { asker, question, answered, decide, draft, sessionId } = this.input ?? {}\n const row = (key: string, value?: string) => (value ? html`<dt>${i18next.t(key)}</dt><dd>${value}</dd>` : nothing)\n return html`<dl>\n ${row('field.person-question-asker', asker)} ${row('field.person-question', question)} ${row('field.person-question-answered', answered)}\n ${row('field.person-question-decide', decide)} ${row('field.person-question-draft', draft)}\n </dl>\n ${sessionId ? html`<md-filled-button @click=${() => this.open()}>${i18next.t('button.person-question-open')}</md-filled-button>` : nothing}`\n }\n\n private open() {\n const { sessionId, draft, asker, askerId } = this.input ?? {}\n const me = (store.getState() as any).auth?.user\n if (!sessionId || !me?.id) return\n openEntity360Kind('person', { id: me.id, name: me.name, email: me.email })\n /* The answer is said to the one who asked - to the people of the conversation, which is what ends the to-do. */\n void askAssistant({ sessionId, draft: draft || undefined, to: askerId && asker ? { id: askerId, name: asker } : undefined })\n }\n}\n"]}
|
|
@@ -11,7 +11,7 @@ import { nothing } from 'lit';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function renderSourceLink(input: {
|
|
13
13
|
sourceHref?: unknown;
|
|
14
|
-
} | null | undefined):
|
|
14
|
+
} | null | undefined): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
15
15
|
/**
|
|
16
16
|
* How the link looks, wherever it is drawn - the way a name that opens its 360 looks (`entity360Name`): the text's own
|
|
17
17
|
* colour, a light underline that darkens under the pointer. The approval screen drew it as plain text and the case popup
|
|
@@ -45,7 +45,7 @@ export declare class ActivityInstanceView extends ActivityInstanceView_base {
|
|
|
45
45
|
* under 「산출물」. 상신함 opens this view for anyone who put something up, so it draws what the task
|
|
46
46
|
* screen draws, and nothing when the activity has nothing to write.
|
|
47
47
|
*/
|
|
48
|
-
renderWritten(output: any):
|
|
48
|
+
renderWritten(output: any): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
49
49
|
updated(changes: any): void;
|
|
50
50
|
}
|
|
51
51
|
export {};
|
|
@@ -26,6 +26,6 @@ declare const ActivityThreadView_base: (new (...args: any[]) => LitElement) & ty
|
|
|
26
26
|
export declare class ActivityThreadView extends ActivityThreadView_base {
|
|
27
27
|
static styles: import("lit").CSSResult[];
|
|
28
28
|
activityThread?: ActivityThread;
|
|
29
|
-
render():
|
|
29
|
+
render(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
30
30
|
}
|
|
31
31
|
export {};
|
package/dist-client/route.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function route(page: string): "
|
|
1
|
+
export default function route(page: string): "activity" | "todo-list" | "approval-pending-list" | "draft-list" | "approval-done-list" | "done-list-calendar" | "pickable-list" | "starter-list" | "reporter-list" | "activity-instance-list" | "activity-catalog" | "activity-thread" | "activity-thread-view" | "activity-approval" | "activity-detail" | "activity-list" | "activity-instance-start" | "approval-progress" | "activity-instance-search" | "activity-template-list" | "activity-store" | "activity-thread-list" | "activity-approval-list" | "installable-activity-list" | "activity-stats-list" | undefined;
|