@things-factory/worklist 8.0.0-alpha.7 → 8.0.0-beta.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.
Files changed (115) hide show
  1. package/dist-client/components/activity-instance-ribon.js +0 -4
  2. package/dist-client/components/activity-instance-ribon.js.map +1 -1
  3. package/dist-client/components/activity-thread-ribon.js +4 -0
  4. package/dist-client/components/activity-thread-ribon.js.map +1 -1
  5. package/dist-client/components/activity-thread-timeline.js +11 -1
  6. package/dist-client/components/activity-thread-timeline.js.map +1 -1
  7. package/dist-client/pages/activity/activity-list-page.js +14 -1
  8. package/dist-client/pages/activity/activity-list-page.js.map +1 -1
  9. package/dist-client/pages/activity/activity-page.d.ts +1 -1
  10. package/dist-client/pages/activity/activity-page.js +12 -2
  11. package/dist-client/pages/activity/activity-page.js.map +1 -1
  12. package/dist-client/pages/activity-approval/activity-approval-page.d.ts +1 -0
  13. package/dist-client/pages/activity-approval/activity-approval-page.js +1 -0
  14. package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -1
  15. package/dist-client/pages/activity-instance/activity-instance-view.js +12 -2
  16. package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -1
  17. package/dist-client/pages/activity-thread/activity-thread-page.d.ts +1 -0
  18. package/dist-client/pages/activity-thread/activity-thread-page.js +6 -1
  19. package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -1
  20. package/dist-client/pages/activity-thread/activity-thread-view-page.d.ts +1 -0
  21. package/dist-client/pages/activity-thread/activity-thread-view-page.js +1 -0
  22. package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -1
  23. package/dist-client/pages/activity-thread/activity-thread-view.js +16 -2
  24. package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -1
  25. package/dist-client/pages/todo/done-list-page.js +1 -1
  26. package/dist-client/pages/todo/done-list-page.js.map +1 -1
  27. package/dist-client/pages/todo/draft-list-page.js +1 -1
  28. package/dist-client/pages/todo/draft-list-page.js.map +1 -1
  29. package/dist-client/pages/todo/todo-list-page.js +2 -1
  30. package/dist-client/pages/todo/todo-list-page.js.map +1 -1
  31. package/dist-client/templates/activity-approval-context-template.js +11 -1
  32. package/dist-client/templates/activity-approval-context-template.js.map +1 -1
  33. package/dist-client/templates/activity-instance-context-template.js +11 -5
  34. package/dist-client/templates/activity-instance-context-template.js.map +1 -1
  35. package/dist-client/templates/activity-thread-context-template.js +15 -1
  36. package/dist-client/templates/activity-thread-context-template.js.map +1 -1
  37. package/dist-client/tsconfig.tsbuildinfo +1 -1
  38. package/dist-client/types/activity-instance.d.ts +1 -1
  39. package/dist-client/types/activity-instance.js +1 -1
  40. package/dist-client/types/activity-instance.js.map +1 -1
  41. package/dist-server/controllers/activity-approval/abort.js +2 -0
  42. package/dist-server/controllers/activity-approval/abort.js.map +1 -1
  43. package/dist-server/controllers/activity-approval/approve.js +44 -14
  44. package/dist-server/controllers/activity-approval/approve.js.map +1 -1
  45. package/dist-server/controllers/activity-approval/check-authority.d.ts +2 -0
  46. package/dist-server/controllers/activity-approval/check-authority.js +24 -0
  47. package/dist-server/controllers/activity-approval/check-authority.js.map +1 -0
  48. package/dist-server/controllers/activity-approval/delegate.js +6 -1
  49. package/dist-server/controllers/activity-approval/delegate.js.map +1 -1
  50. package/dist-server/controllers/activity-approval/reject.js +2 -0
  51. package/dist-server/controllers/activity-approval/reject.js.map +1 -1
  52. package/dist-server/controllers/activity-approval/save.d.ts +5 -0
  53. package/dist-server/controllers/activity-approval/save.js +28 -0
  54. package/dist-server/controllers/activity-approval/save.js.map +1 -0
  55. package/dist-server/controllers/activity-instance/assign.js +1 -1
  56. package/dist-server/controllers/activity-instance/assign.js.map +1 -1
  57. package/dist-server/controllers/activity-instance/issue.js +27 -3
  58. package/dist-server/controllers/activity-instance/issue.js.map +1 -1
  59. package/dist-server/controllers/activity-instance/pick.js +1 -1
  60. package/dist-server/controllers/activity-instance/pick.js.map +1 -1
  61. package/dist-server/controllers/activity-thread/abort.js +2 -0
  62. package/dist-server/controllers/activity-thread/abort.js.map +1 -1
  63. package/dist-server/controllers/activity-thread/check-authority.d.ts +2 -0
  64. package/dist-server/controllers/activity-thread/check-authority.js +33 -0
  65. package/dist-server/controllers/activity-thread/check-authority.js.map +1 -0
  66. package/dist-server/controllers/activity-thread/delegate.js +2 -0
  67. package/dist-server/controllers/activity-thread/delegate.js.map +1 -1
  68. package/dist-server/controllers/activity-thread/end.js +2 -0
  69. package/dist-server/controllers/activity-thread/end.js.map +1 -1
  70. package/dist-server/controllers/activity-thread/restart.js +2 -0
  71. package/dist-server/controllers/activity-thread/restart.js.map +1 -1
  72. package/dist-server/controllers/activity-thread/save.js +4 -0
  73. package/dist-server/controllers/activity-thread/save.js.map +1 -1
  74. package/dist-server/controllers/activity-thread/start.js +2 -0
  75. package/dist-server/controllers/activity-thread/start.js.map +1 -1
  76. package/dist-server/controllers/activity-thread/submit.js +45 -14
  77. package/dist-server/controllers/activity-thread/submit.js.map +1 -1
  78. package/dist-server/controllers/common.d.ts +1 -0
  79. package/dist-server/controllers/common.js +21 -1
  80. package/dist-server/controllers/common.js.map +1 -1
  81. package/dist-server/service/activity/activity-history.js +7 -2
  82. package/dist-server/service/activity/activity-history.js.map +1 -1
  83. package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +1 -1
  84. package/dist-server/service/activity-approval/activity-approval-mutation.js +3 -13
  85. package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -1
  86. package/dist-server/service/activity-approval/activity-approval-query.js +16 -5
  87. package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -1
  88. package/dist-server/service/activity-approval/activity-approval.d.ts +3 -1
  89. package/dist-server/service/activity-approval/activity-approval.js +9 -0
  90. package/dist-server/service/activity-approval/activity-approval.js.map +1 -1
  91. package/dist-server/service/activity-instance/activity-instance-history.js +7 -2
  92. package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -1
  93. package/dist-server/service/activity-instance/activity-instance-query.js +1 -1
  94. package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -1
  95. package/dist-server/service/activity-instance/activity-instance.d.ts +1 -1
  96. package/dist-server/service/activity-instance/activity-instance.js +1 -1
  97. package/dist-server/service/activity-instance/activity-instance.js.map +1 -1
  98. package/dist-server/service/activity-summary/activity-summary-query.js +38 -11
  99. package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -1
  100. package/dist-server/service/activity-template/activity-template-history.js +7 -2
  101. package/dist-server/service/activity-template/activity-template-history.js.map +1 -1
  102. package/dist-server/service/activity-thread/activity-thread-history.js +9 -2
  103. package/dist-server/service/activity-thread/activity-thread-history.js.map +1 -1
  104. package/dist-server/service/activity-thread/activity-thread-query.js +23 -5
  105. package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -1
  106. package/dist-server/service/activity-thread/activity-thread.d.ts +1 -0
  107. package/dist-server/service/activity-thread/activity-thread.js +1 -0
  108. package/dist-server/service/activity-thread/activity-thread.js.map +1 -1
  109. package/dist-server/tsconfig.tsbuildinfo +1 -1
  110. package/package.json +15 -15
  111. package/translations/en.json +15 -2
  112. package/translations/ja.json +14 -1
  113. package/translations/ko.json +59 -46
  114. package/translations/ms.json +14 -1
  115. package/translations/zh.json +14 -1
@@ -1 +1 @@
1
- {"version":3,"file":"activity-thread-context-template.js","sourceRoot":"","sources":["../../client/templates/activity-thread-context-template.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@things-factory/organization/dist-client/component/approval-line-view.js'\nimport '../components/activity-thread-timeline'\n\nimport { html, css, LitElement, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport { ContextToolbarOverlayStyle } from '@operato/context/ox-context-toolbar-overlay-style.js'\nimport { store } from '@operato/shell'\nimport { i18next } from '@operato/i18n'\n\nconst formatter = new Intl.DateTimeFormat(navigator.language, { dateStyle: 'full', timeStyle: 'short' })\n\n@customElement('activity-thread-context-template')\nclass ActivityThreadContextTemplate extends connect(store)(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='assigned']) {\n --worklist-status-color: #5f7184;\n }\n\n :host([state='started']) {\n --worklist-status-color: #56af45;\n }\n\n :host([state='delegated']) {\n --worklist-status-color: #8654b0;\n }\n\n :host([state='submitted']) {\n --worklist-status-color: #428df3;\n }\n\n :host([state='escalated']) {\n --worklist-status-color: #595de5;\n }\n\n :host([state='rejected']) {\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 div[info] {\n padding: var(--spacing-medium);\n border-bottom: var(--border-dim-color);\n color: var(--md-sys-color-secondary);\n\n 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 div:nth-child(odd) {\n background-color: var(--md-sys-color-background);\n }\n\n label {\n display: inline-block;\n width: 25%;\n text-align: right;\n margin-right: 20px;\n }\n\n 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\n activity-thread-timeline {\n margin: var(--spacing-medium);\n }\n `\n ]\n\n @property({ type: Object }) private activityThread\n\n @state() private context\n\n render() {\n const activityThread = this.context.activityThread || this.activityThread || {}\n\n const { state, round, dueAt, assignedAt, terminatedAt, assignee, activityInstance, activityApprovals } =\n activityThread || {}\n const { name, description, approvalLine } = activityInstance || {}\n\n return html`\n <div flow>\n <div approval-line>\n ${approvalLine ? html` <approval-line-view .model=${approvalLine}></approval-line-view> ` : html``}\n </div>\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>&nbsp;<strong\n >${i18next.t('label.activity-state-' + state)}</strong\n >\n </div>\n <div><label>${i18next.t('field.round')}</label> <strong>${round}</strong></div>\n <div><label>${i18next.t('field.assignee')}</label> <strong>${assignee?.name}</strong></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>\n <label>${i18next.t('field.terminated-at')}</label> ${terminatedAt && formatter.format(new Date(terminatedAt))}\n </div>\n </div>\n\n <activity-thread-timeline .activityThread=${activityThread} short-form></activity-thread-timeline>\n `\n }\n\n stateChanged(state) {\n this.context = state.route.context\n }\n}\n"]}
1
+ {"version":3,"file":"activity-thread-context-template.js","sourceRoot":"","sources":["../../client/templates/activity-thread-context-template.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@things-factory/organization/dist-client/component/approval-line-view.js'\nimport '../components/activity-thread-timeline'\n\nimport { html, css, LitElement, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport { ContextToolbarOverlayStyle } from '@operato/context/ox-context-toolbar-overlay-style.js'\nimport { store } from '@operato/shell'\nimport { i18next } from '@operato/i18n'\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-thread-context-template')\nclass ActivityThreadContextTemplate extends connect(store)(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='unassigned']) {\n --worklist-status-color: #5f7184;\n }\n\n :host([state='assigned']) {\n --worklist-status-color: #5f7184;\n }\n\n :host([state='started']) {\n --worklist-status-color: #56af45;\n }\n\n :host([state='delegated']) {\n --worklist-status-color: #8654b0;\n }\n\n :host([state='submitted']) {\n --worklist-status-color: #428df3;\n }\n\n :host([state='escalated']) {\n --worklist-status-color: #595de5;\n }\n\n :host([state='rejected']) {\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 div[info] {\n padding: var(--spacing-medium);\n border-bottom: var(--border-dim-color);\n color: var(--md-sys-color-secondary);\n\n 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 div:nth-child(odd) {\n background-color: var(--md-sys-color-background);\n }\n\n label {\n display: inline-block;\n width: 25%;\n text-align: right;\n margin-right: 20px;\n }\n\n 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\n activity-thread-timeline {\n margin: var(--spacing-medium);\n }\n `\n ]\n\n @property({ type: Object }) private activityThread\n\n @state() private context\n\n render() {\n const activityThread = this.context.activityThread || this.activityThread || {}\n\n const { state, round, dueAt, assignedAt, terminatedAt, assignee, activityInstance, activityApprovals } =\n activityThread || {}\n const { name, description, approvalLine } = activityInstance || {}\n\n return html`\n <div flow>\n <div approval-line>\n ${approvalLine ? html` <approval-line-view .model=${approvalLine}></approval-line-view> ` : html``}\n </div>\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>&nbsp;<strong\n >${i18next.t('label.activity-state-' + state)}</strong\n >\n </div>\n <div><label>${i18next.t('field.round')}</label> <strong>${round}</strong></div>\n <div><label>${i18next.t('field.assignee')}</label> <strong>${assignee?.name}</strong></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>\n <label>${i18next.t('field.terminated-at')}</label> ${terminatedAt && formatter.format(new Date(terminatedAt))}\n </div>\n </div>\n\n <activity-thread-timeline .activityThread=${activityThread} short-form></activity-thread-timeline>\n `\n }\n\n stateChanged(state) {\n this.context = state.route.context\n }\n}\n"]}