@devalok/shilp-sutra-karm 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/chat-panel.js +376 -0
- package/dist/_chunks/daily-brief.js +177 -0
- package/dist/_chunks/kanban-board.js +597 -0
- package/dist/_chunks/project-card.js +121 -0
- package/dist/_chunks/render-adjustment-type.js +3596 -0
- package/dist/{tasks → _chunks}/task-constants.js +3 -3
- package/dist/_chunks/task-detail-panel.js +1305 -0
- package/dist/_chunks/use-composed-ref.js +12 -0
- package/dist/_chunks/vendor.js +11491 -0
- package/dist/admin/index.js +37 -60
- package/dist/board/index.js +3 -5
- package/dist/chat/index.js +6 -10
- package/dist/client/index.js +4 -6
- package/dist/dashboard/index.js +3 -4
- package/dist/index.js +189 -103
- package/dist/tasks/index.js +8 -14
- package/package.json +9 -4
- package/dist/admin/adjustments/approved-adjustments.js +0 -43
- package/dist/admin/break/break-admin-skeleton.js +0 -59
- package/dist/admin/break/break-admin.js +0 -373
- package/dist/admin/break/break-balance.js +0 -42
- package/dist/admin/break/breaks.js +0 -91
- package/dist/admin/break/delete-break.js +0 -55
- package/dist/admin/break/edit-break-balance.js +0 -113
- package/dist/admin/break/edit-break.js +0 -453
- package/dist/admin/break/header.js +0 -231
- package/dist/admin/break/leave-request.js +0 -162
- package/dist/admin/break/use-break-date-picker.js +0 -43
- package/dist/admin/dashboard/admin-dashboard.js +0 -337
- package/dist/admin/dashboard/associate-detail.js +0 -259
- package/dist/admin/dashboard/attendance-overview.js +0 -136
- package/dist/admin/dashboard/break-request.js +0 -176
- package/dist/admin/dashboard/calendar.js +0 -141
- package/dist/admin/dashboard/correction-list.js +0 -102
- package/dist/admin/dashboard/dashboard-header.js +0 -155
- package/dist/admin/dashboard/dashboard-skeleton.js +0 -109
- package/dist/admin/dashboard/leave-requests.js +0 -201
- package/dist/admin/dashboard/render-date.js +0 -144
- package/dist/admin/dashboard/use-calendar-navigation.js +0 -169
- package/dist/admin/dashboard/use-leave-request-interaction.js +0 -34
- package/dist/admin/utils/date-range-utils.js +0 -37
- package/dist/admin/utils/date-utils.js +0 -119
- package/dist/admin/utils/emoji-utils.js +0 -17
- package/dist/admin/utils/render-adjustment-type.js +0 -20
- package/dist/admin/utils/render-status.js +0 -22
- package/dist/board/board-column.js +0 -236
- package/dist/board/kanban-board.js +0 -218
- package/dist/board/task-card.js +0 -168
- package/dist/chat/chat-input.js +0 -54
- package/dist/chat/chat-panel.js +0 -151
- package/dist/chat/conversation-list.js +0 -99
- package/dist/chat/markdown-components.js +0 -35
- package/dist/chat/message-list.js +0 -59
- package/dist/chat/streaming-text.js +0 -17
- package/dist/client/accent-provider.js +0 -22
- package/dist/client/client-portal-header.js +0 -48
- package/dist/client/project-card.js +0 -60
- package/dist/dashboard/attendance-cta.js +0 -115
- package/dist/dashboard/daily-brief.js +0 -68
- package/dist/page-skeletons.js +0 -130
- package/dist/tasks/activity-tab.js +0 -185
- package/dist/tasks/conversation-tab.js +0 -138
- package/dist/tasks/files-tab.js +0 -186
- package/dist/tasks/review-tab.js +0 -170
- package/dist/tasks/subtasks-tab.js +0 -154
- package/dist/tasks/task-detail-panel.js +0 -210
- package/dist/tasks/task-properties.js +0 -324
- package/dist/utils/use-composed-ref.js +0 -12
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsxs as l, jsx as t, Fragment as q } from "react/jsx-runtime";
|
|
3
|
-
import * as c from "react";
|
|
4
|
-
import { cn as i } from "@devalok/shilp-sutra/ui/lib/utils";
|
|
5
|
-
import { Avatar as C, AvatarImage as R, AvatarFallback as D } from "@devalok/shilp-sutra/ui/avatar";
|
|
6
|
-
import { Popover as P, PopoverTrigger as T, PopoverContent as L } from "@devalok/shilp-sutra/ui/popover";
|
|
7
|
-
import { IconColumns3 as z, IconChevronDown as F, IconCheck as J, IconUser as Q, IconUsers as Z, IconX as x, IconPlus as S, IconFlag as U, IconCalendarEvent as k, IconTag as ee, IconEye as te } from "@tabler/icons-react";
|
|
8
|
-
import { getInitials as A } from "@devalok/shilp-sutra/composed/lib/string-utils";
|
|
9
|
-
import { MemberPicker as O } from "@devalok/shilp-sutra/composed/member-picker";
|
|
10
|
-
import { PRIORITY_DOT_COLORS as se, PRIORITY_LABELS as le } from "./task-constants.js";
|
|
11
|
-
const re = ["LOW", "MEDIUM", "HIGH", "URGENT"];
|
|
12
|
-
function d({
|
|
13
|
-
icon: a,
|
|
14
|
-
label: s,
|
|
15
|
-
children: m,
|
|
16
|
-
className: o
|
|
17
|
-
}) {
|
|
18
|
-
return /* @__PURE__ */ l(
|
|
19
|
-
"div",
|
|
20
|
-
{
|
|
21
|
-
className: i(
|
|
22
|
-
"flex items-center gap-ds-04 py-ds-03",
|
|
23
|
-
o
|
|
24
|
-
),
|
|
25
|
-
children: [
|
|
26
|
-
/* @__PURE__ */ l("div", { className: "flex w-[120px] shrink-0 items-center gap-ds-03 text-text-placeholder", children: [
|
|
27
|
-
/* @__PURE__ */ t(a, { className: "h-ico-sm w-ico-sm", stroke: 1.5 }),
|
|
28
|
-
/* @__PURE__ */ t("span", { className: "text-ds-sm", children: s })
|
|
29
|
-
] }),
|
|
30
|
-
/* @__PURE__ */ t("div", { className: "flex-1 min-w-0", children: m })
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
function ne({ priority: a }) {
|
|
36
|
-
return /* @__PURE__ */ l("div", { className: "flex items-center gap-ds-02b", children: [
|
|
37
|
-
/* @__PURE__ */ t("div", { className: i("h-2 w-2 rounded-ds-full", se[a]) }),
|
|
38
|
-
/* @__PURE__ */ t("span", { className: "text-ds-md text-text-primary", children: le[a] || a })
|
|
39
|
-
] });
|
|
40
|
-
}
|
|
41
|
-
const de = c.forwardRef(
|
|
42
|
-
function({
|
|
43
|
-
task: s,
|
|
44
|
-
columns: m,
|
|
45
|
-
members: o,
|
|
46
|
-
onUpdate: n,
|
|
47
|
-
onAssign: V,
|
|
48
|
-
onUnassign: f,
|
|
49
|
-
className: Y,
|
|
50
|
-
readOnly: r = !1,
|
|
51
|
-
editableFields: u,
|
|
52
|
-
renderPriorityIndicator: M,
|
|
53
|
-
renderDatePicker: g,
|
|
54
|
-
onConfirmVisibilityChange: N
|
|
55
|
-
}, j) {
|
|
56
|
-
const [y, p] = c.useState(""), [_, b] = c.useState(!1), v = s.assignees.map((e) => e.user.id), w = c.useMemo(
|
|
57
|
-
() => o.map((e) => ({ id: e.id, name: e.name, avatar: e.image ?? void 0 })),
|
|
58
|
-
[o]
|
|
59
|
-
), B = (e) => {
|
|
60
|
-
n("columnId", e);
|
|
61
|
-
}, G = (e) => {
|
|
62
|
-
n("ownerId", e === s.ownerId ? null : e);
|
|
63
|
-
}, H = (e) => {
|
|
64
|
-
v.includes(e) ? f(e) : V(e);
|
|
65
|
-
}, $ = (e) => {
|
|
66
|
-
n("priority", e);
|
|
67
|
-
}, h = (e) => {
|
|
68
|
-
n("dueDate", e ? e.toISOString() : null);
|
|
69
|
-
}, I = () => {
|
|
70
|
-
const e = y.trim();
|
|
71
|
-
e && !s.labels.includes(e) && n("labels", [...s.labels, e]), p(""), b(!1);
|
|
72
|
-
}, K = (e) => {
|
|
73
|
-
n("labels", s.labels.filter((X) => X !== e));
|
|
74
|
-
}, W = () => {
|
|
75
|
-
const e = s.visibility === "INTERNAL" ? "EVERYONE" : "INTERNAL";
|
|
76
|
-
if (e === "EVERYONE" && N) {
|
|
77
|
-
N();
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
n("visibility", e);
|
|
81
|
-
}, E = M || ne;
|
|
82
|
-
return /* @__PURE__ */ l("div", { ref: j, className: i("space-y-ds-01", Y), children: [
|
|
83
|
-
/* @__PURE__ */ t(d, { icon: z, label: "Column", children: r && !(u != null && u.includes("columnId")) ? /* @__PURE__ */ t("span", { className: "px-ds-03 py-ds-02 text-ds-md text-text-primary", children: s.column.name }) : /* @__PURE__ */ l(P, { children: [
|
|
84
|
-
/* @__PURE__ */ t(T, { asChild: !0, children: /* @__PURE__ */ l(
|
|
85
|
-
"button",
|
|
86
|
-
{
|
|
87
|
-
type: "button",
|
|
88
|
-
className: "inline-flex items-center gap-ds-02b rounded-ds-md px-ds-03 py-ds-02 text-ds-md text-text-primary transition-colors hover:bg-field",
|
|
89
|
-
children: [
|
|
90
|
-
/* @__PURE__ */ t("span", { children: s.column.name }),
|
|
91
|
-
/* @__PURE__ */ t(F, { className: "h-3 w-3 text-text-placeholder" })
|
|
92
|
-
]
|
|
93
|
-
}
|
|
94
|
-
) }),
|
|
95
|
-
/* @__PURE__ */ t(
|
|
96
|
-
L,
|
|
97
|
-
{
|
|
98
|
-
className: "w-[180px] border-border bg-layer-01 p-ds-02",
|
|
99
|
-
align: "start",
|
|
100
|
-
sideOffset: 4,
|
|
101
|
-
children: m.map((e) => /* @__PURE__ */ l(
|
|
102
|
-
"button",
|
|
103
|
-
{
|
|
104
|
-
type: "button",
|
|
105
|
-
onClick: () => B(e.id),
|
|
106
|
-
className: i(
|
|
107
|
-
"flex w-full items-center gap-ds-03 rounded-ds-md px-ds-03 py-ds-02b text-left text-ds-md transition-colors",
|
|
108
|
-
"hover:bg-field",
|
|
109
|
-
e.id === s.columnId ? "text-interactive" : "text-text-primary"
|
|
110
|
-
),
|
|
111
|
-
children: [
|
|
112
|
-
e.name,
|
|
113
|
-
e.id === s.columnId && /* @__PURE__ */ t(J, { className: "ml-auto h-ico-sm w-ico-sm" })
|
|
114
|
-
]
|
|
115
|
-
},
|
|
116
|
-
e.id
|
|
117
|
-
))
|
|
118
|
-
}
|
|
119
|
-
)
|
|
120
|
-
] }) }),
|
|
121
|
-
!r && /* @__PURE__ */ t(d, { icon: Q, label: "Owner", children: /* @__PURE__ */ t(
|
|
122
|
-
O,
|
|
123
|
-
{
|
|
124
|
-
members: w,
|
|
125
|
-
selectedIds: s.ownerId ? [s.ownerId] : [],
|
|
126
|
-
onSelect: G,
|
|
127
|
-
children: /* @__PURE__ */ t(
|
|
128
|
-
"button",
|
|
129
|
-
{
|
|
130
|
-
type: "button",
|
|
131
|
-
className: "inline-flex items-center gap-ds-03 rounded-ds-md px-ds-03 py-ds-02 transition-colors hover:bg-field",
|
|
132
|
-
children: s.owner ? /* @__PURE__ */ l(q, { children: [
|
|
133
|
-
/* @__PURE__ */ l(C, { className: "h-ico-md w-ico-md", children: [
|
|
134
|
-
s.owner.image && /* @__PURE__ */ t(R, { src: s.owner.image, alt: s.owner.name }),
|
|
135
|
-
/* @__PURE__ */ t(D, { className: "bg-layer-03 text-ds-xs font-semibold text-text-on-color", children: A(s.owner.name) })
|
|
136
|
-
] }),
|
|
137
|
-
/* @__PURE__ */ t("span", { className: "text-ds-md text-text-primary", children: s.owner.name })
|
|
138
|
-
] }) : /* @__PURE__ */ t("span", { className: "text-ds-md text-text-placeholder", children: "No owner" })
|
|
139
|
-
}
|
|
140
|
-
)
|
|
141
|
-
}
|
|
142
|
-
) }),
|
|
143
|
-
/* @__PURE__ */ t(d, { icon: Z, label: "Assignees", children: /* @__PURE__ */ l("div", { className: "flex flex-wrap items-center gap-ds-02b", children: [
|
|
144
|
-
s.assignees.map((e) => /* @__PURE__ */ l(
|
|
145
|
-
"div",
|
|
146
|
-
{
|
|
147
|
-
className: "inline-flex items-center gap-ds-02 rounded-ds-full bg-layer-02 py-ds-01 pl-ds-01 pr-ds-03",
|
|
148
|
-
children: [
|
|
149
|
-
/* @__PURE__ */ l(C, { className: "h-ico-sm w-ico-sm", children: [
|
|
150
|
-
e.user.image && /* @__PURE__ */ t(R, { src: e.user.image, alt: e.user.name }),
|
|
151
|
-
/* @__PURE__ */ t(D, { className: "bg-layer-03 text-ds-xs font-semibold text-text-on-color", children: A(e.user.name) })
|
|
152
|
-
] }),
|
|
153
|
-
/* @__PURE__ */ t("span", { className: "text-ds-sm text-text-secondary", children: e.user.name.split(" ")[0] }),
|
|
154
|
-
!r && /* @__PURE__ */ t(
|
|
155
|
-
"button",
|
|
156
|
-
{
|
|
157
|
-
type: "button",
|
|
158
|
-
onClick: () => f(e.user.id),
|
|
159
|
-
className: "ml-ds-01 rounded-ds-full p-ds-01 transition-colors hover:bg-field",
|
|
160
|
-
"aria-label": `Remove ${e.user.name}`,
|
|
161
|
-
children: /* @__PURE__ */ t(x, { className: "h-ds-03 w-ds-03 text-text-placeholder" })
|
|
162
|
-
}
|
|
163
|
-
)
|
|
164
|
-
]
|
|
165
|
-
},
|
|
166
|
-
e.user.id
|
|
167
|
-
)),
|
|
168
|
-
!r && /* @__PURE__ */ t(
|
|
169
|
-
O,
|
|
170
|
-
{
|
|
171
|
-
members: w,
|
|
172
|
-
selectedIds: v,
|
|
173
|
-
onSelect: H,
|
|
174
|
-
multiple: !0,
|
|
175
|
-
children: /* @__PURE__ */ t(
|
|
176
|
-
"button",
|
|
177
|
-
{
|
|
178
|
-
type: "button",
|
|
179
|
-
className: "inline-flex h-ico-md w-ico-md items-center justify-center rounded-ds-full border border-dashed border-border-subtle transition-colors hover:bg-field hover:border-text-placeholder",
|
|
180
|
-
"aria-label": "Add assignee",
|
|
181
|
-
children: /* @__PURE__ */ t(S, { className: "h-3 w-3 text-text-placeholder" })
|
|
182
|
-
}
|
|
183
|
-
)
|
|
184
|
-
}
|
|
185
|
-
),
|
|
186
|
-
r && s.assignees.length === 0 && /* @__PURE__ */ t("span", { className: "text-ds-md text-text-placeholder", children: "None" })
|
|
187
|
-
] }) }),
|
|
188
|
-
/* @__PURE__ */ t(d, { icon: U, label: "Priority", children: /* @__PURE__ */ l(P, { children: [
|
|
189
|
-
/* @__PURE__ */ t(T, { asChild: !0, children: /* @__PURE__ */ t(
|
|
190
|
-
"button",
|
|
191
|
-
{
|
|
192
|
-
type: "button",
|
|
193
|
-
className: "rounded-ds-md px-ds-03 py-ds-02 transition-colors hover:bg-field",
|
|
194
|
-
children: /* @__PURE__ */ t(E, { priority: s.priority })
|
|
195
|
-
}
|
|
196
|
-
) }),
|
|
197
|
-
/* @__PURE__ */ t(
|
|
198
|
-
L,
|
|
199
|
-
{
|
|
200
|
-
className: "w-[160px] border-border bg-layer-01 p-ds-02",
|
|
201
|
-
align: "start",
|
|
202
|
-
sideOffset: 4,
|
|
203
|
-
children: re.map((e) => /* @__PURE__ */ t(
|
|
204
|
-
"button",
|
|
205
|
-
{
|
|
206
|
-
type: "button",
|
|
207
|
-
onClick: () => $(e),
|
|
208
|
-
className: i(
|
|
209
|
-
"flex w-full items-center gap-ds-03 rounded-ds-md px-ds-03 py-ds-02b transition-colors",
|
|
210
|
-
"hover:bg-field",
|
|
211
|
-
e === s.priority && "bg-field"
|
|
212
|
-
),
|
|
213
|
-
children: /* @__PURE__ */ t(E, { priority: e })
|
|
214
|
-
},
|
|
215
|
-
e
|
|
216
|
-
))
|
|
217
|
-
}
|
|
218
|
-
)
|
|
219
|
-
] }) }),
|
|
220
|
-
/* @__PURE__ */ t(d, { icon: k, label: "Due Date", children: /* @__PURE__ */ l("div", { className: "flex items-center gap-ds-02", children: [
|
|
221
|
-
g ? g({
|
|
222
|
-
value: s.dueDate ? new Date(s.dueDate) : null,
|
|
223
|
-
onChange: h,
|
|
224
|
-
placeholder: "No due date",
|
|
225
|
-
className: "h-ds-xs-plus border-none bg-transparent px-ds-03 text-ds-md hover:bg-field"
|
|
226
|
-
}) : /* @__PURE__ */ t(
|
|
227
|
-
"input",
|
|
228
|
-
{
|
|
229
|
-
type: "date",
|
|
230
|
-
value: s.dueDate ? new Date(s.dueDate).toISOString().split("T")[0] : "",
|
|
231
|
-
onChange: (e) => h(e.target.value ? new Date(e.target.value) : null),
|
|
232
|
-
"aria-label": "Due date",
|
|
233
|
-
className: "h-ds-xs-plus border-none bg-transparent px-ds-03 text-ds-md text-text-primary outline-none hover:bg-field rounded-ds-md"
|
|
234
|
-
}
|
|
235
|
-
),
|
|
236
|
-
s.dueDate && /* @__PURE__ */ t(
|
|
237
|
-
"button",
|
|
238
|
-
{
|
|
239
|
-
type: "button",
|
|
240
|
-
onClick: () => h(null),
|
|
241
|
-
className: "rounded-ds-md p-ds-02 transition-colors hover:bg-field",
|
|
242
|
-
"aria-label": "Clear due date",
|
|
243
|
-
children: /* @__PURE__ */ t(x, { className: "h-3 w-3 text-text-placeholder" })
|
|
244
|
-
}
|
|
245
|
-
)
|
|
246
|
-
] }) }),
|
|
247
|
-
/* @__PURE__ */ t(d, { icon: ee, label: "Labels", children: /* @__PURE__ */ l("div", { className: "flex flex-wrap items-center gap-ds-02b", children: [
|
|
248
|
-
s.labels.map((e) => /* @__PURE__ */ l(
|
|
249
|
-
"span",
|
|
250
|
-
{
|
|
251
|
-
className: "inline-flex items-center gap-ds-02 rounded-ds-full bg-interactive/10 px-ds-03 py-ds-01 text-ds-sm font-medium text-interactive",
|
|
252
|
-
children: [
|
|
253
|
-
e,
|
|
254
|
-
!r && /* @__PURE__ */ t(
|
|
255
|
-
"button",
|
|
256
|
-
{
|
|
257
|
-
type: "button",
|
|
258
|
-
onClick: () => K(e),
|
|
259
|
-
className: "rounded-ds-full p-ds-01 transition-colors hover:bg-field",
|
|
260
|
-
"aria-label": `Remove label ${e}`,
|
|
261
|
-
children: /* @__PURE__ */ t(x, { className: "h-ds-03 w-ds-03" })
|
|
262
|
-
}
|
|
263
|
-
)
|
|
264
|
-
]
|
|
265
|
-
},
|
|
266
|
-
e
|
|
267
|
-
)),
|
|
268
|
-
!r && (_ ? /* @__PURE__ */ t("div", { className: "inline-flex items-center gap-ds-02", children: /* @__PURE__ */ t(
|
|
269
|
-
"input",
|
|
270
|
-
{
|
|
271
|
-
type: "text",
|
|
272
|
-
value: y,
|
|
273
|
-
onChange: (e) => p(e.target.value),
|
|
274
|
-
"aria-label": "New label name",
|
|
275
|
-
onKeyDown: (e) => {
|
|
276
|
-
e.key === "Enter" && I(), e.key === "Escape" && (b(!1), p(""));
|
|
277
|
-
},
|
|
278
|
-
onBlur: I,
|
|
279
|
-
placeholder: "Label name",
|
|
280
|
-
className: "h-5 w-20 rounded border border-border bg-transparent px-ds-02b text-ds-sm text-text-primary outline-none placeholder:text-text-placeholder focus:border-border-subtle",
|
|
281
|
-
autoFocus: !0
|
|
282
|
-
}
|
|
283
|
-
) }) : /* @__PURE__ */ t(
|
|
284
|
-
"button",
|
|
285
|
-
{
|
|
286
|
-
type: "button",
|
|
287
|
-
onClick: () => b(!0),
|
|
288
|
-
className: "inline-flex h-ico-md w-ico-md items-center justify-center rounded-ds-full border border-dashed border-border-subtle transition-colors hover:bg-field hover:border-text-placeholder",
|
|
289
|
-
"aria-label": "Add label",
|
|
290
|
-
children: /* @__PURE__ */ t(S, { className: "h-3 w-3 text-text-placeholder" })
|
|
291
|
-
}
|
|
292
|
-
)),
|
|
293
|
-
r && s.labels.length === 0 && /* @__PURE__ */ t("span", { className: "text-ds-md text-text-placeholder", children: "None" })
|
|
294
|
-
] }) }),
|
|
295
|
-
!r && /* @__PURE__ */ t(d, { icon: te, label: "Visibility", children: /* @__PURE__ */ l(
|
|
296
|
-
"button",
|
|
297
|
-
{
|
|
298
|
-
type: "button",
|
|
299
|
-
onClick: W,
|
|
300
|
-
className: i(
|
|
301
|
-
"inline-flex items-center gap-ds-02b rounded-ds-full px-ds-03 py-ds-01 text-ds-sm font-semibold tracking-wide transition-colors",
|
|
302
|
-
s.visibility === "EVERYONE" ? "bg-success-surface text-text-success" : "bg-layer-02 text-text-tertiary"
|
|
303
|
-
),
|
|
304
|
-
children: [
|
|
305
|
-
/* @__PURE__ */ t(
|
|
306
|
-
"span",
|
|
307
|
-
{
|
|
308
|
-
className: i(
|
|
309
|
-
"h-ds-02b w-ds-02b rounded-ds-full",
|
|
310
|
-
s.visibility === "EVERYONE" ? "bg-success" : "bg-icon-disabled"
|
|
311
|
-
)
|
|
312
|
-
}
|
|
313
|
-
),
|
|
314
|
-
s.visibility === "EVERYONE" ? "Everyone" : "Internal"
|
|
315
|
-
]
|
|
316
|
-
}
|
|
317
|
-
) })
|
|
318
|
-
] });
|
|
319
|
-
}
|
|
320
|
-
);
|
|
321
|
-
de.displayName = "TaskProperties";
|
|
322
|
-
export {
|
|
323
|
-
de as TaskProperties
|
|
324
|
-
};
|