@dxs-ts/eveli-ide 0.0.430 → 0.0.432

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.
@@ -1,4 +1,4 @@
1
1
  import { default as React } from 'react';
2
- export declare const EveliTaskDetails: React.FC<{
2
+ export declare const EveliTaskDashboard: React.FC<{
3
3
  taskId: string;
4
4
  }>;
@@ -1 +1 @@
1
- export * from './EveliTaskDetails';
1
+ export * from './EveliTaskDashboard';
@@ -4,4 +4,4 @@ export interface CustomerMessagesEditProps {
4
4
  task: TaskApi.Task;
5
5
  }
6
6
  export declare const CustomerMessagesEdit: React.FC<CustomerMessagesEditProps>;
7
- export declare const useUtilityClasses: () => Record<"container" | "messageRow" | "senderInfo" | "frontdeskAvatar" | "customerAvatar" | "frontdeskMessageBody" | "customerMessageBody" | "messageBoxLabel" | "messagesContainer" | "inputBox", string>;
7
+ export declare const useUtilityClasses: () => Record<"container" | "messageRow" | "messageBoxLabel" | "messagesContainer" | "senderInfo" | "inputBox" | "frontdeskAvatar" | "customerAvatar" | "frontdeskMessageBody" | "customerMessageBody", string>;
@@ -1,9 +1,9 @@
1
1
  import { default as React } from 'react';
2
2
  import { TaskCardStyleDefinition } from '../eveli-task-composer-v2/cardThemeConfig';
3
3
  import { TaskApi } from '../api-task';
4
- export interface CustomerMessagesReadOnlyProps {
4
+ export interface EveliCustomerMessagesReadOnlyProps {
5
5
  style: TaskCardStyleDefinition;
6
6
  task: TaskApi.Task;
7
7
  }
8
- export declare const CustomerMessagesReadOnly: React.FC<CustomerMessagesReadOnlyProps>;
8
+ export declare const EveliCustomerMessagesReadOnly: React.FC<EveliCustomerMessagesReadOnlyProps>;
9
9
  export declare const useUtilityClasses: () => Record<"container" | "messageRow" | "senderInfo" | "frontdeskAvatar" | "customerAvatar" | "frontdeskMessageBody" | "customerMessageBody", string>;
@@ -1,2 +1,2 @@
1
- export * from './CustomerMessagesReadOnly';
2
1
  export * from './EditCustomerMessagesDialog';
2
+ export * from './EveliCustomerMessagesReadOnly';
@@ -1,7 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { TaskApi } from '../api-task';
3
- import { TaskCardStyleDefinition } from './cardThemeConfig';
4
- export declare const TaskNotes: React.FC<{
3
+ import { TaskCardStyleDefinition } from '../eveli-task-composer-v2/cardThemeConfig';
4
+ export declare const EveliTaskNotes: React.FC<{
5
5
  task: TaskApi.Task;
6
6
  style: TaskCardStyleDefinition;
7
7
  }>;
@@ -0,0 +1 @@
1
+ export * from './EveliTaskNotes';
@@ -1,7 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { TaskApi } from '../api-task';
3
- export interface TaskRolesProps {
3
+ export interface EveliTaskRolesProps {
4
4
  task: TaskApi.Task;
5
5
  }
6
- export declare const TaskRoles: React.FC<TaskRolesProps>;
6
+ export declare const EveliTaskRoles: React.FC<EveliTaskRolesProps>;
7
7
  export declare const useUtilityClasses: () => Record<"root", string>;
@@ -0,0 +1 @@
1
+ export * from './EveliTaskRoles';
package/build/index.js CHANGED
@@ -57044,7 +57044,7 @@ function UK(e) {
57044
57044
  })
57045
57045
  };
57046
57046
  }
57047
- const DS = { tag: "eveli-ide-0.0.430", built: "22/07/2025" }, wx = we("worker/rest/api/version.GET")({
57047
+ const DS = { tag: "eveli-ide-0.0.432", built: "22/07/2025" }, wx = we("worker/rest/api/version.GET")({
57048
57048
  hook: $K
57049
57049
  });
57050
57050
  function $K(e) {
@@ -69955,49 +69955,8 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
69955
69955
  /* @__PURE__ */ i(Vi, { value: e, label: "Card Style", onChange: (a) => {
69956
69956
  t(a.target.value);
69957
69957
  }, children: Object.entries(jre).map(([a, r]) => /* @__PURE__ */ i(lt, { value: a, children: r }, a)) })
69958
- ] }), eie = (e) => e ? (e instanceof Date ? Pe.fromJSDate(e) : Pe.fromISO(e)).setLocale("fi").toLocaleString(Pe.DATE_SHORT) : "--", tie = ({ task: e, style: t }) => {
69959
- var s;
69960
- const n = aie(), a = ((s = e.comments) == null ? void 0 : s.filter((o) => !o.external)) || [];
69961
- if (!a || a.length === 0)
69962
- return /* @__PURE__ */ i(W, { children: "No notes" });
69963
- const r = (o, l) => o.length <= l ? o : o.slice(0, l) + "…";
69964
- return /* @__PURE__ */ E(nie, { className: n.notesContainer, children: [
69965
- a.slice(0, 3).map((o) => /* @__PURE__ */ i(R, { children: /* @__PURE__ */ E(W, { children: [
69966
- /* @__PURE__ */ E(R, { display: "flex", alignItems: "center", children: [
69967
- /* @__PURE__ */ i(Pf, { sx: { fontSize: "7pt", mr: 1, color: "primary.main" } }),
69968
- /* @__PURE__ */ i(F, { component: "div", sx: { ...t.bodyTypography }, className: n.noteBody, children: `${r(o.commentText, 200)}` })
69969
- ] }),
69970
- /* @__PURE__ */ i(rt, {}),
69971
- /* @__PURE__ */ i(R, { display: "flex", alignItems: "center", justifyContent: "flex-end", children: /* @__PURE__ */ i(F, { component: "div", sx: { ...t.bodyTypographySmall }, className: n.noteAuthor, children: `${o.userName} noted on ${eie(o.created)}` }) })
69972
- ] }) }, o.id)),
69973
- a.length > 3 && /* @__PURE__ */ E(F, { sx: { ...t.bodyTypography }, children: [
69974
- "...",
69975
- a.length - 3,
69976
- " more..."
69977
- ] })
69978
- ] });
69979
- }, HN = "TaskNotes", nie = fe("div", {
69980
- name: HN,
69981
- slot: "Notes",
69982
- overridesResolver: (e, t) => [
69983
- t.notesContainer
69984
- ]
69985
- })(({ theme: e }) => ({
69986
- "& .TaskNotes-noteBody": {
69987
- fontWeight: 400,
69988
- marginLeft: 1
69989
- },
69990
- "& .TaskNotes-noteAuthor": {
69991
- textAlign: "right",
69992
- color: e.palette.text.disabled
69993
- }
69994
- })), aie = () => He({
69995
- notesContainer: ["notesContainer"],
69996
- noteBody: ["noteBody"],
69997
- noteAuthor: ["noteAuthor"],
69998
- noteBackground: ["noteBackground"]
69999
- }, (n) => Ue(HN, n), {}), rie = ({ task: e }) => {
70000
- const t = iie();
69958
+ ] }), eie = ({ task: e }) => {
69959
+ const t = tie();
70001
69960
  if (!e.assignedUser || typeof name != "string")
70002
69961
  return /* @__PURE__ */ i(Ek, { children: /* @__PURE__ */ i(F, { children: "--" }) });
70003
69962
  const n = e.assignedUser.substring(0, e.assignedUser.indexOf(" ")), a = e.assignedUser.substring(e.assignedUser.indexOf(" ") + 1), r = n.substring(0, 1), s = a.substring(0, 1);
@@ -70011,8 +69970,8 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70011
69970
  /* @__PURE__ */ i(F, { variant: "caption", children: "user@gmail.com" })
70012
69971
  ] })
70013
69972
  ] });
70014
- }, VN = "TaskAssigneeClassName", Ek = fe("div", {
70015
- name: VN,
69973
+ }, HN = "TaskAssigneeClassName", Ek = fe("div", {
69974
+ name: HN,
70016
69975
  slot: "Root",
70017
69976
  overridesResolver: (e, t) => [
70018
69977
  t.root
@@ -70028,37 +69987,15 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70028
69987
  width: "35px",
70029
69988
  boxShadow: "0 4px 12px rgba(0, 0, 0, 0.2)"
70030
69989
  }
70031
- })), iie = () => He({
70032
- root: ["root"]
70033
- }, (n) => Ue(VN, n), {}), sie = ({ task: e }) => {
70034
- const t = oie();
70035
- return !e.assignedRoles || e.assignedRoles.length === 0 ? /* @__PURE__ */ i(yk, { children: /* @__PURE__ */ i(F, { children: "--" }) }) : /* @__PURE__ */ i(yk, { className: t.root, children: e.assignedRoles.map((n, a) => /* @__PURE__ */ i(Qt, { label: n, variant: "filled" }, a)) });
70036
- }, zN = "TaskRolesRootClassName", yk = fe("div", {
70037
- name: zN,
70038
- slot: "Root",
70039
- overridesResolver: (e, t) => [
70040
- t.root
70041
- ]
70042
- })(({ theme: e }) => ({
70043
- display: "flex",
70044
- alignItems: "center",
70045
- flexWrap: "wrap",
70046
- marginBottom: e.spacing(1),
70047
- gap: e.spacing(1),
70048
- "& .MuiChip-root": {
70049
- backgroundColor: e.palette.info.dark,
70050
- color: e.palette.background.default,
70051
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.2)"
70052
- }
70053
- })), oie = () => He({
69990
+ })), tie = () => He({
70054
69991
  root: ["root"]
70055
- }, (n) => Ue(zN, n), {}), lie = ({ task: e, style: t }) => {
70056
- const { getOneFeedback: n } = ei(), [a, r] = C.useState(), s = uie();
69992
+ }, (n) => Ue(HN, n), {}), nie = ({ task: e, style: t }) => {
69993
+ const { getOneFeedback: n } = ei(), [a, r] = C.useState(), s = rie();
70057
69994
  return C.useEffect(() => {
70058
69995
  n(e.taskRef).then((o) => {
70059
69996
  r(o), console.log("Setting feedback:", o);
70060
69997
  });
70061
- }, [e.taskRef]), !a || !a.content ? /* @__PURE__ */ i(F, { sx: { ...t.bodyTypography }, children: "No feedback" }) : /* @__PURE__ */ E(cie, { className: s.root, children: [
69998
+ }, [e.taskRef]), !a || !a.content ? /* @__PURE__ */ i(F, { sx: { ...t.bodyTypography }, children: "No feedback" }) : /* @__PURE__ */ E(aie, { className: s.root, children: [
70062
69999
  /* @__PURE__ */ E(R, { display: "flex", flexDirection: "row", justifyContent: "space-between", children: [
70063
70000
  /* @__PURE__ */ E(R, { flexDirection: "column", alignItems: "center", children: [
70064
70001
  /* @__PURE__ */ i(F, { className: s.feedbackCategories, sx: { ...t.bodyTypography }, children: a.content.main }),
@@ -70079,8 +70016,8 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70079
70016
  a.content.question
70080
70017
  ] })
70081
70018
  ] });
70082
- }, GN = "CustomerFeedback", cie = fe("div", {
70083
- name: GN,
70019
+ }, VN = "CustomerFeedback", aie = fe("div", {
70020
+ name: VN,
70084
70021
  slot: "Message",
70085
70022
  overridesResolver: (e, t) => [
70086
70023
  t.root
@@ -70105,20 +70042,20 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70105
70042
  "& .CustomerFeedback-feedbackCategories": {
70106
70043
  fontWeight: 500
70107
70044
  }
70108
- })), uie = () => He({
70045
+ })), rie = () => He({
70109
70046
  root: ["root"],
70110
70047
  publishedNotifier: ["publishedNotifier"],
70111
70048
  feedbackCategories: ["feedbackCategories"]
70112
- }, (n) => Ue(GN, n), {}), die = ({ task: e, style: t }) => {
70113
- const n = fie();
70114
- return /* @__PURE__ */ i(pie, { className: n.root, style: t, children: /* @__PURE__ */ E(R, { className: n.file, children: [
70049
+ }, (n) => Ue(VN, n), {}), iie = ({ task: e, style: t }) => {
70050
+ const n = oie();
70051
+ return /* @__PURE__ */ i(sie, { className: n.root, style: t, children: /* @__PURE__ */ E(R, { className: n.file, children: [
70115
70052
  /* @__PURE__ */ i($O, { className: n.fileIcon }),
70116
70053
  /* @__PURE__ */ i(F, { sx: { ...t }, children: "file-name.jpg" }),
70117
70054
  /* @__PURE__ */ i(R, { flexGrow: 1 }),
70118
70055
  /* @__PURE__ */ i(_e, { color: "error", children: /* @__PURE__ */ i(zc, { className: n.deleteIcon }) })
70119
70056
  ] }) });
70120
- }, WN = "TaskFiles", pie = fe("div", {
70121
- name: WN,
70057
+ }, zN = "TaskFiles", sie = fe("div", {
70058
+ name: zN,
70122
70059
  slot: "Root",
70123
70060
  overridesResolver: (e, t) => [
70124
70061
  t.root
@@ -70148,111 +70085,402 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70148
70085
  "& .TaskFiles-deleteIcon": {
70149
70086
  color: e.palette.error.main
70150
70087
  }
70151
- })), fie = () => He({
70088
+ })), oie = () => He({
70152
70089
  root: ["root"],
70153
70090
  file: ["file"],
70154
70091
  fileIcon: ["fileIcon"],
70155
70092
  deleteIcon: ["deleteIcon"]
70156
- }, (n) => Ue(WN, n), {}), mie = ({ task: e, style: t }) => {
70157
- var l;
70158
- const n = gie(), a = ((l = e.comments) == null ? void 0 : l.filter((c) => c.external).sort((c, u) => Pe.fromISO(u.created).toMillis() - Pe.fromISO(c.created).toMillis())) || [], r = a.slice(0, 3), s = (c) => {
70159
- try {
70160
- return Pe.fromISO(c).setLocale("fi").toLocaleString(Pe.DATETIME_SHORT);
70161
- } catch {
70162
- return c;
70163
- }
70164
- }, o = (c, u) => c.length <= u ? c : c.slice(0, u) + "…";
70165
- return /* @__PURE__ */ E(hie, { className: n.container, children: [
70166
- r.length === 0 && /* @__PURE__ */ i(F, { sx: { ...t }, children: "No messages" }),
70167
- r.slice(0, 3).map((c) => /* @__PURE__ */ E(R, { className: n.messageRow, children: [
70168
- /* @__PURE__ */ i(Hn, { className: c.source === "FRONTDESK" ? n.frontdeskAvatar : n.customerAvatar }),
70169
- /* @__PURE__ */ E(R, { className: c.source === "FRONTDESK" ? n.frontdeskMessageBody : n.customerMessageBody, children: [
70170
- /* @__PURE__ */ E(F, { className: n.senderInfo, sx: { ...t.bodyTypography }, children: [
70171
- c.userName,
70172
- " wrote on ",
70173
- s(c.created)
70174
- ] }),
70175
- /* @__PURE__ */ i(F, { style: { ...t.bodyTypography, overflow: "hidden", whiteSpace: "normal" }, children: o(c.commentText, 200) })
70176
- ] })
70177
- ] }, c.id)),
70178
- a.length > 3 && /* @__PURE__ */ E(F, { sx: { ...t.bodyTypography }, children: [
70179
- "...",
70180
- a.length - 3,
70181
- " more..."
70093
+ }, (n) => Ue(zN, n), {}), GN = ({ task: e }) => {
70094
+ if (e.keyWords)
70095
+ return /* @__PURE__ */ i(R, { gap: 1, display: "flex", mt: 1, children: e.keyWords.map((t) => /* @__PURE__ */ i(Qt, { label: t, variant: "filled", color: "primary", sx: {
70096
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.2)"
70097
+ } }, t)) });
70098
+ }, lie = ({ task: e, open: t, onClose: n }) => {
70099
+ var s;
70100
+ const a = uie(), r = ie();
70101
+ return /* @__PURE__ */ E(cie, { className: a.editDialog, open: t, onClose: n, maxWidth: "md", slots: { transition: Uk }, children: [
70102
+ /* @__PURE__ */ E(Ce, { children: [
70103
+ r.formatMessage({ id: "task.edit" }),
70104
+ r.formatMessage({ id: "eveli.textSeparatorColon" }),
70105
+ e.taskRef ?? "no task reference id"
70106
+ ] }),
70107
+ /* @__PURE__ */ i(ke, { children: /* @__PURE__ */ E(oe, { container: !0, display: "flex", alignItems: "center", children: [
70108
+ /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.dueDate" }) }) }),
70109
+ /* @__PURE__ */ i(oe, { size: { md: 7, lg: 7, xl: 7 }, children: /* @__PURE__ */ i($l, { value: (s = e.dueDate) == null ? void 0 : s.toISOString() }) }),
70110
+ /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.customerName" }) }) }),
70111
+ /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i($l, { value: e.clientIdentificator }) }),
70112
+ /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.subject" }) }) }),
70113
+ /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i($l, { value: e.subject }) }),
70114
+ /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.additionalInfo" }) }) }),
70115
+ /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i($l, { rows: 3, multiline: !0, value: e.additionalInfo }) }),
70116
+ /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.metaData" }) }) }),
70117
+ /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i(GN, { task: e }) })
70118
+ ] }) }),
70119
+ /* @__PURE__ */ E(Ae, { children: [
70120
+ /* @__PURE__ */ i(K, { variant: "outlined", onClick: n, children: r.formatMessage({ id: "button.cancel" }) }),
70121
+ /* @__PURE__ */ i(K, { onClick: n, children: r.formatMessage({ id: "button.save" }) })
70182
70122
  ] })
70183
70123
  ] });
70184
- }, jN = "CustomerMessagesReadOnly", hie = fe("div", {
70124
+ }, $l = fe(Fe)(({ theme: e }) => ({
70125
+ width: "100%",
70126
+ "& .MuiInputBase-input": {
70127
+ height: "2.5rem",
70128
+ padding: "0 12px"
70129
+ }
70130
+ })), WN = "EditTaskDialog", cie = fe(Se, {
70131
+ name: WN,
70132
+ slot: "EditDialog",
70133
+ overridesResolver: (e, t) => [
70134
+ t.editDialog
70135
+ ]
70136
+ })(({ theme: e }) => ({})), uie = () => He({
70137
+ editDialog: ["editDialog"]
70138
+ }, (n) => Ue(WN, n), {});
70139
+ function die(e) {
70140
+ if (!e.dueDate)
70141
+ return;
70142
+ const t = Pe.local().startOf("day"), n = Pe.fromJSDate(e.dueDate).startOf("day"), a = Math.floor(t.diff(n, "days").days);
70143
+ return e.status === "COMPLETED" || e.status === "REJECTED" ? {
70144
+ isOverdue: a > 0,
70145
+ days: Math.abs(a),
70146
+ status: a > 0 ? "completedOverdue" : "completedOnTime"
70147
+ } : a > 0 ? {
70148
+ isOverdue: !0,
70149
+ days: a,
70150
+ status: "overdue"
70151
+ } : a === 0 ? {
70152
+ isOverdue: !1,
70153
+ days: 0,
70154
+ status: "dueToday"
70155
+ } : {
70156
+ isOverdue: !1,
70157
+ days: Math.abs(a),
70158
+ status: "upcomingDue"
70159
+ };
70160
+ }
70161
+ const pie = ({ ...e }) => {
70162
+ const t = fie(), n = die(e.task);
70163
+ if (n)
70164
+ switch (n == null ? void 0 : n.status) {
70165
+ case "upcomingDue":
70166
+ return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70167
+ /* @__PURE__ */ i(al, {}),
70168
+ /* @__PURE__ */ E(F, { textAlign: "center", sx: { ...e.style.bodyTypographySmall }, children: [
70169
+ n.days,
70170
+ " day(s) left to complete task"
70171
+ ] })
70172
+ ] });
70173
+ case "dueToday":
70174
+ return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70175
+ /* @__PURE__ */ i(al, {}),
70176
+ /* @__PURE__ */ i(F, { textAlign: "center", sx: { ...e.style.bodyTypographySmall ?? void 0 }, children: "Task is due today!" })
70177
+ ] });
70178
+ case "completedOverdue":
70179
+ return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70180
+ /* @__PURE__ */ i(al, {}),
70181
+ /* @__PURE__ */ E(F, { sx: { ...e.style.bodyTypographySmall }, children: [
70182
+ "Task was closed ",
70183
+ n.days,
70184
+ " day(s) overdue"
70185
+ ] })
70186
+ ] });
70187
+ case "overdue":
70188
+ return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70189
+ /* @__PURE__ */ i(al, {}),
70190
+ /* @__PURE__ */ E(F, { sx: { ...e.style.bodyTypographySmall }, children: [
70191
+ "Task is ",
70192
+ n.days,
70193
+ " day(s) overdue"
70194
+ ] })
70195
+ ] });
70196
+ default:
70197
+ return /* @__PURE__ */ i(W, {});
70198
+ }
70199
+ }, jN = "TaskOverrdueWarningClassName", Hl = fe("div", {
70185
70200
  name: jN,
70186
- slot: "Message",
70201
+ slot: "Priority",
70187
70202
  overridesResolver: (e, t) => [
70188
- t.container
70203
+ t.root
70189
70204
  ]
70190
- })(({ theme: e }) => ({
70205
+ })(({ theme: e, ownerState: t }) => ({
70191
70206
  display: "flex",
70192
- flexDirection: "column",
70193
- gap: e.spacing(2),
70194
- "& .CustomerMessagesReadOnly-messageRow": {
70195
- display: "flex",
70196
- alignItems: "center"
70197
- },
70198
- "& .CustomerMessagesReadOnly-senderInfo": {
70199
- fontWeight: "bold !important"
70200
- //TODO figure out a better way with cardThemeConfig
70201
- },
70202
- "& .CustomerMessagesReadOnly-frontdeskAvatar": {
70203
- border: `1px solid ${$n("#caf0f8", 0.1)}`,
70204
- backgroundColor: "#caf0f8",
70205
- marginRight: e.spacing(1),
70206
- boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70207
- },
70208
- "& .CustomerMessagesReadOnly-customerAvatar": {
70209
- border: `1px solid ${$n("#ecf39e", 0.1)}`,
70210
- backgroundColor: "#ecf39e",
70211
- marginRight: e.spacing(1),
70212
- boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70213
- },
70214
- "& .CustomerMessagesReadOnly-frontdeskMessageBody": {
70215
- flexGrow: 1,
70216
- backgroundColor: "#caf0f8",
70217
- borderRadius: "20px",
70218
- padding: e.spacing(1),
70219
- border: `1px solid ${$n("#caf0f8", 0.1)}`,
70220
- boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70221
- },
70222
- "& .CustomerMessagesReadOnly-customerMessageBody": {
70223
- flexGrow: 1,
70224
- backgroundColor: "#ecf39e",
70225
- borderRadius: "20px",
70226
- padding: e.spacing(1),
70227
- border: `1px solid ${$n("#ecf39e", 0.1)}`,
70228
- boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70229
- },
70207
+ alignItems: "center",
70208
+ backgroundColor: vt(Vl(e, t.status), 0.1),
70209
+ padding: e.spacing(0.5),
70210
+ borderRadius: e.spacing(1),
70211
+ border: `1px solid ${Vl(e, t.status)}`,
70212
+ color: Vl(e, t.status),
70230
70213
  "& .MuiSvgIcon-root": {
70231
- fontSize: "10pt",
70232
- marginRight: e.spacing(1),
70233
- marginLeft: e.spacing(1)
70214
+ color: Vl(e, t.status),
70215
+ fontSize: "medium"
70234
70216
  }
70235
- })), gie = () => He({
70236
- container: ["container"],
70237
- messageRow: ["messageRow"],
70238
- senderInfo: ["senderInfo"],
70239
- frontdeskAvatar: ["frontdeskAvatar"],
70240
- customerAvatar: ["customerAvatar"],
70241
- frontdeskMessageBody: ["frontdeskMessageBody"],
70242
- customerMessageBody: ["customerMessageBody"]
70243
- }, (n) => Ue(jN, n), {}), bie = ({ task: e }) => {
70244
- var c;
70245
- const t = Tie(), n = ie(), [a, r] = C.useState(""), s = ((c = e.comments) == null ? void 0 : c.filter((u) => u.external).sort((u, d) => Pe.fromISO(d.created).toMillis() - Pe.fromISO(u.created).toMillis())) || [], o = (u) => {
70246
- try {
70247
- return Pe.fromISO(u).setLocale("fi").toLocaleString(Pe.DATETIME_SHORT);
70248
- } catch {
70249
- return u;
70250
- }
70251
- };
70252
- function l(u) {
70253
- r(u), console.log("message:", u);
70217
+ })), Vl = (e, t) => {
70218
+ switch (t) {
70219
+ case "overdue":
70220
+ return e.palette.error.main;
70221
+ case "dueToday":
70222
+ return "#e85d04";
70223
+ case "upcomingDue":
70224
+ return e.palette.info.main;
70225
+ case "completedOverdue":
70226
+ return e.palette.warning.main;
70227
+ case "completedOnTime":
70228
+ return e.palette.success.main;
70229
+ default:
70230
+ return e.palette.background.paper;
70254
70231
  }
70255
- return /* @__PURE__ */ E(Eie, { className: t.container, children: [
70232
+ }, fie = () => He({
70233
+ root: ["root"]
70234
+ }, (n) => Ue(jN, n), {}), mie = ({ style: e }) => {
70235
+ const t = gie(), [n, a] = tt("LOW"), r = [
70236
+ { level: "LOW", color: "#45a048" },
70237
+ { level: "MEDIUM", color: "#2196f3" },
70238
+ { level: "HIGH", color: "#f44336" }
70239
+ ];
70240
+ return /* @__PURE__ */ i(hie, { className: t.root, style: e, children: /* @__PURE__ */ E(Rt, { direction: "column", width: "100%", children: [
70241
+ /* @__PURE__ */ E(F, { fontWeight: 500, mb: 1, sx: { ...e.bodyTypography, fontWeight: 500 }, children: [
70242
+ "Priority: ",
70243
+ n
70244
+ ] }),
70245
+ /* @__PURE__ */ i(vf, { fullWidth: !0, className: t.prioritySelect, disableElevation: !0, children: r.map(({ level: s, color: o }) => {
70246
+ const l = n === s;
70247
+ return /* @__PURE__ */ i(
70248
+ K,
70249
+ {
70250
+ variant: l ? "contained" : "outlined",
70251
+ onClick: () => a(s),
70252
+ sx: {
70253
+ backgroundColor: l ? o : "transparent",
70254
+ borderColor: l ? o : "#ccc",
70255
+ color: l ? "#FFFFFF" : "rgba(0, 0, 0, 0.38)",
70256
+ ...e.bodyTypographySmall,
70257
+ "&:hover": {
70258
+ backgroundColor: l ? o : "rgba(0, 0, 0, 0.04)",
70259
+ borderColor: l ? o : "#ccc"
70260
+ }
70261
+ },
70262
+ children: s
70263
+ },
70264
+ s
70265
+ );
70266
+ }) })
70267
+ ] }) });
70268
+ }, qN = "TaskPriority", hie = fe("div", {
70269
+ name: qN,
70270
+ slot: "Root",
70271
+ overridesResolver: (e, t) => [
70272
+ t.root
70273
+ ]
70274
+ })(({ theme: e, style: t }) => ({
70275
+ display: "flex",
70276
+ alignItems: "center",
70277
+ "& .TaskPriority-prioritySelect": {
70278
+ "& .MuiButton-root": {
70279
+ textTransform: "none",
70280
+ fontWeight: 500,
70281
+ borderColor: "#ccc",
70282
+ width: "100%",
70283
+ padding: e.spacing(0.5, 2),
70284
+ minHeight: 32
70285
+ },
70286
+ "& .MuiButton-root:first-of-type": {
70287
+ borderTopLeftRadius: e.spacing(1),
70288
+ borderBottomLeftRadius: e.spacing(1)
70289
+ },
70290
+ "& .MuiButton-root:last-of-type": {
70291
+ borderTopRightRadius: e.spacing(1),
70292
+ borderBottomRightRadius: e.spacing(1)
70293
+ }
70294
+ }
70295
+ })), gie = () => He({
70296
+ root: ["root"],
70297
+ prioritySelect: ["prioritySelect"]
70298
+ }, (n) => Ue(qN, n), {}), bie = ({ status: e, style: t }) => {
70299
+ const n = KN(), a = () => {
70300
+ switch (e) {
70301
+ case "NEW":
70302
+ return 25;
70303
+ case "OPEN":
70304
+ return 50;
70305
+ case "COMPLETED":
70306
+ case "REJECTED":
70307
+ return 100;
70308
+ default:
70309
+ return 0;
70310
+ }
70311
+ }, r = () => {
70312
+ switch (e) {
70313
+ case "NEW":
70314
+ return "#ffeb3b";
70315
+ // Purpley
70316
+ case "OPEN":
70317
+ return "#2196f3";
70318
+ // Blue
70319
+ case "COMPLETED":
70320
+ return "#4caf50";
70321
+ // Green
70322
+ case "REJECTED":
70323
+ return "#f44336";
70324
+ // Red
70325
+ default:
70326
+ return "#ccc";
70327
+ }
70328
+ }, s = a(), o = r();
70329
+ return /* @__PURE__ */ E(R, { className: n.progressBar, children: [
70330
+ /* @__PURE__ */ E(F, { sx: { ...t.bodyTypography, fontWeight: 500, mb: 1 }, children: [
70331
+ "Status: ",
70332
+ e
70333
+ ] }),
70334
+ /* @__PURE__ */ i(R, { className: n.backgroundTrack, children: /* @__PURE__ */ i(
70335
+ R,
70336
+ {
70337
+ sx: {
70338
+ height: "100%",
70339
+ width: `${s}%`,
70340
+ backgroundColor: o,
70341
+ transition: "width 0.3s ease-in-out"
70342
+ }
70343
+ }
70344
+ ) }),
70345
+ /* @__PURE__ */ E(F, { className: n.progressDesc, children: [
70346
+ s,
70347
+ "% complete"
70348
+ ] })
70349
+ ] });
70350
+ }, Eie = ({ style: e }) => {
70351
+ const t = KN(), [n, a] = C.useState("NEW"), r = (s) => {
70352
+ a(s.target.value);
70353
+ };
70354
+ return /* @__PURE__ */ E(yie, { className: t.root, children: [
70355
+ /* @__PURE__ */ i(bie, { status: n, style: e }),
70356
+ /* @__PURE__ */ E(
70357
+ Vi,
70358
+ {
70359
+ value: n,
70360
+ onChange: r,
70361
+ size: "small",
70362
+ sx: {
70363
+ minWidth: 120,
70364
+ maxWidth: 150,
70365
+ alignSelf: "center"
70366
+ },
70367
+ children: [
70368
+ /* @__PURE__ */ i(lt, { value: "NEW", children: "NEW" }),
70369
+ /* @__PURE__ */ i(lt, { value: "OPEN", children: "OPEN" }),
70370
+ /* @__PURE__ */ i(lt, { value: "COMPLETED", children: "COMPLETED" }),
70371
+ /* @__PURE__ */ i(lt, { value: "REJECTED", children: "REJECTED" })
70372
+ ]
70373
+ }
70374
+ )
70375
+ ] });
70376
+ }, YN = "TaskStatus", yie = fe("div", {
70377
+ name: YN,
70378
+ slot: "Root",
70379
+ overridesResolver: (e, t) => [
70380
+ t.root
70381
+ ]
70382
+ })(({ theme: e }) => ({
70383
+ display: "flex",
70384
+ justifyContent: "space-between",
70385
+ alignItems: "center",
70386
+ "& .TaskStatus-progressBar": {
70387
+ width: "60%"
70388
+ },
70389
+ "& .TaskStatus-backgroundTrack": {
70390
+ width: "100%",
70391
+ height: e.spacing(2),
70392
+ backgroundColor: "#eee",
70393
+ borderRadius: e.spacing(3),
70394
+ overflow: "hidden",
70395
+ boxShadow: "inset 0 1px 3px rgba(0,0,0,0.2)"
70396
+ },
70397
+ "& .TaskStatus-progressDesc": {
70398
+ marginTop: e.spacing(0.5),
70399
+ textAlign: "right",
70400
+ ...e.typography.caption
70401
+ }
70402
+ })), KN = () => He({
70403
+ root: ["root"],
70404
+ progressBar: ["progressBar"],
70405
+ backgroundTrack: ["backgroundTrack"],
70406
+ progressIndicator: ["progressIndicator"],
70407
+ progressDesc: ["progressDesc"]
70408
+ }, (n) => Ue(YN, n), {}), Tie = (e) => e ? (e instanceof Date ? Pe.fromJSDate(e) : Pe.fromISO(e)).setLocale("fi").toLocaleString(Pe.DATE_SHORT) : "--", vie = ({ task: e, style: t }) => {
70409
+ var s;
70410
+ const n = kie(), a = ((s = e.comments) == null ? void 0 : s.filter((o) => !o.external)) || [];
70411
+ if (!a || a.length === 0)
70412
+ return /* @__PURE__ */ i(W, { children: "No notes" });
70413
+ const r = (o, l) => o.length <= l ? o : o.slice(0, l) + "…";
70414
+ return /* @__PURE__ */ E(Sie, { className: n.notesContainer, children: [
70415
+ a.slice(0, 3).map((o) => /* @__PURE__ */ i(R, { children: /* @__PURE__ */ E(W, { children: [
70416
+ /* @__PURE__ */ E(R, { display: "flex", alignItems: "center", children: [
70417
+ /* @__PURE__ */ i(Pf, { sx: { fontSize: "7pt", mr: 1, color: "primary.main" } }),
70418
+ /* @__PURE__ */ i(F, { component: "div", sx: { ...t.bodyTypography }, className: n.noteBody, children: `${r(o.commentText, 200)}` })
70419
+ ] }),
70420
+ /* @__PURE__ */ i(rt, {}),
70421
+ /* @__PURE__ */ i(R, { display: "flex", alignItems: "center", justifyContent: "flex-end", children: /* @__PURE__ */ i(F, { component: "div", sx: { ...t.bodyTypographySmall }, className: n.noteAuthor, children: `${o.userName} noted on ${Tie(o.created)}` }) })
70422
+ ] }) }, o.id)),
70423
+ a.length > 3 && /* @__PURE__ */ E(F, { sx: { ...t.bodyTypography }, children: [
70424
+ "...",
70425
+ a.length - 3,
70426
+ " more..."
70427
+ ] })
70428
+ ] });
70429
+ }, XN = "TaskNotes", Sie = fe("div", {
70430
+ name: XN,
70431
+ slot: "Notes",
70432
+ overridesResolver: (e, t) => [
70433
+ t.notesContainer
70434
+ ]
70435
+ })(({ theme: e }) => ({
70436
+ "& .TaskNotes-noteBody": {
70437
+ fontWeight: 400,
70438
+ marginLeft: 1
70439
+ },
70440
+ "& .TaskNotes-noteAuthor": {
70441
+ textAlign: "right",
70442
+ color: e.palette.text.disabled
70443
+ }
70444
+ })), kie = () => He({
70445
+ notesContainer: ["notesContainer"],
70446
+ noteBody: ["noteBody"],
70447
+ noteAuthor: ["noteAuthor"],
70448
+ noteBackground: ["noteBackground"]
70449
+ }, (n) => Ue(XN, n), {}), wie = ({ task: e }) => {
70450
+ const t = Cie();
70451
+ return !e.assignedRoles || e.assignedRoles.length === 0 ? /* @__PURE__ */ i(yk, { children: /* @__PURE__ */ i(F, { children: "--" }) }) : /* @__PURE__ */ i(yk, { className: t.root, children: e.assignedRoles.map((n, a) => /* @__PURE__ */ i(Qt, { label: n, variant: "filled" }, a)) });
70452
+ }, ZN = "TaskRolesRootClassName", yk = fe("div", {
70453
+ name: ZN,
70454
+ slot: "Root",
70455
+ overridesResolver: (e, t) => [
70456
+ t.root
70457
+ ]
70458
+ })(({ theme: e }) => ({
70459
+ display: "flex",
70460
+ alignItems: "center",
70461
+ flexWrap: "wrap",
70462
+ marginBottom: e.spacing(1),
70463
+ gap: e.spacing(1),
70464
+ "& .MuiChip-root": {
70465
+ backgroundColor: e.palette.info.dark,
70466
+ color: e.palette.background.default,
70467
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.2)"
70468
+ }
70469
+ })), Cie = () => He({
70470
+ root: ["root"]
70471
+ }, (n) => Ue(ZN, n), {}), Aie = ({ task: e }) => {
70472
+ var c;
70473
+ const t = xie(), n = ie(), [a, r] = C.useState(""), s = ((c = e.comments) == null ? void 0 : c.filter((u) => u.external).sort((u, d) => Pe.fromISO(d.created).toMillis() - Pe.fromISO(u.created).toMillis())) || [], o = (u) => {
70474
+ try {
70475
+ return Pe.fromISO(u).setLocale("fi").toLocaleString(Pe.DATETIME_SHORT);
70476
+ } catch {
70477
+ return u;
70478
+ }
70479
+ };
70480
+ function l(u) {
70481
+ r(u), console.log("message:", u);
70482
+ }
70483
+ return /* @__PURE__ */ E(_ie, { className: t.container, children: [
70256
70484
  /* @__PURE__ */ i(R, { className: t.messagesContainer, children: s.length === 0 ? /* @__PURE__ */ i(bo, { severity: "info", children: "No messages yet" }) : s.map((u) => /* @__PURE__ */ E(R, { className: t.messageRow, children: [
70257
70485
  /* @__PURE__ */ i(Hn, { className: u.source === "FRONTDESK" ? t.frontdeskAvatar : t.customerAvatar }),
70258
70486
  /* @__PURE__ */ E(R, { className: u.source === "FRONTDESK" ? t.frontdeskMessageBody : t.customerMessageBody, children: [
@@ -70271,7 +70499,7 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70271
70499
  /* @__PURE__ */ i(F, { className: t.messageBoxLabel, children: n.formatMessage({ id: "task.customerMessages.newMessageTitle", defaultMessage: "Write a new message" }) })
70272
70500
  ] }),
70273
70501
  /* @__PURE__ */ i(
70274
- yie,
70502
+ Iie,
70275
70503
  {
70276
70504
  value: a,
70277
70505
  fullWidth: !0,
@@ -70283,8 +70511,8 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70283
70511
  )
70284
70512
  ] })
70285
70513
  ] });
70286
- }, qN = "CustomerMessagesEdit", Eie = fe("div", {
70287
- name: qN,
70514
+ }, QN = "CustomerMessagesEdit", _ie = fe("div", {
70515
+ name: QN,
70288
70516
  slot: "Message",
70289
70517
  overridesResolver: (e, t) => [
70290
70518
  t.container
@@ -70357,13 +70585,13 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70357
70585
  marginRight: e.spacing(1),
70358
70586
  marginLeft: e.spacing(1)
70359
70587
  }
70360
- })), yie = fe(Fe)(({ theme: e }) => ({
70588
+ })), Iie = fe(Fe)(({ theme: e }) => ({
70361
70589
  width: "100%",
70362
70590
  "& .MuiInputBase-input": {
70363
70591
  height: "2.5rem",
70364
70592
  padding: "0 12px"
70365
70593
  }
70366
- })), Tie = () => He({
70594
+ })), xie = () => He({
70367
70595
  container: ["container"],
70368
70596
  messageRow: ["messageRow"],
70369
70597
  messageBoxLabel: ["messageBoxLabel"],
@@ -70374,22 +70602,22 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70374
70602
  customerAvatar: ["customerAvatar"],
70375
70603
  frontdeskMessageBody: ["frontdeskMessageBody"],
70376
70604
  customerMessageBody: ["customerMessageBody"]
70377
- }, (n) => Ue(qN, n), {}), vie = ({ task: e, open: t, onClose: n }) => {
70378
- const a = kie(), r = ie();
70379
- return /* @__PURE__ */ E(Sie, { className: a.editCustomerMessages, open: t, onClose: n, fullWidth: !0, maxWidth: "lg", slots: { transition: Uk }, children: [
70605
+ }, (n) => Ue(QN, n), {}), Nie = ({ task: e, open: t, onClose: n }) => {
70606
+ const a = Die(), r = ie();
70607
+ return /* @__PURE__ */ E(Rie, { className: a.editCustomerMessages, open: t, onClose: n, fullWidth: !0, maxWidth: "lg", slots: { transition: Uk }, children: [
70380
70608
  /* @__PURE__ */ E(Ce, { children: [
70381
70609
  r.formatMessage({ id: "task.customerMessages" }),
70382
70610
  r.formatMessage({ id: "eveli.textSeparatorColon" }),
70383
70611
  e.taskRef ?? "no task reference id"
70384
70612
  ] }),
70385
- /* @__PURE__ */ i(ke, { children: /* @__PURE__ */ i(bie, { task: e }) }),
70613
+ /* @__PURE__ */ i(ke, { children: /* @__PURE__ */ i(Aie, { task: e }) }),
70386
70614
  /* @__PURE__ */ E(Ae, { children: [
70387
70615
  /* @__PURE__ */ i(K, { variant: "outlined", onClick: n, children: r.formatMessage({ id: "button.cancel" }) }),
70388
70616
  /* @__PURE__ */ i(K, { children: r.formatMessage({ id: "button.sendMessage", defaultMessage: "Send message now" }) })
70389
70617
  ] })
70390
70618
  ] });
70391
- }, YN = "EditCustomerMessagesDialog", Sie = fe(Se, {
70392
- name: YN,
70619
+ }, JN = "EditCustomerMessagesDialog", Rie = fe(Se, {
70620
+ name: JN,
70393
70621
  slot: "Messages",
70394
70622
  overridesResolver: (e, t) => [
70395
70623
  t.EditCustomerMessages
@@ -70402,324 +70630,96 @@ const Wre = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3
70402
70630
  padding: 0,
70403
70631
  overflow: "hidden"
70404
70632
  }
70405
- })), kie = () => He({
70633
+ })), Die = () => He({
70406
70634
  editCustomerMessages: ["editCustomerMessages"]
70407
- }, (n) => Ue(YN, n), {}), KN = ({ task: e }) => {
70408
- if (e.keyWords)
70409
- return /* @__PURE__ */ i(R, { gap: 1, display: "flex", mt: 1, children: e.keyWords.map((t) => /* @__PURE__ */ i(Qt, { label: t, variant: "filled", color: "primary", sx: {
70410
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.2)"
70411
- } }, t)) });
70412
- }, wie = ({ task: e, open: t, onClose: n }) => {
70413
- var s;
70414
- const a = Aie(), r = ie();
70415
- return /* @__PURE__ */ E(Cie, { className: a.editDialog, open: t, onClose: n, maxWidth: "md", slots: { transition: Uk }, children: [
70416
- /* @__PURE__ */ E(Ce, { children: [
70417
- r.formatMessage({ id: "task.edit" }),
70418
- r.formatMessage({ id: "eveli.textSeparatorColon" }),
70419
- e.taskRef ?? "no task reference id"
70420
- ] }),
70421
- /* @__PURE__ */ i(ke, { children: /* @__PURE__ */ E(oe, { container: !0, display: "flex", alignItems: "center", children: [
70422
- /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.dueDate" }) }) }),
70423
- /* @__PURE__ */ i(oe, { size: { md: 7, lg: 7, xl: 7 }, children: /* @__PURE__ */ i($l, { value: (s = e.dueDate) == null ? void 0 : s.toISOString() }) }),
70424
- /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.customerName" }) }) }),
70425
- /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i($l, { value: e.clientIdentificator }) }),
70426
- /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.subject" }) }) }),
70427
- /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i($l, { value: e.subject }) }),
70428
- /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.additionalInfo" }) }) }),
70429
- /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i($l, { rows: 3, multiline: !0, value: e.additionalInfo }) }),
70430
- /* @__PURE__ */ i(oe, { size: { md: 3, lg: 3, xl: 3 }, children: /* @__PURE__ */ i(F, { fontWeight: "bold", children: r.formatMessage({ id: "task.metaData" }) }) }),
70431
- /* @__PURE__ */ i(oe, { size: { md: 9, lg: 9, xl: 9 }, children: /* @__PURE__ */ i(KN, { task: e }) })
70432
- ] }) }),
70433
- /* @__PURE__ */ E(Ae, { children: [
70434
- /* @__PURE__ */ i(K, { variant: "outlined", onClick: n, children: r.formatMessage({ id: "button.cancel" }) }),
70435
- /* @__PURE__ */ i(K, { onClick: n, children: r.formatMessage({ id: "button.save" }) })
70436
- ] })
70437
- ] });
70438
- }, $l = fe(Fe)(({ theme: e }) => ({
70439
- width: "100%",
70440
- "& .MuiInputBase-input": {
70441
- height: "2.5rem",
70442
- padding: "0 12px"
70443
- }
70444
- })), XN = "EditTaskDialog", Cie = fe(Se, {
70445
- name: XN,
70446
- slot: "EditDialog",
70447
- overridesResolver: (e, t) => [
70448
- t.editDialog
70449
- ]
70450
- })(({ theme: e }) => ({})), Aie = () => He({
70451
- editDialog: ["editDialog"]
70452
- }, (n) => Ue(XN, n), {});
70453
- function _ie(e) {
70454
- if (!e.dueDate)
70455
- return;
70456
- const t = Pe.local().startOf("day"), n = Pe.fromJSDate(e.dueDate).startOf("day"), a = Math.floor(t.diff(n, "days").days);
70457
- return e.status === "COMPLETED" || e.status === "REJECTED" ? {
70458
- isOverdue: a > 0,
70459
- days: Math.abs(a),
70460
- status: a > 0 ? "completedOverdue" : "completedOnTime"
70461
- } : a > 0 ? {
70462
- isOverdue: !0,
70463
- days: a,
70464
- status: "overdue"
70465
- } : a === 0 ? {
70466
- isOverdue: !1,
70467
- days: 0,
70468
- status: "dueToday"
70469
- } : {
70470
- isOverdue: !1,
70471
- days: Math.abs(a),
70472
- status: "upcomingDue"
70473
- };
70474
- }
70475
- const Iie = ({ ...e }) => {
70476
- const t = xie(), n = _ie(e.task);
70477
- if (n)
70478
- switch (n == null ? void 0 : n.status) {
70479
- case "upcomingDue":
70480
- return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70481
- /* @__PURE__ */ i(al, {}),
70482
- /* @__PURE__ */ E(F, { textAlign: "center", sx: { ...e.style.bodyTypographySmall }, children: [
70483
- n.days,
70484
- " day(s) left to complete task"
70485
- ] })
70486
- ] });
70487
- case "dueToday":
70488
- return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70489
- /* @__PURE__ */ i(al, {}),
70490
- /* @__PURE__ */ i(F, { textAlign: "center", sx: { ...e.style.bodyTypographySmall ?? void 0 }, children: "Task is due today!" })
70491
- ] });
70492
- case "completedOverdue":
70493
- return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70494
- /* @__PURE__ */ i(al, {}),
70495
- /* @__PURE__ */ E(F, { sx: { ...e.style.bodyTypographySmall }, children: [
70496
- "Task was closed ",
70497
- n.days,
70498
- " day(s) overdue"
70499
- ] })
70500
- ] });
70501
- case "overdue":
70502
- return /* @__PURE__ */ E(Hl, { className: t.root, ownerState: { ...e, status: n.status }, children: [
70503
- /* @__PURE__ */ i(al, {}),
70504
- /* @__PURE__ */ E(F, { sx: { ...e.style.bodyTypographySmall }, children: [
70505
- "Task is ",
70506
- n.days,
70507
- " day(s) overdue"
70508
- ] })
70509
- ] });
70510
- default:
70511
- return /* @__PURE__ */ i(W, {});
70512
- }
70513
- }, ZN = "TaskOverrdueWarningClassName", Hl = fe("div", {
70514
- name: ZN,
70515
- slot: "Priority",
70516
- overridesResolver: (e, t) => [
70517
- t.root
70518
- ]
70519
- })(({ theme: e, ownerState: t }) => ({
70520
- display: "flex",
70521
- alignItems: "center",
70522
- backgroundColor: vt(Vl(e, t.status), 0.1),
70523
- padding: e.spacing(0.5),
70524
- borderRadius: e.spacing(1),
70525
- border: `1px solid ${Vl(e, t.status)}`,
70526
- color: Vl(e, t.status),
70527
- "& .MuiSvgIcon-root": {
70528
- color: Vl(e, t.status),
70529
- fontSize: "medium"
70530
- }
70531
- })), Vl = (e, t) => {
70532
- switch (t) {
70533
- case "overdue":
70534
- return e.palette.error.main;
70535
- case "dueToday":
70536
- return "#e85d04";
70537
- case "upcomingDue":
70538
- return e.palette.info.main;
70539
- case "completedOverdue":
70540
- return e.palette.warning.main;
70541
- case "completedOnTime":
70542
- return e.palette.success.main;
70543
- default:
70544
- return e.palette.background.paper;
70545
- }
70546
- }, xie = () => He({
70547
- root: ["root"]
70548
- }, (n) => Ue(ZN, n), {}), Nie = ({ style: e }) => {
70549
- const t = Die(), [n, a] = tt("LOW"), r = [
70550
- { level: "LOW", color: "#45a048" },
70551
- { level: "MEDIUM", color: "#2196f3" },
70552
- { level: "HIGH", color: "#f44336" }
70553
- ];
70554
- return /* @__PURE__ */ i(Rie, { className: t.root, style: e, children: /* @__PURE__ */ E(Rt, { direction: "column", width: "100%", children: [
70555
- /* @__PURE__ */ E(F, { fontWeight: 500, mb: 1, sx: { ...e.bodyTypography, fontWeight: 500 }, children: [
70556
- "Priority: ",
70557
- n
70558
- ] }),
70559
- /* @__PURE__ */ i(vf, { fullWidth: !0, className: t.prioritySelect, disableElevation: !0, children: r.map(({ level: s, color: o }) => {
70560
- const l = n === s;
70561
- return /* @__PURE__ */ i(
70562
- K,
70563
- {
70564
- variant: l ? "contained" : "outlined",
70565
- onClick: () => a(s),
70566
- sx: {
70567
- backgroundColor: l ? o : "transparent",
70568
- borderColor: l ? o : "#ccc",
70569
- color: l ? "#FFFFFF" : "rgba(0, 0, 0, 0.38)",
70570
- ...e.bodyTypographySmall,
70571
- "&:hover": {
70572
- backgroundColor: l ? o : "rgba(0, 0, 0, 0.04)",
70573
- borderColor: l ? o : "#ccc"
70574
- }
70575
- },
70576
- children: s
70577
- },
70578
- s
70579
- );
70580
- }) })
70581
- ] }) });
70582
- }, QN = "TaskPriority", Rie = fe("div", {
70583
- name: QN,
70584
- slot: "Root",
70585
- overridesResolver: (e, t) => [
70586
- t.root
70587
- ]
70588
- })(({ theme: e, style: t }) => ({
70589
- display: "flex",
70590
- alignItems: "center",
70591
- "& .TaskPriority-prioritySelect": {
70592
- "& .MuiButton-root": {
70593
- textTransform: "none",
70594
- fontWeight: 500,
70595
- borderColor: "#ccc",
70596
- width: "100%",
70597
- padding: e.spacing(0.5, 2),
70598
- minHeight: 32
70599
- },
70600
- "& .MuiButton-root:first-of-type": {
70601
- borderTopLeftRadius: e.spacing(1),
70602
- borderBottomLeftRadius: e.spacing(1)
70603
- },
70604
- "& .MuiButton-root:last-of-type": {
70605
- borderTopRightRadius: e.spacing(1),
70606
- borderBottomRightRadius: e.spacing(1)
70607
- }
70608
- }
70609
- })), Die = () => He({
70610
- root: ["root"],
70611
- prioritySelect: ["prioritySelect"]
70612
- }, (n) => Ue(QN, n), {}), Oie = ({ status: e, style: t }) => {
70613
- const n = eR(), a = () => {
70614
- switch (e) {
70615
- case "NEW":
70616
- return 25;
70617
- case "OPEN":
70618
- return 50;
70619
- case "COMPLETED":
70620
- case "REJECTED":
70621
- return 100;
70622
- default:
70623
- return 0;
70624
- }
70625
- }, r = () => {
70626
- switch (e) {
70627
- case "NEW":
70628
- return "#ffeb3b";
70629
- // Purpley
70630
- case "OPEN":
70631
- return "#2196f3";
70632
- // Blue
70633
- case "COMPLETED":
70634
- return "#4caf50";
70635
- // Green
70636
- case "REJECTED":
70637
- return "#f44336";
70638
- // Red
70639
- default:
70640
- return "#ccc";
70635
+ }, (n) => Ue(JN, n), {}), Oie = ({ task: e, style: t }) => {
70636
+ var l;
70637
+ const n = Fie(), a = ((l = e.comments) == null ? void 0 : l.filter((c) => c.external).sort((c, u) => Pe.fromISO(u.created).toMillis() - Pe.fromISO(c.created).toMillis())) || [], r = a.slice(0, 3), s = (c) => {
70638
+ try {
70639
+ return Pe.fromISO(c).setLocale("fi").toLocaleString(Pe.DATETIME_SHORT);
70640
+ } catch {
70641
+ return c;
70641
70642
  }
70642
- }, s = a(), o = r();
70643
- return /* @__PURE__ */ E(R, { className: n.progressBar, children: [
70644
- /* @__PURE__ */ E(F, { sx: { ...t.bodyTypography, fontWeight: 500, mb: 1 }, children: [
70645
- "Status: ",
70646
- e
70647
- ] }),
70648
- /* @__PURE__ */ i(R, { className: n.backgroundTrack, children: /* @__PURE__ */ i(
70649
- R,
70650
- {
70651
- sx: {
70652
- height: "100%",
70653
- width: `${s}%`,
70654
- backgroundColor: o,
70655
- transition: "width 0.3s ease-in-out"
70656
- }
70657
- }
70658
- ) }),
70659
- /* @__PURE__ */ E(F, { className: n.progressDesc, children: [
70660
- s,
70661
- "% complete"
70643
+ }, o = (c, u) => c.length <= u ? c : c.slice(0, u) + "…";
70644
+ return /* @__PURE__ */ E(Lie, { className: n.container, children: [
70645
+ r.length === 0 && /* @__PURE__ */ i(F, { sx: { ...t }, children: "No messages" }),
70646
+ r.slice(0, 3).map((c) => /* @__PURE__ */ E(R, { className: n.messageRow, children: [
70647
+ /* @__PURE__ */ i(Hn, { className: c.source === "FRONTDESK" ? n.frontdeskAvatar : n.customerAvatar }),
70648
+ /* @__PURE__ */ E(R, { className: c.source === "FRONTDESK" ? n.frontdeskMessageBody : n.customerMessageBody, children: [
70649
+ /* @__PURE__ */ E(F, { className: n.senderInfo, sx: { ...t.bodyTypography }, children: [
70650
+ c.userName,
70651
+ " wrote on ",
70652
+ s(c.created)
70653
+ ] }),
70654
+ /* @__PURE__ */ i(F, { style: { ...t.bodyTypography, overflow: "hidden", whiteSpace: "normal" }, children: o(c.commentText, 200) })
70655
+ ] })
70656
+ ] }, c.id)),
70657
+ a.length > 3 && /* @__PURE__ */ E(F, { sx: { ...t.bodyTypography }, children: [
70658
+ "...",
70659
+ a.length - 3,
70660
+ " more..."
70662
70661
  ] })
70663
70662
  ] });
70664
- }, Lie = ({ style: e }) => {
70665
- const t = eR(), [n, a] = C.useState("NEW"), r = (s) => {
70666
- a(s.target.value);
70667
- };
70668
- return /* @__PURE__ */ E(Fie, { className: t.root, children: [
70669
- /* @__PURE__ */ i(Oie, { status: n, style: e }),
70670
- /* @__PURE__ */ E(
70671
- Vi,
70672
- {
70673
- value: n,
70674
- onChange: r,
70675
- size: "small",
70676
- sx: {
70677
- minWidth: 120,
70678
- maxWidth: 150,
70679
- alignSelf: "center"
70680
- },
70681
- children: [
70682
- /* @__PURE__ */ i(lt, { value: "NEW", children: "NEW" }),
70683
- /* @__PURE__ */ i(lt, { value: "OPEN", children: "OPEN" }),
70684
- /* @__PURE__ */ i(lt, { value: "COMPLETED", children: "COMPLETED" }),
70685
- /* @__PURE__ */ i(lt, { value: "REJECTED", children: "REJECTED" })
70686
- ]
70687
- }
70688
- )
70689
- ] });
70690
- }, JN = "TaskStatus", Fie = fe("div", {
70691
- name: JN,
70692
- slot: "Root",
70663
+ }, eR = "EveliCustomerMessagesReadOnly", Lie = fe("div", {
70664
+ name: eR,
70665
+ slot: "Message",
70693
70666
  overridesResolver: (e, t) => [
70694
- t.root
70667
+ t.container
70695
70668
  ]
70696
70669
  })(({ theme: e }) => ({
70697
70670
  display: "flex",
70698
- justifyContent: "space-between",
70699
- alignItems: "center",
70700
- "& .TaskStatus-progressBar": {
70701
- width: "60%"
70671
+ flexDirection: "column",
70672
+ gap: e.spacing(2),
70673
+ "& .EveliCustomerMessagesReadOnly-messageRow": {
70674
+ display: "flex",
70675
+ alignItems: "center"
70702
70676
  },
70703
- "& .TaskStatus-backgroundTrack": {
70704
- width: "100%",
70705
- height: e.spacing(2),
70706
- backgroundColor: "#eee",
70707
- borderRadius: e.spacing(3),
70708
- overflow: "hidden",
70709
- boxShadow: "inset 0 1px 3px rgba(0,0,0,0.2)"
70677
+ "& .EveliCustomerMessagesReadOnly-senderInfo": {
70678
+ fontWeight: "bold !important"
70679
+ //TODO figure out a better way with cardThemeConfig
70710
70680
  },
70711
- "& .TaskStatus-progressDesc": {
70712
- marginTop: e.spacing(0.5),
70713
- textAlign: "right",
70714
- ...e.typography.caption
70681
+ "& .EveliCustomerMessagesReadOnly-frontdeskAvatar": {
70682
+ border: `1px solid ${$n("#caf0f8", 0.1)}`,
70683
+ backgroundColor: "#caf0f8",
70684
+ marginRight: e.spacing(1),
70685
+ boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70686
+ },
70687
+ "& .EveliCustomerMessagesReadOnly-customerAvatar": {
70688
+ border: `1px solid ${$n("#ecf39e", 0.1)}`,
70689
+ backgroundColor: "#ecf39e",
70690
+ marginRight: e.spacing(1),
70691
+ boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70692
+ },
70693
+ "& .EveliCustomerMessagesReadOnly-frontdeskMessageBody": {
70694
+ flexGrow: 1,
70695
+ backgroundColor: "#caf0f8",
70696
+ borderRadius: "20px",
70697
+ padding: e.spacing(1),
70698
+ border: `1px solid ${$n("#caf0f8", 0.1)}`,
70699
+ boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70700
+ },
70701
+ "& .EveliCustomerMessagesReadOnly-customerMessageBody": {
70702
+ flexGrow: 1,
70703
+ backgroundColor: "#ecf39e",
70704
+ borderRadius: "20px",
70705
+ padding: e.spacing(1),
70706
+ border: `1px solid ${$n("#ecf39e", 0.1)}`,
70707
+ boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)"
70708
+ },
70709
+ "& .MuiSvgIcon-root": {
70710
+ fontSize: "10pt",
70711
+ marginRight: e.spacing(1),
70712
+ marginLeft: e.spacing(1)
70715
70713
  }
70716
- })), eR = () => He({
70717
- root: ["root"],
70718
- progressBar: ["progressBar"],
70719
- backgroundTrack: ["backgroundTrack"],
70720
- progressIndicator: ["progressIndicator"],
70721
- progressDesc: ["progressDesc"]
70722
- }, (n) => Ue(JN, n), {}), Mie = (e) => {
70714
+ })), Fie = () => He({
70715
+ container: ["container"],
70716
+ messageRow: ["messageRow"],
70717
+ senderInfo: ["senderInfo"],
70718
+ frontdeskAvatar: ["frontdeskAvatar"],
70719
+ customerAvatar: ["customerAvatar"],
70720
+ frontdeskMessageBody: ["frontdeskMessageBody"],
70721
+ customerMessageBody: ["customerMessageBody"]
70722
+ }, (n) => Ue(eR, n), {}), Mie = (e) => {
70723
70723
  const [t, n] = C.useState(), { getTask: a } = ve("worker/rest/api/tasks/$taskId.GET", {}), [r, s] = C.useState(!1), [o, l] = C.useState({}), [c, u] = C.useState(), [d, p] = C.useState("default"), m = BN(r)[d], h = (k) => {
70724
70724
  l((w) => ({
70725
70725
  ...w,
@@ -70758,7 +70758,7 @@ const Iie = ({ ...e }) => {
70758
70758
  Sa,
70759
70759
  {
70760
70760
  id: "task_main",
70761
- editDialog: c === "task_main" && /* @__PURE__ */ i(wie, { task: t, open: !0, onClose: v }),
70761
+ editDialog: c === "task_main" && /* @__PURE__ */ i(lie, { task: t, open: !0, onClose: v }),
70762
70762
  onDoubleClick: () => A("task_main"),
70763
70763
  isMenu: !0,
70764
70764
  title: `Task: ${t.taskRef}`,
@@ -70775,14 +70775,14 @@ const Iie = ({ ...e }) => {
70775
70775
  style: m,
70776
70776
  value: /* @__PURE__ */ E(R, { display: "flex", justifyContent: "space-between", children: [
70777
70777
  b(t.dueDate),
70778
- /* @__PURE__ */ i(Iie, { task: t, style: m })
70778
+ /* @__PURE__ */ i(pie, { task: t, style: m })
70779
70779
  ] })
70780
70780
  }
70781
70781
  ),
70782
70782
  /* @__PURE__ */ i(ka, { label: "Customer name", value: t.clientIdentificator ? t.clientIdentificator : "NONE", style: m }),
70783
70783
  /* @__PURE__ */ i(ka, { label: "Subject", value: t.subject, style: m }),
70784
70784
  /* @__PURE__ */ i(ka, { label: "Info", value: t.additionalInfo, style: m }),
70785
- /* @__PURE__ */ i(KN, { task: t }),
70785
+ /* @__PURE__ */ i(GN, { task: t }),
70786
70786
  /* @__PURE__ */ i(Se, { open: !1 })
70787
70787
  ]
70788
70788
  }
@@ -70822,9 +70822,9 @@ const Iie = ({ ...e }) => {
70822
70822
  flashy: g("status-priority"),
70823
70823
  onToggleFlashy: () => h("status-priority"),
70824
70824
  children: /* @__PURE__ */ E(Rt, { direction: "column", height: "100%", children: [
70825
- /* @__PURE__ */ i(Lie, { style: m }),
70825
+ /* @__PURE__ */ i(Eie, { style: m }),
70826
70826
  /* @__PURE__ */ i(rt, { sx: { my: 1 } }),
70827
- /* @__PURE__ */ i(Nie, { style: m })
70827
+ /* @__PURE__ */ i(mie, { style: m })
70828
70828
  ] })
70829
70829
  }
70830
70830
  ) }),
@@ -70839,9 +70839,9 @@ const Iie = ({ ...e }) => {
70839
70839
  flashy: g("assignees-roles"),
70840
70840
  onToggleFlashy: () => h("assignees-roles"),
70841
70841
  children: [
70842
- /* @__PURE__ */ i(Ul, { label: "Roles", value: /* @__PURE__ */ i(sie, { task: t }), style: m }),
70842
+ /* @__PURE__ */ i(Ul, { label: "Roles", value: /* @__PURE__ */ i(wie, { task: t }), style: m }),
70843
70843
  /* @__PURE__ */ i(rt, { sx: { my: 1 } }),
70844
- /* @__PURE__ */ i(Ul, { label: "Assigned to", value: /* @__PURE__ */ i(rie, { task: t }), style: m })
70844
+ /* @__PURE__ */ i(Ul, { label: "Assigned to", value: /* @__PURE__ */ i(eie, { task: t }), style: m })
70845
70845
  ]
70846
70846
  }
70847
70847
  ) }),
@@ -70850,14 +70850,14 @@ const Iie = ({ ...e }) => {
70850
70850
  {
70851
70851
  id: "customer_messages",
70852
70852
  title: "Customer messages",
70853
- editDialog: c === "customer_messages" && /* @__PURE__ */ i(vie, { task: t, open: !0, onClose: v }),
70853
+ editDialog: c === "customer_messages" && /* @__PURE__ */ i(Nie, { task: t, open: !0, onClose: v }),
70854
70854
  onDoubleClick: () => A("customer_messages"),
70855
70855
  isMenu: !0,
70856
70856
  startAdornmentIcon: /* @__PURE__ */ i(Wa, { icon: MO }),
70857
70857
  styleVariant: d,
70858
70858
  flashy: g("customer_messages"),
70859
70859
  onToggleFlashy: () => h("customer_messages"),
70860
- children: /* @__PURE__ */ i(Rt, { direction: "column", children: /* @__PURE__ */ i(mie, { task: t, style: m }) })
70860
+ children: /* @__PURE__ */ i(Rt, { direction: "column", children: /* @__PURE__ */ i(Oie, { task: t, style: m }) })
70861
70861
  }
70862
70862
  ) }),
70863
70863
  /* @__PURE__ */ i(oe, { size: r ? _t.singleCol : _t[d], children: /* @__PURE__ */ i(
@@ -70870,7 +70870,7 @@ const Iie = ({ ...e }) => {
70870
70870
  styleVariant: d,
70871
70871
  flashy: g("files"),
70872
70872
  onToggleFlashy: () => h("files"),
70873
- children: /* @__PURE__ */ i(die, { task: t, style: m })
70873
+ children: /* @__PURE__ */ i(iie, { task: t, style: m })
70874
70874
  }
70875
70875
  ) }),
70876
70876
  /* @__PURE__ */ i(oe, { size: r ? _t.singleCol : _t[d], children: /* @__PURE__ */ i(
@@ -70883,7 +70883,7 @@ const Iie = ({ ...e }) => {
70883
70883
  styleVariant: d,
70884
70884
  flashy: g("feedback"),
70885
70885
  onToggleFlashy: () => h("feedback"),
70886
- children: /* @__PURE__ */ i(lie, { task: t, style: m })
70886
+ children: /* @__PURE__ */ i(nie, { task: t, style: m })
70887
70887
  }
70888
70888
  ) }),
70889
70889
  /* @__PURE__ */ i(oe, { size: r ? _t.singleCol : _t[d], children: /* @__PURE__ */ i(
@@ -70896,7 +70896,7 @@ const Iie = ({ ...e }) => {
70896
70896
  styleVariant: d,
70897
70897
  flashy: g("notes"),
70898
70898
  onToggleFlashy: () => h("notes"),
70899
- children: /* @__PURE__ */ i(tie, { task: t, style: m })
70899
+ children: /* @__PURE__ */ i(vie, { task: t, style: m })
70900
70900
  }
70901
70901
  ) }),
70902
70902
  /* @__PURE__ */ i(oe, { size: r ? _t.singleCol : _t[d], children: /* @__PURE__ */ E(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxs-ts/eveli-ide",
3
- "version": "0.0.430",
3
+ "version": "0.0.432",
4
4
  "homepage": "https://github.com/digiexpress-io/digiexpress-parent",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",