@instructure/platform-modules 1.4.0 → 1.5.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/components/ModuleCard.d.ts +1 -2
- package/dist/components/ModuleCard.d.ts.map +1 -1
- package/dist/components/ModuleCard.stories.d.ts +2 -0
- package/dist/components/ModuleCard.stories.d.ts.map +1 -1
- package/dist/components/ModuleItemRow.d.ts +1 -2
- package/dist/components/ModuleItemRow.d.ts.map +1 -1
- package/dist/components/ModulesList.d.ts +0 -2
- package/dist/components/ModulesList.d.ts.map +1 -1
- package/dist/components/ModulesList.stories.d.ts +2 -1
- package/dist/components/ModulesList.stories.d.ts.map +1 -1
- package/dist/components/StatusPill.d.ts +2 -0
- package/dist/components/StatusPill.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/labels.d.ts +4 -0
- package/dist/components/labels.d.ts.map +1 -1
- package/dist/components/useTitleLinkVariant.d.ts +2 -0
- package/dist/components/useTitleLinkVariant.d.ts.map +1 -0
- package/dist/config/filters.d.ts +1 -1
- package/dist/config/filters.d.ts.map +1 -1
- package/dist/config/schemas.d.ts.map +1 -1
- package/dist/config/types.d.ts +5 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1496 -1444
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/locales/en.json +2 -0
- package/package.json +1 -1
- package/dist/types/navigation.d.ts +0 -7
- package/dist/types/navigation.d.ts.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { z as
|
|
1
|
+
import { z as p } from "zod";
|
|
2
2
|
import { gql as xe } from "graphql-tag";
|
|
3
|
-
import { jsx as
|
|
4
|
-
import { createContext as
|
|
5
|
-
import { PlugInstUIIcon as
|
|
6
|
-
import { useQueryClient as
|
|
7
|
-
import
|
|
8
|
-
import { Button as
|
|
9
|
-
import { Flex as
|
|
10
|
-
import { Text as
|
|
11
|
-
import { View as
|
|
12
|
-
import {
|
|
13
|
-
import { Alert as
|
|
14
|
-
import { Heading as
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import { isValid as
|
|
22
|
-
import { Pill as
|
|
23
|
-
import { WithBreakpoints as
|
|
24
|
-
const
|
|
25
|
-
target:
|
|
26
|
-
field:
|
|
27
|
-
op:
|
|
28
|
-
value:
|
|
3
|
+
import { jsx as i, jsxs as _, Fragment as xt } from "react/jsx-runtime";
|
|
4
|
+
import { createContext as on, useContext as sn, useMemo as N, isValidElement as rn, useCallback as F, useRef as $, useState as ee, useEffect as te, useId as rt, memo as ln, Fragment as an } from "react";
|
|
5
|
+
import { PlugInstUIIcon as po, ExternalLinkInstUIIcon as go, FileInstUIIcon as fo, FileTextInstUIIcon as ho, MessagesSquareInstUIIcon as Io, RocketInstUIIcon as bo, FilePenLineInstUIIcon as Mo, LockInstUIIcon as cn, CircleAlertInstUIIcon as ve, CircleCheckInstUIIcon as un, ClockFadingInstUIIcon as dn, CircleDashedInstUIIcon as mn, CalendarInstUIIcon as So, CornerDownRightInstUIIcon as yo, IconArrowOpenUpLine as _o, IconArrowOpenDownLine as To } from "@instructure/ui-icons";
|
|
6
|
+
import { useQueryClient as It, useInfiniteQuery as bt, keepPreviousData as Eo, InfiniteQueryObserver as Co } from "@tanstack/react-query";
|
|
7
|
+
import wo from "p-limit";
|
|
8
|
+
import { Button as Pe, IconButton as vo } from "@instructure/ui-buttons/v11_7";
|
|
9
|
+
import { Flex as M } from "@instructure/ui-flex/v11_7";
|
|
10
|
+
import { Text as A } from "@instructure/ui-text/v11_7";
|
|
11
|
+
import { View as C } from "@instructure/ui-view/v11_7";
|
|
12
|
+
import { politeAnnounce as he, getLiveRegion as pn, TruncateWithTooltip as Po } from "@instructure/platform-instui-bindings";
|
|
13
|
+
import { Alert as gn } from "@instructure/ui-alerts/v11_7";
|
|
14
|
+
import { Heading as fn } from "@instructure/ui-heading/v11_7";
|
|
15
|
+
import { Link as hn } from "@instructure/ui-link/v11_7";
|
|
16
|
+
import { ProgressBar as Ao } from "@instructure/ui-progress/v11_7";
|
|
17
|
+
import { Spinner as it } from "@instructure/ui-spinner/v11_7";
|
|
18
|
+
import { Tooltip as In } from "@instructure/ui-tooltip/v11_7";
|
|
19
|
+
import { useTheme as bn } from "@instructure/emotion";
|
|
20
|
+
import { ScreenReaderContent as lt } from "@instructure/ui-a11y-content";
|
|
21
|
+
import { isValid as at, colorToRGB as ct, overlayColors as xo, alpha as Lo, color2hex as Mn, contrast as se, darken as Ro, lighten as ko } from "@instructure/ui-color-utils";
|
|
22
|
+
import { Pill as Do } from "@instructure/ui-pill/v11_7";
|
|
23
|
+
import { WithBreakpoints as No } from "@instructure/platform-with-breakpoints";
|
|
24
|
+
const Oo = p.object({
|
|
25
|
+
target: p.enum(["module", "item"]),
|
|
26
|
+
field: p.string(),
|
|
27
|
+
op: p.enum(["eq", "contains"]),
|
|
28
|
+
value: p.union([p.string(), p.boolean()])
|
|
29
29
|
}).strict();
|
|
30
|
-
function
|
|
30
|
+
function qo(e, t) {
|
|
31
31
|
const n = e == null ? void 0 : e[t.target];
|
|
32
32
|
return !n || !Object.prototype.hasOwnProperty.call(n, t.field) ? !1 : n[t.field].includes(t.op);
|
|
33
33
|
}
|
|
34
|
-
const
|
|
34
|
+
const Fo = p.enum([
|
|
35
35
|
"assignment",
|
|
36
36
|
"quiz",
|
|
37
37
|
"discussion",
|
|
@@ -40,7 +40,7 @@ const Lo = m.enum([
|
|
|
40
40
|
"external_url",
|
|
41
41
|
"external_tool",
|
|
42
42
|
"sub_header"
|
|
43
|
-
]),
|
|
43
|
+
]), Uo = p.enum(["not_started", "in_progress", "complete", "incomplete", "missing", "locked"]), zo = p.enum([
|
|
44
44
|
"not_started",
|
|
45
45
|
"in_progress",
|
|
46
46
|
"complete",
|
|
@@ -48,7 +48,7 @@ const Lo = m.enum([
|
|
|
48
48
|
"incomplete",
|
|
49
49
|
"missing_and_incomplete",
|
|
50
50
|
"locked"
|
|
51
|
-
]),
|
|
51
|
+
]), $o = p.enum([
|
|
52
52
|
"must_view",
|
|
53
53
|
"must_mark_done",
|
|
54
54
|
"must_contribute",
|
|
@@ -56,97 +56,97 @@ const Lo = m.enum([
|
|
|
56
56
|
"min_score",
|
|
57
57
|
"min_percentage",
|
|
58
58
|
"unknown"
|
|
59
|
-
]),
|
|
60
|
-
status:
|
|
61
|
-
requirementsMet:
|
|
62
|
-
requirementCount:
|
|
63
|
-
percentComplete:
|
|
64
|
-
nextDueAt:
|
|
65
|
-
missingCount:
|
|
66
|
-
incompleteCount:
|
|
67
|
-
}),
|
|
68
|
-
itemId:
|
|
69
|
-
type:
|
|
70
|
-
minScore:
|
|
71
|
-
minPercentage:
|
|
72
|
-
}),
|
|
73
|
-
id:
|
|
74
|
-
moduleId:
|
|
75
|
-
title:
|
|
76
|
-
type:
|
|
77
|
-
position:
|
|
78
|
-
indent:
|
|
79
|
-
published:
|
|
80
|
-
url:
|
|
81
|
-
newTab:
|
|
82
|
-
completionRequirement:
|
|
83
|
-
dueAt:
|
|
84
|
-
status:
|
|
85
|
-
pointsPossible:
|
|
86
|
-
extensions:
|
|
87
|
-
}),
|
|
88
|
-
id:
|
|
89
|
-
name:
|
|
90
|
-
}),
|
|
91
|
-
id:
|
|
92
|
-
name:
|
|
93
|
-
position:
|
|
94
|
-
published:
|
|
95
|
-
itemCount:
|
|
96
|
-
items:
|
|
97
|
-
unlockAt:
|
|
98
|
-
prerequisiteModules:
|
|
99
|
-
requirementCount:
|
|
100
|
-
requireSequentialProgress:
|
|
101
|
-
completionRequirements:
|
|
102
|
-
progress:
|
|
103
|
-
collapsed:
|
|
104
|
-
extensions:
|
|
105
|
-
}),
|
|
106
|
-
hasNextPage:
|
|
107
|
-
endCursor:
|
|
59
|
+
]), Bo = p.object({
|
|
60
|
+
status: zo.optional(),
|
|
61
|
+
requirementsMet: p.number(),
|
|
62
|
+
requirementCount: p.number(),
|
|
63
|
+
percentComplete: p.number().min(0).max(100),
|
|
64
|
+
nextDueAt: p.string().nullish(),
|
|
65
|
+
missingCount: p.number(),
|
|
66
|
+
incompleteCount: p.number()
|
|
67
|
+
}), Sn = p.object({
|
|
68
|
+
itemId: p.string(),
|
|
69
|
+
type: $o,
|
|
70
|
+
minScore: p.number().nullish(),
|
|
71
|
+
minPercentage: p.number().nullish()
|
|
72
|
+
}), yn = p.object({
|
|
73
|
+
id: p.string(),
|
|
74
|
+
moduleId: p.string(),
|
|
75
|
+
title: p.string(),
|
|
76
|
+
type: Fo,
|
|
77
|
+
position: p.number(),
|
|
78
|
+
indent: p.number(),
|
|
79
|
+
published: p.boolean(),
|
|
80
|
+
url: p.string().nullish(),
|
|
81
|
+
newTab: p.boolean().nullish(),
|
|
82
|
+
completionRequirement: Sn.nullish(),
|
|
83
|
+
dueAt: p.string().nullish(),
|
|
84
|
+
status: Uo.optional(),
|
|
85
|
+
pointsPossible: p.number().nullish(),
|
|
86
|
+
extensions: p.record(p.unknown()).optional()
|
|
87
|
+
}), Go = p.object({
|
|
88
|
+
id: p.string(),
|
|
89
|
+
name: p.string()
|
|
90
|
+
}), jo = p.object({
|
|
91
|
+
id: p.string(),
|
|
92
|
+
name: p.string(),
|
|
93
|
+
position: p.number(),
|
|
94
|
+
published: p.boolean(),
|
|
95
|
+
itemCount: p.number(),
|
|
96
|
+
items: p.array(yn).optional(),
|
|
97
|
+
unlockAt: p.string().nullish(),
|
|
98
|
+
prerequisiteModules: p.array(Go),
|
|
99
|
+
requirementCount: p.number().nullish(),
|
|
100
|
+
requireSequentialProgress: p.boolean(),
|
|
101
|
+
completionRequirements: p.array(Sn).optional(),
|
|
102
|
+
progress: Bo.optional(),
|
|
103
|
+
collapsed: p.boolean().nullish(),
|
|
104
|
+
extensions: p.record(p.unknown()).optional()
|
|
105
|
+
}), _n = p.object({
|
|
106
|
+
hasNextPage: p.boolean(),
|
|
107
|
+
endCursor: p.string().nullable()
|
|
108
108
|
}).refine((e) => !e.hasNextPage || e.endCursor !== null, {
|
|
109
109
|
message: 'hasNextPage is true but endCursor is null: there is another page and no cursor to ask for it with, which renders a "Load more" that can never load.',
|
|
110
110
|
path: ["endCursor"]
|
|
111
|
-
}),
|
|
112
|
-
modules:
|
|
113
|
-
pageInfo:
|
|
114
|
-
}),
|
|
115
|
-
items:
|
|
116
|
-
pageInfo:
|
|
117
|
-
}),
|
|
118
|
-
function
|
|
111
|
+
}), Yo = p.object({
|
|
112
|
+
modules: p.array(jo),
|
|
113
|
+
pageInfo: _n
|
|
114
|
+
}), Ho = p.object({
|
|
115
|
+
items: p.array(yn),
|
|
116
|
+
pageInfo: _n
|
|
117
|
+
}), Tn = "career.estimatedDurationMinutes";
|
|
118
|
+
function Wo(e) {
|
|
119
119
|
var n;
|
|
120
|
-
const t = (n = e.extensions) == null ? void 0 : n[
|
|
120
|
+
const t = (n = e.extensions) == null ? void 0 : n[Tn];
|
|
121
121
|
return typeof t != "number" || !Number.isFinite(t) || t <= 0 ? null : t;
|
|
122
122
|
}
|
|
123
|
-
function
|
|
124
|
-
return t == null ? e : { ...e, [
|
|
123
|
+
function Mt(e, t) {
|
|
124
|
+
return t == null ? e : { ...e, [Tn]: t };
|
|
125
125
|
}
|
|
126
|
-
const
|
|
127
|
-
class
|
|
126
|
+
const ut = 100, St = 2e3;
|
|
127
|
+
class Ko extends Error {
|
|
128
128
|
constructor(t, n) {
|
|
129
129
|
super(
|
|
130
130
|
`This in-memory adapter was built for course ${t} but was asked for course ${n}. A fixture serves exactly one course.`
|
|
131
131
|
), this.name = "InMemoryCourseMismatchError", this.expected = t, this.received = n;
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
const
|
|
134
|
+
const Qo = (e) => `offset:${e}`, Vo = (e) => {
|
|
135
135
|
if (!e) return 0;
|
|
136
136
|
const t = Number.parseInt(e.replace("offset:", ""), 10);
|
|
137
137
|
return Number.isFinite(t) && t >= 0 ? t : 0;
|
|
138
|
-
},
|
|
138
|
+
}, Lt = (e) => {
|
|
139
139
|
if (e != null && e.aborted)
|
|
140
140
|
throw new DOMException("The operation was aborted.", "AbortError");
|
|
141
141
|
};
|
|
142
|
-
function
|
|
143
|
-
const o =
|
|
142
|
+
function Rt(e, t, n) {
|
|
143
|
+
const o = Vo(t), s = e.slice(o, o + n), r = o + s.length, l = r < e.length;
|
|
144
144
|
return {
|
|
145
145
|
slice: s,
|
|
146
|
-
pageInfo: { hasNextPage:
|
|
146
|
+
pageInfo: { hasNextPage: l, endCursor: l ? Qo(r) : null }
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
|
-
const
|
|
149
|
+
const Zo = /* @__PURE__ */ new Map([
|
|
150
150
|
["COMPLETED", (e) => {
|
|
151
151
|
var t;
|
|
152
152
|
return ((t = e.progress) == null ? void 0 : t.status) === "complete";
|
|
@@ -166,55 +166,55 @@ const jo = /* @__PURE__ */ new Map([
|
|
|
166
166
|
return ((t = e.progress) == null ? void 0 : t.status) !== "complete" && ((n = e.progress) == null ? void 0 : n.status) !== "in_progress";
|
|
167
167
|
}
|
|
168
168
|
]
|
|
169
|
-
]),
|
|
170
|
-
function
|
|
169
|
+
]), Xo = { module: { completionStatus: ["eq"] } };
|
|
170
|
+
function Jo(e) {
|
|
171
171
|
if (e.target !== "module" || e.field !== "completionStatus" || e.op !== "eq")
|
|
172
172
|
throw new Error(
|
|
173
173
|
`in-memory adapter cannot compile ${e.target}.${e.field} ${e.op}`
|
|
174
174
|
);
|
|
175
|
-
const t = typeof e.value == "string" ?
|
|
175
|
+
const t = typeof e.value == "string" ? Zo.get(e.value) : void 0;
|
|
176
176
|
if (!t) throw new Error(`unknown completionStatus "${String(e.value)}"`);
|
|
177
177
|
return t;
|
|
178
178
|
}
|
|
179
|
-
function
|
|
179
|
+
function oc(e, t = {}) {
|
|
180
180
|
const n = (s) => e.itemsByModuleId[s] ?? [], o = (s) => {
|
|
181
181
|
if (s !== e.courseId)
|
|
182
|
-
throw new
|
|
182
|
+
throw new Ko(e.courseId, s);
|
|
183
183
|
};
|
|
184
184
|
return {
|
|
185
|
-
capabilities:
|
|
185
|
+
capabilities: Xo,
|
|
186
186
|
async listModules({
|
|
187
187
|
courseId: s,
|
|
188
188
|
cursor: r,
|
|
189
|
-
pageSize:
|
|
189
|
+
pageSize: l,
|
|
190
190
|
includeItems: a,
|
|
191
|
-
filter:
|
|
192
|
-
inlineItemsFirst:
|
|
193
|
-
signal:
|
|
191
|
+
filter: u,
|
|
192
|
+
inlineItemsFirst: c,
|
|
193
|
+
signal: d
|
|
194
194
|
}) {
|
|
195
195
|
var w;
|
|
196
|
-
|
|
197
|
-
const
|
|
198
|
-
return { modules: f.map((
|
|
199
|
-
const
|
|
200
|
-
return { ...
|
|
201
|
-
}), pageInfo:
|
|
196
|
+
Lt(d), o(s), (w = t.onRequest) == null || w.call(t, "listModules", { operation: "listModules", courseId: s });
|
|
197
|
+
const m = u ? e.modules.filter(Jo(u)) : e.modules, { slice: f, pageInfo: S } = Rt(m, r, l), h = Math.min(c ?? ut, ut);
|
|
198
|
+
return { modules: f.map((E) => {
|
|
199
|
+
const P = n(E.id), z = a && P.length <= h;
|
|
200
|
+
return { ...E, itemCount: P.length, items: z ? P : void 0 };
|
|
201
|
+
}), pageInfo: S };
|
|
202
202
|
},
|
|
203
203
|
async listModuleItems({
|
|
204
204
|
courseId: s,
|
|
205
205
|
moduleId: r,
|
|
206
|
-
cursor:
|
|
206
|
+
cursor: l,
|
|
207
207
|
pageSize: a,
|
|
208
|
-
signal:
|
|
208
|
+
signal: u
|
|
209
209
|
}) {
|
|
210
|
-
var
|
|
211
|
-
|
|
212
|
-
const { slice:
|
|
213
|
-
return { items:
|
|
210
|
+
var m;
|
|
211
|
+
Lt(u), o(s), (m = t.onRequest) == null || m.call(t, "listModuleItems", { operation: "listModuleItems", courseId: s, moduleId: r });
|
|
212
|
+
const { slice: c, pageInfo: d } = Rt(n(r), l, a);
|
|
213
|
+
return { items: c, pageInfo: d };
|
|
214
214
|
}
|
|
215
215
|
};
|
|
216
216
|
}
|
|
217
|
-
class
|
|
217
|
+
class En extends Error {
|
|
218
218
|
constructor(t, n, o) {
|
|
219
219
|
const s = t === "module" ? "module" : "module item";
|
|
220
220
|
super(
|
|
@@ -222,11 +222,11 @@ class yn extends Error {
|
|
|
222
222
|
), this.name = "PartialCanvasResponseError", this.subject = t, this.id = n, this.field = o;
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
|
-
function
|
|
225
|
+
function Cn(e, t, n) {
|
|
226
226
|
if (e != null) return e;
|
|
227
|
-
throw new
|
|
227
|
+
throw new En(t, n, "published");
|
|
228
228
|
}
|
|
229
|
-
function
|
|
229
|
+
function es(e, t) {
|
|
230
230
|
if (e.onUnsupportedItem) {
|
|
231
231
|
e.onUnsupportedItem(t);
|
|
232
232
|
return;
|
|
@@ -235,7 +235,7 @@ function Ho(e, t) {
|
|
|
235
235
|
`[platform-modules] dropped module item ${t.id}: content type "${t.typename ?? "null"}" is outside the closed ModuleItemType enum. Pass \`onUnsupportedItem\` to handle these yourself.`
|
|
236
236
|
);
|
|
237
237
|
}
|
|
238
|
-
const
|
|
238
|
+
const ts = {
|
|
239
239
|
Assignment: "assignment",
|
|
240
240
|
Quiz: "quiz",
|
|
241
241
|
Discussion: "discussion",
|
|
@@ -247,21 +247,21 @@ const Ko = {
|
|
|
247
247
|
SubHeader: "sub_header",
|
|
248
248
|
PeerReviewSubAssignment: "assignment"
|
|
249
249
|
};
|
|
250
|
-
function
|
|
250
|
+
function ns(e) {
|
|
251
251
|
const t = e == null ? void 0 : e.__typename;
|
|
252
252
|
if (!t) return null;
|
|
253
|
-
const n =
|
|
253
|
+
const n = ts[t];
|
|
254
254
|
return n ? n === "assignment" && (e == null ? void 0 : e.isNewQuiz) === !0 ? "quiz" : n : null;
|
|
255
255
|
}
|
|
256
|
-
const
|
|
257
|
-
function
|
|
256
|
+
const os = /^P(?!$)(?:(\d+(?:\.\d+)?)W)?(?:(\d+(?:\.\d+)?)D)?(?:T(?!$)(?:(\d+(?:\.\d+)?)H)?(?:(\d+(?:\.\d+)?)M)?(?:(\d+(?:\.\d+)?)S)?)?$/;
|
|
257
|
+
function ss(e) {
|
|
258
258
|
if (!e) return null;
|
|
259
|
-
const t =
|
|
259
|
+
const t = os.exec(e);
|
|
260
260
|
if (!t) return null;
|
|
261
|
-
const [, n, o, s, r,
|
|
261
|
+
const [, n, o, s, r, l] = t, a = Number(n ?? 0) * 7 * 24 * 60 + Number(o ?? 0) * 24 * 60 + Number(s ?? 0) * 60 + Number(r ?? 0) + Number(l ?? 0) / 60;
|
|
262
262
|
return Math.round(a);
|
|
263
263
|
}
|
|
264
|
-
const
|
|
264
|
+
const rs = /* @__PURE__ */ new Set([
|
|
265
265
|
"must_view",
|
|
266
266
|
"must_mark_done",
|
|
267
267
|
"must_contribute",
|
|
@@ -269,42 +269,42 @@ const Xo = /* @__PURE__ */ new Set([
|
|
|
269
269
|
"min_score",
|
|
270
270
|
"min_percentage"
|
|
271
271
|
]);
|
|
272
|
-
function
|
|
273
|
-
return
|
|
272
|
+
function is(e) {
|
|
273
|
+
return rs.has(e) ? e : "unknown";
|
|
274
274
|
}
|
|
275
|
-
function
|
|
275
|
+
function ls(e) {
|
|
276
276
|
return {
|
|
277
277
|
itemId: String(e.id),
|
|
278
|
-
type:
|
|
278
|
+
type: is(e.type),
|
|
279
279
|
minScore: e.minScore ?? null,
|
|
280
280
|
minPercentage: e.minPercentage ?? null
|
|
281
281
|
};
|
|
282
282
|
}
|
|
283
|
-
function
|
|
283
|
+
function wn(e) {
|
|
284
284
|
return {
|
|
285
285
|
hasNextPage: (e == null ? void 0 : e.hasNextPage) ?? !1,
|
|
286
286
|
endCursor: (e == null ? void 0 : e.endCursor) ?? null
|
|
287
287
|
};
|
|
288
288
|
}
|
|
289
|
-
const
|
|
290
|
-
function
|
|
289
|
+
const as = /* @__PURE__ */ new Set(["min_score", "min_percentage"]);
|
|
290
|
+
function cs(e) {
|
|
291
291
|
var t;
|
|
292
292
|
for (const n of ((t = e == null ? void 0 : e.submissionsConnection) == null ? void 0 : t.nodes) ?? [])
|
|
293
293
|
if (n) return n;
|
|
294
294
|
return null;
|
|
295
295
|
}
|
|
296
|
-
function
|
|
296
|
+
function vn(e, t) {
|
|
297
297
|
if (!e) return;
|
|
298
298
|
const n = new Map(t.map((r) => [r.itemId, r.type])), o = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Map();
|
|
299
299
|
for (const r of e.requirementsMet ?? []) {
|
|
300
300
|
if (!r) continue;
|
|
301
|
-
const
|
|
302
|
-
n.get(
|
|
301
|
+
const l = String(r.id);
|
|
302
|
+
n.get(l) === r.type && o.add(l);
|
|
303
303
|
}
|
|
304
304
|
for (const r of e.incompleteRequirements ?? []) {
|
|
305
305
|
if (!r) continue;
|
|
306
|
-
const
|
|
307
|
-
n.get(
|
|
306
|
+
const l = String(r.id);
|
|
307
|
+
n.get(l) === r.type && as.has(r.type) && s.set(l, r.score ?? null);
|
|
308
308
|
}
|
|
309
309
|
return {
|
|
310
310
|
locked: e.locked === !0 || e.workflowState === "locked",
|
|
@@ -315,7 +315,7 @@ function Tn(e, t) {
|
|
|
315
315
|
incompleteRequirementScores: s
|
|
316
316
|
};
|
|
317
317
|
}
|
|
318
|
-
const
|
|
318
|
+
const us = {
|
|
319
319
|
LOCKED: "locked",
|
|
320
320
|
MISSING: "missing",
|
|
321
321
|
INCOMPLETE: "incomplete",
|
|
@@ -323,11 +323,11 @@ const os = {
|
|
|
323
323
|
IN_PROGRESS: "in_progress",
|
|
324
324
|
NOT_STARTED: "not_started"
|
|
325
325
|
};
|
|
326
|
-
function
|
|
326
|
+
function ds(e) {
|
|
327
327
|
if (e != null)
|
|
328
|
-
return
|
|
328
|
+
return us[e];
|
|
329
329
|
}
|
|
330
|
-
const
|
|
330
|
+
const ms = {
|
|
331
331
|
LOCKED: "locked",
|
|
332
332
|
MISSING: "missing",
|
|
333
333
|
MISSING_AND_INCOMPLETE: "missing_and_incomplete",
|
|
@@ -336,58 +336,58 @@ const rs = {
|
|
|
336
336
|
IN_PROGRESS: "in_progress",
|
|
337
337
|
NOT_STARTED: "not_started"
|
|
338
338
|
};
|
|
339
|
-
function
|
|
339
|
+
function ps(e) {
|
|
340
340
|
if (e != null)
|
|
341
|
-
return
|
|
341
|
+
return ms[e];
|
|
342
342
|
}
|
|
343
|
-
function
|
|
344
|
-
var a,
|
|
343
|
+
function gs(e, t, n) {
|
|
344
|
+
var a, u;
|
|
345
345
|
if (!n) return;
|
|
346
|
-
const o = e.requirementCount ?? t.length, s = Math.min(n.requirementsMetItemIds.size, o), r = ((a = e.submissionStatistics) == null ? void 0 : a.missingAssignmentCount) ?? 0,
|
|
347
|
-
(
|
|
346
|
+
const o = e.requirementCount ?? t.length, s = Math.min(n.requirementsMetItemIds.size, o), r = ((a = e.submissionStatistics) == null ? void 0 : a.missingAssignmentCount) ?? 0, l = [...n.incompleteRequirementScores.values()].filter(
|
|
347
|
+
(c) => c != null
|
|
348
348
|
).length;
|
|
349
349
|
return {
|
|
350
|
-
status:
|
|
350
|
+
status: ps(e.moduleStatus) ?? (n.locked ? "locked" : void 0),
|
|
351
351
|
requirementsMet: s,
|
|
352
352
|
requirementCount: o,
|
|
353
353
|
percentComplete: o > 0 ? Math.round(s / o * 100) : 0,
|
|
354
|
-
nextDueAt: ((
|
|
354
|
+
nextDueAt: ((u = e.submissionStatistics) == null ? void 0 : u.nextDueAt) ?? null,
|
|
355
355
|
missingCount: r,
|
|
356
|
-
incompleteCount:
|
|
356
|
+
incompleteCount: l
|
|
357
357
|
};
|
|
358
358
|
}
|
|
359
|
-
function
|
|
360
|
-
var
|
|
361
|
-
const r = String(e._id),
|
|
362
|
-
if (!
|
|
363
|
-
return
|
|
364
|
-
const a =
|
|
359
|
+
function fs(e, t, n, o = {}, s) {
|
|
360
|
+
var c, d, m;
|
|
361
|
+
const r = String(e._id), l = ns(e.content);
|
|
362
|
+
if (!l)
|
|
363
|
+
return es(o, { id: r, typename: ((c = e.content) == null ? void 0 : c.__typename) ?? null }), null;
|
|
364
|
+
const a = cs(e.content), u = n.get(r) ?? null;
|
|
365
365
|
return {
|
|
366
366
|
id: r,
|
|
367
367
|
moduleId: t,
|
|
368
368
|
title: e.title ?? "",
|
|
369
|
-
type:
|
|
369
|
+
type: l,
|
|
370
370
|
position: e.position ?? 0,
|
|
371
371
|
indent: e.indent ?? 0,
|
|
372
|
-
published:
|
|
372
|
+
published: Cn(e.published, "moduleItem", r),
|
|
373
373
|
url: e.url ?? null,
|
|
374
374
|
newTab: e.newTab ?? !1,
|
|
375
|
-
completionRequirement:
|
|
376
|
-
dueAt: (a == null ? void 0 : a.cachedDueDate) ?? ((
|
|
377
|
-
status: s ?
|
|
378
|
-
pointsPossible: ((
|
|
379
|
-
extensions:
|
|
375
|
+
completionRequirement: u,
|
|
376
|
+
dueAt: (a == null ? void 0 : a.cachedDueDate) ?? ((d = e.content) == null ? void 0 : d.dueAt) ?? null,
|
|
377
|
+
status: s ? ds(e.moduleItemStatus) ?? (s.locked ? "locked" : void 0) : void 0,
|
|
378
|
+
pointsPossible: ((m = e.content) == null ? void 0 : m.pointsPossible) ?? null,
|
|
379
|
+
extensions: Mt(
|
|
380
380
|
void 0,
|
|
381
|
-
|
|
381
|
+
ss(e.estimatedDuration)
|
|
382
382
|
)
|
|
383
383
|
};
|
|
384
384
|
}
|
|
385
|
-
function
|
|
385
|
+
function Pn(e, t, n, o, s) {
|
|
386
386
|
const r = [];
|
|
387
|
-
for (const
|
|
388
|
-
if (!
|
|
389
|
-
const a =
|
|
390
|
-
|
|
387
|
+
for (const l of e ?? []) {
|
|
388
|
+
if (!l) continue;
|
|
389
|
+
const a = fs(
|
|
390
|
+
l,
|
|
391
391
|
t,
|
|
392
392
|
n,
|
|
393
393
|
o,
|
|
@@ -397,59 +397,59 @@ function En(e, t, n, o, s) {
|
|
|
397
397
|
}
|
|
398
398
|
return r;
|
|
399
399
|
}
|
|
400
|
-
function
|
|
400
|
+
function An(e) {
|
|
401
401
|
const t = [], n = /* @__PURE__ */ new Map();
|
|
402
402
|
for (const o of e ?? []) {
|
|
403
403
|
if (!o) continue;
|
|
404
|
-
const s =
|
|
404
|
+
const s = ls(o);
|
|
405
405
|
t.push(s), n.set(s.itemId, s);
|
|
406
406
|
}
|
|
407
407
|
return { list: t, byItemId: n };
|
|
408
408
|
}
|
|
409
|
-
function
|
|
410
|
-
var
|
|
409
|
+
function hs(e, t = {}) {
|
|
410
|
+
var c, d;
|
|
411
411
|
const n = String(e._id);
|
|
412
412
|
if (e.moduleItemsTotalCount == null)
|
|
413
|
-
throw new
|
|
414
|
-
const { list: o, byItemId: s } =
|
|
413
|
+
throw new En("module", n, "moduleItemsTotalCount");
|
|
414
|
+
const { list: o, byItemId: s } = An(e.completionRequirements), r = e.moduleItemsConnection, l = r != null && !((c = r.pageInfo) != null && c.hasNextPage), a = vn(e.progression, o), u = l ? Pn(r.nodes, n, s, t, a) : void 0;
|
|
415
415
|
return {
|
|
416
416
|
id: n,
|
|
417
417
|
name: e.name ?? "",
|
|
418
418
|
position: e.position ?? 0,
|
|
419
|
-
published:
|
|
419
|
+
published: Cn(e.published, "module", n),
|
|
420
420
|
itemCount: e.moduleItemsTotalCount,
|
|
421
|
-
items:
|
|
421
|
+
items: u,
|
|
422
422
|
unlockAt: e.unlockAt ?? null,
|
|
423
423
|
prerequisiteModules: (e.prerequisites ?? []).filter(
|
|
424
|
-
(
|
|
425
|
-
).map((
|
|
424
|
+
(m) => m != null
|
|
425
|
+
).map((m) => ({ id: String(m.id), name: m.name ?? "" })),
|
|
426
426
|
requirementCount: e.requirementCount ?? null,
|
|
427
427
|
requireSequentialProgress: e.requireSequentialProgress ?? !1,
|
|
428
428
|
completionRequirements: o,
|
|
429
|
-
progress:
|
|
430
|
-
collapsed: ((
|
|
429
|
+
progress: gs(e, o, a),
|
|
430
|
+
collapsed: ((d = e.progression) == null ? void 0 : d.collapsed) ?? null
|
|
431
431
|
};
|
|
432
432
|
}
|
|
433
|
-
function
|
|
433
|
+
function Is(e, t = {}) {
|
|
434
434
|
var s;
|
|
435
435
|
const n = (s = e == null ? void 0 : e.legacyNode) == null ? void 0 : s.modulesConnection, o = [];
|
|
436
436
|
for (const r of (n == null ? void 0 : n.nodes) ?? [])
|
|
437
|
-
r && o.push(
|
|
438
|
-
return { modules: o, pageInfo:
|
|
437
|
+
r && o.push(hs(r, t));
|
|
438
|
+
return { modules: o, pageInfo: wn(n == null ? void 0 : n.pageInfo) };
|
|
439
439
|
}
|
|
440
|
-
function
|
|
441
|
-
const o = e == null ? void 0 : e.legacyNode, { list: s, byItemId: r } =
|
|
440
|
+
function bs(e, t, n = {}) {
|
|
441
|
+
const o = e == null ? void 0 : e.legacyNode, { list: s, byItemId: r } = An(o == null ? void 0 : o.completionRequirements), l = o == null ? void 0 : o.moduleItemsConnection, a = vn(o == null ? void 0 : o.progression, s);
|
|
442
442
|
return {
|
|
443
|
-
items:
|
|
444
|
-
pageInfo:
|
|
443
|
+
items: Pn(l == null ? void 0 : l.nodes, t, r, n, a),
|
|
444
|
+
pageInfo: wn(l == null ? void 0 : l.pageInfo)
|
|
445
445
|
};
|
|
446
446
|
}
|
|
447
|
-
const
|
|
447
|
+
const Ms = xe`
|
|
448
448
|
fragment PlatformModulesSubmissionFields on Submission {
|
|
449
449
|
_id
|
|
450
450
|
cachedDueDate
|
|
451
451
|
}
|
|
452
|
-
`,
|
|
452
|
+
`, xn = xe`
|
|
453
453
|
fragment PlatformModulesItemFields on ModuleItem {
|
|
454
454
|
_id
|
|
455
455
|
title
|
|
@@ -497,8 +497,8 @@ const ms = xe`
|
|
|
497
497
|
}
|
|
498
498
|
}
|
|
499
499
|
}
|
|
500
|
-
${
|
|
501
|
-
`,
|
|
500
|
+
${Ms}
|
|
501
|
+
`, Ln = xe`
|
|
502
502
|
fragment PlatformModulesProgressionFields on ModuleProgression {
|
|
503
503
|
workflowState
|
|
504
504
|
completed
|
|
@@ -518,7 +518,7 @@ const ms = xe`
|
|
|
518
518
|
score
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
|
-
`,
|
|
521
|
+
`, Ss = xe`
|
|
522
522
|
query PlatformModulesGetModules(
|
|
523
523
|
$courseId: ID!
|
|
524
524
|
$first: Int!
|
|
@@ -578,9 +578,9 @@ const ms = xe`
|
|
|
578
578
|
}
|
|
579
579
|
}
|
|
580
580
|
}
|
|
581
|
-
${
|
|
582
|
-
${
|
|
583
|
-
`,
|
|
581
|
+
${xn}
|
|
582
|
+
${Ln}
|
|
583
|
+
`, ys = xe`
|
|
584
584
|
query PlatformModulesGetModuleItems(
|
|
585
585
|
$moduleId: ID!
|
|
586
586
|
$first: Int!
|
|
@@ -611,150 +611,150 @@ const ms = xe`
|
|
|
611
611
|
}
|
|
612
612
|
}
|
|
613
613
|
}
|
|
614
|
-
${
|
|
615
|
-
${
|
|
614
|
+
${xn}
|
|
615
|
+
${Ln}
|
|
616
616
|
`;
|
|
617
|
-
function
|
|
617
|
+
function Rn() {
|
|
618
618
|
return new DOMException("The operation was aborted.", "AbortError");
|
|
619
619
|
}
|
|
620
|
-
function
|
|
621
|
-
if (e != null && e.aborted) throw
|
|
620
|
+
function je(e) {
|
|
621
|
+
if (e != null && e.aborted) throw Rn();
|
|
622
622
|
}
|
|
623
|
-
function
|
|
623
|
+
function kt(e, t) {
|
|
624
624
|
return t ? new Promise((n, o) => {
|
|
625
|
-
const s = () => o(
|
|
625
|
+
const s = () => o(Rn());
|
|
626
626
|
t.addEventListener("abort", s, { once: !0 }), e.then(n, o).finally(() => t.removeEventListener("abort", s));
|
|
627
627
|
}) : e;
|
|
628
628
|
}
|
|
629
|
-
const
|
|
629
|
+
const Dt = [
|
|
630
630
|
"COMPLETED",
|
|
631
631
|
"INCOMPLETE",
|
|
632
632
|
"IN_PROGRESS",
|
|
633
633
|
"NOT_STARTED"
|
|
634
|
-
],
|
|
634
|
+
], _s = {
|
|
635
635
|
module: { completionStatus: ["eq"] }
|
|
636
636
|
};
|
|
637
|
-
function
|
|
637
|
+
function Ts(e) {
|
|
638
638
|
if (!e) return null;
|
|
639
639
|
if (e.target !== "module" || e.field !== "completionStatus" || e.op !== "eq")
|
|
640
640
|
throw new Error(
|
|
641
641
|
`Canvas GraphQL cannot serve ${e.target}.${e.field} "${e.op}". Only module.completionStatus eq is compiled here.`
|
|
642
642
|
);
|
|
643
643
|
const t = e.value;
|
|
644
|
-
if (!
|
|
644
|
+
if (!Dt.includes(t))
|
|
645
645
|
throw new Error(
|
|
646
|
-
`"${e.value}" is not a ModuleCompletionStatus (${
|
|
646
|
+
`"${e.value}" is not a ModuleCompletionStatus (${Dt.join(", ")}).`
|
|
647
647
|
);
|
|
648
648
|
return { completionStatus: t };
|
|
649
649
|
}
|
|
650
|
-
function
|
|
650
|
+
function sc({
|
|
651
651
|
executeQuery: e,
|
|
652
|
-
inlineItemLimit: t =
|
|
653
|
-
nodeBudget: n =
|
|
652
|
+
inlineItemLimit: t = ut,
|
|
653
|
+
nodeBudget: n = St,
|
|
654
654
|
onUnsupportedItem: o,
|
|
655
655
|
studentId: s,
|
|
656
656
|
validate: r = !0,
|
|
657
|
-
capabilities:
|
|
657
|
+
capabilities: l = _s
|
|
658
658
|
}) {
|
|
659
|
-
const a = s != null,
|
|
659
|
+
const a = s != null, u = { onUnsupportedItem: o };
|
|
660
660
|
return {
|
|
661
661
|
inlineNodeBudget: n,
|
|
662
|
-
capabilities:
|
|
662
|
+
capabilities: l,
|
|
663
663
|
async listModules({
|
|
664
|
-
courseId:
|
|
665
|
-
cursor:
|
|
666
|
-
pageSize:
|
|
664
|
+
courseId: c,
|
|
665
|
+
cursor: d,
|
|
666
|
+
pageSize: m,
|
|
667
667
|
includeItems: f,
|
|
668
|
-
filter:
|
|
669
|
-
inlineItemsFirst:
|
|
668
|
+
filter: S,
|
|
669
|
+
inlineItemsFirst: h,
|
|
670
670
|
inlineFirst: b,
|
|
671
671
|
signal: w
|
|
672
672
|
}) {
|
|
673
|
-
|
|
674
|
-
const
|
|
675
|
-
e(
|
|
676
|
-
courseId:
|
|
677
|
-
first:
|
|
678
|
-
after:
|
|
673
|
+
je(w);
|
|
674
|
+
const E = f ? Math.min(b ?? m, m) : m, P = Math.min(h ?? t, t), z = Math.max(1, Math.min(P, Math.floor(n / E))), L = await kt(
|
|
675
|
+
e(Ss, {
|
|
676
|
+
courseId: c,
|
|
677
|
+
first: E,
|
|
678
|
+
after: d ?? null,
|
|
679
679
|
includeItems: f,
|
|
680
|
-
itemsFirst:
|
|
680
|
+
itemsFirst: z,
|
|
681
681
|
includeSubmissions: a,
|
|
682
682
|
studentId: s ?? null,
|
|
683
|
-
filter:
|
|
683
|
+
filter: Ts(S)
|
|
684
684
|
}),
|
|
685
685
|
w
|
|
686
686
|
);
|
|
687
|
-
|
|
688
|
-
const
|
|
689
|
-
return r ?
|
|
687
|
+
je(w);
|
|
688
|
+
const G = Is(L, u);
|
|
689
|
+
return r ? Yo.parse(G) : G;
|
|
690
690
|
},
|
|
691
691
|
async listModuleItems({
|
|
692
|
-
moduleId:
|
|
693
|
-
cursor:
|
|
694
|
-
pageSize:
|
|
692
|
+
moduleId: c,
|
|
693
|
+
cursor: d,
|
|
694
|
+
pageSize: m,
|
|
695
695
|
signal: f
|
|
696
696
|
}) {
|
|
697
|
-
|
|
698
|
-
const
|
|
699
|
-
e(
|
|
700
|
-
moduleId:
|
|
701
|
-
first:
|
|
702
|
-
after:
|
|
697
|
+
je(f);
|
|
698
|
+
const S = await kt(
|
|
699
|
+
e(ys, {
|
|
700
|
+
moduleId: c,
|
|
701
|
+
first: m,
|
|
702
|
+
after: d ?? null,
|
|
703
703
|
includeSubmissions: a,
|
|
704
704
|
studentId: s ?? null
|
|
705
705
|
}),
|
|
706
706
|
f
|
|
707
707
|
);
|
|
708
|
-
|
|
709
|
-
const
|
|
710
|
-
return r ?
|
|
708
|
+
je(f);
|
|
709
|
+
const h = bs(S, c, u);
|
|
710
|
+
return r ? Ho.parse(h) : h;
|
|
711
711
|
}
|
|
712
712
|
};
|
|
713
713
|
}
|
|
714
|
-
const
|
|
715
|
-
all:
|
|
716
|
-
course: (e) => [...
|
|
717
|
-
list: (e, t = {}) => [...
|
|
718
|
-
items: (e, t, n = {}) => [...
|
|
714
|
+
const be = ["platform-modules"], Le = {
|
|
715
|
+
all: be,
|
|
716
|
+
course: (e) => [...be, e],
|
|
717
|
+
list: (e, t = {}) => [...be, e, "list", t],
|
|
718
|
+
items: (e, t, n = {}) => [...be, e, "module", t, "items", n]
|
|
719
719
|
};
|
|
720
|
-
function
|
|
721
|
-
return [...
|
|
720
|
+
function Es(e) {
|
|
721
|
+
return [...be, e, "list"];
|
|
722
722
|
}
|
|
723
|
-
function
|
|
724
|
-
return [...
|
|
723
|
+
function dt(e, t) {
|
|
724
|
+
return [...be, e, "module", t, "items"];
|
|
725
725
|
}
|
|
726
|
-
function
|
|
727
|
-
const s = o ? Le.items(t, n, o) :
|
|
726
|
+
function Cs(e, t, n, o) {
|
|
727
|
+
const s = o ? Le.items(t, n, o) : dt(t, n);
|
|
728
728
|
return e.invalidateQueries({ queryKey: s });
|
|
729
729
|
}
|
|
730
|
-
function
|
|
731
|
-
const o = n ? Le.list(t, n) :
|
|
730
|
+
function Nt(e, t, n) {
|
|
731
|
+
const o = n ? Le.list(t, n) : Es(t);
|
|
732
732
|
return e.invalidateQueries({ queryKey: o });
|
|
733
733
|
}
|
|
734
|
-
function
|
|
734
|
+
function rc(e, t) {
|
|
735
735
|
return e.invalidateQueries({ queryKey: Le.course(t) });
|
|
736
736
|
}
|
|
737
|
-
const
|
|
738
|
-
function
|
|
737
|
+
const We = (e, t) => Object.prototype.hasOwnProperty.call(e, t);
|
|
738
|
+
function Ke(e, t) {
|
|
739
739
|
const n = Object.entries(t ?? {}).filter(([, o]) => o !== void 0);
|
|
740
740
|
return { ...e, ...Object.fromEntries(n) };
|
|
741
741
|
}
|
|
742
|
-
function
|
|
742
|
+
function fe(e, t = {}) {
|
|
743
743
|
const n = Object.keys(e).map((s) => [
|
|
744
744
|
s,
|
|
745
|
-
|
|
746
|
-
]), o = Object.keys(t).filter((s) => !
|
|
745
|
+
Ke(e[s], We(t, s) ? t[s] : void 0)
|
|
746
|
+
]), o = Object.keys(t).filter((s) => !We(e, s)).sort().map((s) => [s, Ke({}, t[s])]);
|
|
747
747
|
return Object.fromEntries([...n, ...o]);
|
|
748
748
|
}
|
|
749
|
-
function
|
|
750
|
-
if (!(!
|
|
749
|
+
function Me(e, t) {
|
|
750
|
+
if (!(!We(e, t) || e[t].hidden))
|
|
751
751
|
return e[t];
|
|
752
752
|
}
|
|
753
|
-
function
|
|
754
|
-
return Object.keys(e).filter((t) =>
|
|
753
|
+
function Ze(e) {
|
|
754
|
+
return Object.keys(e).filter((t) => Me(e, t) !== void 0).map((t) => ({ ...e[t], key: t })).sort((t, n) => t.order - n.order);
|
|
755
755
|
}
|
|
756
|
-
const
|
|
757
|
-
function
|
|
756
|
+
const ic = 1e3;
|
|
757
|
+
function ws({
|
|
758
758
|
queryClient: e,
|
|
759
759
|
courseId: t,
|
|
760
760
|
module: n,
|
|
@@ -765,159 +765,161 @@ function Ms({
|
|
|
765
765
|
item: o,
|
|
766
766
|
invalidateModuleItems: async (s) => {
|
|
767
767
|
await Promise.all([
|
|
768
|
-
|
|
769
|
-
|
|
768
|
+
Cs(e, t, s),
|
|
769
|
+
Nt(e, t)
|
|
770
770
|
]);
|
|
771
771
|
},
|
|
772
|
-
invalidateModuleList: () =>
|
|
772
|
+
invalidateModuleList: () => Nt(e, t)
|
|
773
773
|
};
|
|
774
774
|
}
|
|
775
|
-
function
|
|
776
|
-
return
|
|
775
|
+
function lc(e, t) {
|
|
776
|
+
return Ze(e).filter(
|
|
777
777
|
(n) => n.visible == null || n.visible(t) === !0
|
|
778
778
|
);
|
|
779
779
|
}
|
|
780
|
-
const
|
|
781
|
-
pageTitle:
|
|
782
|
-
modulesLoadedAnnouncement:
|
|
783
|
-
expandAllModules:
|
|
784
|
-
collapseAllModules:
|
|
785
|
-
expandAllLoadingItems:
|
|
786
|
-
expandAllItemsLoaded:
|
|
787
|
-
modulesExpandedAnnouncement:
|
|
788
|
-
modulesCollapsedAnnouncement:
|
|
789
|
-
filterScopeHint:
|
|
790
|
-
modulesLoadErrorAlert:
|
|
791
|
-
modulesLoadingSpinnerLabel:
|
|
792
|
-
noModulesEmptyState:
|
|
793
|
-
filteredEmptyState:
|
|
794
|
-
noFilterMatches:
|
|
795
|
-
clearFilters:
|
|
796
|
-
loadMoreModulesLoading:
|
|
797
|
-
loadMoreModules:
|
|
798
|
-
allModulesLoaded:
|
|
799
|
-
filterGroupLabel:
|
|
800
|
-
filterAll:
|
|
801
|
-
filterInProgress:
|
|
802
|
-
filterComplete:
|
|
803
|
-
filterDueThisWeek:
|
|
804
|
-
filterMissing:
|
|
805
|
-
lockedByPrerequisiteByline:
|
|
806
|
-
lockedByPrerequisitesByline:
|
|
807
|
-
lockedByPrerequisitesCount:
|
|
808
|
-
moduleNameWithLabel:
|
|
809
|
-
moduleProgressScreenReaderLabel:
|
|
810
|
-
itemsLoadedAnnouncement:
|
|
811
|
-
itemsLoadErrorAlert:
|
|
812
|
-
itemsLoadingSpinnerLabel:
|
|
813
|
-
itemsLoadingText:
|
|
814
|
-
noItemsEmptyState:
|
|
815
|
-
loadMoreItemsLoading:
|
|
816
|
-
loadMoreItems:
|
|
817
|
-
moduleUnpublishedBadge:
|
|
818
|
-
collapseModule:
|
|
819
|
-
expandModule:
|
|
820
|
-
moduleStatusNotStarted:
|
|
821
|
-
moduleStatusInProgress:
|
|
822
|
-
moduleStatusComplete:
|
|
823
|
-
moduleStatusMissing:
|
|
824
|
-
moduleStatusIncomplete:
|
|
825
|
-
moduleStatusMissingAndIncomplete:
|
|
826
|
-
moduleStatusLocked:
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
780
|
+
const vs = "Course modules", Ps = { one: "%{count} module loaded", other: "%{count} modules loaded" }, As = "Expand all modules", xs = "Collapse all modules", Ls = { one: "Loading items in %{count} module…", other: "Loading items in %{count} modules…" }, Rs = "All items loaded", ks = { one: "%{count} module expanded", other: "%{count} modules expanded" }, Ds = { one: "%{count} module collapsed", other: "%{count} modules collapsed" }, Ns = "This filter runs on the modules loaded so far — load more to filter the rest of the course.", Os = "Modules failed to load: %{message}", qs = "Loading modules", Fs = "This course has no modules.", Us = { one: "The only loaded module does not match this filter.", other: "None of the %{count} loaded modules match this filter." }, zs = "No modules match this filter.", $s = "Clear filters", Bs = "Loading more modules…", Gs = "Load more modules (%{count} loaded)", js = { one: "The only module in this course is loaded.", other: "All %{count} modules in this course are loaded." }, Ys = "Filter", Hs = "All", Ws = "In progress", Ks = "Complete", Qs = "Due this week", Vs = "Missing", Zs = "Locked until %{name} is completed.", Xs = "Locked until %{prerequisites} are completed.", Js = "%{count} prerequisites", er = "%{label}. %{name}", tr = "%{name} progress", nr = { one: "%{loaded} of %{count} item loaded in %{name}", other: "%{loaded} of %{count} items loaded in %{name}" }, or = "Items failed to load: %{message}", sr = "Loading items", rr = "Loading…", ir = "No items.", lr = "Loading more items…", ar = "Load more items (%{loaded} of %{count} loaded)", cr = "(unpublished)", ur = "Collapse %{name}", dr = "Expand %{name}", mr = "Not started", pr = "In progress", gr = "All completed", fr = "%{count} Missing", hr = "%{count} Incomplete", Ir = "%{missing} & %{incomplete}", br = "Locked", Mr = "Due soon", Sr = "Not started", yr = "In progress", _r = "Completed", Tr = "Incomplete", Er = "Missing", Cr = "Locked", wr = "Due soon", vr = "Assignment", Pr = "Quiz", Ar = "Discussion", xr = "Page", Lr = "File", Rr = "External URL", kr = "External tool", Dr = "Text header", Nr = "Item type", Or = "Due date", qr = "Points", Fr = "Requirement", Ur = "Estimated duration", zr = "Publish state", $r = "View the item", Br = "Submit the assignment", Gr = "Contribute to the page", jr = "Mark as done", Yr = "Score at least the minimum", Hr = "Score at least %{count}", Wr = "Score at least the minimum percentage", Kr = "Score at least %{count}%", Qr = "Complete the requirement", Vr = "today, %{time}", Zr = "yesterday, %{time}", Xr = "tomorrow, %{time}", Jr = "%{date}, %{time}", ei = "%{time} (%{zone})", ti = "Due %{when}", ni = "Will unlock on %{when}", oi = "Unlocked on %{when}", si = { one: "%{count} pt", other: "%{count} pts" }, ri = { one: "%{percent}% | %{met} of %{count} requirement met", other: "%{percent}% | %{met} of %{count} requirements met" }, ii = { one: "%{percent}% complete, %{met} of %{count} requirement met", other: "%{percent}% complete, %{met} of %{count} requirements met" }, li = "%{percent}%", ai = { one: "%{completedModules} of %{totalModules} module complete", other: "%{completedModules} of %{totalModules} modules complete" }, ci = "(%{itemsSummary})", ui = { one: "%{completedItems} of %{totalItems} item", other: "%{completedItems} of %{totalItems} items" }, di = "Module progress", mi = "%{name}: %{status}", pi = "%{count} min", gi = "Unpublished", fi = "Untitled item", hi = "opens in a new window", Ii = {
|
|
781
|
+
pageTitle: vs,
|
|
782
|
+
modulesLoadedAnnouncement: Ps,
|
|
783
|
+
expandAllModules: As,
|
|
784
|
+
collapseAllModules: xs,
|
|
785
|
+
expandAllLoadingItems: Ls,
|
|
786
|
+
expandAllItemsLoaded: Rs,
|
|
787
|
+
modulesExpandedAnnouncement: ks,
|
|
788
|
+
modulesCollapsedAnnouncement: Ds,
|
|
789
|
+
filterScopeHint: Ns,
|
|
790
|
+
modulesLoadErrorAlert: Os,
|
|
791
|
+
modulesLoadingSpinnerLabel: qs,
|
|
792
|
+
noModulesEmptyState: Fs,
|
|
793
|
+
filteredEmptyState: Us,
|
|
794
|
+
noFilterMatches: zs,
|
|
795
|
+
clearFilters: $s,
|
|
796
|
+
loadMoreModulesLoading: Bs,
|
|
797
|
+
loadMoreModules: Gs,
|
|
798
|
+
allModulesLoaded: js,
|
|
799
|
+
filterGroupLabel: Ys,
|
|
800
|
+
filterAll: Hs,
|
|
801
|
+
filterInProgress: Ws,
|
|
802
|
+
filterComplete: Ks,
|
|
803
|
+
filterDueThisWeek: Qs,
|
|
804
|
+
filterMissing: Vs,
|
|
805
|
+
lockedByPrerequisiteByline: Zs,
|
|
806
|
+
lockedByPrerequisitesByline: Xs,
|
|
807
|
+
lockedByPrerequisitesCount: Js,
|
|
808
|
+
moduleNameWithLabel: er,
|
|
809
|
+
moduleProgressScreenReaderLabel: tr,
|
|
810
|
+
itemsLoadedAnnouncement: nr,
|
|
811
|
+
itemsLoadErrorAlert: or,
|
|
812
|
+
itemsLoadingSpinnerLabel: sr,
|
|
813
|
+
itemsLoadingText: rr,
|
|
814
|
+
noItemsEmptyState: ir,
|
|
815
|
+
loadMoreItemsLoading: lr,
|
|
816
|
+
loadMoreItems: ar,
|
|
817
|
+
moduleUnpublishedBadge: cr,
|
|
818
|
+
collapseModule: ur,
|
|
819
|
+
expandModule: dr,
|
|
820
|
+
moduleStatusNotStarted: mr,
|
|
821
|
+
moduleStatusInProgress: pr,
|
|
822
|
+
moduleStatusComplete: gr,
|
|
823
|
+
moduleStatusMissing: fr,
|
|
824
|
+
moduleStatusIncomplete: hr,
|
|
825
|
+
moduleStatusMissingAndIncomplete: Ir,
|
|
826
|
+
moduleStatusLocked: br,
|
|
827
|
+
moduleStatusDueSoon: Mr,
|
|
828
|
+
itemStatusNotStarted: Sr,
|
|
829
|
+
itemStatusInProgress: yr,
|
|
830
|
+
itemStatusComplete: _r,
|
|
831
|
+
itemStatusIncomplete: Tr,
|
|
832
|
+
itemStatusMissing: Er,
|
|
833
|
+
itemStatusLocked: Cr,
|
|
834
|
+
itemStatusDueSoon: wr,
|
|
835
|
+
itemTypeAssignment: vr,
|
|
836
|
+
itemTypeQuiz: Pr,
|
|
837
|
+
itemTypeDiscussion: Ar,
|
|
838
|
+
itemTypePage: xr,
|
|
839
|
+
itemTypeFile: Lr,
|
|
840
|
+
itemTypeExternalUrl: Rr,
|
|
841
|
+
itemTypeExternalTool: kr,
|
|
842
|
+
itemTypeSubHeader: Dr,
|
|
843
|
+
metaFieldTypeLabel: Nr,
|
|
844
|
+
metaFieldDueAtLabel: Or,
|
|
845
|
+
metaFieldPointsLabel: qr,
|
|
846
|
+
metaFieldRequirementLabel: Fr,
|
|
847
|
+
metaFieldDurationLabel: Ur,
|
|
848
|
+
metaFieldPublishStateLabel: zr,
|
|
849
|
+
requirementMustView: $r,
|
|
850
|
+
requirementMustSubmit: Br,
|
|
851
|
+
requirementMustContribute: Gr,
|
|
852
|
+
requirementMustMarkDone: jr,
|
|
853
|
+
requirementMinScoreUnknown: Yr,
|
|
854
|
+
requirementMinScore: Hr,
|
|
855
|
+
requirementMinPercentageUnknown: Wr,
|
|
856
|
+
requirementMinPercentage: Kr,
|
|
857
|
+
requirementUnknown: Qr,
|
|
858
|
+
dateTimeToday: Vr,
|
|
859
|
+
dateTimeYesterday: Zr,
|
|
860
|
+
dateTimeTomorrow: Xr,
|
|
861
|
+
dateTimeWithDate: Jr,
|
|
862
|
+
timeWithZone: ei,
|
|
863
|
+
dueByline: ti,
|
|
864
|
+
unlockByline: ni,
|
|
865
|
+
unlockedByline: oi,
|
|
866
|
+
pointsAbbreviated: si,
|
|
867
|
+
progressSummary: ri,
|
|
868
|
+
progressScreenReaderValue: ii,
|
|
869
|
+
moduleProgressOverviewPercentLabel: li,
|
|
870
|
+
moduleProgressOverviewSummary: ai,
|
|
871
|
+
moduleProgressOverviewDetail: ci,
|
|
872
|
+
moduleProgressOverviewItemsSummary: ui,
|
|
873
|
+
moduleProgressOverviewGroupLabel: di,
|
|
874
|
+
moduleProgressSegmentLabel: mi,
|
|
875
|
+
durationMinutes: pi,
|
|
876
|
+
itemUnpublishedLabel: gi,
|
|
877
|
+
itemUntitled: fi,
|
|
878
|
+
opensInNewWindow: hi
|
|
879
|
+
}, bi = /%\{(\w+)\}/g, Mi = Ii, Se = "en-US", Si = /* @__PURE__ */ new Map(), yi = /* @__PURE__ */ new Map();
|
|
880
|
+
function kn(e, t, n) {
|
|
879
881
|
const o = e.get(t);
|
|
880
882
|
if (o) return o;
|
|
881
883
|
const s = n();
|
|
882
884
|
return e.set(t, s), s;
|
|
883
885
|
}
|
|
884
|
-
function
|
|
885
|
-
return n ? e.replace(
|
|
886
|
+
function _i(e, t, n) {
|
|
887
|
+
return n ? e.replace(bi, (o, s) => {
|
|
886
888
|
if (!Object.prototype.hasOwnProperty.call(n, s)) return o;
|
|
887
889
|
const r = n[s];
|
|
888
|
-
return typeof r == "number" && Number.isFinite(r) ?
|
|
890
|
+
return typeof r == "number" && Number.isFinite(r) ? kn(yi, t, () => new Intl.NumberFormat(t)).format(r) : String(r);
|
|
889
891
|
}) : e;
|
|
890
892
|
}
|
|
891
|
-
function
|
|
893
|
+
function Ti(e, t, n) {
|
|
892
894
|
const o = n == null ? void 0 : n.count;
|
|
893
895
|
if (typeof o == "number" && Number.isFinite(o)) {
|
|
894
|
-
const s =
|
|
896
|
+
const s = kn(Si, t, () => new Intl.PluralRules(t)).select(o), r = e[s];
|
|
895
897
|
if (typeof r == "string") return r;
|
|
896
898
|
}
|
|
897
899
|
return typeof e.other == "string" ? e.other : void 0;
|
|
898
900
|
}
|
|
899
|
-
function
|
|
901
|
+
function Ot(e, t, n) {
|
|
900
902
|
if (typeof e == "string") return e;
|
|
901
903
|
if (e !== null && typeof e == "object")
|
|
902
|
-
return
|
|
904
|
+
return Ti(e, t, n);
|
|
903
905
|
}
|
|
904
|
-
const
|
|
905
|
-
function
|
|
906
|
-
|
|
906
|
+
const qt = /* @__PURE__ */ new Set();
|
|
907
|
+
function Ei(e) {
|
|
908
|
+
qt.has(e) || (qt.add(e), console.warn(
|
|
907
909
|
`[platform-modules] no translation for "${e}"; it will render as itself. Add it to the catalog passed to ModulesI18nProvider.`
|
|
908
910
|
));
|
|
909
911
|
}
|
|
910
|
-
function
|
|
911
|
-
const r =
|
|
912
|
+
function Ci(e, t, n, o, s) {
|
|
913
|
+
const r = Ot(e == null ? void 0 : e[t], n, s);
|
|
912
914
|
if (typeof r == "string") return r;
|
|
913
|
-
const
|
|
914
|
-
return typeof
|
|
915
|
+
const l = Ot(Mi[t], n, s);
|
|
916
|
+
return typeof l == "string" ? l : (o && Ei(t), t);
|
|
915
917
|
}
|
|
916
|
-
function
|
|
917
|
-
return (o, s) =>
|
|
918
|
+
function Dn(e, t = Se, n = !1) {
|
|
919
|
+
return (o, s) => _i(Ci(e, o, t, n, s), t, s);
|
|
918
920
|
}
|
|
919
|
-
const
|
|
920
|
-
function
|
|
921
|
+
const wi = Dn(), vi = { t: wi, locale: Se }, Nn = on(null);
|
|
922
|
+
function ac({
|
|
921
923
|
translations: e,
|
|
922
924
|
locale: t,
|
|
923
925
|
timezone: n,
|
|
@@ -925,26 +927,26 @@ function Za({
|
|
|
925
927
|
children: s
|
|
926
928
|
}) {
|
|
927
929
|
const r = N(() => {
|
|
928
|
-
const
|
|
930
|
+
const l = t ?? Se;
|
|
929
931
|
return {
|
|
930
|
-
t:
|
|
931
|
-
locale:
|
|
932
|
+
t: Dn(e, l, o),
|
|
933
|
+
locale: l,
|
|
932
934
|
timezone: n
|
|
933
935
|
};
|
|
934
936
|
}, [e, t, n, o]);
|
|
935
|
-
return /* @__PURE__ */
|
|
937
|
+
return /* @__PURE__ */ i(Nn.Provider, { value: r, children: s });
|
|
936
938
|
}
|
|
937
|
-
function
|
|
938
|
-
return
|
|
939
|
+
function B() {
|
|
940
|
+
return sn(Nn) ?? vi;
|
|
939
941
|
}
|
|
940
|
-
const
|
|
941
|
-
function
|
|
942
|
-
const t =
|
|
942
|
+
const Pi = 864e5, Ai = "en-US", Ft = /* @__PURE__ */ new Map(), Ut = /* @__PURE__ */ new Map();
|
|
943
|
+
function xi(e) {
|
|
944
|
+
const t = Ut.get(e);
|
|
943
945
|
if (t) return t;
|
|
944
946
|
const n = new Intl.NumberFormat(e, { minimumIntegerDigits: 2, useGrouping: !1 });
|
|
945
|
-
return
|
|
947
|
+
return Ut.set(e, n), n;
|
|
946
948
|
}
|
|
947
|
-
function
|
|
949
|
+
function zt(e, t) {
|
|
948
950
|
return {
|
|
949
951
|
time: new Intl.DateTimeFormat(e, {
|
|
950
952
|
hour: "numeric",
|
|
@@ -959,7 +961,7 @@ function Ft(e, t) {
|
|
|
959
961
|
timeZone: t
|
|
960
962
|
}),
|
|
961
963
|
zone: t ? new Intl.DateTimeFormat(e, { timeZone: t, timeZoneName: "short" }) : void 0,
|
|
962
|
-
civilDay: new Intl.DateTimeFormat(
|
|
964
|
+
civilDay: new Intl.DateTimeFormat(Ai, {
|
|
963
965
|
year: "numeric",
|
|
964
966
|
month: "numeric",
|
|
965
967
|
day: "numeric",
|
|
@@ -967,57 +969,65 @@ function Ft(e, t) {
|
|
|
967
969
|
})
|
|
968
970
|
};
|
|
969
971
|
}
|
|
970
|
-
function
|
|
971
|
-
const n = t || void 0, o = `${e}|${n ?? ""}`, s =
|
|
972
|
+
function On(e, t) {
|
|
973
|
+
const n = t || void 0, o = `${e}|${n ?? ""}`, s = Ft.get(o);
|
|
972
974
|
if (s) return s;
|
|
973
975
|
let r;
|
|
974
976
|
try {
|
|
975
|
-
r =
|
|
977
|
+
r = zt(e, n);
|
|
976
978
|
} catch {
|
|
977
979
|
console.warn(
|
|
978
980
|
`[platform-modules] Unusable timezone ${JSON.stringify(n)}; rendering dates in the viewer's own clock instead.`
|
|
979
|
-
), r =
|
|
981
|
+
), r = zt(e, void 0);
|
|
980
982
|
}
|
|
981
|
-
return
|
|
983
|
+
return Ft.set(o, r), r;
|
|
982
984
|
}
|
|
983
|
-
function
|
|
984
|
-
return new Date(
|
|
985
|
+
function $t(e, t) {
|
|
986
|
+
return new Date(mt(e, t)).getUTCFullYear();
|
|
985
987
|
}
|
|
986
|
-
function
|
|
988
|
+
function Li(e, t) {
|
|
987
989
|
var o;
|
|
988
990
|
const n = (o = e.zone) == null ? void 0 : o.formatToParts(t).find((s) => s.type === "timeZoneName");
|
|
989
991
|
return (n == null ? void 0 : n.value) ?? null;
|
|
990
992
|
}
|
|
991
|
-
function
|
|
993
|
+
function mt(e, t) {
|
|
992
994
|
const n = e.civilDay.formatToParts(t), o = (s) => {
|
|
993
995
|
var r;
|
|
994
|
-
return Number((r = n.find((
|
|
996
|
+
return Number((r = n.find((l) => l.type === s)) == null ? void 0 : r.value);
|
|
995
997
|
};
|
|
996
998
|
return Date.UTC(o("year"), o("month") - 1, o("day"));
|
|
997
999
|
}
|
|
998
|
-
function
|
|
999
|
-
return
|
|
1000
|
+
function Ri(e, t, n) {
|
|
1001
|
+
return Fn(On(Se, n), e, t);
|
|
1000
1002
|
}
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
+
const qn = 7;
|
|
1004
|
+
function yt(e, t, n) {
|
|
1005
|
+
if (!e) return !1;
|
|
1006
|
+
const o = new Date(e);
|
|
1007
|
+
if (Number.isNaN(o.getTime())) return !1;
|
|
1008
|
+
const s = Ri(o, t, n);
|
|
1009
|
+
return s >= 0 && s < qn;
|
|
1010
|
+
}
|
|
1011
|
+
function Fn(e, t, n) {
|
|
1012
|
+
return Math.round((mt(e, t) - mt(e, n)) / Pi);
|
|
1003
1013
|
}
|
|
1004
|
-
function
|
|
1014
|
+
function ki(e, t, n, { locale: o = Se, timezone: s } = {}) {
|
|
1005
1015
|
const r = new Date(t);
|
|
1006
1016
|
if (Number.isNaN(r.getTime())) return t;
|
|
1007
|
-
const
|
|
1008
|
-
if (
|
|
1009
|
-
if (
|
|
1010
|
-
if (
|
|
1011
|
-
const f =
|
|
1012
|
-
return e("dateTimeWithDate", { date: f, time:
|
|
1017
|
+
const l = On(o, s), a = Li(l, r), u = l.time.format(r), c = a ? e("timeWithZone", { time: u, zone: a }) : u, d = Fn(l, r, n);
|
|
1018
|
+
if (d === 0) return e("dateTimeToday", { time: c });
|
|
1019
|
+
if (d === -1) return e("dateTimeYesterday", { time: c });
|
|
1020
|
+
if (d === 1) return e("dateTimeTomorrow", { time: c });
|
|
1021
|
+
const f = $t(l, r) === $t(l, n) ? l.day.format(r) : l.dayYear.format(r);
|
|
1022
|
+
return e("dateTimeWithDate", { date: f, time: c });
|
|
1013
1023
|
}
|
|
1014
|
-
function
|
|
1015
|
-
return !Number.isInteger(e) || e < 1 ? null :
|
|
1024
|
+
function Di(e, t = Se) {
|
|
1025
|
+
return !Number.isInteger(e) || e < 1 ? null : xi(t).format(e);
|
|
1016
1026
|
}
|
|
1017
|
-
function
|
|
1027
|
+
function Ni(e, t) {
|
|
1018
1028
|
return t == null ? null : e("pointsAbbreviated", { count: t });
|
|
1019
1029
|
}
|
|
1020
|
-
function
|
|
1030
|
+
function Oi(e, t) {
|
|
1021
1031
|
switch (t.type) {
|
|
1022
1032
|
case "must_view":
|
|
1023
1033
|
return e("requirementMustView");
|
|
@@ -1035,13 +1045,13 @@ function Pi(e, t) {
|
|
|
1035
1045
|
return e("requirementUnknown");
|
|
1036
1046
|
}
|
|
1037
1047
|
}
|
|
1038
|
-
function
|
|
1048
|
+
function qi(e, t, n, o) {
|
|
1039
1049
|
return e("progressSummary", { percent: t, met: n, count: o });
|
|
1040
1050
|
}
|
|
1041
|
-
function
|
|
1051
|
+
function Fi(e, t, n, o) {
|
|
1042
1052
|
return e("progressScreenReaderValue", { percent: t, met: n, count: o });
|
|
1043
1053
|
}
|
|
1044
|
-
const
|
|
1054
|
+
const ne = "all", cc = qn, Ui = {
|
|
1045
1055
|
all: {
|
|
1046
1056
|
label: "filterAll",
|
|
1047
1057
|
order: 10,
|
|
@@ -1070,13 +1080,8 @@ const X = "all", xi = 7, Li = {
|
|
|
1070
1080
|
label: "filterDueThisWeek",
|
|
1071
1081
|
order: 40,
|
|
1072
1082
|
predicate: (e, { today: t, timezone: n }) => {
|
|
1073
|
-
var
|
|
1074
|
-
|
|
1075
|
-
if (!o) return !1;
|
|
1076
|
-
const s = new Date(o);
|
|
1077
|
-
if (Number.isNaN(s.getTime())) return !1;
|
|
1078
|
-
const r = Ti(s, t, n);
|
|
1079
|
-
return r >= 0 && r < xi;
|
|
1083
|
+
var o;
|
|
1084
|
+
return yt((o = e.progress) == null ? void 0 : o.nextDueAt, t, n);
|
|
1080
1085
|
}
|
|
1081
1086
|
},
|
|
1082
1087
|
missing: {
|
|
@@ -1088,24 +1093,24 @@ const X = "all", xi = 7, Li = {
|
|
|
1088
1093
|
}
|
|
1089
1094
|
}
|
|
1090
1095
|
};
|
|
1091
|
-
function
|
|
1096
|
+
function _t(e) {
|
|
1092
1097
|
if (!(!e || e.clientOnly))
|
|
1093
1098
|
return e.query;
|
|
1094
1099
|
}
|
|
1095
|
-
function
|
|
1096
|
-
return e !== void 0 &&
|
|
1097
|
-
}
|
|
1098
|
-
const
|
|
1099
|
-
moduleLabel: (e, t, { locale: n }) =>
|
|
1100
|
-
dateTime: (e, t, { t: n, locale: o, timezone: s }) =>
|
|
1101
|
-
points: (e, { t }) =>
|
|
1102
|
-
progress: (e, t, n, { t: o }) =>
|
|
1103
|
-
},
|
|
1100
|
+
function pt(e) {
|
|
1101
|
+
return e !== void 0 && _t(e) === void 0;
|
|
1102
|
+
}
|
|
1103
|
+
const zi = {
|
|
1104
|
+
moduleLabel: (e, t, { locale: n }) => Di(e, n),
|
|
1105
|
+
dateTime: (e, t, { t: n, locale: o, timezone: s }) => ki(n, e, t, { locale: o, timezone: s }),
|
|
1106
|
+
points: (e, { t }) => Ni(t, e),
|
|
1107
|
+
progress: (e, t, n, { t: o }) => qi(o, e, t, n)
|
|
1108
|
+
}, $i = "type", Bi = {
|
|
1104
1109
|
type: {
|
|
1105
1110
|
label: "metaFieldTypeLabel",
|
|
1106
1111
|
order: 10,
|
|
1107
1112
|
render: ({ item: e, t, config: n }) => {
|
|
1108
|
-
const o =
|
|
1113
|
+
const o = Me(n.itemTypes, e.type);
|
|
1109
1114
|
return o ? t(o.label) : null;
|
|
1110
1115
|
}
|
|
1111
1116
|
},
|
|
@@ -1122,13 +1127,13 @@ const Ri = {
|
|
|
1122
1127
|
requirement: {
|
|
1123
1128
|
label: "metaFieldRequirementLabel",
|
|
1124
1129
|
order: 40,
|
|
1125
|
-
render: ({ item: e, t }) => e.completionRequirement ?
|
|
1130
|
+
render: ({ item: e, t }) => e.completionRequirement ? Oi(t, e.completionRequirement) : null
|
|
1126
1131
|
},
|
|
1127
1132
|
estimatedDuration: {
|
|
1128
1133
|
label: "metaFieldDurationLabel",
|
|
1129
1134
|
order: 50,
|
|
1130
1135
|
render: ({ item: e, t }) => {
|
|
1131
|
-
const n =
|
|
1136
|
+
const n = Wo(e);
|
|
1132
1137
|
return n === null ? null : t("durationMinutes", { count: n });
|
|
1133
1138
|
}
|
|
1134
1139
|
},
|
|
@@ -1137,311 +1142,315 @@ const Ri = {
|
|
|
1137
1142
|
order: 60,
|
|
1138
1143
|
render: ({ item: e, t }) => e.published ? null : t("itemUnpublishedLabel")
|
|
1139
1144
|
}
|
|
1140
|
-
},
|
|
1145
|
+
}, oe = { size: "md", color: "mutedColor" }, Gi = {
|
|
1141
1146
|
assignment: {
|
|
1142
1147
|
label: "itemTypeAssignment",
|
|
1143
1148
|
order: 10,
|
|
1144
|
-
icon: /* @__PURE__ */
|
|
1149
|
+
icon: /* @__PURE__ */ i(Mo, { ...oe })
|
|
1145
1150
|
},
|
|
1146
|
-
quiz: { label: "itemTypeQuiz", order: 20, icon: /* @__PURE__ */
|
|
1151
|
+
quiz: { label: "itemTypeQuiz", order: 20, icon: /* @__PURE__ */ i(bo, { ...oe }) },
|
|
1147
1152
|
discussion: {
|
|
1148
1153
|
label: "itemTypeDiscussion",
|
|
1149
1154
|
order: 30,
|
|
1150
|
-
icon: /* @__PURE__ */
|
|
1155
|
+
icon: /* @__PURE__ */ i(Io, { ...oe })
|
|
1151
1156
|
},
|
|
1152
|
-
page: { label: "itemTypePage", order: 40, icon: /* @__PURE__ */
|
|
1153
|
-
file: { label: "itemTypeFile", order: 50, icon: /* @__PURE__ */
|
|
1157
|
+
page: { label: "itemTypePage", order: 40, icon: /* @__PURE__ */ i(ho, { ...oe }) },
|
|
1158
|
+
file: { label: "itemTypeFile", order: 50, icon: /* @__PURE__ */ i(fo, { ...oe }) },
|
|
1154
1159
|
external_url: {
|
|
1155
1160
|
label: "itemTypeExternalUrl",
|
|
1156
1161
|
order: 60,
|
|
1157
|
-
icon: /* @__PURE__ */
|
|
1162
|
+
icon: /* @__PURE__ */ i(go, { ...oe })
|
|
1158
1163
|
},
|
|
1159
1164
|
external_tool: {
|
|
1160
1165
|
label: "itemTypeExternalTool",
|
|
1161
1166
|
order: 70,
|
|
1162
|
-
icon: /* @__PURE__ */
|
|
1167
|
+
icon: /* @__PURE__ */ i(po, { ...oe })
|
|
1163
1168
|
},
|
|
1164
1169
|
sub_header: { label: "itemTypeSubHeader", order: 80, icon: null }
|
|
1165
|
-
},
|
|
1166
|
-
formatters:
|
|
1167
|
-
itemTypes:
|
|
1170
|
+
}, Xe = {
|
|
1171
|
+
formatters: zi,
|
|
1172
|
+
itemTypes: Gi,
|
|
1168
1173
|
itemStatuses: {},
|
|
1169
|
-
itemMeta:
|
|
1170
|
-
filters:
|
|
1174
|
+
itemMeta: Bi,
|
|
1175
|
+
filters: Ui,
|
|
1171
1176
|
moduleActions: {},
|
|
1172
1177
|
itemActions: {},
|
|
1173
1178
|
navigation: {}
|
|
1174
1179
|
};
|
|
1175
|
-
Object.freeze(
|
|
1176
|
-
for (const e of Object.values(
|
|
1180
|
+
Object.freeze(Xe);
|
|
1181
|
+
for (const e of Object.values(Xe)) {
|
|
1177
1182
|
Object.freeze(e);
|
|
1178
1183
|
for (const t of Object.values(e)) Object.freeze(t);
|
|
1179
1184
|
}
|
|
1180
|
-
function
|
|
1181
|
-
return
|
|
1182
|
-
const o =
|
|
1183
|
-
return o !== void 0 && !
|
|
1185
|
+
function ji(e, t) {
|
|
1186
|
+
return Ze(e).filter((n) => {
|
|
1187
|
+
const o = _t(n);
|
|
1188
|
+
return o !== void 0 && !qo(t, o);
|
|
1184
1189
|
}).map((n) => n.key);
|
|
1185
1190
|
}
|
|
1186
|
-
function
|
|
1191
|
+
function Bt(e) {
|
|
1187
1192
|
return `[platform-modules] the adapter cannot serve filter(s): ${e.join(", ")}. Add the field to the adapter's capabilities, or set clientOnly on the entry.`;
|
|
1188
1193
|
}
|
|
1189
|
-
function
|
|
1190
|
-
const n =
|
|
1194
|
+
function Yi(e, t) {
|
|
1195
|
+
const n = ji(e, t);
|
|
1191
1196
|
if (n.length === 0) return e;
|
|
1192
1197
|
if (process.env.NODE_ENV !== "production")
|
|
1193
|
-
throw new Error(
|
|
1194
|
-
console.warn(
|
|
1198
|
+
throw new Error(Bt(n));
|
|
1199
|
+
console.warn(Bt(n));
|
|
1195
1200
|
const o = Object.fromEntries(n.map((s) => [s, { ...e[s], hidden: !0 }]));
|
|
1196
1201
|
return { ...e, ...o };
|
|
1197
1202
|
}
|
|
1198
|
-
const
|
|
1199
|
-
function
|
|
1200
|
-
return /* @__PURE__ */
|
|
1203
|
+
const Un = on(null);
|
|
1204
|
+
function uc({ value: e, children: t }) {
|
|
1205
|
+
return /* @__PURE__ */ i(Un.Provider, { value: e, children: t });
|
|
1201
1206
|
}
|
|
1202
|
-
function
|
|
1203
|
-
return
|
|
1207
|
+
function ye() {
|
|
1208
|
+
return sn(Un) ?? Xe;
|
|
1204
1209
|
}
|
|
1205
|
-
function
|
|
1206
|
-
return
|
|
1210
|
+
function dc(e) {
|
|
1211
|
+
return Me(ye().itemMeta, e) !== void 0;
|
|
1207
1212
|
}
|
|
1208
|
-
const
|
|
1209
|
-
label:
|
|
1210
|
-
order:
|
|
1211
|
-
hidden:
|
|
1213
|
+
const Re = p.object({
|
|
1214
|
+
label: p.string(),
|
|
1215
|
+
order: p.number(),
|
|
1216
|
+
hidden: p.boolean().optional()
|
|
1212
1217
|
});
|
|
1213
|
-
function
|
|
1214
|
-
return
|
|
1218
|
+
function Ie(e) {
|
|
1219
|
+
return p.record(p.string(), e);
|
|
1215
1220
|
}
|
|
1216
|
-
const
|
|
1221
|
+
const Hi = Ie(Re.strict()), zn = (e) => e == null || typeof e == "string" || typeof e == "number" || typeof e == "bigint" || typeof e == "boolean" || rn(e) || Array.isArray(e) && e.every(zn), Wi = (e) => {
|
|
1217
1222
|
var t;
|
|
1218
1223
|
return e == null || typeof e == "function" && !((t = e.prototype) != null && t.isReactComponent);
|
|
1219
|
-
},
|
|
1220
|
-
icon:
|
|
1221
|
-
renderIcon:
|
|
1224
|
+
}, Ki = Re.extend({
|
|
1225
|
+
icon: p.custom(zn, { message: "icon must be a ReactNode" }),
|
|
1226
|
+
renderIcon: p.custom(Wi, {
|
|
1222
1227
|
message: "renderIcon must be a function of the item, not a React component"
|
|
1223
1228
|
})
|
|
1224
|
-
}).strict(),
|
|
1229
|
+
}).strict(), $n = (e) => {
|
|
1225
1230
|
var t;
|
|
1226
1231
|
return typeof e == "function" && !((t = e.prototype) != null && t.isReactComponent);
|
|
1227
|
-
},
|
|
1228
|
-
onSelect:
|
|
1232
|
+
}, Gt = (e) => e == null || $n(e), jt = Re.extend({
|
|
1233
|
+
onSelect: p.custom($n, {
|
|
1229
1234
|
message: "onSelect must be a function taking an ActionContext"
|
|
1230
1235
|
}),
|
|
1231
|
-
visible:
|
|
1236
|
+
visible: p.custom(Gt, {
|
|
1232
1237
|
message: "visible must be a function taking an ActionContext, not a React component"
|
|
1233
1238
|
}),
|
|
1234
|
-
renderModal:
|
|
1239
|
+
renderModal: p.custom(Gt, {
|
|
1235
1240
|
message: "renderModal must be a function taking an ActionContext, not a React component"
|
|
1236
1241
|
})
|
|
1237
1242
|
}).strict();
|
|
1238
|
-
function
|
|
1239
|
-
return
|
|
1243
|
+
function Ye() {
|
|
1244
|
+
return p.custom((e) => typeof e == "function", {
|
|
1240
1245
|
message: "Expected a function"
|
|
1241
1246
|
});
|
|
1242
1247
|
}
|
|
1243
|
-
const
|
|
1244
|
-
render:
|
|
1248
|
+
const Qi = Re.extend({
|
|
1249
|
+
render: p.custom((e) => typeof e == "function", {
|
|
1245
1250
|
message: "render must be a function taking a MetaFieldContext"
|
|
1246
1251
|
})
|
|
1247
|
-
}).strict(),
|
|
1248
|
-
predicate:
|
|
1252
|
+
}).strict(), Vi = Re.extend({
|
|
1253
|
+
predicate: p.custom((e) => typeof e == "function", {
|
|
1249
1254
|
message: "predicate must be a function of the module and a FilterContext"
|
|
1250
1255
|
}),
|
|
1251
|
-
query:
|
|
1252
|
-
clientOnly:
|
|
1253
|
-
}).strict(),
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1256
|
+
query: Oo.optional(),
|
|
1257
|
+
clientOnly: p.boolean().optional()
|
|
1258
|
+
}).strict(), ot = () => p.custom((e) => typeof e == "function", { message: "Expected a function" }).optional(), Zi = p.object({
|
|
1259
|
+
getItemHref: ot(),
|
|
1260
|
+
getModuleHref: ot(),
|
|
1261
|
+
onItemClick: ot()
|
|
1262
|
+
}).strict(), Xi = p.object({
|
|
1263
|
+
formatters: p.object({
|
|
1264
|
+
moduleLabel: Ye(),
|
|
1265
|
+
dateTime: Ye(),
|
|
1266
|
+
points: Ye(),
|
|
1267
|
+
progress: Ye()
|
|
1259
1268
|
}).strict(),
|
|
1260
|
-
itemTypes:
|
|
1261
|
-
itemStatuses:
|
|
1262
|
-
itemMeta:
|
|
1263
|
-
filters:
|
|
1264
|
-
moduleActions:
|
|
1265
|
-
itemActions:
|
|
1266
|
-
navigation:
|
|
1269
|
+
itemTypes: Ie(Ki),
|
|
1270
|
+
itemStatuses: Hi,
|
|
1271
|
+
itemMeta: Ie(Qi),
|
|
1272
|
+
filters: Ie(Vi),
|
|
1273
|
+
moduleActions: Ie(jt),
|
|
1274
|
+
itemActions: Ie(jt),
|
|
1275
|
+
navigation: Zi
|
|
1267
1276
|
});
|
|
1268
|
-
function
|
|
1269
|
-
const n = Object.keys(t).filter((s) => !
|
|
1277
|
+
function Ji(e, t = {}) {
|
|
1278
|
+
const n = Object.keys(t).filter((s) => !We(e, s));
|
|
1270
1279
|
if (n.length > 0)
|
|
1271
1280
|
throw new Error(
|
|
1272
1281
|
`Unknown modules config key(s): ${n.join(", ")}. Known keys are ${Object.keys(e).join(", ")}.`
|
|
1273
1282
|
);
|
|
1274
1283
|
const o = {
|
|
1275
|
-
formatters:
|
|
1276
|
-
itemTypes:
|
|
1277
|
-
itemStatuses:
|
|
1278
|
-
itemMeta:
|
|
1279
|
-
filters:
|
|
1280
|
-
moduleActions:
|
|
1281
|
-
itemActions:
|
|
1282
|
-
navigation:
|
|
1284
|
+
formatters: Ke(e.formatters, t.formatters),
|
|
1285
|
+
itemTypes: fe(e.itemTypes, t.itemTypes),
|
|
1286
|
+
itemStatuses: fe(e.itemStatuses, t.itemStatuses),
|
|
1287
|
+
itemMeta: fe(e.itemMeta, t.itemMeta),
|
|
1288
|
+
filters: fe(e.filters, t.filters),
|
|
1289
|
+
moduleActions: fe(e.moduleActions, t.moduleActions),
|
|
1290
|
+
itemActions: fe(e.itemActions, t.itemActions),
|
|
1291
|
+
navigation: Ke(e.navigation, t.navigation)
|
|
1283
1292
|
};
|
|
1284
|
-
return
|
|
1293
|
+
return Xi.parse(o), o;
|
|
1285
1294
|
}
|
|
1286
|
-
function
|
|
1287
|
-
return
|
|
1295
|
+
function mc(e = {}) {
|
|
1296
|
+
return Ji(Xe, e);
|
|
1288
1297
|
}
|
|
1289
|
-
function
|
|
1290
|
-
const t =
|
|
1291
|
-
return
|
|
1292
|
-
(n, o) =>
|
|
1298
|
+
function pc(e) {
|
|
1299
|
+
const t = It();
|
|
1300
|
+
return F(
|
|
1301
|
+
(n, o) => ws({ queryClient: t, courseId: e, module: n, item: o }),
|
|
1293
1302
|
[t, e]
|
|
1294
1303
|
);
|
|
1295
1304
|
}
|
|
1296
|
-
function
|
|
1297
|
-
const { formatters: e } =
|
|
1305
|
+
function ke() {
|
|
1306
|
+
const { formatters: e } = ye(), { t, locale: n, timezone: o } = B();
|
|
1298
1307
|
return N(() => {
|
|
1299
|
-
const s = { t, locale: n, timezone: o }, r = (
|
|
1308
|
+
const s = { t, locale: n, timezone: o }, r = (l, a) => e.dateTime(l, a, s);
|
|
1300
1309
|
return {
|
|
1301
|
-
moduleLabel: (
|
|
1302
|
-
dueByline: (
|
|
1303
|
-
unlockByline: (
|
|
1304
|
-
unlockedByline: (
|
|
1305
|
-
points: (
|
|
1306
|
-
progress: (
|
|
1310
|
+
moduleLabel: (l, a) => e.moduleLabel(l, a, s) || null,
|
|
1311
|
+
dueByline: (l, a) => t("dueByline", { when: r(l, a) }),
|
|
1312
|
+
unlockByline: (l, a) => t("unlockByline", { when: r(l, a) }),
|
|
1313
|
+
unlockedByline: (l, a) => t("unlockedByline", { when: r(l, a) }),
|
|
1314
|
+
points: (l) => e.points(l, s),
|
|
1315
|
+
progress: (l, a, u) => e.progress(l, a, u, s)
|
|
1307
1316
|
};
|
|
1308
1317
|
}, [e, t, n, o]);
|
|
1309
1318
|
}
|
|
1310
|
-
const
|
|
1311
|
-
function
|
|
1319
|
+
const Tt = 100, Bn = 100, Gn = 100, el = 4, Je = 5 * 60 * 1e3, jn = 20, Qe = { hasNextPage: !1, endCursor: null };
|
|
1320
|
+
function Yn(e) {
|
|
1312
1321
|
return e.pageInfo.hasNextPage ? e.pageInfo.endCursor : null;
|
|
1313
1322
|
}
|
|
1314
|
-
function
|
|
1323
|
+
function Hn(e) {
|
|
1315
1324
|
const {
|
|
1316
1325
|
courseId: t,
|
|
1317
1326
|
adapter: n,
|
|
1318
1327
|
pageSize: o,
|
|
1319
1328
|
includeItems: s,
|
|
1320
1329
|
filter: r,
|
|
1321
|
-
inlineItemsFirst:
|
|
1330
|
+
inlineItemsFirst: l,
|
|
1322
1331
|
inlineFirst: a,
|
|
1323
|
-
view:
|
|
1324
|
-
staleTime:
|
|
1325
|
-
enabled:
|
|
1332
|
+
view: u,
|
|
1333
|
+
staleTime: c,
|
|
1334
|
+
enabled: d
|
|
1326
1335
|
} = e;
|
|
1327
1336
|
return {
|
|
1328
1337
|
// `inlineItemsFirst` is deliberately out of the key: it is derived from this very list.
|
|
1329
|
-
queryKey: Le.list(t, { view:
|
|
1338
|
+
queryKey: Le.list(t, { view: u, pageSize: o, includeItems: s, filter: r }),
|
|
1330
1339
|
initialPageParam: null,
|
|
1331
|
-
queryFn: ({ pageParam:
|
|
1340
|
+
queryFn: ({ pageParam: m, signal: f }) => n.listModules({
|
|
1332
1341
|
courseId: t,
|
|
1333
|
-
cursor:
|
|
1342
|
+
cursor: m,
|
|
1334
1343
|
pageSize: o,
|
|
1335
1344
|
includeItems: s,
|
|
1336
1345
|
filter: r,
|
|
1337
|
-
inlineItemsFirst:
|
|
1346
|
+
inlineItemsFirst: l,
|
|
1338
1347
|
inlineFirst: a,
|
|
1339
1348
|
signal: f
|
|
1340
1349
|
}),
|
|
1341
|
-
getNextPageParam:
|
|
1342
|
-
enabled:
|
|
1343
|
-
staleTime:
|
|
1350
|
+
getNextPageParam: Yn,
|
|
1351
|
+
enabled: d,
|
|
1352
|
+
staleTime: c,
|
|
1344
1353
|
refetchOnWindowFocus: !1
|
|
1345
1354
|
};
|
|
1346
1355
|
}
|
|
1347
|
-
function
|
|
1348
|
-
const { courseId: t, moduleId: n, adapter: o, pageSize: s, view: r, staleTime:
|
|
1356
|
+
function Wn(e) {
|
|
1357
|
+
const { courseId: t, moduleId: n, adapter: o, pageSize: s, view: r, staleTime: l, enabled: a, limit: u } = e;
|
|
1349
1358
|
return {
|
|
1350
1359
|
queryKey: Le.items(t, n, { view: r, pageSize: s }),
|
|
1351
1360
|
initialPageParam: null,
|
|
1352
|
-
queryFn: ({ pageParam:
|
|
1353
|
-
const
|
|
1354
|
-
return
|
|
1355
|
-
if (
|
|
1361
|
+
queryFn: ({ pageParam: c, signal: d }) => {
|
|
1362
|
+
const m = () => o.listModuleItems({ courseId: t, moduleId: n, cursor: c, pageSize: s, signal: d });
|
|
1363
|
+
return u ? u(() => {
|
|
1364
|
+
if (d.aborted)
|
|
1356
1365
|
throw new DOMException("The operation was aborted.", "AbortError");
|
|
1357
|
-
return
|
|
1358
|
-
}) :
|
|
1366
|
+
return m();
|
|
1367
|
+
}) : m();
|
|
1359
1368
|
},
|
|
1360
|
-
getNextPageParam:
|
|
1369
|
+
getNextPageParam: Yn,
|
|
1361
1370
|
enabled: a,
|
|
1362
|
-
staleTime:
|
|
1371
|
+
staleTime: l,
|
|
1363
1372
|
refetchOnWindowFocus: !1
|
|
1364
1373
|
};
|
|
1365
1374
|
}
|
|
1366
|
-
function
|
|
1367
|
-
var
|
|
1375
|
+
function tl(e) {
|
|
1376
|
+
var E;
|
|
1368
1377
|
const {
|
|
1369
1378
|
courseId: t,
|
|
1370
1379
|
adapter: n,
|
|
1371
|
-
pageSize: o =
|
|
1380
|
+
pageSize: o = Tt,
|
|
1372
1381
|
includeItems: s = !1,
|
|
1373
1382
|
filter: r,
|
|
1374
|
-
inlineItemsFirst:
|
|
1383
|
+
inlineItemsFirst: l,
|
|
1375
1384
|
inlineFirst: a,
|
|
1376
|
-
view:
|
|
1377
|
-
staleTime:
|
|
1378
|
-
enabled:
|
|
1379
|
-
} = e,
|
|
1380
|
-
|
|
1385
|
+
view: u,
|
|
1386
|
+
staleTime: c = Je,
|
|
1387
|
+
enabled: d = !0
|
|
1388
|
+
} = e, m = bt({
|
|
1389
|
+
...Hn({
|
|
1381
1390
|
courseId: t,
|
|
1382
1391
|
adapter: n,
|
|
1383
1392
|
pageSize: o,
|
|
1384
1393
|
includeItems: s,
|
|
1385
1394
|
filter: r,
|
|
1386
|
-
inlineItemsFirst:
|
|
1395
|
+
inlineItemsFirst: l,
|
|
1387
1396
|
inlineFirst: a,
|
|
1388
|
-
view:
|
|
1389
|
-
staleTime:
|
|
1390
|
-
enabled:
|
|
1397
|
+
view: u,
|
|
1398
|
+
staleTime: c,
|
|
1399
|
+
enabled: d
|
|
1391
1400
|
}),
|
|
1392
1401
|
// `useItemsMode` shares `modulesQueryOptions`, and `inlineFirst` is out of that key.
|
|
1393
|
-
placeholderData:
|
|
1394
|
-
}), f = (
|
|
1402
|
+
placeholderData: Eo
|
|
1403
|
+
}), f = (E = m.data) == null ? void 0 : E.pages, S = N(() => (f ?? []).flatMap((P) => P.modules), [f]), h = f && f.length > 0 ? f[f.length - 1].pageInfo : Qe, b = m.fetchNextPage, w = F(() => {
|
|
1395
1404
|
b();
|
|
1396
1405
|
}, [b]);
|
|
1397
1406
|
return {
|
|
1398
|
-
modules:
|
|
1399
|
-
pageInfo:
|
|
1400
|
-
hasNextPage:
|
|
1407
|
+
modules: S,
|
|
1408
|
+
pageInfo: h,
|
|
1409
|
+
hasNextPage: h.hasNextPage,
|
|
1401
1410
|
fetchNextPage: w,
|
|
1402
|
-
isLoading:
|
|
1403
|
-
isFetchingNextPage:
|
|
1404
|
-
isPending:
|
|
1405
|
-
isPlaceholderData:
|
|
1406
|
-
error:
|
|
1411
|
+
isLoading: m.isLoading,
|
|
1412
|
+
isFetchingNextPage: m.isFetchingNextPage,
|
|
1413
|
+
isPending: m.isPending,
|
|
1414
|
+
isPlaceholderData: m.isPlaceholderData,
|
|
1415
|
+
error: m.error
|
|
1407
1416
|
};
|
|
1408
1417
|
}
|
|
1409
|
-
function
|
|
1418
|
+
function gc(e) {
|
|
1410
1419
|
var b;
|
|
1411
1420
|
const {
|
|
1412
1421
|
courseId: t,
|
|
1413
1422
|
moduleId: n,
|
|
1414
1423
|
adapter: o,
|
|
1415
|
-
pageSize: s =
|
|
1424
|
+
pageSize: s = Bn,
|
|
1416
1425
|
view: r,
|
|
1417
|
-
enabled:
|
|
1418
|
-
staleTime: a =
|
|
1419
|
-
limit:
|
|
1420
|
-
} = e,
|
|
1421
|
-
|
|
1426
|
+
enabled: l = !0,
|
|
1427
|
+
staleTime: a = Je,
|
|
1428
|
+
limit: u
|
|
1429
|
+
} = e, c = bt(
|
|
1430
|
+
Wn({
|
|
1422
1431
|
courseId: t,
|
|
1423
1432
|
moduleId: n,
|
|
1424
1433
|
adapter: o,
|
|
1425
1434
|
pageSize: s,
|
|
1426
1435
|
view: r,
|
|
1427
1436
|
staleTime: a,
|
|
1428
|
-
enabled:
|
|
1429
|
-
limit:
|
|
1437
|
+
enabled: l,
|
|
1438
|
+
limit: u
|
|
1430
1439
|
})
|
|
1431
|
-
),
|
|
1432
|
-
|
|
1433
|
-
}, [
|
|
1440
|
+
), d = (b = c.data) == null ? void 0 : b.pages, m = N(() => (d ?? []).flatMap((w) => w.items), [d]), f = d && d.length > 0 ? d[d.length - 1].pageInfo : Qe, S = c.fetchNextPage, h = F(() => {
|
|
1441
|
+
S();
|
|
1442
|
+
}, [S]);
|
|
1434
1443
|
return {
|
|
1435
|
-
items:
|
|
1444
|
+
items: m,
|
|
1436
1445
|
pageInfo: f,
|
|
1437
1446
|
hasNextPage: f.hasNextPage,
|
|
1438
|
-
fetchNextPage:
|
|
1439
|
-
isLoading:
|
|
1440
|
-
isFetchingNextPage:
|
|
1441
|
-
error:
|
|
1447
|
+
fetchNextPage: h,
|
|
1448
|
+
isLoading: c.isLoading,
|
|
1449
|
+
isFetchingNextPage: c.isFetchingNextPage,
|
|
1450
|
+
error: c.error
|
|
1442
1451
|
};
|
|
1443
1452
|
}
|
|
1444
|
-
function
|
|
1453
|
+
function nl(e, t, n = St) {
|
|
1445
1454
|
if (e.pageInfo.hasNextPage) return "onDemand";
|
|
1446
1455
|
let o = 0, s = 0;
|
|
1447
1456
|
for (const r of e.modules) {
|
|
@@ -1450,31 +1459,31 @@ function Hi(e, t, n = Mt) {
|
|
|
1450
1459
|
}
|
|
1451
1460
|
return o > t * 2 ? "onDemand" : Math.max(e.modules.length, 1) * Math.max(s, 1) <= n ? "inline" : "onDemand";
|
|
1452
1461
|
}
|
|
1453
|
-
function
|
|
1454
|
-
var
|
|
1462
|
+
function ol(e) {
|
|
1463
|
+
var S;
|
|
1455
1464
|
const {
|
|
1456
1465
|
courseId: t,
|
|
1457
1466
|
adapter: n,
|
|
1458
1467
|
mode: o = "auto",
|
|
1459
|
-
inlineThreshold: s =
|
|
1460
|
-
nodeBudget: r = n.inlineNodeBudget ??
|
|
1461
|
-
pageSize:
|
|
1468
|
+
inlineThreshold: s = Gn,
|
|
1469
|
+
nodeBudget: r = n.inlineNodeBudget ?? St,
|
|
1470
|
+
pageSize: l = Tt,
|
|
1462
1471
|
filter: a,
|
|
1463
|
-
view:
|
|
1464
|
-
staleTime:
|
|
1465
|
-
} = e,
|
|
1466
|
-
|
|
1472
|
+
view: u,
|
|
1473
|
+
staleTime: c = Je
|
|
1474
|
+
} = e, d = o === "auto", m = bt(
|
|
1475
|
+
Hn({
|
|
1467
1476
|
courseId: t,
|
|
1468
1477
|
adapter: n,
|
|
1469
|
-
pageSize:
|
|
1478
|
+
pageSize: l,
|
|
1470
1479
|
includeItems: !1,
|
|
1471
1480
|
filter: a,
|
|
1472
|
-
view:
|
|
1473
|
-
staleTime:
|
|
1474
|
-
enabled:
|
|
1481
|
+
view: u,
|
|
1482
|
+
staleTime: c,
|
|
1483
|
+
enabled: d
|
|
1475
1484
|
})
|
|
1476
1485
|
);
|
|
1477
|
-
if (!
|
|
1486
|
+
if (!d)
|
|
1478
1487
|
return {
|
|
1479
1488
|
resolvedMode: o,
|
|
1480
1489
|
isResolving: !1,
|
|
@@ -1482,286 +1491,286 @@ function Ki(e) {
|
|
|
1482
1491
|
error: null,
|
|
1483
1492
|
inlineShape: null
|
|
1484
1493
|
};
|
|
1485
|
-
if (
|
|
1494
|
+
if (m.error)
|
|
1486
1495
|
return {
|
|
1487
1496
|
resolvedMode: "onDemand",
|
|
1488
1497
|
isResolving: !1,
|
|
1489
1498
|
probed: !0,
|
|
1490
|
-
error:
|
|
1499
|
+
error: m.error,
|
|
1491
1500
|
inlineShape: null
|
|
1492
1501
|
};
|
|
1493
|
-
const f = (
|
|
1502
|
+
const f = (S = m.data) == null ? void 0 : S.pages[0];
|
|
1494
1503
|
return f ? {
|
|
1495
|
-
resolvedMode:
|
|
1504
|
+
resolvedMode: nl(f, s, r),
|
|
1496
1505
|
isResolving: !1,
|
|
1497
1506
|
probed: !0,
|
|
1498
1507
|
error: null,
|
|
1499
|
-
inlineShape:
|
|
1508
|
+
inlineShape: sl(f)
|
|
1500
1509
|
} : { resolvedMode: null, isResolving: !0, probed: !0, error: null, inlineShape: null };
|
|
1501
1510
|
}
|
|
1502
|
-
function
|
|
1511
|
+
function sl(e) {
|
|
1503
1512
|
let t = 1;
|
|
1504
1513
|
for (const n of e.modules)
|
|
1505
1514
|
n.itemCount > t && (t = n.itemCount);
|
|
1506
1515
|
return { moduleCount: Math.max(e.modules.length, 1), maxItemCount: t };
|
|
1507
1516
|
}
|
|
1508
|
-
const
|
|
1509
|
-
function
|
|
1510
|
-
const o =
|
|
1511
|
-
|
|
1512
|
-
const
|
|
1513
|
-
|
|
1517
|
+
const Yt = "\0", rl = /* @__PURE__ */ new Map();
|
|
1518
|
+
function il(e, t, n = jn) {
|
|
1519
|
+
const o = It(), s = $(/* @__PURE__ */ new Map()), [r, l] = ee(rl), a = e.join(Yt), u = N(() => a === "" ? [] : a.split(Yt), [a]);
|
|
1520
|
+
te(() => {
|
|
1521
|
+
const d = s.current, m = () => {
|
|
1522
|
+
l((h) => {
|
|
1514
1523
|
const b = /* @__PURE__ */ new Map();
|
|
1515
|
-
let w =
|
|
1516
|
-
for (const [
|
|
1517
|
-
const
|
|
1518
|
-
b.set(
|
|
1524
|
+
let w = h.size !== d.size;
|
|
1525
|
+
for (const [E, P] of d) {
|
|
1526
|
+
const z = P.getCurrentResult();
|
|
1527
|
+
b.set(E, z), !w && h.get(E) !== z && (w = !0);
|
|
1519
1528
|
}
|
|
1520
|
-
return w ? b :
|
|
1529
|
+
return w ? b : h;
|
|
1521
1530
|
});
|
|
1522
|
-
}, f = new Set(
|
|
1523
|
-
for (const
|
|
1524
|
-
if (
|
|
1525
|
-
const b = new
|
|
1531
|
+
}, f = new Set(u);
|
|
1532
|
+
for (const h of u) {
|
|
1533
|
+
if (d.has(h)) continue;
|
|
1534
|
+
const b = new Co(
|
|
1526
1535
|
o,
|
|
1527
|
-
t(
|
|
1536
|
+
t(h, !0)
|
|
1528
1537
|
);
|
|
1529
|
-
|
|
1538
|
+
d.set(h, b), b.subscribe(m);
|
|
1530
1539
|
}
|
|
1531
|
-
for (const [
|
|
1532
|
-
b.setOptions(t(
|
|
1533
|
-
for (const
|
|
1534
|
-
const b =
|
|
1535
|
-
b && (
|
|
1540
|
+
for (const [h, b] of d)
|
|
1541
|
+
b.setOptions(t(h, f.has(h)));
|
|
1542
|
+
for (const h of u) {
|
|
1543
|
+
const b = d.get(h);
|
|
1544
|
+
b && (d.delete(h), d.set(h, b));
|
|
1536
1545
|
}
|
|
1537
|
-
let
|
|
1538
|
-
if (
|
|
1539
|
-
for (const [
|
|
1540
|
-
if (
|
|
1541
|
-
f.has(
|
|
1546
|
+
let S = d.size - f.size;
|
|
1547
|
+
if (S > n)
|
|
1548
|
+
for (const [h, b] of d) {
|
|
1549
|
+
if (S <= n) break;
|
|
1550
|
+
f.has(h) || (b.destroy(), d.delete(h), S -= 1);
|
|
1542
1551
|
}
|
|
1543
|
-
|
|
1544
|
-
}, [o, t,
|
|
1545
|
-
const
|
|
1552
|
+
m();
|
|
1553
|
+
}, [o, t, u, n]), te(() => {
|
|
1554
|
+
const d = s.current;
|
|
1546
1555
|
return () => {
|
|
1547
|
-
for (const
|
|
1548
|
-
|
|
1556
|
+
for (const m of d.values()) m.destroy();
|
|
1557
|
+
d.clear();
|
|
1549
1558
|
};
|
|
1550
1559
|
}, []);
|
|
1551
|
-
const
|
|
1552
|
-
var
|
|
1553
|
-
(
|
|
1560
|
+
const c = F((d) => {
|
|
1561
|
+
var m;
|
|
1562
|
+
(m = s.current.get(d)) == null || m.fetchNextPage();
|
|
1554
1563
|
}, []);
|
|
1555
|
-
return { results: r, fetchNextPage:
|
|
1564
|
+
return { results: r, fetchNextPage: c };
|
|
1556
1565
|
}
|
|
1557
|
-
const
|
|
1566
|
+
const ll = [], al = () => {
|
|
1558
1567
|
};
|
|
1559
|
-
function
|
|
1560
|
-
var
|
|
1568
|
+
function fc(e) {
|
|
1569
|
+
var ze, de;
|
|
1561
1570
|
const {
|
|
1562
1571
|
courseId: t,
|
|
1563
1572
|
adapter: n,
|
|
1564
1573
|
view: o,
|
|
1565
1574
|
itemsMode: s = "auto",
|
|
1566
|
-
inlineThreshold: r =
|
|
1567
|
-
pageSize:
|
|
1568
|
-
itemPageSize: a =
|
|
1569
|
-
itemConcurrency:
|
|
1570
|
-
retainCollapsedLimit:
|
|
1571
|
-
staleTime:
|
|
1572
|
-
initialExpandedModuleIds:
|
|
1573
|
-
initialFilter: f =
|
|
1574
|
-
} = e,
|
|
1575
|
-
() =>
|
|
1576
|
-
[
|
|
1577
|
-
),
|
|
1575
|
+
inlineThreshold: r = Gn,
|
|
1576
|
+
pageSize: l = Tt,
|
|
1577
|
+
itemPageSize: a = Bn,
|
|
1578
|
+
itemConcurrency: u = el,
|
|
1579
|
+
retainCollapsedLimit: c = jn,
|
|
1580
|
+
staleTime: d = Je,
|
|
1581
|
+
initialExpandedModuleIds: m,
|
|
1582
|
+
initialFilter: f = ne
|
|
1583
|
+
} = e, S = It(), h = ye(), [b, w] = ee(f), E = N(
|
|
1584
|
+
() => Yi(h.filters, n.capabilities),
|
|
1585
|
+
[h.filters, n.capabilities]
|
|
1586
|
+
), P = Me(E, b), z = _t(P), L = ol({
|
|
1578
1587
|
courseId: t,
|
|
1579
1588
|
adapter: n,
|
|
1580
1589
|
mode: s,
|
|
1581
1590
|
inlineThreshold: r,
|
|
1582
|
-
pageSize:
|
|
1583
|
-
filter:
|
|
1591
|
+
pageSize: l,
|
|
1592
|
+
filter: z,
|
|
1584
1593
|
view: o,
|
|
1585
|
-
staleTime:
|
|
1586
|
-
}),
|
|
1594
|
+
staleTime: d
|
|
1595
|
+
}), G = L.resolvedMode, v = tl({
|
|
1587
1596
|
courseId: t,
|
|
1588
1597
|
adapter: n,
|
|
1589
|
-
pageSize:
|
|
1590
|
-
filter:
|
|
1598
|
+
pageSize: l,
|
|
1599
|
+
filter: z,
|
|
1591
1600
|
view: o,
|
|
1592
|
-
staleTime:
|
|
1593
|
-
includeItems:
|
|
1594
|
-
inlineItemsFirst: (
|
|
1595
|
-
inlineFirst: (
|
|
1596
|
-
enabled:
|
|
1597
|
-
}), [
|
|
1598
|
-
() =>
|
|
1599
|
-
),
|
|
1600
|
-
|
|
1601
|
-
!
|
|
1602
|
-
const
|
|
1603
|
-
for (const R of
|
|
1604
|
-
R.collapsed === !1 && !
|
|
1605
|
-
return
|
|
1601
|
+
staleTime: d,
|
|
1602
|
+
includeItems: G === "inline",
|
|
1603
|
+
inlineItemsFirst: (ze = L.inlineShape) == null ? void 0 : ze.maxItemCount,
|
|
1604
|
+
inlineFirst: (de = L.inlineShape) == null ? void 0 : de.moduleCount,
|
|
1605
|
+
enabled: G !== null
|
|
1606
|
+
}), [D, H] = ee(
|
|
1607
|
+
() => m ?? []
|
|
1608
|
+
), O = m === void 0, q = $(!1), W = b !== ne && P !== void 0;
|
|
1609
|
+
te(() => {
|
|
1610
|
+
!O || q.current || W || v.isPlaceholderData || H((I) => {
|
|
1611
|
+
const g = new Set(I), T = [...I];
|
|
1612
|
+
for (const R of v.modules)
|
|
1613
|
+
R.collapsed === !1 && !g.has(R.id) && T.push(R.id);
|
|
1614
|
+
return T.length === I.length ? I : T;
|
|
1606
1615
|
});
|
|
1607
|
-
}, [
|
|
1608
|
-
const
|
|
1609
|
-
const
|
|
1610
|
-
for (const
|
|
1611
|
-
return
|
|
1612
|
-
}, [
|
|
1613
|
-
() =>
|
|
1614
|
-
const
|
|
1615
|
-
return
|
|
1616
|
+
}, [v.modules, v.isPlaceholderData, O, W]);
|
|
1617
|
+
const k = N(() => {
|
|
1618
|
+
const I = /* @__PURE__ */ new Map();
|
|
1619
|
+
for (const g of v.modules) I.set(g.id, g);
|
|
1620
|
+
return I;
|
|
1621
|
+
}, [v.modules]), K = N(
|
|
1622
|
+
() => D.filter((I) => {
|
|
1623
|
+
const g = k.get(I);
|
|
1624
|
+
return g !== void 0 && g.items === void 0;
|
|
1616
1625
|
}),
|
|
1617
|
-
[
|
|
1618
|
-
),
|
|
1619
|
-
(
|
|
1626
|
+
[D, k]
|
|
1627
|
+
), Q = N(() => new Set(K), [K]), re = N(() => wo(u), [u]), ie = F(
|
|
1628
|
+
(I, g) => Wn({
|
|
1620
1629
|
courseId: t,
|
|
1621
|
-
moduleId:
|
|
1630
|
+
moduleId: I,
|
|
1622
1631
|
adapter: n,
|
|
1623
1632
|
pageSize: a,
|
|
1624
1633
|
view: o,
|
|
1625
|
-
staleTime:
|
|
1626
|
-
enabled:
|
|
1627
|
-
limit:
|
|
1634
|
+
staleTime: d,
|
|
1635
|
+
enabled: g,
|
|
1636
|
+
limit: re
|
|
1628
1637
|
}),
|
|
1629
|
-
[t, n, a, o,
|
|
1630
|
-
),
|
|
1631
|
-
(
|
|
1632
|
-
let
|
|
1633
|
-
return
|
|
1638
|
+
[t, n, a, o, d, re]
|
|
1639
|
+
), Te = il(K, ie, c), De = Te.fetchNextPage, le = $(/* @__PURE__ */ new Map()), Ee = F(
|
|
1640
|
+
(I) => {
|
|
1641
|
+
let g = le.current.get(I);
|
|
1642
|
+
return g || (g = () => De(I), le.current.set(I, g)), g;
|
|
1634
1643
|
},
|
|
1635
|
-
[
|
|
1636
|
-
),
|
|
1637
|
-
|
|
1638
|
-
(
|
|
1644
|
+
[De]
|
|
1645
|
+
), x = F((I) => {
|
|
1646
|
+
q.current = !0, H(
|
|
1647
|
+
(g) => g.includes(I) ? g : [...g, I]
|
|
1639
1648
|
);
|
|
1640
|
-
}, []),
|
|
1641
|
-
(
|
|
1642
|
-
|
|
1649
|
+
}, []), V = F(
|
|
1650
|
+
(I) => {
|
|
1651
|
+
q.current = !0, H((g) => g.filter((T) => T !== I)), S.cancelQueries({ queryKey: dt(t, I) });
|
|
1643
1652
|
},
|
|
1644
|
-
[
|
|
1645
|
-
),
|
|
1646
|
-
|
|
1647
|
-
const
|
|
1648
|
-
return R.length === 0 ?
|
|
1653
|
+
[S, t]
|
|
1654
|
+
), Ne = F((I) => {
|
|
1655
|
+
q.current = !0, H((g) => {
|
|
1656
|
+
const T = new Set(g), R = I.filter((j) => !T.has(j));
|
|
1657
|
+
return R.length === 0 ? g : [...g, ...R];
|
|
1649
1658
|
});
|
|
1650
|
-
}, []),
|
|
1651
|
-
(
|
|
1652
|
-
|
|
1653
|
-
const
|
|
1654
|
-
|
|
1655
|
-
const R =
|
|
1656
|
-
return R.length ===
|
|
1659
|
+
}, []), Oe = F(
|
|
1660
|
+
(I) => {
|
|
1661
|
+
q.current = !0;
|
|
1662
|
+
const g = new Set(I);
|
|
1663
|
+
H((T) => {
|
|
1664
|
+
const R = T.filter((j) => !g.has(j));
|
|
1665
|
+
return R.length === T.length ? T : R;
|
|
1657
1666
|
});
|
|
1658
|
-
for (const
|
|
1659
|
-
|
|
1667
|
+
for (const T of g)
|
|
1668
|
+
S.cancelQueries({ queryKey: dt(t, T) });
|
|
1660
1669
|
},
|
|
1661
|
-
[
|
|
1662
|
-
),
|
|
1663
|
-
|
|
1664
|
-
const
|
|
1665
|
-
|
|
1666
|
-
for (const
|
|
1667
|
-
}, [
|
|
1668
|
-
|
|
1669
|
-
const
|
|
1670
|
-
(
|
|
1671
|
-
if (
|
|
1672
|
-
if (
|
|
1673
|
-
|
|
1674
|
-
const
|
|
1675
|
-
for (const R of
|
|
1676
|
-
|
|
1677
|
-
} else
|
|
1678
|
-
w(
|
|
1670
|
+
[S, t]
|
|
1671
|
+
), Z = $(D);
|
|
1672
|
+
Z.current = D;
|
|
1673
|
+
const qe = F(() => {
|
|
1674
|
+
q.current = !0;
|
|
1675
|
+
for (const I of Z.current) V(I);
|
|
1676
|
+
}, [V]), ae = $(b);
|
|
1677
|
+
ae.current = b;
|
|
1678
|
+
const J = $(null), ce = F(
|
|
1679
|
+
(I) => {
|
|
1680
|
+
if (I === ae.current) return;
|
|
1681
|
+
if (ae.current = I, I !== ne && Me(E, I) !== void 0) {
|
|
1682
|
+
J.current === null && (J.current = Z.current);
|
|
1683
|
+
const T = q.current;
|
|
1684
|
+
for (const R of Z.current) V(R);
|
|
1685
|
+
q.current = T;
|
|
1686
|
+
} else J.current !== null && (H(J.current), Z.current = J.current, J.current = null);
|
|
1687
|
+
w(I);
|
|
1679
1688
|
},
|
|
1680
|
-
[
|
|
1681
|
-
),
|
|
1682
|
-
(
|
|
1683
|
-
|
|
1689
|
+
[E, V]
|
|
1690
|
+
), nt = F(
|
|
1691
|
+
(I) => {
|
|
1692
|
+
Z.current.includes(I) ? V(I) : x(I);
|
|
1684
1693
|
},
|
|
1685
|
-
[
|
|
1686
|
-
),
|
|
1687
|
-
(
|
|
1688
|
-
var
|
|
1689
|
-
const
|
|
1690
|
-
if (
|
|
1691
|
-
return
|
|
1692
|
-
const
|
|
1693
|
-
if ((
|
|
1694
|
-
return
|
|
1695
|
-
items:
|
|
1696
|
-
pageInfo:
|
|
1694
|
+
[V, x]
|
|
1695
|
+
), Fe = Te.results, ue = $(/* @__PURE__ */ new Map()), Ue = F(
|
|
1696
|
+
(I) => {
|
|
1697
|
+
var pe;
|
|
1698
|
+
const g = k.get(I), T = Fe.get(I), R = Q.has(I), j = ue.current.get(I);
|
|
1699
|
+
if (j && j.items === (g == null ? void 0 : g.items) && j.result === T && j.active === R)
|
|
1700
|
+
return j.value;
|
|
1701
|
+
const Ce = (X) => (ue.current.set(I, { items: g == null ? void 0 : g.items, result: T, active: R, value: X }), X);
|
|
1702
|
+
if ((g == null ? void 0 : g.items) !== void 0)
|
|
1703
|
+
return Ce({
|
|
1704
|
+
items: g.items,
|
|
1705
|
+
pageInfo: Qe,
|
|
1697
1706
|
hasNextPage: !1,
|
|
1698
|
-
fetchNextPage:
|
|
1707
|
+
fetchNextPage: al,
|
|
1699
1708
|
isLoading: !1,
|
|
1700
1709
|
isFetchingNextPage: !1,
|
|
1701
1710
|
error: null,
|
|
1702
1711
|
source: "inline"
|
|
1703
1712
|
});
|
|
1704
|
-
const
|
|
1705
|
-
return
|
|
1706
|
-
items:
|
|
1707
|
-
pageInfo:
|
|
1708
|
-
hasNextPage:
|
|
1709
|
-
fetchNextPage:
|
|
1710
|
-
isLoading:
|
|
1711
|
-
isFetchingNextPage: (
|
|
1712
|
-
error: (
|
|
1713
|
+
const Y = (pe = T == null ? void 0 : T.data) == null ? void 0 : pe.pages, $e = Y ? Y.flatMap((X) => X.items) : ll, me = Y && Y.length > 0 ? Y[Y.length - 1].pageInfo : Qe;
|
|
1714
|
+
return Ce({
|
|
1715
|
+
items: $e,
|
|
1716
|
+
pageInfo: me,
|
|
1717
|
+
hasNextPage: me.hasNextPage,
|
|
1718
|
+
fetchNextPage: Ee(I),
|
|
1719
|
+
isLoading: T ? T.isLoading : R,
|
|
1720
|
+
isFetchingNextPage: (T == null ? void 0 : T.isFetchingNextPage) ?? !1,
|
|
1721
|
+
error: (T == null ? void 0 : T.error) ?? null,
|
|
1713
1722
|
source: "onDemand"
|
|
1714
1723
|
});
|
|
1715
1724
|
},
|
|
1716
|
-
[
|
|
1725
|
+
[k, Fe, Ee, Q]
|
|
1717
1726
|
);
|
|
1718
1727
|
return {
|
|
1719
|
-
modules:
|
|
1720
|
-
pageInfo:
|
|
1721
|
-
hasNextPage:
|
|
1722
|
-
fetchNextPage:
|
|
1723
|
-
isLoading: (
|
|
1724
|
-
isRefreshing:
|
|
1725
|
-
isFetchingNextPage:
|
|
1726
|
-
error:
|
|
1727
|
-
itemsMode:
|
|
1728
|
-
getItems:
|
|
1729
|
-
expandModule:
|
|
1730
|
-
collapseModule:
|
|
1731
|
-
expandModules:
|
|
1732
|
-
collapseModules:
|
|
1733
|
-
collapseAllModules:
|
|
1734
|
-
toggleModule:
|
|
1735
|
-
expandedModuleIds:
|
|
1728
|
+
modules: v.modules,
|
|
1729
|
+
pageInfo: v.pageInfo,
|
|
1730
|
+
hasNextPage: v.hasNextPage,
|
|
1731
|
+
fetchNextPage: v.fetchNextPage,
|
|
1732
|
+
isLoading: (L.isResolving || v.isPending) && !v.isPlaceholderData,
|
|
1733
|
+
isRefreshing: v.isPlaceholderData,
|
|
1734
|
+
isFetchingNextPage: v.isFetchingNextPage,
|
|
1735
|
+
error: v.error ?? L.error,
|
|
1736
|
+
itemsMode: G,
|
|
1737
|
+
getItems: Ue,
|
|
1738
|
+
expandModule: x,
|
|
1739
|
+
collapseModule: V,
|
|
1740
|
+
expandModules: Ne,
|
|
1741
|
+
collapseModules: Oe,
|
|
1742
|
+
collapseAllModules: qe,
|
|
1743
|
+
toggleModule: nt,
|
|
1744
|
+
expandedModuleIds: D,
|
|
1736
1745
|
filter: b,
|
|
1737
|
-
setFilter:
|
|
1738
|
-
filterEntry:
|
|
1739
|
-
filterPredicate:
|
|
1740
|
-
filterResultsArePartial: b !==
|
|
1746
|
+
setFilter: ce,
|
|
1747
|
+
filterEntry: P,
|
|
1748
|
+
filterPredicate: pt(P) ? P == null ? void 0 : P.predicate : void 0,
|
|
1749
|
+
filterResultsArePartial: b !== ne && pt(P) && v.hasNextPage
|
|
1741
1750
|
};
|
|
1742
1751
|
}
|
|
1743
|
-
function
|
|
1744
|
-
const { t: o } =
|
|
1745
|
-
return /* @__PURE__ */ C
|
|
1746
|
-
/* @__PURE__ */
|
|
1747
|
-
/* @__PURE__ */
|
|
1748
|
-
|
|
1752
|
+
function cl({ value: e, onChange: t, describedBy: n }) {
|
|
1753
|
+
const { t: o } = B(), s = ye(), r = N(() => Ze(s.filters), [s.filters]), l = rt();
|
|
1754
|
+
return /* @__PURE__ */ _(C, { as: "div", margin: "medium 0 0 0", children: [
|
|
1755
|
+
/* @__PURE__ */ i(C, { as: "div", margin: "0 0 x-small 0", children: /* @__PURE__ */ i(A, { size: "medium", weight: "bold", id: l, children: o("filterGroupLabel") }) }),
|
|
1756
|
+
/* @__PURE__ */ i(
|
|
1757
|
+
M,
|
|
1749
1758
|
{
|
|
1750
1759
|
gap: "space4",
|
|
1751
1760
|
wrap: "wrap",
|
|
1752
1761
|
as: "div",
|
|
1753
1762
|
role: "group",
|
|
1754
|
-
"aria-labelledby":
|
|
1763
|
+
"aria-labelledby": l,
|
|
1755
1764
|
"data-testid": "filter-chips",
|
|
1756
1765
|
children: r.map((a) => {
|
|
1757
|
-
const
|
|
1758
|
-
return /* @__PURE__ */
|
|
1759
|
-
|
|
1766
|
+
const u = a.key === e;
|
|
1767
|
+
return /* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ i(
|
|
1768
|
+
Pe,
|
|
1760
1769
|
{
|
|
1761
1770
|
size: "medium",
|
|
1762
|
-
color:
|
|
1763
|
-
"aria-pressed":
|
|
1764
|
-
"aria-describedby": a.key !==
|
|
1771
|
+
color: u ? "primary" : "secondary",
|
|
1772
|
+
"aria-pressed": u,
|
|
1773
|
+
"aria-describedby": a.key !== ne && pt(a) ? n : void 0,
|
|
1765
1774
|
onClick: () => t(a.key),
|
|
1766
1775
|
"data-testid": `filter-chip-${a.key}`,
|
|
1767
1776
|
themeOverride: { borderRadius: "0.5rem" },
|
|
@@ -1773,12 +1782,12 @@ function el({ value: e, onChange: t, describedBy: n }) {
|
|
|
1773
1782
|
)
|
|
1774
1783
|
] });
|
|
1775
1784
|
}
|
|
1776
|
-
const
|
|
1785
|
+
const ul = 20, dl = 4.5, Ht = 7, ml = 5, pl = 20, Kn = "#000000", Qn = "#FFFFFF", Vn = {
|
|
1777
1786
|
primary: { semantic: "base", textKey: "baseTextColor", borderKey: "baseBorderColor" },
|
|
1778
1787
|
info: { semantic: "info", textKey: "infoTextColor", borderKey: "infoBorderColor" },
|
|
1779
1788
|
success: { semantic: "success", textKey: "successTextColor", borderKey: "successBorderColor" },
|
|
1780
1789
|
warning: { semantic: "warning", textKey: "warningTextColor", borderKey: "warningBorderColor" }
|
|
1781
|
-
},
|
|
1790
|
+
}, gl = {
|
|
1782
1791
|
card: {
|
|
1783
1792
|
primary: { fill: "#E8EAEC", stroke: "#8D959F", text: "#273540" },
|
|
1784
1793
|
info: { fill: "#D5E4F2", stroke: "#2B7ABC", text: "#23649A" },
|
|
@@ -1792,96 +1801,114 @@ const tl = 20, nl = 4.5, jt = 7, ol = 5, sl = 20, Gn = "#000000", jn = "#FFFFFF"
|
|
|
1792
1801
|
warning: { fill: "#EBD2C4", stroke: "#CF4A00", text: "#A13900" }
|
|
1793
1802
|
}
|
|
1794
1803
|
};
|
|
1795
|
-
function
|
|
1796
|
-
const n =
|
|
1797
|
-
|
|
1798
|
-
|
|
1804
|
+
function fl(e, t) {
|
|
1805
|
+
const n = xo(
|
|
1806
|
+
ct(e),
|
|
1807
|
+
ct(Lo(t, ul))
|
|
1799
1808
|
);
|
|
1800
|
-
return
|
|
1809
|
+
return Mn(n);
|
|
1801
1810
|
}
|
|
1802
|
-
function
|
|
1803
|
-
const o =
|
|
1804
|
-
return Math.min(o, Math.max(
|
|
1811
|
+
function hl(e, t, n) {
|
|
1812
|
+
const o = se(n, t) >= Ht ? Ht : dl;
|
|
1813
|
+
return Math.min(o, Math.max(se(e, Kn), se(e, Qn)));
|
|
1805
1814
|
}
|
|
1806
|
-
function
|
|
1807
|
-
const o =
|
|
1808
|
-
if (
|
|
1809
|
-
const s =
|
|
1815
|
+
function Il(e, t, n) {
|
|
1816
|
+
const o = hl(e, t, n);
|
|
1817
|
+
if (se(e, t) >= o) return t;
|
|
1818
|
+
const s = se(e, Kn) > se(e, Qn) ? Ro : ko;
|
|
1810
1819
|
let r = t;
|
|
1811
|
-
for (let
|
|
1812
|
-
r = s(r,
|
|
1813
|
-
return
|
|
1820
|
+
for (let l = 0; l < pl && se(e, r) < o; l++)
|
|
1821
|
+
r = s(r, ml);
|
|
1822
|
+
return Mn(r);
|
|
1814
1823
|
}
|
|
1815
|
-
function
|
|
1816
|
-
return
|
|
1824
|
+
function bl(e) {
|
|
1825
|
+
return at(e) && ct(e).a === 1;
|
|
1817
1826
|
}
|
|
1818
|
-
function
|
|
1827
|
+
function Wt(e, t) {
|
|
1819
1828
|
var n;
|
|
1820
1829
|
return t === "card" ? (n = e == null ? void 0 : e.elevatedSurface) == null ? void 0 : n.base : e == null ? void 0 : e.muted;
|
|
1821
1830
|
}
|
|
1822
|
-
function
|
|
1823
|
-
var
|
|
1824
|
-
const s =
|
|
1831
|
+
function Kt(e, t, n, o) {
|
|
1832
|
+
var l, a, u, c;
|
|
1833
|
+
const s = gl[n][e], r = t;
|
|
1825
1834
|
try {
|
|
1826
|
-
const
|
|
1827
|
-
if (!
|
|
1828
|
-
const { semantic: f } =
|
|
1829
|
-
if (!
|
|
1830
|
-
const w =
|
|
1831
|
-
return { fill: w, stroke:
|
|
1835
|
+
const d = r == null ? void 0 : r.newTheme, m = (l = d == null ? void 0 : d.semantics) == null ? void 0 : l.call(d, d.primitives);
|
|
1836
|
+
if (!m) return s;
|
|
1837
|
+
const { semantic: f } = Vn[e], S = Wt((c = (u = (a = r == null ? void 0 : r.themeOverride) == null ? void 0 : a.semantics) == null ? void 0 : u.color) == null ? void 0 : c.background, n) ?? Wt(m.color.background, n) ?? "", h = o.stroke ?? m.color.stroke[f], b = o.label ?? m.color.text[f];
|
|
1838
|
+
if (!bl(S) || !at(h) || !at(b)) return s;
|
|
1839
|
+
const w = fl(S, h);
|
|
1840
|
+
return { fill: w, stroke: h, text: Il(w, b, S) };
|
|
1832
1841
|
} catch {
|
|
1833
1842
|
return s;
|
|
1834
1843
|
}
|
|
1835
1844
|
}
|
|
1836
|
-
const
|
|
1837
|
-
function
|
|
1845
|
+
const Qt = /* @__PURE__ */ new WeakMap();
|
|
1846
|
+
function Zn(e, t, n, o = {}) {
|
|
1838
1847
|
if (typeof t != "object" || t === null)
|
|
1839
|
-
return
|
|
1840
|
-
let s =
|
|
1841
|
-
s === void 0 && (s = /* @__PURE__ */ new Map(),
|
|
1842
|
-
const r = `${n}:${e}:${o.stroke ?? ""}:${o.label ?? ""}`,
|
|
1843
|
-
if (
|
|
1844
|
-
const a =
|
|
1848
|
+
return Kt(e, t, n, o);
|
|
1849
|
+
let s = Qt.get(t);
|
|
1850
|
+
s === void 0 && (s = /* @__PURE__ */ new Map(), Qt.set(t, s));
|
|
1851
|
+
const r = `${n}:${e}:${o.stroke ?? ""}:${o.label ?? ""}`, l = s.get(r);
|
|
1852
|
+
if (l !== void 0) return l;
|
|
1853
|
+
const a = Kt(e, t, n, o);
|
|
1845
1854
|
return s.set(r, a), a;
|
|
1846
1855
|
}
|
|
1847
|
-
function
|
|
1848
|
-
const { textKey: n, borderKey: o } =
|
|
1856
|
+
function He(e, t) {
|
|
1857
|
+
const { textKey: n, borderKey: o } = Vn[e];
|
|
1849
1858
|
return (s, r) => {
|
|
1850
|
-
const
|
|
1851
|
-
stroke:
|
|
1852
|
-
label:
|
|
1859
|
+
const l = s, { fill: a, stroke: u, text: c } = Zn(e, r, t, {
|
|
1860
|
+
stroke: l == null ? void 0 : l[o],
|
|
1861
|
+
label: l == null ? void 0 : l[n]
|
|
1853
1862
|
});
|
|
1854
|
-
return { backgroundColor: a, [n]:
|
|
1863
|
+
return { backgroundColor: a, [n]: c, [o]: u };
|
|
1855
1864
|
};
|
|
1856
1865
|
}
|
|
1857
|
-
function
|
|
1866
|
+
function Vt(e) {
|
|
1858
1867
|
return {
|
|
1859
|
-
primary:
|
|
1860
|
-
info:
|
|
1861
|
-
success:
|
|
1862
|
-
warning:
|
|
1868
|
+
primary: He("primary", e),
|
|
1869
|
+
info: He("info", e),
|
|
1870
|
+
success: He("success", e),
|
|
1871
|
+
warning: He("warning", e)
|
|
1872
|
+
};
|
|
1873
|
+
}
|
|
1874
|
+
const Ml = {
|
|
1875
|
+
card: Vt("card"),
|
|
1876
|
+
row: Vt("row")
|
|
1877
|
+
}, Sl = "#9242B4", yl = "#9E58BD";
|
|
1878
|
+
function Zt(e) {
|
|
1879
|
+
return (t, n) => {
|
|
1880
|
+
var l, a, u, c;
|
|
1881
|
+
const { fill: o, stroke: s, text: r } = Zn("primary", n, e, {
|
|
1882
|
+
stroke: ((a = (l = n.colors) == null ? void 0 : l.contrasts) == null ? void 0 : a.violet4570) ?? yl,
|
|
1883
|
+
label: ((c = (u = n.colors) == null ? void 0 : u.contrasts) == null ? void 0 : c.violet5790) ?? Sl
|
|
1884
|
+
});
|
|
1885
|
+
return { backgroundColor: o, baseTextColor: r, baseBorderColor: s };
|
|
1863
1886
|
};
|
|
1864
1887
|
}
|
|
1865
|
-
const
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1888
|
+
const Xn = {
|
|
1889
|
+
tone: "primary",
|
|
1890
|
+
icon: /* @__PURE__ */ i(So, { size: "sm" }),
|
|
1891
|
+
themes: {
|
|
1892
|
+
card: Zt("card"),
|
|
1893
|
+
row: Zt("row")
|
|
1894
|
+
}
|
|
1895
|
+
}, _l = {
|
|
1896
|
+
not_started: { tone: "primary", icon: /* @__PURE__ */ i(mn, { size: "sm" }) },
|
|
1897
|
+
in_progress: { tone: "info", icon: /* @__PURE__ */ i(dn, { size: "sm" }) },
|
|
1898
|
+
complete: { tone: "success", icon: /* @__PURE__ */ i(un, { size: "sm" }) },
|
|
1899
|
+
missing: { tone: "warning", icon: /* @__PURE__ */ i(ve, { size: "sm" }) },
|
|
1900
|
+
incomplete: { tone: "warning", icon: /* @__PURE__ */ i(ve, { size: "sm" }) },
|
|
1901
|
+
missing_and_incomplete: { tone: "warning", icon: /* @__PURE__ */ i(ve, { size: "sm" }) },
|
|
1902
|
+
locked: { tone: "primary", icon: /* @__PURE__ */ i(cn, { size: "sm" }) }
|
|
1903
|
+
}, Tl = {
|
|
1904
|
+
not_started: { tone: "primary", icon: /* @__PURE__ */ i(mn, { size: "sm" }) },
|
|
1905
|
+
in_progress: { tone: "info", icon: /* @__PURE__ */ i(dn, { size: "sm" }) },
|
|
1906
|
+
complete: { tone: "success", icon: /* @__PURE__ */ i(un, { size: "sm" }) },
|
|
1907
|
+
incomplete: { tone: "warning", icon: /* @__PURE__ */ i(ve, { size: "sm" }) },
|
|
1908
|
+
missing: { tone: "warning", icon: /* @__PURE__ */ i(ve, { size: "sm" }) },
|
|
1909
|
+
locked: { tone: "primary", icon: /* @__PURE__ */ i(cn, { size: "sm" }) }
|
|
1883
1910
|
};
|
|
1884
|
-
function
|
|
1911
|
+
function Jn(e, t, n, o) {
|
|
1885
1912
|
switch (t) {
|
|
1886
1913
|
case "not_started":
|
|
1887
1914
|
return e("moduleStatusNotStarted");
|
|
@@ -1902,7 +1929,7 @@ function Wn(e, t, n, o) {
|
|
|
1902
1929
|
return e("moduleStatusLocked");
|
|
1903
1930
|
}
|
|
1904
1931
|
}
|
|
1905
|
-
function
|
|
1932
|
+
function El(e, t) {
|
|
1906
1933
|
switch (t) {
|
|
1907
1934
|
case "not_started":
|
|
1908
1935
|
return e("itemStatusNotStarted");
|
|
@@ -1918,87 +1945,95 @@ function fl(e, t) {
|
|
|
1918
1945
|
return e("itemStatusLocked");
|
|
1919
1946
|
}
|
|
1920
1947
|
}
|
|
1921
|
-
function
|
|
1922
|
-
|
|
1923
|
-
|
|
1948
|
+
function et(e, t, n, o) {
|
|
1949
|
+
var s;
|
|
1950
|
+
return /* @__PURE__ */ i(
|
|
1951
|
+
Do,
|
|
1924
1952
|
{
|
|
1925
1953
|
color: e.tone,
|
|
1926
1954
|
renderIcon: e.icon,
|
|
1927
|
-
themeOverride:
|
|
1955
|
+
themeOverride: ((s = e.themes) == null ? void 0 : s[o]) ?? Ml[o][e.tone],
|
|
1928
1956
|
"data-testid": n,
|
|
1929
1957
|
children: t
|
|
1930
1958
|
}
|
|
1931
1959
|
);
|
|
1932
1960
|
}
|
|
1933
|
-
function
|
|
1961
|
+
function Cl({
|
|
1934
1962
|
status: e,
|
|
1935
1963
|
missingCount: t,
|
|
1936
1964
|
incompleteCount: n
|
|
1937
1965
|
}) {
|
|
1938
|
-
const { t: o } =
|
|
1939
|
-
return
|
|
1940
|
-
|
|
1941
|
-
|
|
1966
|
+
const { t: o } = B();
|
|
1967
|
+
return et(
|
|
1968
|
+
_l[e],
|
|
1969
|
+
Jn(o, e, t, n),
|
|
1942
1970
|
"module-status-pill",
|
|
1943
1971
|
"card"
|
|
1944
1972
|
);
|
|
1945
1973
|
}
|
|
1946
|
-
function
|
|
1947
|
-
const { t } =
|
|
1948
|
-
return
|
|
1949
|
-
|
|
1950
|
-
|
|
1974
|
+
function wl({ status: e }) {
|
|
1975
|
+
const { t } = B();
|
|
1976
|
+
return et(
|
|
1977
|
+
Tl[e],
|
|
1978
|
+
El(t, e),
|
|
1951
1979
|
"item-status-pill",
|
|
1952
1980
|
"row"
|
|
1953
1981
|
);
|
|
1954
1982
|
}
|
|
1955
|
-
|
|
1983
|
+
function vl() {
|
|
1984
|
+
const { t: e } = B();
|
|
1985
|
+
return et(Xn, e("moduleStatusDueSoon"), "module-due-soon-pill", "card");
|
|
1986
|
+
}
|
|
1987
|
+
function Pl() {
|
|
1988
|
+
const { t: e } = B();
|
|
1989
|
+
return et(Xn, e("itemStatusDueSoon"), "item-due-soon-pill", "row");
|
|
1990
|
+
}
|
|
1991
|
+
function eo() {
|
|
1992
|
+
const e = bn();
|
|
1993
|
+
return "key" in e && e.key === "canvas-high-contrast" ? "inline" : "standalone";
|
|
1994
|
+
}
|
|
1995
|
+
const to = 2.75, st = `${to}rem`, Al = { lineHeight: 0, display: "block" }, xl = {
|
|
1956
1996
|
display: "inline-block",
|
|
1957
1997
|
paddingLeft: "0.5rem",
|
|
1958
1998
|
marginLeft: "0.5rem"
|
|
1959
|
-
},
|
|
1960
|
-
function
|
|
1961
|
-
return e == null || typeof e == "boolean" || e === "" ? !0 : Array.isArray(e) ? e.every(
|
|
1999
|
+
}, Ll = "#D7DADE", Rl = "#6A7883", no = { fontSize: 0 };
|
|
2000
|
+
function gt(e) {
|
|
2001
|
+
return e == null || typeof e == "boolean" || e === "" ? !0 : Array.isArray(e) ? e.every(gt) : rn(e) && e.type === an ? gt(e.props.children) : !1;
|
|
1962
2002
|
}
|
|
1963
|
-
const
|
|
2003
|
+
const kl = {
|
|
1964
2004
|
contentVisibility: "auto",
|
|
1965
2005
|
containIntrinsicSize: "auto 4.25rem"
|
|
1966
|
-
},
|
|
1967
|
-
function
|
|
1968
|
-
const e = fn();
|
|
1969
|
-
return "key" in e && e.key === "canvas-high-contrast" ? "inline" : "standalone";
|
|
1970
|
-
}
|
|
1971
|
-
function Vn(e, t) {
|
|
2006
|
+
}, Dl = "0.5rem";
|
|
2007
|
+
function oo(e, t) {
|
|
1972
2008
|
var o, s;
|
|
1973
|
-
const n =
|
|
2009
|
+
const n = bn();
|
|
1974
2010
|
return ("colors" in n ? (s = (o = n.colors) == null ? void 0 : o.contrasts) == null ? void 0 : s[e] : void 0) ?? t;
|
|
1975
2011
|
}
|
|
1976
|
-
function
|
|
1977
|
-
const e =
|
|
2012
|
+
function so() {
|
|
2013
|
+
const e = oo("grey1424", Ll);
|
|
1978
2014
|
return N(
|
|
1979
|
-
() => ({ ...
|
|
2015
|
+
() => ({ ...xl, borderLeft: `1px solid ${e}` }),
|
|
1980
2016
|
[e]
|
|
1981
2017
|
);
|
|
1982
2018
|
}
|
|
1983
|
-
function
|
|
2019
|
+
function Nl({
|
|
1984
2020
|
item: e,
|
|
1985
2021
|
today: t,
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
attachedBelow: s
|
|
2022
|
+
attachedAbove: n,
|
|
2023
|
+
attachedBelow: o
|
|
1989
2024
|
}) {
|
|
1990
|
-
var
|
|
1991
|
-
const { t:
|
|
2025
|
+
var W;
|
|
2026
|
+
const { t: s, locale: r, timezone: l } = B(), a = eo(), u = oo("grey4570", Rl), c = so(), d = ke(), m = ye(), { navigation: f } = m, S = N(() => Ze(m.itemMeta), [m.itemMeta]), h = e.title || s("itemUntitled");
|
|
1992
2027
|
if (e.type === "sub_header")
|
|
1993
|
-
return /* @__PURE__ */
|
|
1994
|
-
|
|
2028
|
+
return /* @__PURE__ */ i(
|
|
2029
|
+
C,
|
|
1995
2030
|
{
|
|
1996
2031
|
as: "div",
|
|
1997
2032
|
padding: "x-small small",
|
|
1998
2033
|
margin: "x-small 0 0 0",
|
|
1999
2034
|
"data-testid": `module-item-${e.id}`,
|
|
2000
|
-
children: /* @__PURE__ */
|
|
2001
|
-
|
|
2035
|
+
children: /* @__PURE__ */ i(
|
|
2036
|
+
A,
|
|
2002
2037
|
{
|
|
2003
2038
|
size: "small",
|
|
2004
2039
|
weight: "bold",
|
|
@@ -2006,42 +2041,42 @@ function El({
|
|
|
2006
2041
|
letterSpacing: "expanded",
|
|
2007
2042
|
"data-testid": "module-item-title",
|
|
2008
2043
|
"data-sub-header": "true",
|
|
2009
|
-
children:
|
|
2044
|
+
children: h
|
|
2010
2045
|
}
|
|
2011
2046
|
)
|
|
2012
2047
|
}
|
|
2013
2048
|
);
|
|
2014
|
-
const b = ((
|
|
2015
|
-
return /* @__PURE__ */
|
|
2016
|
-
|
|
2049
|
+
const b = ((W = f.getItemHref) == null ? void 0 : W.call(f, e)) ?? e.url ?? null, w = e.status === "locked", E = e.status !== void 0 && e.status !== "complete" && !w && yt(e.dueAt, t, l), P = f.onItemClick, z = P ? (k) => P(e, k) : void 0, L = Me(m.itemTypes, e.type), G = L != null && L.renderIcon ? L.renderIcon({ item: e }) : L == null ? void 0 : L.icon, v = { item: e, t: s, today: t, locale: r, timezone: l, formatters: d, config: m }, D = S.map((k) => ({ key: k.key, node: k.render(v) })).filter((k) => !gt(k.node)), H = D.some((k) => k.key === $i), O = n ? "none" : "large", q = o ? "none" : "large";
|
|
2050
|
+
return /* @__PURE__ */ i("div", { style: { ...kl, marginTop: n ? void 0 : Dl }, children: /* @__PURE__ */ i(
|
|
2051
|
+
C,
|
|
2017
2052
|
{
|
|
2018
2053
|
as: "div",
|
|
2019
2054
|
background: "secondary",
|
|
2020
|
-
borderRadius: `${
|
|
2055
|
+
borderRadius: `${O} ${O} ${q} ${q}`,
|
|
2021
2056
|
padding: "small",
|
|
2022
2057
|
"data-testid": `module-item-${e.id}`,
|
|
2023
|
-
children: /* @__PURE__ */
|
|
2024
|
-
/* @__PURE__ */
|
|
2025
|
-
e.indent > 0 ? /* @__PURE__ */
|
|
2026
|
-
/* @__PURE__ */
|
|
2027
|
-
|
|
2058
|
+
children: /* @__PURE__ */ i("div", { style: { paddingInlineStart: `${Math.max(e.indent - 1, 0) * to}rem` }, children: /* @__PURE__ */ _(M, { alignItems: "center", gap: "mediumSmall", children: [
|
|
2059
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(M, { alignItems: "center", children: [
|
|
2060
|
+
e.indent > 0 ? /* @__PURE__ */ i(M.Item, { size: st, textAlign: "center", "data-testid": "item-nest-arrow", children: /* @__PURE__ */ i("span", { style: { color: u }, children: /* @__PURE__ */ i(yo, { size: "md", color: "inherit" }) }) }) : null,
|
|
2061
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ i(
|
|
2062
|
+
C,
|
|
2028
2063
|
{
|
|
2029
2064
|
as: "div",
|
|
2030
2065
|
background: "primary",
|
|
2031
2066
|
borderWidth: "small",
|
|
2032
2067
|
borderRadius: "large",
|
|
2033
|
-
width:
|
|
2034
|
-
height:
|
|
2035
|
-
children: /* @__PURE__ */
|
|
2036
|
-
/* @__PURE__ */
|
|
2037
|
-
|
|
2068
|
+
width: st,
|
|
2069
|
+
height: st,
|
|
2070
|
+
children: /* @__PURE__ */ i(M, { height: "100%", alignItems: "center", justifyItems: "center", children: /* @__PURE__ */ _(M.Item, { children: [
|
|
2071
|
+
/* @__PURE__ */ i("span", { style: Al, "data-testid": "item-type-icon", children: G }),
|
|
2072
|
+
L && !H ? /* @__PURE__ */ i(lt, { children: s(L.label) }) : null
|
|
2038
2073
|
] }) })
|
|
2039
2074
|
}
|
|
2040
2075
|
) })
|
|
2041
2076
|
] }) }),
|
|
2042
|
-
/* @__PURE__ */
|
|
2043
|
-
/* @__PURE__ */
|
|
2044
|
-
|
|
2077
|
+
/* @__PURE__ */ _(M.Item, { shouldGrow: !0, shouldShrink: !0, children: [
|
|
2078
|
+
/* @__PURE__ */ i(C, { as: "div", children: w || !b ? /* @__PURE__ */ i(
|
|
2079
|
+
A,
|
|
2045
2080
|
{
|
|
2046
2081
|
weight: "bold",
|
|
2047
2082
|
size: "medium",
|
|
@@ -2049,59 +2084,62 @@ function El({
|
|
|
2049
2084
|
color: w ? "secondary" : "primary",
|
|
2050
2085
|
"data-testid": "module-item-title",
|
|
2051
2086
|
"data-locked": w ? "true" : void 0,
|
|
2052
|
-
children:
|
|
2087
|
+
children: h
|
|
2053
2088
|
}
|
|
2054
|
-
) : /* @__PURE__ */
|
|
2055
|
-
|
|
2089
|
+
) : /* @__PURE__ */ _(
|
|
2090
|
+
hn,
|
|
2056
2091
|
{
|
|
2057
2092
|
href: b,
|
|
2058
|
-
onClick:
|
|
2093
|
+
onClick: z,
|
|
2059
2094
|
forceButtonRole: !1,
|
|
2060
|
-
variant:
|
|
2095
|
+
variant: a,
|
|
2061
2096
|
target: e.newTab ? "_blank" : void 0,
|
|
2062
2097
|
rel: e.newTab ? "noopener noreferrer" : void 0,
|
|
2063
2098
|
children: [
|
|
2064
|
-
/* @__PURE__ */
|
|
2065
|
-
|
|
2099
|
+
/* @__PURE__ */ i(
|
|
2100
|
+
A,
|
|
2066
2101
|
{
|
|
2067
2102
|
weight: "bold",
|
|
2068
2103
|
size: "medium",
|
|
2069
2104
|
lineHeight: "condensed",
|
|
2070
2105
|
color: "primary",
|
|
2071
2106
|
"data-testid": "module-item-title",
|
|
2072
|
-
children:
|
|
2107
|
+
children: h
|
|
2073
2108
|
}
|
|
2074
2109
|
),
|
|
2075
|
-
e.newTab ? /* @__PURE__ */
|
|
2110
|
+
e.newTab ? /* @__PURE__ */ i(lt, { children: ` ${s("opensInNewWindow")}` }) : null
|
|
2076
2111
|
]
|
|
2077
2112
|
}
|
|
2078
2113
|
) }),
|
|
2079
|
-
/* @__PURE__ */
|
|
2080
|
-
|
|
2081
|
-
/* @__PURE__ */
|
|
2082
|
-
] },
|
|
2114
|
+
/* @__PURE__ */ i(C, { as: "div", children: /* @__PURE__ */ i(A, { size: "x-small", color: "secondary", "data-testid": "module-item-meta", children: D.map((k, K) => /* @__PURE__ */ _(an, { children: [
|
|
2115
|
+
K > 0 ? /* @__PURE__ */ i("span", { style: no, children: " " }) : null,
|
|
2116
|
+
/* @__PURE__ */ i("span", { style: K > 0 ? c : void 0, children: k.node })
|
|
2117
|
+
] }, k.key)) }) })
|
|
2083
2118
|
] }),
|
|
2084
|
-
e.status ? /* @__PURE__ */
|
|
2119
|
+
E || e.status ? /* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(M, { alignItems: "center", gap: "x-small", children: [
|
|
2120
|
+
E ? /* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ i(Pl, {}) }) : null,
|
|
2121
|
+
e.status ? /* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ i(wl, { status: e.status }) }) : null
|
|
2122
|
+
] }) }) : null
|
|
2085
2123
|
] }) })
|
|
2086
2124
|
}
|
|
2087
2125
|
) });
|
|
2088
2126
|
}
|
|
2089
|
-
const
|
|
2090
|
-
function
|
|
2091
|
-
const { t } =
|
|
2092
|
-
if (e.length === 1) return /* @__PURE__ */
|
|
2127
|
+
const Ol = ln(Nl), Xt = "\0", ql = { textDecoration: "underline dotted", cursor: "help" };
|
|
2128
|
+
function Fl({ names: e }) {
|
|
2129
|
+
const { t } = B();
|
|
2130
|
+
if (e.length === 1) return /* @__PURE__ */ i(xt, { children: t("lockedByPrerequisiteByline", { name: e[0] }) });
|
|
2093
2131
|
const n = t("lockedByPrerequisitesByline", {
|
|
2094
2132
|
count: e.length,
|
|
2095
|
-
prerequisites:
|
|
2096
|
-
}), [o, ...s] = n.split(
|
|
2097
|
-
return /* @__PURE__ */
|
|
2133
|
+
prerequisites: Xt
|
|
2134
|
+
}), [o, ...s] = n.split(Xt), r = s.length > 0 ? s.join("") : null;
|
|
2135
|
+
return /* @__PURE__ */ _(xt, { children: [
|
|
2098
2136
|
r === null ? null : o,
|
|
2099
|
-
/* @__PURE__ */
|
|
2137
|
+
/* @__PURE__ */ i(In, { renderTip: e.join(", "), children: /* @__PURE__ */ i(
|
|
2100
2138
|
"span",
|
|
2101
2139
|
{
|
|
2102
2140
|
tabIndex: 0,
|
|
2103
|
-
style:
|
|
2104
|
-
onClick: (
|
|
2141
|
+
style: ql,
|
|
2142
|
+
onClick: (l) => l.stopPropagation(),
|
|
2105
2143
|
"data-testid": "module-byline-prerequisites",
|
|
2106
2144
|
children: r === null ? n : t("lockedByPrerequisitesCount", { count: e.length })
|
|
2107
2145
|
}
|
|
@@ -2109,38 +2147,38 @@ function Pl({ names: e }) {
|
|
|
2109
2147
|
r
|
|
2110
2148
|
] });
|
|
2111
2149
|
}
|
|
2112
|
-
function
|
|
2113
|
-
var
|
|
2114
|
-
const n =
|
|
2115
|
-
let
|
|
2116
|
-
r !== null && a && (s || !e.progress) ?
|
|
2117
|
-
const
|
|
2118
|
-
return
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2150
|
+
function Ul({ module: e, today: t }) {
|
|
2151
|
+
var d;
|
|
2152
|
+
const n = ke(), o = so(), s = ((d = e.progress) == null ? void 0 : d.status) === "locked", r = e.unlockAt ?? null, l = e.prerequisiteModules.map((m) => m.name.trim()).filter((m) => m !== ""), a = r !== null && new Date(r) > t;
|
|
2153
|
+
let u = null;
|
|
2154
|
+
r !== null && a && (s || !e.progress) ? u = n.unlockByline(r, t) : r !== null && !a && !e.progress && (u = n.unlockedByline(r, t));
|
|
2155
|
+
const c = s && l.length > 0;
|
|
2156
|
+
return u === null && !c ? null : /* @__PURE__ */ i(C, { as: "div", margin: "xxx-small 0 0 0", children: /* @__PURE__ */ _(A, { size: "small", color: "secondary", "data-testid": "module-byline", children: [
|
|
2157
|
+
u,
|
|
2158
|
+
u !== null && c ? /* @__PURE__ */ i("span", { style: no, children: " " }) : null,
|
|
2159
|
+
c ? /* @__PURE__ */ i("span", { style: u !== null ? o : void 0, children: /* @__PURE__ */ i(Fl, { names: l }) }) : null
|
|
2122
2160
|
] }) });
|
|
2123
2161
|
}
|
|
2124
|
-
const
|
|
2125
|
-
var n, o, s, r,
|
|
2162
|
+
const zl = "#273540", $l = "#D7DADE", Bl = "0.5rem", Gl = (e, t) => {
|
|
2163
|
+
var n, o, s, r, l;
|
|
2126
2164
|
return {
|
|
2127
|
-
meterColorBrand: ((o = (n = t.colors) == null ? void 0 : n.contrasts) == null ? void 0 : o.grey125125) ??
|
|
2128
|
-
borderRadius: String(((s = t.borders) == null ? void 0 : s.radiusLarge) ??
|
|
2129
|
-
borderColor: ((
|
|
2165
|
+
meterColorBrand: ((o = (n = t.colors) == null ? void 0 : n.contrasts) == null ? void 0 : o.grey125125) ?? zl,
|
|
2166
|
+
borderRadius: String(((s = t.borders) == null ? void 0 : s.radiusLarge) ?? Bl),
|
|
2167
|
+
borderColor: ((l = (r = t.colors) == null ? void 0 : r.contrasts) == null ? void 0 : l.grey1424) ?? $l,
|
|
2130
2168
|
trackBottomBorderColor: "transparent"
|
|
2131
2169
|
};
|
|
2132
|
-
},
|
|
2133
|
-
function
|
|
2170
|
+
}, jl = "66.667%", Yl = "8rem", Hl = 2;
|
|
2171
|
+
function Wl({
|
|
2134
2172
|
module: e,
|
|
2135
2173
|
breakpoints: t
|
|
2136
2174
|
}) {
|
|
2137
|
-
const { t: n } =
|
|
2175
|
+
const { t: n } = B(), o = ke(), s = e.progress;
|
|
2138
2176
|
if (!s || s.status === "locked" || s.requirementCount <= 0) return null;
|
|
2139
|
-
const r = t.mobileOnly,
|
|
2140
|
-
return /* @__PURE__ */
|
|
2141
|
-
|
|
2177
|
+
const r = t.mobileOnly, l = Object.keys(t).length === 0 || t.desktop === !0;
|
|
2178
|
+
return /* @__PURE__ */ _(
|
|
2179
|
+
M,
|
|
2142
2180
|
{
|
|
2143
|
-
width:
|
|
2181
|
+
width: l ? jl : "100%",
|
|
2144
2182
|
direction: r ? "column" : "row",
|
|
2145
2183
|
alignItems: r ? "stretch" : "center",
|
|
2146
2184
|
wrap: "wrap",
|
|
@@ -2148,8 +2186,8 @@ function Ol({
|
|
|
2148
2186
|
margin: "small 0 0 0",
|
|
2149
2187
|
"data-testid": "module-progress",
|
|
2150
2188
|
children: [
|
|
2151
|
-
/* @__PURE__ */
|
|
2152
|
-
|
|
2189
|
+
/* @__PURE__ */ i(M.Item, { size: r ? void 0 : Yl, shouldGrow: !0, children: /* @__PURE__ */ i(
|
|
2190
|
+
Ao,
|
|
2153
2191
|
{
|
|
2154
2192
|
size: "x-small",
|
|
2155
2193
|
meterColor: "brand",
|
|
@@ -2157,16 +2195,16 @@ function Ol({
|
|
|
2157
2195
|
valueMax: s.requirementCount,
|
|
2158
2196
|
shouldAnimate: !1,
|
|
2159
2197
|
screenReaderLabel: n("moduleProgressScreenReaderLabel", { name: e.name }),
|
|
2160
|
-
formatScreenReaderValue: () =>
|
|
2198
|
+
formatScreenReaderValue: () => Fi(
|
|
2161
2199
|
n,
|
|
2162
2200
|
s.percentComplete,
|
|
2163
2201
|
s.requirementsMet,
|
|
2164
2202
|
s.requirementCount
|
|
2165
2203
|
),
|
|
2166
|
-
themeOverride:
|
|
2204
|
+
themeOverride: Gl
|
|
2167
2205
|
}
|
|
2168
2206
|
) }),
|
|
2169
|
-
/* @__PURE__ */
|
|
2207
|
+
/* @__PURE__ */ i(M.Item, { shouldShrink: !0, "aria-hidden": "true", children: /* @__PURE__ */ i(A, { size: "small", color: "secondary", children: o.progress(
|
|
2170
2208
|
s.percentComplete,
|
|
2171
2209
|
s.requirementsMet,
|
|
2172
2210
|
s.requirementCount
|
|
@@ -2175,45 +2213,44 @@ function Ol({
|
|
|
2175
2213
|
}
|
|
2176
2214
|
);
|
|
2177
2215
|
}
|
|
2178
|
-
const
|
|
2216
|
+
const Jt = (e) => `platform-modules-panel-${e}`;
|
|
2179
2217
|
function ft(e) {
|
|
2180
2218
|
return e !== void 0 && e.type !== "sub_header";
|
|
2181
2219
|
}
|
|
2182
|
-
function
|
|
2220
|
+
function en(e) {
|
|
2183
2221
|
return ft(e) && e.indent > 0;
|
|
2184
2222
|
}
|
|
2185
|
-
function
|
|
2223
|
+
function Kl({
|
|
2186
2224
|
module: e,
|
|
2187
2225
|
state: t,
|
|
2188
2226
|
today: n,
|
|
2189
|
-
|
|
2190
|
-
showDiagnostics: s
|
|
2227
|
+
showDiagnostics: o
|
|
2191
2228
|
}) {
|
|
2192
|
-
const { t:
|
|
2193
|
-
return
|
|
2194
|
-
!
|
|
2195
|
-
|
|
2196
|
-
loaded:
|
|
2229
|
+
const { t: s } = B(), r = $(null), l = t.items.length, a = !t.isLoading && !t.isFetchingNextPage;
|
|
2230
|
+
return te(() => {
|
|
2231
|
+
!a || l === 0 || r.current !== l && (r.current = l, he(
|
|
2232
|
+
s("itemsLoadedAnnouncement", {
|
|
2233
|
+
loaded: l,
|
|
2197
2234
|
count: e.itemCount,
|
|
2198
2235
|
name: e.name
|
|
2199
2236
|
})
|
|
2200
2237
|
));
|
|
2201
|
-
}, [
|
|
2202
|
-
|
|
2238
|
+
}, [a, l, e.itemCount, e.name, s]), t.error ? /* @__PURE__ */ i(C, { as: "div", margin: "small 0 0 0", children: /* @__PURE__ */ i(
|
|
2239
|
+
gn,
|
|
2203
2240
|
{
|
|
2204
2241
|
variant: "error",
|
|
2205
2242
|
margin: "0",
|
|
2206
|
-
liveRegion:
|
|
2243
|
+
liveRegion: pn,
|
|
2207
2244
|
liveRegionPoliteness: "assertive",
|
|
2208
2245
|
"data-testid": "items-error",
|
|
2209
|
-
children:
|
|
2246
|
+
children: s("itemsLoadErrorAlert", { message: t.error.message })
|
|
2210
2247
|
}
|
|
2211
|
-
) }) : t.isLoading ? /* @__PURE__ */ C
|
|
2212
|
-
/* @__PURE__ */
|
|
2248
|
+
) }) : t.isLoading ? /* @__PURE__ */ _(C, { as: "div", margin: "small 0 0 0", "data-testid": "items-loading", children: [
|
|
2249
|
+
/* @__PURE__ */ i(it, { size: "x-small", renderTitle: s("itemsLoadingSpinnerLabel") }),
|
|
2213
2250
|
" ",
|
|
2214
|
-
/* @__PURE__ */
|
|
2215
|
-
] }) : /* @__PURE__ */ C
|
|
2216
|
-
|
|
2251
|
+
/* @__PURE__ */ i(A, { size: "small", color: "secondary", children: s("itemsLoadingText") })
|
|
2252
|
+
] }) : /* @__PURE__ */ _(C, { as: "div", margin: "small 0 0 0", children: [
|
|
2253
|
+
o ? /* @__PURE__ */ _(A, { size: "x-small", color: "secondary", "data-testid": "items-source", children: [
|
|
2217
2254
|
"items source: ",
|
|
2218
2255
|
t.source,
|
|
2219
2256
|
" · loaded ",
|
|
@@ -2221,24 +2258,23 @@ function ql({
|
|
|
2221
2258
|
" of ",
|
|
2222
2259
|
e.itemCount
|
|
2223
2260
|
] }) : null,
|
|
2224
|
-
t.items.length === 0 ? /* @__PURE__ */
|
|
2225
|
-
|
|
2261
|
+
t.items.length === 0 ? /* @__PURE__ */ i(C, { as: "div", padding: "small", "data-testid": "items-empty", children: /* @__PURE__ */ i(A, { size: "small", color: "secondary", children: s("noItemsEmptyState") }) }) : /* @__PURE__ */ i("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, "data-testid": "items-list", children: t.items.map((u, c) => /* @__PURE__ */ i("li", { children: /* @__PURE__ */ i(
|
|
2262
|
+
Ol,
|
|
2226
2263
|
{
|
|
2227
2264
|
item: u,
|
|
2228
2265
|
today: n,
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
attachedBelow: ft(u) && Zt(t.items[c + 1])
|
|
2266
|
+
attachedAbove: en(u) && ft(t.items[c - 1]),
|
|
2267
|
+
attachedBelow: ft(u) && en(t.items[c + 1])
|
|
2232
2268
|
}
|
|
2233
2269
|
) }, u.id)) }),
|
|
2234
|
-
t.hasNextPage ? /* @__PURE__ */
|
|
2235
|
-
|
|
2270
|
+
t.hasNextPage ? /* @__PURE__ */ i(C, { as: "div", margin: "small 0 0 0", textAlign: "center", children: /* @__PURE__ */ i(
|
|
2271
|
+
Pe,
|
|
2236
2272
|
{
|
|
2237
2273
|
size: "small",
|
|
2238
2274
|
onClick: t.fetchNextPage,
|
|
2239
2275
|
interaction: t.isFetchingNextPage ? "disabled" : "enabled",
|
|
2240
2276
|
"data-testid": "load-more-items",
|
|
2241
|
-
children: t.isFetchingNextPage ?
|
|
2277
|
+
children: t.isFetchingNextPage ? s("loadMoreItemsLoading") : s("loadMoreItems", {
|
|
2242
2278
|
loaded: t.items.length,
|
|
2243
2279
|
count: e.itemCount
|
|
2244
2280
|
})
|
|
@@ -2246,32 +2282,41 @@ function ql({
|
|
|
2246
2282
|
) }) : null
|
|
2247
2283
|
] });
|
|
2248
2284
|
}
|
|
2249
|
-
function
|
|
2285
|
+
function Ql({
|
|
2250
2286
|
module: e,
|
|
2251
2287
|
expanded: t,
|
|
2252
2288
|
onToggle: n,
|
|
2253
2289
|
itemsState: o,
|
|
2254
2290
|
today: s,
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
moduleLabel: d,
|
|
2291
|
+
showDiagnostics: r = !1,
|
|
2292
|
+
headingLevel: l = "h3",
|
|
2293
|
+
moduleLabel: a,
|
|
2259
2294
|
breakpoints: u = {}
|
|
2260
2295
|
}) {
|
|
2261
|
-
var
|
|
2262
|
-
const { t: c } =
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2296
|
+
var q, W, k, K;
|
|
2297
|
+
const { t: c, timezone: d } = B(), m = ke(), { navigation: f } = ye(), S = eo(), h = ((q = e.progress) == null ? void 0 : q.status) === "locked", b = h ? null : ((W = f.getModuleHref) == null ? void 0 : W.call(f, e)) ?? null, w = a === void 0 ? m.moduleLabel(e.position, e) : a, E = (w == null ? void 0 : w.trim()) || null, P = E ? c("moduleNameWithLabel", { label: E, name: e.name }) : e.name, L = /* @__PURE__ */ i(
|
|
2298
|
+
fn,
|
|
2299
|
+
{
|
|
2300
|
+
level: l,
|
|
2301
|
+
variant: "titleCardRegular",
|
|
2302
|
+
color: h ? "secondary" : "primary",
|
|
2303
|
+
"aria-label": P,
|
|
2304
|
+
"data-testid": "module-name",
|
|
2305
|
+
children: /* @__PURE__ */ i(Po, { linesAllowed: Hl, children: P })
|
|
2306
|
+
}
|
|
2307
|
+
), G = u.mobileOnly === !0, v = () => {
|
|
2308
|
+
var Q;
|
|
2309
|
+
(Q = window.getSelection()) != null && Q.toString().trim() || n(e.id);
|
|
2310
|
+
}, D = (k = e.progress) != null && k.status ? /* @__PURE__ */ i(
|
|
2311
|
+
Cl,
|
|
2267
2312
|
{
|
|
2268
2313
|
status: e.progress.status,
|
|
2269
2314
|
missingCount: e.progress.missingCount,
|
|
2270
2315
|
incompleteCount: e.progress.incompleteCount
|
|
2271
2316
|
}
|
|
2272
|
-
) : null;
|
|
2273
|
-
return /* @__PURE__ */
|
|
2274
|
-
|
|
2317
|
+
) : null, O = ((K = e.progress) == null ? void 0 : K.status) !== void 0 && e.progress.status !== "complete" && !h && yt(e.progress.nextDueAt, s, d) ? /* @__PURE__ */ i(vl, {}) : null;
|
|
2318
|
+
return /* @__PURE__ */ _(
|
|
2319
|
+
C,
|
|
2275
2320
|
{
|
|
2276
2321
|
as: "div",
|
|
2277
2322
|
background: "primary",
|
|
@@ -2282,73 +2327,80 @@ function Fl({
|
|
|
2282
2327
|
margin: "0 0 small 0",
|
|
2283
2328
|
"data-testid": `module-card-${e.id}`,
|
|
2284
2329
|
children: [
|
|
2285
|
-
/* @__PURE__ */
|
|
2286
|
-
|
|
2330
|
+
/* @__PURE__ */ i(C, { as: "div", cursor: "pointer", children: /* @__PURE__ */ _(
|
|
2331
|
+
M,
|
|
2287
2332
|
{
|
|
2288
2333
|
alignItems: "start",
|
|
2289
2334
|
gap: "mediumSmall",
|
|
2290
|
-
onClick:
|
|
2335
|
+
onClick: v,
|
|
2291
2336
|
"data-testid": "module-header",
|
|
2292
2337
|
children: [
|
|
2293
|
-
/* @__PURE__ */
|
|
2294
|
-
/* @__PURE__ */ C
|
|
2295
|
-
/* @__PURE__ */
|
|
2296
|
-
|
|
2338
|
+
/* @__PURE__ */ _(M.Item, { shouldGrow: !0, shouldShrink: !0, children: [
|
|
2339
|
+
/* @__PURE__ */ _(C, { as: "div", children: [
|
|
2340
|
+
/* @__PURE__ */ i(C, { as: "div", children: b ? /* @__PURE__ */ i(
|
|
2341
|
+
hn,
|
|
2297
2342
|
{
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2343
|
+
href: b,
|
|
2344
|
+
display: "inline-block",
|
|
2345
|
+
forceButtonRole: !1,
|
|
2346
|
+
variant: S,
|
|
2347
|
+
"aria-label": P,
|
|
2348
|
+
onClick: (Q) => Q.stopPropagation(),
|
|
2349
|
+
children: L
|
|
2303
2350
|
}
|
|
2304
|
-
),
|
|
2305
|
-
e.published ? null : /* @__PURE__ */
|
|
2351
|
+
) : L }),
|
|
2352
|
+
e.published ? null : /* @__PURE__ */ _(A, { size: "x-small", color: "secondary", children: [
|
|
2306
2353
|
" ",
|
|
2307
2354
|
c("moduleUnpublishedBadge")
|
|
2308
2355
|
] })
|
|
2309
2356
|
] }),
|
|
2310
|
-
/* @__PURE__ */
|
|
2311
|
-
|
|
2312
|
-
|
|
2357
|
+
/* @__PURE__ */ i(Ul, { module: e, today: s }),
|
|
2358
|
+
G && (D || O) ? /* @__PURE__ */ i(C, { as: "div", margin: "x-small 0 0 0", children: /* @__PURE__ */ _(M, { gap: "x-small", wrap: "wrap", children: [
|
|
2359
|
+
O ? /* @__PURE__ */ i(M.Item, { children: O }) : null,
|
|
2360
|
+
D ? /* @__PURE__ */ i(M.Item, { children: D }) : null
|
|
2361
|
+
] }) }) : null,
|
|
2362
|
+
/* @__PURE__ */ i(Wl, { module: e, breakpoints: u })
|
|
2313
2363
|
] }),
|
|
2314
|
-
/* @__PURE__ */
|
|
2315
|
-
!
|
|
2316
|
-
|
|
2317
|
-
|
|
2364
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(M, { alignItems: "center", gap: "mediumSmall", children: [
|
|
2365
|
+
!G && (O || D) ? /* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(M, { alignItems: "center", gap: "x-small", children: [
|
|
2366
|
+
O ? /* @__PURE__ */ i(M.Item, { children: O }) : null,
|
|
2367
|
+
D ? /* @__PURE__ */ i(M.Item, { children: D }) : null
|
|
2368
|
+
] }) }) : null,
|
|
2369
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ i(
|
|
2370
|
+
vo,
|
|
2318
2371
|
{
|
|
2319
2372
|
size: "medium",
|
|
2320
2373
|
withBorder: !0,
|
|
2321
2374
|
withBackground: !1,
|
|
2322
2375
|
screenReaderLabel: t ? c("collapseModule", { name: e.name }) : c("expandModule", { name: e.name }),
|
|
2323
2376
|
"aria-expanded": t,
|
|
2324
|
-
"aria-controls":
|
|
2325
|
-
onClick: (
|
|
2326
|
-
|
|
2377
|
+
"aria-controls": Jt(e.id),
|
|
2378
|
+
onClick: (Q) => {
|
|
2379
|
+
Q.stopPropagation(), n(e.id);
|
|
2327
2380
|
},
|
|
2328
2381
|
"data-testid": `toggle-module-${e.id}`,
|
|
2329
|
-
children: t ? /* @__PURE__ */
|
|
2382
|
+
children: t ? /* @__PURE__ */ i(_o, {}) : /* @__PURE__ */ i(To, {})
|
|
2330
2383
|
}
|
|
2331
2384
|
) })
|
|
2332
2385
|
] }) })
|
|
2333
2386
|
]
|
|
2334
2387
|
}
|
|
2335
2388
|
) }),
|
|
2336
|
-
/* @__PURE__ */
|
|
2337
|
-
|
|
2389
|
+
/* @__PURE__ */ i("div", { id: Jt(e.id), role: "group", "aria-label": e.name, hidden: !t, children: t ? /* @__PURE__ */ i(
|
|
2390
|
+
Kl,
|
|
2338
2391
|
{
|
|
2339
2392
|
module: e,
|
|
2340
2393
|
state: o,
|
|
2341
2394
|
today: s,
|
|
2342
|
-
|
|
2343
|
-
showDiagnostics: i
|
|
2395
|
+
showDiagnostics: r
|
|
2344
2396
|
}
|
|
2345
2397
|
) : null })
|
|
2346
2398
|
]
|
|
2347
2399
|
}
|
|
2348
2400
|
);
|
|
2349
2401
|
}
|
|
2350
|
-
const
|
|
2351
|
-
function
|
|
2402
|
+
const Vl = ln(Ql);
|
|
2403
|
+
function Zl(e) {
|
|
2352
2404
|
switch (e) {
|
|
2353
2405
|
case "complete":
|
|
2354
2406
|
return "complete";
|
|
@@ -2364,11 +2416,11 @@ function zl(e) {
|
|
|
2364
2416
|
return "inProgress";
|
|
2365
2417
|
}
|
|
2366
2418
|
}
|
|
2367
|
-
function
|
|
2368
|
-
var
|
|
2419
|
+
function Xl(e) {
|
|
2420
|
+
var l, a, u;
|
|
2369
2421
|
let t = 0, n = 0, o = 0;
|
|
2370
|
-
for (const
|
|
2371
|
-
((
|
|
2422
|
+
for (const c of e)
|
|
2423
|
+
((l = c.progress) == null ? void 0 : l.status) === "complete" && (t += 1), n += ((a = c.progress) == null ? void 0 : a.requirementCount) ?? 0, o += ((u = c.progress) == null ? void 0 : u.requirementsMet) ?? 0;
|
|
2372
2424
|
const s = e.length, r = s === 0 ? 0 : t === s ? 100 : Math.floor(t / s * 100);
|
|
2373
2425
|
return {
|
|
2374
2426
|
totalModules: s,
|
|
@@ -2378,30 +2430,30 @@ function $l(e) {
|
|
|
2378
2430
|
percent: r
|
|
2379
2431
|
};
|
|
2380
2432
|
}
|
|
2381
|
-
const
|
|
2382
|
-
function
|
|
2433
|
+
const Jl = "1.75rem", ea = "4px", ta = "4px", na = "6.5rem";
|
|
2434
|
+
function oa({
|
|
2383
2435
|
module: e,
|
|
2384
2436
|
onClick: t
|
|
2385
2437
|
}) {
|
|
2386
|
-
var
|
|
2387
|
-
const { t: n } =
|
|
2438
|
+
var d, m, f, S;
|
|
2439
|
+
const { t: n } = B(), s = ke().moduleLabel(e.position, e), r = s ? n("moduleNameWithLabel", { label: s, name: e.name }) : e.name, l = ((d = e.progress) == null ? void 0 : d.status) ?? "not_started", a = Zl(l), u = n("moduleProgressSegmentLabel", {
|
|
2388
2440
|
name: r,
|
|
2389
|
-
status:
|
|
2441
|
+
status: Jn(
|
|
2390
2442
|
n,
|
|
2391
|
-
|
|
2392
|
-
((
|
|
2443
|
+
l,
|
|
2444
|
+
((m = e.progress) == null ? void 0 : m.missingCount) ?? 0,
|
|
2393
2445
|
((f = e.progress) == null ? void 0 : f.incompleteCount) ?? 0
|
|
2394
2446
|
)
|
|
2395
|
-
}),
|
|
2396
|
-
return /* @__PURE__ */
|
|
2397
|
-
|
|
2447
|
+
}), c = a === "complete" ? 100 : a === "inProgress" ? ((S = e.progress) == null ? void 0 : S.percentComplete) ?? 0 : 0;
|
|
2448
|
+
return /* @__PURE__ */ i(M.Item, { shouldShrink: !0, width: na, children: /* @__PURE__ */ i(In, { renderTip: r, children: () => /* @__PURE__ */ _(
|
|
2449
|
+
C,
|
|
2398
2450
|
{
|
|
2399
2451
|
as: "button",
|
|
2400
2452
|
type: "button",
|
|
2401
2453
|
display: "block",
|
|
2402
2454
|
width: "100%",
|
|
2403
|
-
height:
|
|
2404
|
-
borderRadius:
|
|
2455
|
+
height: Jl,
|
|
2456
|
+
borderRadius: ea,
|
|
2405
2457
|
borderWidth: a === "complete" ? "none" : "small",
|
|
2406
2458
|
borderColor: "secondary",
|
|
2407
2459
|
background: a === "locked" ? "secondary" : "primary",
|
|
@@ -2412,44 +2464,44 @@ function Wl({
|
|
|
2412
2464
|
onClick: t ? () => t(e.id) : void 0,
|
|
2413
2465
|
"data-testid": `modules-progress-segment-${e.id}`,
|
|
2414
2466
|
children: [
|
|
2415
|
-
|
|
2416
|
-
|
|
2467
|
+
c > 0 ? /* @__PURE__ */ i(
|
|
2468
|
+
C,
|
|
2417
2469
|
{
|
|
2418
2470
|
as: "div",
|
|
2419
2471
|
position: "absolute",
|
|
2420
2472
|
insetInlineStart: "0",
|
|
2421
2473
|
insetInlineEnd: "0",
|
|
2422
2474
|
insetBlockEnd: "0",
|
|
2423
|
-
height: `${
|
|
2475
|
+
height: `${c}%`,
|
|
2424
2476
|
background: "brand"
|
|
2425
2477
|
}
|
|
2426
2478
|
) : null,
|
|
2427
|
-
/* @__PURE__ */
|
|
2479
|
+
/* @__PURE__ */ i(lt, { children: u })
|
|
2428
2480
|
]
|
|
2429
2481
|
}
|
|
2430
2482
|
) }) });
|
|
2431
2483
|
}
|
|
2432
|
-
function
|
|
2484
|
+
function sa({
|
|
2433
2485
|
modules: e,
|
|
2434
2486
|
onModuleClick: t
|
|
2435
2487
|
}) {
|
|
2436
|
-
const { t: n } =
|
|
2488
|
+
const { t: n } = B(), o = N(() => Xl(e), [e]);
|
|
2437
2489
|
if (!e.some((a) => a.progress !== void 0) || o.totalModules === 0) return null;
|
|
2438
2490
|
const r = n("moduleProgressOverviewSummary", {
|
|
2439
2491
|
count: o.totalModules,
|
|
2440
2492
|
completedModules: o.completedModules,
|
|
2441
2493
|
totalModules: o.totalModules
|
|
2442
|
-
}),
|
|
2494
|
+
}), l = o.totalItems > 0 ? n("moduleProgressOverviewDetail", {
|
|
2443
2495
|
itemsSummary: n("moduleProgressOverviewItemsSummary", {
|
|
2444
2496
|
count: o.totalItems,
|
|
2445
2497
|
completedItems: o.completedItems,
|
|
2446
2498
|
totalItems: o.totalItems
|
|
2447
2499
|
})
|
|
2448
2500
|
}) : null;
|
|
2449
|
-
return /* @__PURE__ */ C
|
|
2450
|
-
/* @__PURE__ */
|
|
2451
|
-
/* @__PURE__ */
|
|
2452
|
-
|
|
2501
|
+
return /* @__PURE__ */ _(C, { as: "div", margin: "medium 0 small 0", "data-testid": "modules-progress-overview", children: [
|
|
2502
|
+
/* @__PURE__ */ i(M, { wrap: "wrap", children: /* @__PURE__ */ _(M.Item, { children: [
|
|
2503
|
+
/* @__PURE__ */ i(C, { as: "span", margin: "0 x-small 0 0", children: /* @__PURE__ */ i(
|
|
2504
|
+
A,
|
|
2453
2505
|
{
|
|
2454
2506
|
size: "large",
|
|
2455
2507
|
weight: "bold",
|
|
@@ -2458,29 +2510,29 @@ function Hl({
|
|
|
2458
2510
|
children: n("moduleProgressOverviewPercentLabel", { percent: o.percent })
|
|
2459
2511
|
}
|
|
2460
2512
|
) }),
|
|
2461
|
-
/* @__PURE__ */
|
|
2513
|
+
/* @__PURE__ */ i(A, { size: "medium", "data-testid": "modules-progress-overview-summary", children: l ? `${r} ${l}` : r })
|
|
2462
2514
|
] }) }),
|
|
2463
|
-
/* @__PURE__ */
|
|
2464
|
-
|
|
2515
|
+
/* @__PURE__ */ i(
|
|
2516
|
+
M,
|
|
2465
2517
|
{
|
|
2466
2518
|
margin: "xx-small 0 0 0",
|
|
2467
|
-
gap:
|
|
2519
|
+
gap: ta,
|
|
2468
2520
|
role: "group",
|
|
2469
2521
|
"aria-label": n("moduleProgressOverviewGroupLabel"),
|
|
2470
2522
|
"data-testid": "modules-progress-overview-segments",
|
|
2471
|
-
children: e.map((a) => /* @__PURE__ */
|
|
2523
|
+
children: e.map((a) => /* @__PURE__ */ i(oa, { module: a, onClick: t }, a.id))
|
|
2472
2524
|
}
|
|
2473
2525
|
)
|
|
2474
2526
|
] });
|
|
2475
2527
|
}
|
|
2476
|
-
function
|
|
2528
|
+
function ra({
|
|
2477
2529
|
counts: e,
|
|
2478
2530
|
itemsMode: t,
|
|
2479
2531
|
loadedModules: n
|
|
2480
2532
|
}) {
|
|
2481
2533
|
const o = e.listModules + e.listModuleItems;
|
|
2482
|
-
return /* @__PURE__ */
|
|
2483
|
-
|
|
2534
|
+
return /* @__PURE__ */ i(
|
|
2535
|
+
C,
|
|
2484
2536
|
{
|
|
2485
2537
|
as: "div",
|
|
2486
2538
|
background: "secondary",
|
|
@@ -2489,25 +2541,25 @@ function Kl({
|
|
|
2489
2541
|
padding: "x-small small",
|
|
2490
2542
|
margin: "0 0 small 0",
|
|
2491
2543
|
"data-testid": "dev-diagnostics",
|
|
2492
|
-
children: /* @__PURE__ */
|
|
2493
|
-
/* @__PURE__ */
|
|
2494
|
-
/* @__PURE__ */
|
|
2544
|
+
children: /* @__PURE__ */ _(M, { gap: "medium", wrap: "wrap", children: [
|
|
2545
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ i(A, { size: "x-small", weight: "bold", children: "Adapter requests" }) }),
|
|
2546
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(A, { size: "x-small", "data-testid": "request-count-list-modules", children: [
|
|
2495
2547
|
"listModules: ",
|
|
2496
2548
|
e.listModules
|
|
2497
2549
|
] }) }),
|
|
2498
|
-
/* @__PURE__ */
|
|
2550
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(A, { size: "x-small", "data-testid": "request-count-list-module-items", children: [
|
|
2499
2551
|
"listModuleItems: ",
|
|
2500
2552
|
e.listModuleItems
|
|
2501
2553
|
] }) }),
|
|
2502
|
-
/* @__PURE__ */
|
|
2554
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(A, { size: "x-small", weight: "bold", "data-testid": "request-count-total", children: [
|
|
2503
2555
|
"total: ",
|
|
2504
2556
|
o
|
|
2505
2557
|
] }) }),
|
|
2506
|
-
/* @__PURE__ */
|
|
2558
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(A, { size: "x-small", "data-testid": "resolved-items-mode", children: [
|
|
2507
2559
|
"itemsMode: ",
|
|
2508
2560
|
t ?? "probing…"
|
|
2509
2561
|
] }) }),
|
|
2510
|
-
/* @__PURE__ */
|
|
2562
|
+
/* @__PURE__ */ i(M.Item, { children: /* @__PURE__ */ _(A, { size: "x-small", "data-testid": "modules-loaded-count", children: [
|
|
2511
2563
|
"modules loaded: ",
|
|
2512
2564
|
n
|
|
2513
2565
|
] }) })
|
|
@@ -2515,190 +2567,189 @@ function Kl({
|
|
|
2515
2567
|
}
|
|
2516
2568
|
);
|
|
2517
2569
|
}
|
|
2518
|
-
const
|
|
2519
|
-
function
|
|
2570
|
+
const ia = 200;
|
|
2571
|
+
function la({
|
|
2520
2572
|
data: e,
|
|
2521
2573
|
courseName: t,
|
|
2522
2574
|
courseContext: n,
|
|
2523
2575
|
today: o,
|
|
2524
2576
|
requestCounts: s,
|
|
2525
2577
|
showDiagnostics: r = s !== void 0,
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
headingLevel: d = "h2",
|
|
2578
|
+
as: l = "div",
|
|
2579
|
+
headingLevel: a = "h2",
|
|
2529
2580
|
breakpoints: u = {}
|
|
2530
2581
|
}) {
|
|
2531
|
-
const { miniTablet: c, tablet:
|
|
2532
|
-
() => ({ miniTablet: c, tablet:
|
|
2533
|
-
[c,
|
|
2582
|
+
const { miniTablet: c, tablet: d, desktop: m, desktopNavOpen: f, desktopOnly: S, mobileOnly: h, ICEDesktop: b } = u, w = N(
|
|
2583
|
+
() => ({ miniTablet: c, tablet: d, desktop: m, desktopNavOpen: f, desktopOnly: S, mobileOnly: h, ICEDesktop: b }),
|
|
2584
|
+
[c, d, m, f, S, h, b]
|
|
2534
2585
|
), {
|
|
2535
|
-
modules:
|
|
2536
|
-
hasNextPage:
|
|
2537
|
-
fetchNextPage:
|
|
2538
|
-
isFetchingNextPage:
|
|
2539
|
-
isLoading:
|
|
2540
|
-
isRefreshing:
|
|
2541
|
-
error:
|
|
2542
|
-
itemsMode:
|
|
2543
|
-
expandedModuleIds:
|
|
2544
|
-
expandModule:
|
|
2545
|
-
collapseModule:
|
|
2546
|
-
toggleModule:
|
|
2547
|
-
expandModules:
|
|
2548
|
-
collapseModules:
|
|
2549
|
-
getItems:
|
|
2550
|
-
filter:
|
|
2551
|
-
setFilter:
|
|
2552
|
-
filterEntry:
|
|
2553
|
-
filterPredicate:
|
|
2554
|
-
filterResultsArePartial:
|
|
2555
|
-
} = e, { t:
|
|
2556
|
-
var
|
|
2557
|
-
(
|
|
2558
|
-
}, []), [
|
|
2559
|
-
|
|
2560
|
-
!
|
|
2561
|
-
}, [
|
|
2562
|
-
var
|
|
2563
|
-
!
|
|
2564
|
-
}, [
|
|
2565
|
-
const
|
|
2566
|
-
() =>
|
|
2567
|
-
(
|
|
2586
|
+
modules: E,
|
|
2587
|
+
hasNextPage: P,
|
|
2588
|
+
fetchNextPage: z,
|
|
2589
|
+
isFetchingNextPage: L,
|
|
2590
|
+
isLoading: G,
|
|
2591
|
+
isRefreshing: v,
|
|
2592
|
+
error: D,
|
|
2593
|
+
itemsMode: H,
|
|
2594
|
+
expandedModuleIds: O,
|
|
2595
|
+
expandModule: q,
|
|
2596
|
+
collapseModule: W,
|
|
2597
|
+
toggleModule: k,
|
|
2598
|
+
expandModules: K,
|
|
2599
|
+
collapseModules: Q,
|
|
2600
|
+
getItems: re,
|
|
2601
|
+
filter: ie,
|
|
2602
|
+
setFilter: Te,
|
|
2603
|
+
filterEntry: De,
|
|
2604
|
+
filterPredicate: le,
|
|
2605
|
+
filterResultsArePartial: Ee
|
|
2606
|
+
} = e, { t: x, timezone: V } = B(), Ne = t ?? x("pageTitle"), Oe = $(null), Z = $(/* @__PURE__ */ new Map()), qe = rt(), ae = rt(), J = h === !0, ce = $(!1), nt = F((y) => {
|
|
2607
|
+
var U;
|
|
2608
|
+
(U = Z.current.get(y)) == null || U.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
2609
|
+
}, []), [Fe] = ee(() => /* @__PURE__ */ new Date()), ue = o ?? Fe, [Ue, ze] = ee(null);
|
|
2610
|
+
te(() => {
|
|
2611
|
+
!P && !v && ie === ne && ze(E);
|
|
2612
|
+
}, [P, v, ie, E]), te(() => {
|
|
2613
|
+
var y;
|
|
2614
|
+
!ce.current || L || v || (ce.current = !1, he(x("modulesLoadedAnnouncement", { count: E.length })), (y = Oe.current) == null || y.focus());
|
|
2615
|
+
}, [L, v, E.length, x]);
|
|
2616
|
+
const de = N(
|
|
2617
|
+
() => E.filter(
|
|
2618
|
+
(y) => le === void 0 || le(y, { today: ue, timezone: V })
|
|
2568
2619
|
),
|
|
2569
|
-
[
|
|
2570
|
-
),
|
|
2571
|
-
rows:
|
|
2572
|
-
expanded:
|
|
2620
|
+
[E, le, ue, V]
|
|
2621
|
+
), I = $({
|
|
2622
|
+
rows: de,
|
|
2623
|
+
expanded: O,
|
|
2573
2624
|
items: /* @__PURE__ */ new Map()
|
|
2574
|
-
}), [
|
|
2575
|
-
|
|
2576
|
-
rows:
|
|
2577
|
-
expanded:
|
|
2578
|
-
items: new Map(
|
|
2579
|
-
},
|
|
2580
|
-
const
|
|
2581
|
-
() =>
|
|
2582
|
-
[
|
|
2583
|
-
),
|
|
2584
|
-
|
|
2585
|
-
if (
|
|
2586
|
-
if (
|
|
2587
|
-
|
|
2625
|
+
}), [g, T] = ee(null);
|
|
2626
|
+
v ? g === null && T(I.current) : (I.current = {
|
|
2627
|
+
rows: de,
|
|
2628
|
+
expanded: O,
|
|
2629
|
+
items: new Map(O.map((y) => [y, re(y)]))
|
|
2630
|
+
}, g !== null && T(null));
|
|
2631
|
+
const R = (g == null ? void 0 : g.rows) ?? de, j = (g == null ? void 0 : g.expanded) ?? O, Ce = N(() => new Set(j), [j]), Y = N(
|
|
2632
|
+
() => R.filter((y) => Ce.has(y.id)).map((y) => y.id),
|
|
2633
|
+
[R, Ce]
|
|
2634
|
+
), $e = Y.length > 0, [me, pe] = ee(!1), X = Y.filter((y) => re(y).isLoading).length, Be = me ? X : 0, ge = $(!1);
|
|
2635
|
+
te(() => {
|
|
2636
|
+
if (me) {
|
|
2637
|
+
if (X > 0 && !ge.current) {
|
|
2638
|
+
ge.current = !0, he(x("expandAllLoadingItems", { count: X }));
|
|
2588
2639
|
return;
|
|
2589
2640
|
}
|
|
2590
|
-
|
|
2641
|
+
X === 0 && ge.current && (ge.current = !1, pe(!1), he(x("expandAllItemsLoaded")));
|
|
2591
2642
|
}
|
|
2592
|
-
}, [
|
|
2593
|
-
const
|
|
2594
|
-
if (
|
|
2595
|
-
const
|
|
2596
|
-
|
|
2643
|
+
}, [me, X, x]);
|
|
2644
|
+
const lo = () => {
|
|
2645
|
+
if ($e) {
|
|
2646
|
+
const U = new Set(Y);
|
|
2647
|
+
pe(!1), ge.current = !1, Q(Y), g !== null && T({ ...g, expanded: g.expanded.filter((Ge) => !U.has(Ge)) }), he(x("modulesCollapsedAnnouncement", { count: Y.length }));
|
|
2597
2648
|
return;
|
|
2598
2649
|
}
|
|
2599
|
-
const
|
|
2600
|
-
|
|
2601
|
-
},
|
|
2602
|
-
|
|
2603
|
-
const
|
|
2604
|
-
(
|
|
2605
|
-
const
|
|
2606
|
-
if (
|
|
2607
|
-
|
|
2650
|
+
const y = R.map((U) => U.id);
|
|
2651
|
+
pe(!0), ge.current = !1, K(y), g !== null && T({ ...g, expanded: y }), he(x("modulesExpandedAnnouncement", { count: y.length }));
|
|
2652
|
+
}, Ct = $(g);
|
|
2653
|
+
Ct.current = g;
|
|
2654
|
+
const ao = F(
|
|
2655
|
+
(y) => {
|
|
2656
|
+
const U = Ct.current;
|
|
2657
|
+
if (U === null) {
|
|
2658
|
+
k(y);
|
|
2608
2659
|
return;
|
|
2609
2660
|
}
|
|
2610
|
-
const
|
|
2611
|
-
|
|
2612
|
-
...
|
|
2613
|
-
expanded:
|
|
2614
|
-
}),
|
|
2661
|
+
const Ge = U.expanded.includes(y);
|
|
2662
|
+
T({
|
|
2663
|
+
...U,
|
|
2664
|
+
expanded: Ge ? U.expanded.filter((mo) => mo !== y) : [...U.expanded, y]
|
|
2665
|
+
}), Ge ? W(y) : q(y);
|
|
2615
2666
|
},
|
|
2616
|
-
[
|
|
2617
|
-
), [
|
|
2618
|
-
|
|
2619
|
-
if (!
|
|
2620
|
-
|
|
2667
|
+
[k, W, q]
|
|
2668
|
+
), [co, wt] = ee(!1);
|
|
2669
|
+
te(() => {
|
|
2670
|
+
if (!v) {
|
|
2671
|
+
wt(!1);
|
|
2621
2672
|
return;
|
|
2622
2673
|
}
|
|
2623
|
-
const
|
|
2624
|
-
return () => clearTimeout(
|
|
2625
|
-
}, [
|
|
2626
|
-
const
|
|
2627
|
-
return /* @__PURE__ */ C
|
|
2628
|
-
n ? /* @__PURE__ */ C
|
|
2629
|
-
/* @__PURE__ */
|
|
2630
|
-
/* @__PURE__ */
|
|
2674
|
+
const y = setTimeout(() => wt(!0), ia);
|
|
2675
|
+
return () => clearTimeout(y);
|
|
2676
|
+
}, [v]);
|
|
2677
|
+
const vt = De !== void 0 && ie !== ne, Pt = G || v && R.length === 0, At = R.length === 0 && !Pt && !D, uo = At && vt;
|
|
2678
|
+
return /* @__PURE__ */ _(C, { as: l, display: "block", "data-testid": "modules-list", children: [
|
|
2679
|
+
n ? /* @__PURE__ */ _(C, { as: "div", children: [
|
|
2680
|
+
/* @__PURE__ */ i(A, { size: "small", color: "brand", children: n }),
|
|
2681
|
+
/* @__PURE__ */ _(A, { size: "small", color: "secondary", children: [
|
|
2631
2682
|
" ",
|
|
2632
2683
|
"/",
|
|
2633
2684
|
" "
|
|
2634
2685
|
] }),
|
|
2635
|
-
/* @__PURE__ */
|
|
2686
|
+
/* @__PURE__ */ i(A, { size: "small", color: "secondary", children: Ne })
|
|
2636
2687
|
] }) : null,
|
|
2637
|
-
/* @__PURE__ */
|
|
2638
|
-
|
|
2639
|
-
r && s ? /* @__PURE__ */
|
|
2640
|
-
|
|
2688
|
+
/* @__PURE__ */ i(fn, { level: a, margin: "x-small 0 medium 0", children: Ne }),
|
|
2689
|
+
Ue ? /* @__PURE__ */ i(sa, { modules: Ue, onModuleClick: nt }) : null,
|
|
2690
|
+
r && s ? /* @__PURE__ */ i(
|
|
2691
|
+
ra,
|
|
2641
2692
|
{
|
|
2642
2693
|
counts: s,
|
|
2643
|
-
itemsMode:
|
|
2644
|
-
loadedModules:
|
|
2694
|
+
itemsMode: H,
|
|
2695
|
+
loadedModules: E.length
|
|
2645
2696
|
}
|
|
2646
2697
|
) : null,
|
|
2647
|
-
/* @__PURE__ */
|
|
2648
|
-
|
|
2698
|
+
/* @__PURE__ */ i(M, { justifyItems: "end", "data-testid": "modules-controls", children: /* @__PURE__ */ i(M.Item, { shouldGrow: J, children: /* @__PURE__ */ i(
|
|
2699
|
+
Pe,
|
|
2649
2700
|
{
|
|
2650
|
-
display:
|
|
2651
|
-
onClick:
|
|
2652
|
-
interaction:
|
|
2653
|
-
renderIcon:
|
|
2654
|
-
"aria-describedby":
|
|
2701
|
+
display: J ? "block" : "inline-block",
|
|
2702
|
+
onClick: lo,
|
|
2703
|
+
interaction: R.length === 0 ? "disabled" : "enabled",
|
|
2704
|
+
renderIcon: Be > 0 ? /* @__PURE__ */ i(it, { size: "x-small", renderTitle: x("itemsLoadingSpinnerLabel") }) : void 0,
|
|
2705
|
+
"aria-describedby": Be > 0 ? ae : void 0,
|
|
2655
2706
|
"data-testid": "expand-collapse-all",
|
|
2656
|
-
children:
|
|
2707
|
+
children: x($e ? "collapseAllModules" : "expandAllModules")
|
|
2657
2708
|
}
|
|
2658
2709
|
) }) }),
|
|
2659
|
-
|
|
2660
|
-
|
|
2710
|
+
Be > 0 ? /* @__PURE__ */ i(C, { as: "div", margin: "xx-small 0 0 0", textAlign: "end", children: /* @__PURE__ */ i(
|
|
2711
|
+
A,
|
|
2661
2712
|
{
|
|
2662
2713
|
size: "x-small",
|
|
2663
2714
|
color: "secondary",
|
|
2664
|
-
id:
|
|
2715
|
+
id: ae,
|
|
2665
2716
|
"data-testid": "expand-all-loading-hint",
|
|
2666
|
-
children:
|
|
2717
|
+
children: x("expandAllLoadingItems", { count: Be })
|
|
2667
2718
|
}
|
|
2668
2719
|
) }) : null,
|
|
2669
|
-
/* @__PURE__ */
|
|
2670
|
-
|
|
2720
|
+
/* @__PURE__ */ i(
|
|
2721
|
+
cl,
|
|
2671
2722
|
{
|
|
2672
|
-
value:
|
|
2673
|
-
onChange:
|
|
2674
|
-
describedBy:
|
|
2723
|
+
value: ie,
|
|
2724
|
+
onChange: Te,
|
|
2725
|
+
describedBy: Ee ? qe : void 0
|
|
2675
2726
|
}
|
|
2676
2727
|
),
|
|
2677
|
-
|
|
2678
|
-
|
|
2728
|
+
Ee ? /* @__PURE__ */ i(C, { as: "div", margin: "x-small 0 0 0", children: /* @__PURE__ */ i(
|
|
2729
|
+
A,
|
|
2679
2730
|
{
|
|
2680
2731
|
size: "x-small",
|
|
2681
2732
|
color: "secondary",
|
|
2682
|
-
id:
|
|
2733
|
+
id: qe,
|
|
2683
2734
|
"data-testid": "filter-partial-hint",
|
|
2684
|
-
children:
|
|
2735
|
+
children: x("filterScopeHint")
|
|
2685
2736
|
}
|
|
2686
2737
|
) }) : null,
|
|
2687
|
-
/* @__PURE__ */ C
|
|
2688
|
-
|
|
2689
|
-
|
|
2738
|
+
/* @__PURE__ */ _(C, { as: "div", margin: "medium 0 0 0", children: [
|
|
2739
|
+
D ? /* @__PURE__ */ i(
|
|
2740
|
+
gn,
|
|
2690
2741
|
{
|
|
2691
2742
|
variant: "error",
|
|
2692
2743
|
margin: "0 0 small 0",
|
|
2693
|
-
liveRegion:
|
|
2744
|
+
liveRegion: pn,
|
|
2694
2745
|
liveRegionPoliteness: "assertive",
|
|
2695
2746
|
"data-testid": "modules-error",
|
|
2696
|
-
children:
|
|
2747
|
+
children: x("modulesLoadErrorAlert", { message: D.message })
|
|
2697
2748
|
}
|
|
2698
2749
|
) : null,
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2750
|
+
Pt ? /* @__PURE__ */ i(C, { as: "div", padding: "large", textAlign: "center", "data-testid": "modules-loading", children: /* @__PURE__ */ i(it, { renderTitle: x("modulesLoadingSpinnerLabel") }) }) : null,
|
|
2751
|
+
At && !vt ? /* @__PURE__ */ i(
|
|
2752
|
+
C,
|
|
2702
2753
|
{
|
|
2703
2754
|
as: "div",
|
|
2704
2755
|
background: "secondary",
|
|
@@ -2706,11 +2757,11 @@ function Vl({
|
|
|
2706
2757
|
padding: "large",
|
|
2707
2758
|
textAlign: "center",
|
|
2708
2759
|
"data-testid": "modules-empty",
|
|
2709
|
-
children: /* @__PURE__ */
|
|
2760
|
+
children: /* @__PURE__ */ i(A, { color: "secondary", children: x("noModulesEmptyState") })
|
|
2710
2761
|
}
|
|
2711
2762
|
) : null,
|
|
2712
|
-
|
|
2713
|
-
|
|
2763
|
+
uo ? /* @__PURE__ */ _(
|
|
2764
|
+
C,
|
|
2714
2765
|
{
|
|
2715
2766
|
as: "div",
|
|
2716
2767
|
background: "secondary",
|
|
@@ -2719,80 +2770,79 @@ function Vl({
|
|
|
2719
2770
|
textAlign: "center",
|
|
2720
2771
|
"data-testid": "modules-filtered-empty",
|
|
2721
2772
|
children: [
|
|
2722
|
-
/* @__PURE__ */
|
|
2723
|
-
/* @__PURE__ */
|
|
2724
|
-
|
|
2773
|
+
/* @__PURE__ */ i(C, { as: "div", margin: "0 0 small 0", children: /* @__PURE__ */ i(A, { color: "secondary", children: E.length === 0 ? x("noFilterMatches") : x("filteredEmptyState", { count: E.length }) }) }),
|
|
2774
|
+
/* @__PURE__ */ i(
|
|
2775
|
+
Pe,
|
|
2725
2776
|
{
|
|
2726
2777
|
size: "small",
|
|
2727
2778
|
onClick: () => {
|
|
2728
|
-
|
|
2779
|
+
Te(ne), ce.current = !0;
|
|
2729
2780
|
},
|
|
2730
|
-
children:
|
|
2781
|
+
children: x("clearFilters")
|
|
2731
2782
|
}
|
|
2732
2783
|
)
|
|
2733
2784
|
]
|
|
2734
2785
|
}
|
|
2735
2786
|
) : null,
|
|
2736
|
-
/* @__PURE__ */
|
|
2787
|
+
/* @__PURE__ */ i(
|
|
2737
2788
|
"ul",
|
|
2738
2789
|
{
|
|
2739
|
-
style: { listStyle: "none", margin: 0, padding: 0, opacity:
|
|
2740
|
-
"aria-busy":
|
|
2790
|
+
style: { listStyle: "none", margin: 0, padding: 0, opacity: co ? 0.5 : 1 },
|
|
2791
|
+
"aria-busy": v,
|
|
2741
2792
|
"data-testid": "modules-stack",
|
|
2742
|
-
children:
|
|
2793
|
+
children: R.map((y) => /* @__PURE__ */ i(
|
|
2743
2794
|
"li",
|
|
2744
2795
|
{
|
|
2745
|
-
ref: (
|
|
2746
|
-
|
|
2796
|
+
ref: (U) => {
|
|
2797
|
+
U ? Z.current.set(y.id, U) : Z.current.delete(y.id);
|
|
2747
2798
|
},
|
|
2748
|
-
children: /* @__PURE__ */
|
|
2749
|
-
|
|
2799
|
+
children: /* @__PURE__ */ i(
|
|
2800
|
+
Vl,
|
|
2750
2801
|
{
|
|
2751
|
-
module:
|
|
2752
|
-
expanded:
|
|
2753
|
-
onToggle:
|
|
2754
|
-
itemsState: (
|
|
2755
|
-
today:
|
|
2802
|
+
module: y,
|
|
2803
|
+
expanded: j.includes(y.id),
|
|
2804
|
+
onToggle: ao,
|
|
2805
|
+
itemsState: (g == null ? void 0 : g.items.get(y.id)) ?? re(y.id),
|
|
2806
|
+
today: ue,
|
|
2756
2807
|
showDiagnostics: r,
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
breakpoints: x
|
|
2808
|
+
headingLevel: a === "h1" ? "h2" : "h3",
|
|
2809
|
+
breakpoints: w
|
|
2760
2810
|
}
|
|
2761
2811
|
)
|
|
2762
2812
|
},
|
|
2763
|
-
|
|
2813
|
+
y.id
|
|
2764
2814
|
))
|
|
2765
2815
|
}
|
|
2766
2816
|
)
|
|
2767
2817
|
] }),
|
|
2768
|
-
|
|
2769
|
-
|
|
2818
|
+
P ? /* @__PURE__ */ i(C, { as: "div", textAlign: "center", margin: "small 0 0 0", children: /* @__PURE__ */ i(
|
|
2819
|
+
Pe,
|
|
2770
2820
|
{
|
|
2771
2821
|
color: "primary",
|
|
2772
2822
|
onClick: () => {
|
|
2773
|
-
|
|
2823
|
+
ce.current = !0, z();
|
|
2774
2824
|
},
|
|
2775
|
-
interaction:
|
|
2825
|
+
interaction: L || v ? "disabled" : "enabled",
|
|
2776
2826
|
"data-testid": "load-more-modules",
|
|
2777
|
-
children:
|
|
2827
|
+
children: L ? x("loadMoreModulesLoading") : x("loadMoreModules", { count: E.length })
|
|
2778
2828
|
}
|
|
2779
|
-
) }) :
|
|
2780
|
-
|
|
2829
|
+
) }) : E.length > 0 ? /* @__PURE__ */ i(C, { as: "div", textAlign: "center", margin: "small 0 0 0", children: /* @__PURE__ */ i(
|
|
2830
|
+
A,
|
|
2781
2831
|
{
|
|
2782
2832
|
size: "x-small",
|
|
2783
2833
|
color: "secondary",
|
|
2784
2834
|
"data-testid": "modules-all-loaded",
|
|
2785
|
-
elementRef: (
|
|
2786
|
-
|
|
2835
|
+
elementRef: (y) => {
|
|
2836
|
+
Oe.current = y;
|
|
2787
2837
|
},
|
|
2788
2838
|
tabIndex: -1,
|
|
2789
|
-
children:
|
|
2839
|
+
children: x("allModulesLoaded", { count: E.length })
|
|
2790
2840
|
}
|
|
2791
2841
|
) }) : null
|
|
2792
2842
|
] });
|
|
2793
2843
|
}
|
|
2794
|
-
const
|
|
2795
|
-
|
|
2844
|
+
const hc = No(
|
|
2845
|
+
la
|
|
2796
2846
|
), Ae = [
|
|
2797
2847
|
"assignment",
|
|
2798
2848
|
"quiz",
|
|
@@ -2802,7 +2852,7 @@ const sc = vo(
|
|
|
2802
2852
|
"external_url",
|
|
2803
2853
|
"external_tool",
|
|
2804
2854
|
"sub_header"
|
|
2805
|
-
],
|
|
2855
|
+
], ht = [
|
|
2806
2856
|
"not_started",
|
|
2807
2857
|
"in_progress",
|
|
2808
2858
|
"complete",
|
|
@@ -2810,30 +2860,30 @@ const sc = vo(
|
|
|
2810
2860
|
"incomplete",
|
|
2811
2861
|
"missing_and_incomplete",
|
|
2812
2862
|
"locked"
|
|
2813
|
-
],
|
|
2863
|
+
], ro = [
|
|
2814
2864
|
"must_view",
|
|
2815
2865
|
"must_submit",
|
|
2816
2866
|
"must_contribute",
|
|
2817
2867
|
"must_mark_done",
|
|
2818
2868
|
"min_score",
|
|
2819
2869
|
"min_percentage"
|
|
2820
|
-
],
|
|
2870
|
+
], aa = ["assignment", "quiz", "discussion"], ca = ["external_url", "external_tool"], ua = ["assignment", "quiz", "discussion"], da = Date.UTC(2025, 0, 6), ma = 864e5, _e = "1", io = (e) => new Date(da + e * ma).toISOString(), Ve = [
|
|
2821
2871
|
"min_score",
|
|
2822
2872
|
"min_percentage"
|
|
2823
|
-
],
|
|
2824
|
-
(e) => !
|
|
2825
|
-
),
|
|
2873
|
+
], pa = ro.filter(
|
|
2874
|
+
(e) => !Ve.includes(e)
|
|
2875
|
+
), ga = [
|
|
2826
2876
|
"in_progress",
|
|
2827
2877
|
"incomplete",
|
|
2828
2878
|
"missing_and_incomplete"
|
|
2829
|
-
],
|
|
2830
|
-
const s = n ?
|
|
2879
|
+
], fa = (e, t, n, o) => {
|
|
2880
|
+
const s = n ? ro : pa, r = n && o ? Ve[t % Ve.length] : s[Math.floor(t / 3) % s.length];
|
|
2831
2881
|
return r === "min_score" ? { itemId: e, type: r, minScore: 10 } : r === "min_percentage" ? { itemId: e, type: r, minPercentage: 80 } : { itemId: e, type: r };
|
|
2832
|
-
},
|
|
2882
|
+
}, ha = (e, t, n, o) => e === "sub_header" ? !1 : n && o || t % 3 === 0, Et = (e) => ht[(e - 1) % ht.length], Ia = (e, t) => !ua.includes(e) || e === "discussion" && Math.floor(t / Ae.length) % 2 === 1 ? null : 5 + t % 4 * 5, ba = (e, t, n, o) => t ? e === "missing" ? n != null || o % 2 === 0 : e === "missing_and_incomplete" ? o % 2 === 1 : !1 : !1, Ma = (e, t, n, o) => {
|
|
2833
2883
|
if (e === "locked") return "locked";
|
|
2834
|
-
if (
|
|
2884
|
+
if (ba(e, t, n, o)) return "missing";
|
|
2835
2885
|
if (!n) return;
|
|
2836
|
-
const s = t &&
|
|
2886
|
+
const s = t && Ve.includes(n.type);
|
|
2837
2887
|
switch (e) {
|
|
2838
2888
|
case "not_started":
|
|
2839
2889
|
case "missing":
|
|
@@ -2848,37 +2898,37 @@ const sc = vo(
|
|
|
2848
2898
|
default:
|
|
2849
2899
|
return e;
|
|
2850
2900
|
}
|
|
2851
|
-
},
|
|
2852
|
-
const
|
|
2901
|
+
}, Sa = (e) => e.status === "complete", ya = (e, t, n, o, s, r, l, a) => {
|
|
2902
|
+
const u = String(e), c = Ae[o % Ae.length], d = c === "sub_header", m = aa.includes(c) && (o % 4 === 0 || s === "missing");
|
|
2853
2903
|
return {
|
|
2854
2904
|
id: n,
|
|
2855
|
-
moduleId:
|
|
2856
|
-
title: `${
|
|
2857
|
-
type:
|
|
2905
|
+
moduleId: u,
|
|
2906
|
+
title: `${c} ${t + 1}`,
|
|
2907
|
+
type: c,
|
|
2858
2908
|
position: t + 1,
|
|
2859
2909
|
indent: t % 5 === 4 ? 1 : 0,
|
|
2860
2910
|
published: a === "teacher" ? o % 7 !== 0 : !0,
|
|
2861
|
-
url:
|
|
2862
|
-
newTab:
|
|
2863
|
-
completionRequirement:
|
|
2864
|
-
dueAt:
|
|
2911
|
+
url: d ? null : `/courses/${_e}/modules/items/${n}`,
|
|
2912
|
+
newTab: ca.includes(c) && o % 2 === 0,
|
|
2913
|
+
completionRequirement: l,
|
|
2914
|
+
dueAt: m ? io(o % 90) : null,
|
|
2865
2915
|
status: s,
|
|
2866
2916
|
pointsPossible: r,
|
|
2867
|
-
extensions:
|
|
2917
|
+
extensions: Mt(
|
|
2868
2918
|
void 0,
|
|
2869
2919
|
o % 37 === 0 ? 5 + o % 4 * 10 : null
|
|
2870
2920
|
)
|
|
2871
2921
|
};
|
|
2872
|
-
},
|
|
2873
|
-
const s =
|
|
2922
|
+
}, _a = (e, t, n, o) => {
|
|
2923
|
+
const s = Et(e), r = ga.includes(s), l = [];
|
|
2874
2924
|
let a = 0;
|
|
2875
|
-
for (let
|
|
2876
|
-
const
|
|
2877
|
-
|
|
2925
|
+
for (let u = 0; u < t; u += 1) {
|
|
2926
|
+
const c = n + u, d = Ae[c % Ae.length], m = Ia(d, c), f = m !== null, S = f ? a++ : u, h = String(e * 1e3 + u + 1), b = ha(d, c, f, r) ? fa(h, c, f, r) : null, w = Ma(s, f, b, S);
|
|
2927
|
+
l.push(ya(e, u, h, c, w, m, b, o));
|
|
2878
2928
|
}
|
|
2879
|
-
return
|
|
2880
|
-
},
|
|
2881
|
-
const s =
|
|
2929
|
+
return l;
|
|
2930
|
+
}, Ta = (e, t, n, o) => {
|
|
2931
|
+
const s = Et(e);
|
|
2882
2932
|
if (s === "locked" || s === "not_started") return s;
|
|
2883
2933
|
if (t.length === 0) return "not_started";
|
|
2884
2934
|
if (!t.some((r) => r.pointsPossible != null) || s === "missing" && n === 0 || s === "incomplete" && o === 0) return "in_progress";
|
|
@@ -2888,36 +2938,36 @@ const sc = vo(
|
|
|
2888
2938
|
if (o === 0) return "missing";
|
|
2889
2939
|
}
|
|
2890
2940
|
return s;
|
|
2891
|
-
},
|
|
2892
|
-
const o = t.filter((
|
|
2941
|
+
}, Ea = (e) => e.map((n) => n.dueAt).filter((n) => typeof n == "string").sort()[0] ?? null, Ca = (e, t, n) => {
|
|
2942
|
+
const o = t.filter((c) => c.completionRequirement), s = n ?? o.length, r = Math.min(o.filter(Sa).length, s), l = t.filter((c) => c.status === "missing").length, a = t.filter((c) => c.status === "incomplete").length;
|
|
2893
2943
|
return {
|
|
2894
|
-
status:
|
|
2944
|
+
status: Ta(e, t, l, a),
|
|
2895
2945
|
requirementsMet: r,
|
|
2896
2946
|
requirementCount: s,
|
|
2897
2947
|
percentComplete: s > 0 ? Math.round(r / s * 100) : 0,
|
|
2898
|
-
nextDueAt:
|
|
2899
|
-
missingCount:
|
|
2948
|
+
nextDueAt: Ea(t),
|
|
2949
|
+
missingCount: l,
|
|
2900
2950
|
incompleteCount: a
|
|
2901
2951
|
};
|
|
2902
|
-
},
|
|
2903
|
-
const o =
|
|
2952
|
+
}, wa = (e, t, n) => {
|
|
2953
|
+
const o = Et(e), s = e % 2 !== 0 && o !== "incomplete" && o !== "missing_and_incomplete" ? 1 : null;
|
|
2904
2954
|
return {
|
|
2905
2955
|
id: String(e),
|
|
2906
2956
|
name: `Module ${e}`,
|
|
2907
2957
|
position: e,
|
|
2908
2958
|
published: n === "teacher" ? e % 4 !== 0 : !0,
|
|
2909
2959
|
itemCount: t.length,
|
|
2910
|
-
unlockAt: e % 5 === 0 ?
|
|
2960
|
+
unlockAt: e % 5 === 0 ? io(e) : null,
|
|
2911
2961
|
prerequisiteModules: e > 1 && e % 3 === 0 ? [{ id: String(e - 1), name: `Module ${e - 1}` }] : [],
|
|
2912
2962
|
requirementCount: s,
|
|
2913
2963
|
requireSequentialProgress: e % 6 === 0,
|
|
2914
2964
|
completionRequirements: t.flatMap(
|
|
2915
2965
|
(r) => r.completionRequirement ? [r.completionRequirement] : []
|
|
2916
2966
|
),
|
|
2917
|
-
progress:
|
|
2967
|
+
progress: Ca(e, t, s)
|
|
2918
2968
|
};
|
|
2919
2969
|
};
|
|
2920
|
-
function
|
|
2970
|
+
function va(e) {
|
|
2921
2971
|
return {
|
|
2922
2972
|
courseId: e.courseId,
|
|
2923
2973
|
modules: e.modules.map(({ progress: t, ...n }) => n),
|
|
@@ -2929,32 +2979,32 @@ function ha(e) {
|
|
|
2929
2979
|
)
|
|
2930
2980
|
};
|
|
2931
2981
|
}
|
|
2932
|
-
function
|
|
2933
|
-
const n = t.view ?? "student", o = t.courseId ??
|
|
2934
|
-
let
|
|
2935
|
-
e.forEach((
|
|
2936
|
-
const
|
|
2937
|
-
|
|
2982
|
+
function tt(e, t = {}) {
|
|
2983
|
+
const n = t.view ?? "student", o = t.courseId ?? _e, s = [], r = {};
|
|
2984
|
+
let l = 0;
|
|
2985
|
+
e.forEach((u, c) => {
|
|
2986
|
+
const d = c + 1, m = _a(d, u, l, n);
|
|
2987
|
+
l += u, s.push(wa(d, m, n)), r[String(d)] = m;
|
|
2938
2988
|
});
|
|
2939
2989
|
const a = { courseId: o, modules: s, itemsByModuleId: r };
|
|
2940
|
-
return n === "teacher" ?
|
|
2990
|
+
return n === "teacher" ? va(a) : a;
|
|
2941
2991
|
}
|
|
2942
|
-
const we = (e) => `/courses/${
|
|
2943
|
-
function
|
|
2944
|
-
return
|
|
2992
|
+
const we = (e) => `/courses/${_e}/modules/items/${e}`, tn = "2099-08-31T06:59:00Z", Pa = "2020-01-06T07:00:00Z", Aa = ht.length, xa = 8, La = 120, Ra = 25, ka = 250, nn = 8;
|
|
2993
|
+
function Ic() {
|
|
2994
|
+
return tt(Array.from({ length: Aa }, () => xa));
|
|
2945
2995
|
}
|
|
2946
|
-
function
|
|
2947
|
-
return
|
|
2996
|
+
function bc() {
|
|
2997
|
+
return tt(Array.from({ length: La }, () => Ra));
|
|
2948
2998
|
}
|
|
2949
|
-
function
|
|
2950
|
-
return
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2999
|
+
function Mc() {
|
|
3000
|
+
return tt([
|
|
3001
|
+
nn,
|
|
3002
|
+
ka,
|
|
3003
|
+
nn
|
|
2954
3004
|
]);
|
|
2955
3005
|
}
|
|
2956
|
-
function
|
|
2957
|
-
const e = (s, r,
|
|
3006
|
+
function Sc() {
|
|
3007
|
+
const e = (s, r, l) => ({
|
|
2958
3008
|
id: String(s),
|
|
2959
3009
|
name: r,
|
|
2960
3010
|
position: s,
|
|
@@ -2970,29 +3020,29 @@ function ac() {
|
|
|
2970
3020
|
missingCount: 0,
|
|
2971
3021
|
incompleteCount: 0
|
|
2972
3022
|
},
|
|
2973
|
-
...
|
|
3023
|
+
...l
|
|
2974
3024
|
}), t = { id: "101", name: "Week 1: Foundations" }, n = { id: "102", name: "Week 2: Derivatives" }, o = [
|
|
2975
|
-
e(1, "Locked by a future date", { unlockAt:
|
|
3025
|
+
e(1, "Locked by a future date", { unlockAt: tn }),
|
|
2976
3026
|
e(2, "Locked by one prerequisite", { prerequisiteModules: [t] }),
|
|
2977
3027
|
e(3, "Locked by several prerequisites", {
|
|
2978
3028
|
prerequisiteModules: [t, n]
|
|
2979
3029
|
}),
|
|
2980
3030
|
e(4, "Locked by a date and a prerequisite", {
|
|
2981
|
-
unlockAt:
|
|
3031
|
+
unlockAt: tn,
|
|
2982
3032
|
prerequisiteModules: [t]
|
|
2983
3033
|
}),
|
|
2984
|
-
e(5, "Locked, and the unlock date has passed", { unlockAt:
|
|
3034
|
+
e(5, "Locked, and the unlock date has passed", { unlockAt: Pa })
|
|
2985
3035
|
];
|
|
2986
3036
|
return {
|
|
2987
|
-
courseId:
|
|
3037
|
+
courseId: _e,
|
|
2988
3038
|
modules: o,
|
|
2989
3039
|
itemsByModuleId: Object.fromEntries(o.map((s) => [s.id, []]))
|
|
2990
3040
|
};
|
|
2991
3041
|
}
|
|
2992
|
-
function
|
|
2993
|
-
return
|
|
3042
|
+
function yc() {
|
|
3043
|
+
return tt([]);
|
|
2994
3044
|
}
|
|
2995
|
-
function
|
|
3045
|
+
function _c() {
|
|
2996
3046
|
const t = [
|
|
2997
3047
|
{
|
|
2998
3048
|
title: "Every fact: type, due date, points, requirement",
|
|
@@ -3021,7 +3071,7 @@ function uc() {
|
|
|
3021
3071
|
title: "Career item carrying an estimated duration",
|
|
3022
3072
|
type: "external_tool",
|
|
3023
3073
|
completionRequirement: { itemId: "5", type: "must_view" },
|
|
3024
|
-
extensions:
|
|
3074
|
+
extensions: Mt(void 0, 45)
|
|
3025
3075
|
},
|
|
3026
3076
|
{ title: "A file, ungradeable, so no points at all", type: "file" },
|
|
3027
3077
|
{ title: "External link, opens in a new tab", type: "external_url", newTab: !0 },
|
|
@@ -3049,7 +3099,7 @@ function uc() {
|
|
|
3049
3099
|
...n
|
|
3050
3100
|
}));
|
|
3051
3101
|
return {
|
|
3052
|
-
courseId:
|
|
3102
|
+
courseId: _e,
|
|
3053
3103
|
modules: [
|
|
3054
3104
|
{
|
|
3055
3105
|
id: "1",
|
|
@@ -3064,7 +3114,7 @@ function uc() {
|
|
|
3064
3114
|
itemsByModuleId: { 1: t }
|
|
3065
3115
|
};
|
|
3066
3116
|
}
|
|
3067
|
-
function
|
|
3117
|
+
function Tc() {
|
|
3068
3118
|
const t = [
|
|
3069
3119
|
{ title: "Reading: limits from the left and the right", type: "page", url: we(1) },
|
|
3070
3120
|
{
|
|
@@ -3092,7 +3142,7 @@ function dc() {
|
|
|
3092
3142
|
...n
|
|
3093
3143
|
}));
|
|
3094
3144
|
return {
|
|
3095
|
-
courseId:
|
|
3145
|
+
courseId: _e,
|
|
3096
3146
|
modules: [
|
|
3097
3147
|
{
|
|
3098
3148
|
id: "1",
|
|
@@ -3108,97 +3158,99 @@ function dc() {
|
|
|
3108
3158
|
};
|
|
3109
3159
|
}
|
|
3110
3160
|
export {
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
Uo as
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3161
|
+
ic as ACTION_ORDER_LTI_FLOOR,
|
|
3162
|
+
ne as ALL_FILTER,
|
|
3163
|
+
jt as ActionEntrySchema,
|
|
3164
|
+
Sn as CompletionRequirementSchema,
|
|
3165
|
+
$o as CompletionRequirementTypeSchema,
|
|
3166
|
+
Gn as DEFAULT_INLINE_THRESHOLD,
|
|
3167
|
+
el as DEFAULT_ITEM_CONCURRENCY,
|
|
3168
|
+
Bn as DEFAULT_ITEM_PAGE_SIZE,
|
|
3169
|
+
Se as DEFAULT_LOCALE,
|
|
3170
|
+
Tt as DEFAULT_PAGE_SIZE,
|
|
3171
|
+
jn as DEFAULT_RETAIN_COLLAPSED_LIMIT,
|
|
3172
|
+
Je as DEFAULT_STALE_TIME_MS,
|
|
3173
|
+
cc as DUE_THIS_WEEK_DAYS,
|
|
3174
|
+
Tn as EXT_CAREER_ESTIMATED_DURATION_MINUTES,
|
|
3175
|
+
_e as FIXTURE_COURSE_ID,
|
|
3176
|
+
cl as FilterChips,
|
|
3177
|
+
Oo as FilterClauseSchema,
|
|
3178
|
+
Vi as FilterEntrySchema,
|
|
3179
|
+
Ss as GET_MODULES,
|
|
3180
|
+
ys as GET_MODULE_ITEMS,
|
|
3181
|
+
ut as INLINE_ITEM_LIMIT,
|
|
3182
|
+
St as INLINE_QUERY_NODE_BUDGET,
|
|
3183
|
+
Ko as InMemoryCourseMismatchError,
|
|
3184
|
+
Pl as ItemDueSoonPill,
|
|
3185
|
+
Ki as ItemTypeEntrySchema,
|
|
3186
|
+
Qi as MetaFieldEntrySchema,
|
|
3187
|
+
Vl as ModuleCard,
|
|
3188
|
+
vl as ModuleDueSoonPill,
|
|
3189
|
+
Ol as ModuleItemRow,
|
|
3190
|
+
yn as ModuleItemSchema,
|
|
3191
|
+
wl as ModuleItemStatusPill,
|
|
3192
|
+
Uo as ModuleItemStatusSchema,
|
|
3193
|
+
Fo as ModuleItemTypeSchema,
|
|
3194
|
+
Ho as ModuleItemsPageSchema,
|
|
3195
|
+
Bo as ModuleProgressSchema,
|
|
3196
|
+
jo as ModuleSchema,
|
|
3197
|
+
Cl as ModuleStatusPill,
|
|
3198
|
+
zo as ModuleStatusSchema,
|
|
3199
|
+
uc as ModulesConfigProvider,
|
|
3200
|
+
Xi as ModulesConfigSchema,
|
|
3201
|
+
ac as ModulesI18nProvider,
|
|
3202
|
+
hc as ModulesList,
|
|
3203
|
+
Yo as ModulesPageSchema,
|
|
3204
|
+
sa as ModulesProgressBar,
|
|
3205
|
+
_n as PageInfoSchema,
|
|
3206
|
+
En as PartialCanvasResponseError,
|
|
3207
|
+
Go as PrerequisiteModuleSchema,
|
|
3208
|
+
Re as RegistryEntrySchema,
|
|
3209
|
+
$i as TYPE_FIELD,
|
|
3210
|
+
Ui as baseFilters,
|
|
3211
|
+
Xe as baseModulesConfig,
|
|
3212
|
+
tt as buildFixture,
|
|
3213
|
+
yc as courseEmpty,
|
|
3214
|
+
Mc as courseFatModule,
|
|
3215
|
+
Tc as courseItemLinks,
|
|
3216
|
+
_c as courseItemRowVariants,
|
|
3217
|
+
bc as courseLarge,
|
|
3218
|
+
Sc as courseLockReasons,
|
|
3219
|
+
Ic as courseSmall,
|
|
3220
|
+
ws as createActionContext,
|
|
3221
|
+
sc as createCanvasGraphqlAdapter,
|
|
3222
|
+
oc as createInMemoryAdapter,
|
|
3223
|
+
Dn as createTranslate,
|
|
3224
|
+
zi as defaultFormatters,
|
|
3225
|
+
wi as defaultTranslate,
|
|
3226
|
+
_t as filterClauseOf,
|
|
3227
|
+
Wo as getEstimatedDurationMinutes,
|
|
3228
|
+
Yi as hideUnservableFilters,
|
|
3229
|
+
rc as invalidateCourse,
|
|
3230
|
+
Cs as invalidateModuleItems,
|
|
3231
|
+
Nt as invalidateModuleList,
|
|
3232
|
+
pt as isPredicateServed,
|
|
3233
|
+
fe as mergeRegistry,
|
|
3234
|
+
El as moduleItemStatusLabel,
|
|
3235
|
+
dt as moduleItemsPrefix,
|
|
3236
|
+
Jn as moduleStatusLabel,
|
|
3185
3237
|
Le as modulesKeys,
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3238
|
+
Es as modulesListPrefix,
|
|
3239
|
+
mc as partialModulesConfig,
|
|
3240
|
+
Ie as registrySchema,
|
|
3241
|
+
Ji as resolveModulesConfig,
|
|
3242
|
+
qo as servesClause,
|
|
3243
|
+
ji as unservableFilters,
|
|
3244
|
+
pc as useActionContext,
|
|
3245
|
+
dc as useFieldVisible,
|
|
3246
|
+
ke as useFormatters,
|
|
3247
|
+
gc as useModuleItems,
|
|
3248
|
+
tl as useModules,
|
|
3249
|
+
ye as useModulesConfig,
|
|
3250
|
+
B as useModulesI18n,
|
|
3251
|
+
fc as useModulesPageData,
|
|
3252
|
+
lc as visibleActions,
|
|
3253
|
+
Ze as visibleEntries,
|
|
3254
|
+
Me as visibleEntry,
|
|
3255
|
+
Mt as withEstimatedDurationMinutes
|
|
3204
3256
|
};
|