@instructure/platform-modules 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/adapters/canvasGraphql/index.d.ts.map +1 -1
  2. package/dist/adapters/canvasGraphql/queries.d.ts +13 -1
  3. package/dist/adapters/canvasGraphql/queries.d.ts.map +1 -1
  4. package/dist/chunks/ModulesProgressBar-B4fXbi-4.js +2516 -0
  5. package/dist/components/FilterSelect.d.ts.map +1 -1
  6. package/dist/components/ModuleCard.d.ts.map +1 -1
  7. package/dist/components/ModuleItemRow.d.ts +3 -4
  8. package/dist/components/ModuleItemRow.d.ts.map +1 -1
  9. package/dist/components/ModulesProgressBar.d.ts +5 -1
  10. package/dist/components/ModulesProgressBar.d.ts.map +1 -1
  11. package/dist/edit/EditModuleCard.d.ts +17 -0
  12. package/dist/edit/EditModuleCard.d.ts.map +1 -0
  13. package/dist/edit/EditModuleItemRow.d.ts +9 -0
  14. package/dist/edit/EditModuleItemRow.d.ts.map +1 -0
  15. package/dist/edit/ModulesEditActions.d.ts +7 -0
  16. package/dist/edit/ModulesEditActions.d.ts.map +1 -0
  17. package/dist/edit/ModulesEditView.d.ts +10 -0
  18. package/dist/edit/ModulesEditView.d.ts.map +1 -0
  19. package/dist/edit/ModulesEditView.stories.d.ts +16 -0
  20. package/dist/edit/ModulesEditView.stories.d.ts.map +1 -0
  21. package/dist/edit/controls/AddItemMenu.d.ts +6 -0
  22. package/dist/edit/controls/AddItemMenu.d.ts.map +1 -0
  23. package/dist/edit/controls/AddModuleButton.d.ts +6 -0
  24. package/dist/edit/controls/AddModuleButton.d.ts.map +1 -0
  25. package/dist/edit/controls/InlineRename.d.ts +5 -0
  26. package/dist/edit/controls/InlineRename.d.ts.map +1 -0
  27. package/dist/edit/controls/ItemActionsMenu.d.ts +7 -0
  28. package/dist/edit/controls/ItemActionsMenu.d.ts.map +1 -0
  29. package/dist/edit/controls/ItemPublishToggle.d.ts +6 -0
  30. package/dist/edit/controls/ItemPublishToggle.d.ts.map +1 -0
  31. package/dist/edit/controls/ModuleActionsMenu.d.ts +6 -0
  32. package/dist/edit/controls/ModuleActionsMenu.d.ts.map +1 -0
  33. package/dist/edit/controls/ModulePublishMenu.d.ts +6 -0
  34. package/dist/edit/controls/ModulePublishMenu.d.ts.map +1 -0
  35. package/dist/edit/controls/ModuleSettingsModal.d.ts +6 -0
  36. package/dist/edit/controls/ModuleSettingsModal.d.ts.map +1 -0
  37. package/dist/edit/controls/PublishAllMenu.d.ts +6 -0
  38. package/dist/edit/controls/PublishAllMenu.d.ts.map +1 -0
  39. package/dist/edit/controls/ViewAsLearnerButton.d.ts +6 -0
  40. package/dist/edit/controls/ViewAsLearnerButton.d.ts.map +1 -0
  41. package/dist/edit/index.d.ts +4 -0
  42. package/dist/edit/index.d.ts.map +1 -1
  43. package/dist/edit.js +509 -128
  44. package/dist/index.js +1218 -1986
  45. package/locales/en.json +12 -1
  46. package/package.json +1 -1
  47. package/dist/chunks/useModulesPageData-BFCZuChP.js +0 -1639
@@ -1,1639 +0,0 @@
1
- import { keepPreviousData as It, useQuery as vt, useQueryClient as Tt, QueryObserver as un } from "@tanstack/react-query";
2
- import nt from "p-limit";
3
- import { createContext as Ct, useContext as xe, useMemo as W, useState as Q, useRef as T, useEffect as me, useCallback as v } from "react";
4
- import { jsx as q } from "react/jsx-runtime";
5
- import { z as a } from "zod";
6
- import { PlugInstUIIcon as ln, ExternalLinkInstUIIcon as cn, FileInstUIIcon as dn, FileTextInstUIIcon as mn, MessagesSquareInstUIIcon as gn, RocketInstUIIcon as fn, FilePenLineInstUIIcon as pn, ClockInstUIIcon as hn, CalendarInstUIIcon as Et } from "@instructure/ui-icons";
7
- import { Text as bn } from "@instructure/ui-text/v11_7";
8
- import { BREAKPOINTS as Pn } from "@instructure/platform-with-breakpoints";
9
- const Ni = a.object({
10
- target: a.enum(["module", "item"]),
11
- field: a.string(),
12
- op: a.enum(["eq", "contains", "within"]),
13
- value: a.union([a.string(), a.boolean(), a.number()])
14
- }).strict();
15
- function Mn(e, t) {
16
- const n = e == null ? void 0 : e[t.target];
17
- return !n || !Object.prototype.hasOwnProperty.call(n, t.field) ? !1 : n[t.field].includes(t.op);
18
- }
19
- const yn = a.enum([
20
- "assignment",
21
- "quiz",
22
- "discussion",
23
- "page",
24
- "file",
25
- "external_url",
26
- "external_tool",
27
- "sub_header"
28
- ]), wn = a.enum(["not_started", "in_progress", "complete", "incomplete", "missing", "locked"]), Sn = a.enum([
29
- "not_started",
30
- "in_progress",
31
- "complete",
32
- "missing",
33
- "incomplete",
34
- "missing_and_incomplete",
35
- "locked"
36
- ]), In = a.enum([
37
- "must_view",
38
- "must_mark_done",
39
- "must_contribute",
40
- "must_submit",
41
- "min_score",
42
- "min_percentage",
43
- "unknown"
44
- ]), vn = a.object({
45
- status: Sn.optional(),
46
- requirementsMet: a.number(),
47
- requirementCount: a.number(),
48
- percentComplete: a.number().min(0).max(100),
49
- nextDueAt: a.string().nullish(),
50
- missingCount: a.number(),
51
- incompleteCount: a.number()
52
- }), Dt = a.object({
53
- itemId: a.string(),
54
- type: In,
55
- minScore: a.number().nullish(),
56
- minPercentage: a.number().nullish()
57
- }), Lt = a.object({
58
- id: a.string(),
59
- moduleId: a.string(),
60
- title: a.string(),
61
- type: yn,
62
- position: a.number(),
63
- indent: a.number(),
64
- published: a.boolean(),
65
- url: a.string().nullish(),
66
- newTab: a.boolean().nullish(),
67
- completionRequirement: Dt.nullish(),
68
- dueAt: a.string().nullish(),
69
- status: wn.optional(),
70
- pointsPossible: a.number().nullish(),
71
- extensions: a.record(a.unknown()).optional()
72
- }), Tn = a.object({
73
- id: a.string(),
74
- name: a.string()
75
- }), Cn = a.object({
76
- id: a.string(),
77
- name: a.string(),
78
- position: a.number(),
79
- published: a.boolean(),
80
- itemCount: a.number(),
81
- estimatedDurationMinutes: a.number().optional(),
82
- items: a.array(Lt).optional(),
83
- unlockAt: a.string().nullish(),
84
- prerequisiteModules: a.array(Tn),
85
- requirementCount: a.number().nullish(),
86
- requireSequentialProgress: a.boolean(),
87
- completionRequirements: a.array(Dt).optional(),
88
- progress: vn.optional(),
89
- collapsed: a.boolean().nullish(),
90
- extensions: a.record(a.unknown()).optional()
91
- }), _i = a.object({
92
- hasNextPage: a.boolean(),
93
- endCursor: a.string().nullable()
94
- }).refine((e) => !e.hasNextPage || e.endCursor !== null, {
95
- 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.',
96
- path: ["endCursor"]
97
- }), At = a.object({
98
- hasNextPage: a.boolean(),
99
- endCursor: a.string().nullable(),
100
- hasPreviousPage: a.boolean(),
101
- startCursor: a.string().nullable(),
102
- totalCount: a.number().nullable(),
103
- totalNrOfPages: a.number().nullable()
104
- }).refine((e) => !e.hasNextPage || e.endCursor !== null, {
105
- 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.',
106
- path: ["endCursor"]
107
- }), Oi = a.object({
108
- modules: a.array(Cn),
109
- pageInfo: At
110
- }), xi = a.object({
111
- items: a.array(Lt),
112
- pageInfo: At
113
- }), Nt = "career.estimatedDurationMinutes";
114
- function _t(e) {
115
- var n;
116
- const t = (n = e.extensions) == null ? void 0 : n[Nt];
117
- return typeof t != "number" || !Number.isFinite(t) || t <= 0 ? null : t;
118
- }
119
- function Ri(e, t) {
120
- return t == null ? e : { ...e, [Nt]: t };
121
- }
122
- const En = "modules.suppressItemNumbering";
123
- function qi(e) {
124
- var t;
125
- return ((t = e.extensions) == null ? void 0 : t[En]) === !0;
126
- }
127
- const Dn = "organize.newPlacement", Ln = "organize.newModule", An = "organize.addedItemCount";
128
- function Fi(e) {
129
- var t;
130
- return ((t = e.extensions) == null ? void 0 : t[Dn]) === !0;
131
- }
132
- function ki(e) {
133
- var t;
134
- return ((t = e.extensions) == null ? void 0 : t[Ln]) === !0;
135
- }
136
- function zi(e) {
137
- var n;
138
- const t = (n = e.extensions) == null ? void 0 : n[An];
139
- return typeof t != "number" || !Number.isInteger(t) || t < 0 ? 0 : t;
140
- }
141
- const ot = 100, Ot = 2e3;
142
- class Nn extends Error {
143
- constructor(t, n) {
144
- super(
145
- `This in-memory adapter was built for course ${t} but was asked for course ${n}. A fixture serves exactly one course.`
146
- ), this.name = "InMemoryCourseMismatchError", this.expected = t, this.received = n;
147
- }
148
- }
149
- const rt = (e) => `offset:${e}`, st = (e) => {
150
- if (!e) return 0;
151
- const t = Number.parseInt(e.replace("offset:", ""), 10);
152
- return Number.isFinite(t) && t >= 0 ? t : 0;
153
- }, Pe = (e) => {
154
- if (e != null && e.aborted)
155
- throw new DOMException("The operation was aborted.", "AbortError");
156
- };
157
- function it(e, t, n) {
158
- const o = e.length, r = Math.ceil(o / n), s = t.kind === "first" ? 0 : t.kind === "after" ? st(t.cursor) : t.kind === "before" ? Math.max(0, st(t.cursor) - n) : Math.max(0, o - t.count), c = e.slice(s, s + n), g = s + c.length, l = g < o, f = s > 0;
159
- return {
160
- slice: c,
161
- pageInfo: {
162
- hasNextPage: l,
163
- endCursor: l ? rt(g) : null,
164
- hasPreviousPage: f,
165
- startCursor: f ? rt(s) : null,
166
- totalCount: o,
167
- totalNrOfPages: r
168
- }
169
- };
170
- }
171
- const _n = /* @__PURE__ */ new Map([
172
- ["COMPLETED", (e) => {
173
- var t;
174
- return ((t = e.progress) == null ? void 0 : t.status) === "complete";
175
- }],
176
- ["IN_PROGRESS", (e) => {
177
- var t;
178
- return ((t = e.progress) == null ? void 0 : t.status) === "in_progress";
179
- }],
180
- ["INCOMPLETE", (e) => {
181
- var t;
182
- return ((t = e.progress) == null ? void 0 : t.status) !== "complete";
183
- }],
184
- [
185
- "NOT_STARTED",
186
- (e) => {
187
- var t, n;
188
- return ((t = e.progress) == null ? void 0 : t.status) !== "complete" && ((n = e.progress) == null ? void 0 : n.status) !== "in_progress";
189
- }
190
- ]
191
- ]), On = /* @__PURE__ */ new Map([
192
- ["locked", (e) => {
193
- var t;
194
- return ((t = e.progress) == null ? void 0 : t.status) === "locked";
195
- }],
196
- ["missing", (e) => {
197
- var t;
198
- return ((t = e.progress) == null ? void 0 : t.status) === "missing";
199
- }],
200
- ["missing_and_incomplete", (e) => {
201
- var t;
202
- return ((t = e.progress) == null ? void 0 : t.status) === "missing_and_incomplete";
203
- }],
204
- ["incomplete", (e) => {
205
- var t;
206
- return ((t = e.progress) == null ? void 0 : t.status) === "incomplete";
207
- }],
208
- ["complete", (e) => {
209
- var t;
210
- return ((t = e.progress) == null ? void 0 : t.status) === "complete";
211
- }],
212
- ["in_progress", (e) => {
213
- var t;
214
- return ((t = e.progress) == null ? void 0 : t.status) === "in_progress";
215
- }],
216
- ["not_started", (e) => {
217
- var t;
218
- return ((t = e.progress) == null ? void 0 : t.status) === "not_started";
219
- }]
220
- ]), xn = {
221
- module: { completionStatus: ["eq"], moduleStatus: ["eq"], dueWithinDays: ["within"] }
222
- };
223
- function Rn(e) {
224
- const t = Date.parse(e.start), n = Date.parse(e.end);
225
- return (o) => {
226
- var c;
227
- const r = (c = o.progress) == null ? void 0 : c.nextDueAt;
228
- if (!r) return !1;
229
- const s = Date.parse(r);
230
- return s >= t && s <= n;
231
- };
232
- }
233
- function qn(e, t) {
234
- if (e.target === "module" && e.field === "completionStatus" && e.op === "eq") {
235
- const n = typeof e.value == "string" ? _n.get(e.value) : void 0;
236
- if (!n) throw new Error(`unknown completionStatus "${String(e.value)}"`);
237
- return n;
238
- }
239
- if (e.target === "module" && e.field === "moduleStatus" && e.op === "eq") {
240
- const n = typeof e.value == "string" ? On.get(e.value) : void 0;
241
- if (!n) throw new Error(`unknown moduleStatus "${String(e.value)}"`);
242
- return n;
243
- }
244
- if (e.target === "module" && e.field === "dueWithinDays" && e.op === "within") {
245
- if (!t) throw new Error("A dueWithinDays clause needs a dueRange");
246
- return Rn(t);
247
- }
248
- throw new Error(`in-memory adapter cannot compile ${e.target}.${e.field} ${e.op}`);
249
- }
250
- function Ui(e, t = {}) {
251
- const n = (r) => e.itemsByModuleId[r] ?? [], o = (r) => {
252
- if (r !== e.courseId)
253
- throw new Nn(e.courseId, r);
254
- };
255
- return {
256
- capabilities: xn,
257
- async listModules({
258
- courseId: r,
259
- page: s = { kind: "first" },
260
- pageSize: c,
261
- includeItems: g,
262
- filter: l,
263
- dueRange: f,
264
- inlineItemsFirst: y,
265
- signal: w
266
- }) {
267
- var p;
268
- Pe(w), o(r), (p = t.onRequest) == null || p.call(t, "listModules", { operation: "listModules", courseId: r });
269
- const C = l ? e.modules.filter(qn(l, f)) : e.modules, { slice: I, pageInfo: H } = it(C, s, c), O = Math.min(y ?? ot, ot);
270
- return { modules: I.map((P) => {
271
- const E = n(P.id), D = g && E.length <= O;
272
- return { ...P, itemCount: E.length, items: D ? E : void 0 };
273
- }), pageInfo: H };
274
- },
275
- async listModuleItems({
276
- courseId: r,
277
- moduleId: s,
278
- page: c = { kind: "first" },
279
- pageSize: g,
280
- signal: l
281
- }) {
282
- var w;
283
- Pe(l), o(r), (w = t.onRequest) == null || w.call(t, "listModuleItems", { operation: "listModuleItems", courseId: r, moduleId: s });
284
- const { slice: f, pageInfo: y } = it(n(s), c, g);
285
- return { items: f, pageInfo: y };
286
- },
287
- async setModuleCollapsed({
288
- courseId: r,
289
- moduleId: s,
290
- collapsed: c,
291
- signal: g
292
- }) {
293
- var f;
294
- Pe(g), o(r), (f = t.onRequest) == null || f.call(t, "setModuleCollapsed", {
295
- operation: "setModuleCollapsed",
296
- courseId: r,
297
- moduleId: s,
298
- collapsed: c
299
- });
300
- const l = e.modules.findIndex((y) => y.id === s);
301
- l !== -1 && (e.modules[l] = { ...e.modules[l], collapsed: c });
302
- },
303
- async setAllModulesCollapsed({
304
- courseId: r,
305
- collapsed: s,
306
- signal: c
307
- }) {
308
- var g;
309
- Pe(c), o(r), (g = t.onRequest) == null || g.call(t, "setAllModulesCollapsed", {
310
- operation: "setAllModulesCollapsed",
311
- courseId: r,
312
- collapsed: s
313
- }), e.modules = e.modules.map((l) => ({ ...l, collapsed: s }));
314
- }
315
- };
316
- }
317
- const re = ["platform-modules"], ge = {
318
- all: re,
319
- course: (e) => [...re, e],
320
- list: (e, t = {}) => [...re, e, "list", t],
321
- items: (e, t, n = {}) => [...re, e, "module", t, "items", n]
322
- };
323
- function Fn(e) {
324
- return [...re, e, "list"];
325
- }
326
- function Me(e, t) {
327
- return [...re, e, "module", t, "items"];
328
- }
329
- function Bi(e, t, n, o) {
330
- const r = o ? ge.items(t, n, o) : Me(t, n);
331
- return e.invalidateQueries({ queryKey: r });
332
- }
333
- function ji(e, t, n) {
334
- const o = n ? ge.list(t, n) : Fn(t);
335
- return e.invalidateQueries({ queryKey: o });
336
- }
337
- function Wi(e, t) {
338
- return e.invalidateQueries({ queryKey: ge.course(t) });
339
- }
340
- const Ae = (e, t) => Object.prototype.hasOwnProperty.call(e, t);
341
- function at(e, t) {
342
- const n = Object.entries(t ?? {}).filter(([, o]) => o !== void 0);
343
- return { ...e, ...Object.fromEntries(n) };
344
- }
345
- function $i(e, t = {}) {
346
- const n = Object.keys(e).map((r) => [
347
- r,
348
- at(e[r], Ae(t, r) ? t[r] : void 0)
349
- ]), o = Object.keys(t).filter((r) => !Ae(e, r)).sort().map((r) => [r, at({}, t[r])]);
350
- return Object.fromEntries([...n, ...o]);
351
- }
352
- function se(e, t) {
353
- if (!(!Ae(e, t) || e[t].hidden))
354
- return e[t];
355
- }
356
- function kn(e) {
357
- return Object.keys(e).filter((t) => se(e, t) !== void 0).map((t) => ({ ...e[t], key: t })).sort((t, n) => t.order - n.order);
358
- }
359
- const zn = "Page %{page} of %{pageCount}", Un = "First page", Bn = "Previous page", jn = "Next page", Wn = "Last page", $n = "Page %{page}", Yn = "…", Gn = "Expand all modules", Qn = "Collapse all modules", Hn = { one: "Loading items in %{count} module…", other: "Loading items in %{count} modules…" }, Zn = "All items loaded", Kn = { one: "%{count} module expanded", other: "%{count} modules expanded" }, Vn = { one: "%{count} module collapsed", other: "%{count} modules collapsed" }, Xn = "Modules failed to load: %{message}", Jn = "Loading modules", eo = "No modules available yet", to = "Modules will appear here once your instructor publishes them. Check back soon or reach out to your instructor for more information.", no = "No matching results", oo = "Adjust or clear your filters to see more items.", ro = "Clear filters", so = "Show:", io = "All", ao = "Not started", uo = "In progress", lo = "Complete", co = "Due soon", mo = "Missing", go = "Locked until %{name} is completed.", fo = "Locked until %{prerequisites} are completed.", po = "%{count} prerequisites", ho = "%{label}. %{name}", bo = "%{label} %{name}", Po = "%{name} progress", Mo = { one: "%{loaded} of %{count} item loaded in %{name}", other: "%{loaded} of %{count} items loaded in %{name}" }, yo = "Items failed to load: %{message}", wo = "Loading items", So = "Loading…", Io = "No items.", vo = "%{name} items pages", To = "Page %{page} of %{pageCount} in %{name}", Co = "(unpublished)", Eo = "Collapse %{name}", Do = "Expand %{name}", Lo = "Not started", Ao = "In progress", No = "All completed", _o = "%{count} Missing", Oo = "%{count} Incomplete", xo = "%{missing} & %{incomplete}", Ro = "Locked", qo = "Due soon", Fo = "Not started", ko = "In progress", zo = "Completed", Uo = "Incomplete", Bo = "Missing", jo = "Locked", Wo = "Due soon", $o = "Assignment", Yo = "Quiz", Go = "Discussion", Qo = "Page", Ho = "File", Zo = "External URL", Ko = "External tool", Vo = "Text header", Xo = "Item type", Jo = "Due date", er = "Points", tr = "Requirement", nr = "Estimated duration", or = "Publish state", rr = "View the item", sr = "Submit the assignment", ir = "Contribute to the page", ar = "Mark as done", ur = "Score at least the minimum", lr = "Score at least %{count}", cr = "Score at least the minimum percentage", dr = "Score at least %{count}%", mr = "Complete the requirement", gr = "today, %{time}", fr = "yesterday, %{time}", pr = "tomorrow, %{time}", hr = "%{date}, %{time}", br = "%{time} (%{zone})", Pr = "Due %{when}", Mr = "Past due %{when}", yr = "Will unlock on %{when}", wr = "Unlocked on %{when}", Sr = "%{duration} to complete", Ir = "%{duration} remaining", vr = "%{hours}h %{minutes}m", Tr = "%{count}h", Cr = "%{count}m", Er = { one: "%{count} pt", other: "%{count} pts" }, Dr = "%{met} of %{count}", Lr = { one: "%{met} of %{count} requirement met", other: "%{met} of %{count} requirements met" }, Ar = "%{percent}%", Nr = { one: "%{completedModules} of %{totalModules} module complete", other: "%{completedModules} of %{totalModules} modules complete" }, _r = "(%{itemsSummary})", Or = { one: "%{completedItems} of %{totalItems} item", other: "%{completedItems} of %{totalItems} items" }, xr = "Module progress", Rr = "Module progress pages", qr = "Modules %{start}–%{end} of %{total}", Fr = "%{name}: %{status}", kr = "%{count}min", zr = "%{count}hr", Ur = "%{hours}hr %{minutes}min", Br = "Unpublished", jr = "Untitled item", Wr = "opens in a new window", $r = "Organize with AI", Yr = "Organize content into modules", Gr = "Module progression", Qr = "Set module prerequisites", Hr = "Set item requirements per module", Zr = "Close", Kr = "What should this do?", Vr = "Place new content only", Xr = "Reorganize the whole course", Jr = "This rebuilds every module in the course. Existing modules can be renamed, refilled, or removed.", es = "Content to organize", ts = "Anything else it should know? (optional)", ns = "For example: keep the lab work together and put it last.", os = "%{used}/%{max}", rs = "Choose at least one kind of content.", ss = "Organize", is = "Cancel", as = "Start over", us = "Regenerate", ls = "Apply", cs = "Try again", ds = "Organizing your content…", ms = "Creating your modules…", gs = "Still working. Large courses take longer.", fs = "Your proposal is ready to review.", ps = "Your modules were created.", hs = "Your content could not be organized: %{message}", bs = "Your modules could not be created: %{message}", Ps = "Proposed modules", Ms = "New module", ys = { one: "%{count} item added", other: "%{count} items added" }, ws = "New", Ss = "New placement", Is = { one: "%{count} item was not placed", other: "%{count} items were not placed" }, vs = "You can still apply this. Anything left out stays where it is.", Ts = { one: "%{count} thing to know", other: "%{count} things to know" }, Cs = {
360
- pageChangedAnnouncement: zn,
361
- paginationFirstPage: Un,
362
- paginationPreviousPage: Bn,
363
- paginationNextPage: jn,
364
- paginationLastPage: Wn,
365
- paginationPageLabel: $n,
366
- paginationEllipsis: Yn,
367
- expandAllModules: Gn,
368
- collapseAllModules: Qn,
369
- expandAllLoadingItems: Hn,
370
- expandAllItemsLoaded: Zn,
371
- modulesExpandedAnnouncement: Kn,
372
- modulesCollapsedAnnouncement: Vn,
373
- modulesLoadErrorAlert: Xn,
374
- modulesLoadingSpinnerLabel: Jn,
375
- noModulesEmptyStateTitle: eo,
376
- noModulesEmptyStateDescription: to,
377
- filteredEmptyStateTitle: no,
378
- filteredEmptyStateDescription: oo,
379
- clearFilters: ro,
380
- filterGroupLabel: so,
381
- filterAll: io,
382
- filterNotStarted: ao,
383
- filterInProgress: uo,
384
- filterComplete: lo,
385
- filterDueThisWeek: co,
386
- filterMissing: mo,
387
- lockedByPrerequisiteByline: go,
388
- lockedByPrerequisitesByline: fo,
389
- lockedByPrerequisitesCount: po,
390
- moduleNameWithLabel: ho,
391
- itemNameWithLabel: bo,
392
- moduleProgressScreenReaderLabel: Po,
393
- itemsLoadedAnnouncement: Mo,
394
- itemsLoadErrorAlert: yo,
395
- itemsLoadingSpinnerLabel: wo,
396
- itemsLoadingText: So,
397
- noItemsEmptyState: Io,
398
- itemsPaginationLabel: vo,
399
- itemsPageChangedAnnouncement: To,
400
- moduleUnpublishedBadge: Co,
401
- collapseModule: Eo,
402
- expandModule: Do,
403
- moduleStatusNotStarted: Lo,
404
- moduleStatusInProgress: Ao,
405
- moduleStatusComplete: No,
406
- moduleStatusMissing: _o,
407
- moduleStatusIncomplete: Oo,
408
- moduleStatusMissingAndIncomplete: xo,
409
- moduleStatusLocked: Ro,
410
- moduleStatusDueSoon: qo,
411
- itemStatusNotStarted: Fo,
412
- itemStatusInProgress: ko,
413
- itemStatusComplete: zo,
414
- itemStatusIncomplete: Uo,
415
- itemStatusMissing: Bo,
416
- itemStatusLocked: jo,
417
- itemStatusDueSoon: Wo,
418
- itemTypeAssignment: $o,
419
- itemTypeQuiz: Yo,
420
- itemTypeDiscussion: Go,
421
- itemTypePage: Qo,
422
- itemTypeFile: Ho,
423
- itemTypeExternalUrl: Zo,
424
- itemTypeExternalTool: Ko,
425
- itemTypeSubHeader: Vo,
426
- metaFieldTypeLabel: Xo,
427
- metaFieldDueAtLabel: Jo,
428
- metaFieldPointsLabel: er,
429
- metaFieldRequirementLabel: tr,
430
- metaFieldDurationLabel: nr,
431
- metaFieldPublishStateLabel: or,
432
- requirementMustView: rr,
433
- requirementMustSubmit: sr,
434
- requirementMustContribute: ir,
435
- requirementMustMarkDone: ar,
436
- requirementMinScoreUnknown: ur,
437
- requirementMinScore: lr,
438
- requirementMinPercentageUnknown: cr,
439
- requirementMinPercentage: dr,
440
- requirementUnknown: mr,
441
- dateTimeToday: gr,
442
- dateTimeYesterday: fr,
443
- dateTimeTomorrow: pr,
444
- dateTimeWithDate: hr,
445
- timeWithZone: br,
446
- dueByline: Pr,
447
- pastDueByline: Mr,
448
- unlockByline: yr,
449
- unlockedByline: wr,
450
- estimatedDurationByline: Sr,
451
- remainingDurationByline: Ir,
452
- estimatedDurationHoursAndMinutes: vr,
453
- estimatedDurationHours: Tr,
454
- estimatedDurationMinutesAbbreviated: Cr,
455
- pointsAbbreviated: Er,
456
- progressSummary: Dr,
457
- progressScreenReaderValue: Lr,
458
- moduleProgressOverviewPercentLabel: Ar,
459
- moduleProgressOverviewSummary: Nr,
460
- moduleProgressOverviewDetail: _r,
461
- moduleProgressOverviewItemsSummary: Or,
462
- moduleProgressOverviewGroupLabel: xr,
463
- moduleProgressOverviewPaginationLabel: Rr,
464
- moduleProgressOverviewPageRange: qr,
465
- moduleProgressSegmentLabel: Fr,
466
- durationMinutes: kr,
467
- durationHours: zr,
468
- durationHoursAndMinutes: Ur,
469
- itemUnpublishedLabel: Br,
470
- itemUntitled: jr,
471
- opensInNewWindow: Wr,
472
- organizeModulesTrigger: $r,
473
- organizeModalLabel: Yr,
474
- organizeProgressionLegend: Gr,
475
- organizeSetPrerequisites: Qr,
476
- organizeSetRequirements: Hr,
477
- organizeCloseModal: Zr,
478
- organizeModeLegend: Kr,
479
- organizeModePlaceNew: Vr,
480
- organizeModeReorganizeAll: Xr,
481
- organizeReorganizeWarning: Jr,
482
- organizeContentTypesLegend: es,
483
- organizeDirectionLabel: ts,
484
- organizeDirectionPlaceholder: ns,
485
- organizeDirectionCount: os,
486
- organizeErrorPickAContentType: rs,
487
- organizeSubmit: ss,
488
- organizeCancel: is,
489
- organizeStartOver: as,
490
- organizeRegenerate: us,
491
- organizeApply: ls,
492
- organizeTryAgain: cs,
493
- organizeLoadingLabel: ds,
494
- organizeApplyingLabel: ms,
495
- organizeStillWorking: gs,
496
- organizeProposalReadyAnnouncement: fs,
497
- organizeAppliedAnnouncement: ps,
498
- organizeFailed: hs,
499
- organizeApplyFailed: bs,
500
- organizePreviewHeading: Ps,
501
- organizeNewModuleLabel: Ms,
502
- organizeItemsAddedLabel: ys,
503
- organizeNewItemPill: ws,
504
- metaFieldNewPlacementLabel: Ss,
505
- organizeUnplacedHeading: Is,
506
- organizeUnplacedExplanation: vs,
507
- organizeWarningsHeading: Ts
508
- }, Es = /%\{(\w+)\}/g, Ds = Cs, K = "en-US", Ls = /* @__PURE__ */ new Map(), As = /* @__PURE__ */ new Map();
509
- function xt(e, t, n) {
510
- const o = e.get(t);
511
- if (o) return o;
512
- const r = n();
513
- return e.set(t, r), r;
514
- }
515
- function Ns(e, t, n) {
516
- return n ? e.replace(Es, (o, r) => {
517
- if (!Object.prototype.hasOwnProperty.call(n, r)) return o;
518
- const s = n[r];
519
- return typeof s == "number" && Number.isFinite(s) ? xt(As, t, () => new Intl.NumberFormat(t)).format(s) : String(s);
520
- }) : e;
521
- }
522
- function _s(e, t, n) {
523
- const o = n == null ? void 0 : n.count;
524
- if (typeof o == "number" && Number.isFinite(o)) {
525
- const r = xt(Ls, t, () => new Intl.PluralRules(t)).select(o), s = e[r];
526
- if (typeof s == "string") return s;
527
- }
528
- return typeof e.other == "string" ? e.other : void 0;
529
- }
530
- function ut(e, t, n) {
531
- if (typeof e == "string") return e;
532
- if (e !== null && typeof e == "object")
533
- return _s(e, t, n);
534
- }
535
- const lt = /* @__PURE__ */ new Set();
536
- function Os(e) {
537
- lt.has(e) || (lt.add(e), console.warn(
538
- `[platform-modules] no translation for "${e}"; it will render as itself. Add it to the catalog passed to ModulesI18nProvider.`
539
- ));
540
- }
541
- function xs(e, t, n, o, r) {
542
- const s = ut(e == null ? void 0 : e[t], n, r);
543
- if (typeof s == "string") return s;
544
- const c = ut(Ds[t], n, r);
545
- return typeof c == "string" ? c : (o && Os(t), t);
546
- }
547
- function Rt(e, t = K, n = !1) {
548
- return (o, r) => Ns(xs(e, o, t, n, r), t, r);
549
- }
550
- const Rs = Rt(), qs = { t: Rs, locale: K }, Ne = Ct(null);
551
- function Yi({
552
- translations: e,
553
- locale: t,
554
- timezone: n,
555
- warnOnMissingKey: o,
556
- children: r
557
- }) {
558
- const s = xe(Ne), c = W(() => {
559
- const g = (s == null ? void 0 : s.translations) === void 0 ? e : { ...s.translations, ...e }, l = t ?? (s == null ? void 0 : s.locale) ?? K;
560
- return {
561
- t: Rt(g, l, o),
562
- locale: l,
563
- timezone: n ?? (s == null ? void 0 : s.timezone),
564
- translations: g
565
- };
566
- }, [s, e, t, n, o]);
567
- return /* @__PURE__ */ q(Ne.Provider, { value: c, children: r });
568
- }
569
- function Fs() {
570
- return xe(Ne) ?? qs;
571
- }
572
- const _e = 864e5, Oe = "en-US", ct = /* @__PURE__ */ new Map(), dt = /* @__PURE__ */ new Map();
573
- function ks(e) {
574
- const t = dt.get(e);
575
- if (t) return t;
576
- const n = new Intl.NumberFormat(e, { useGrouping: !1 });
577
- return dt.set(e, n), n;
578
- }
579
- function mt(e, t) {
580
- return {
581
- time: new Intl.DateTimeFormat(e, {
582
- hour: "numeric",
583
- minute: "2-digit",
584
- timeZone: t
585
- }),
586
- day: new Intl.DateTimeFormat(e, { month: "long", day: "numeric", timeZone: t }),
587
- dayYear: new Intl.DateTimeFormat(e, {
588
- month: "long",
589
- day: "numeric",
590
- year: "numeric",
591
- timeZone: t
592
- }),
593
- zone: t ? new Intl.DateTimeFormat(e, { timeZone: t, timeZoneName: "short" }) : void 0,
594
- civilDay: new Intl.DateTimeFormat(Oe, {
595
- year: "numeric",
596
- month: "numeric",
597
- day: "numeric",
598
- timeZone: t
599
- })
600
- };
601
- }
602
- function Re(e, t) {
603
- const n = t || void 0, o = `${e}|${n ?? ""}`, r = ct.get(o);
604
- if (r) return r;
605
- let s;
606
- try {
607
- s = mt(e, n);
608
- } catch {
609
- console.warn(
610
- `[platform-modules] Unusable timezone ${JSON.stringify(n)}; rendering dates in the viewer's own clock instead.`
611
- ), s = mt(e, void 0);
612
- }
613
- return ct.set(o, s), s;
614
- }
615
- function gt(e, t) {
616
- return new Date(ye(e, t)).getUTCFullYear();
617
- }
618
- function zs(e, t) {
619
- var o;
620
- const n = (o = e.zone) == null ? void 0 : o.formatToParts(t).find((r) => r.type === "timeZoneName");
621
- return (n == null ? void 0 : n.value) ?? null;
622
- }
623
- function qt(e, t) {
624
- var n;
625
- return Number((n = e.find((o) => o.type === t)) == null ? void 0 : n.value);
626
- }
627
- function ye(e, t) {
628
- const n = e.civilDay.formatToParts(t), o = (r) => qt(n, r);
629
- return Date.UTC(o("year"), o("month") - 1, o("day"));
630
- }
631
- function Us(e, t, n) {
632
- return Ut(Re(K, n), e, t);
633
- }
634
- const ft = {
635
- hour12: !1,
636
- year: "numeric",
637
- month: "numeric",
638
- day: "numeric",
639
- hour: "numeric",
640
- minute: "numeric",
641
- second: "numeric"
642
- }, pt = /* @__PURE__ */ new Map();
643
- function Bs(e) {
644
- const t = e || void 0, n = t ?? "", o = pt.get(n);
645
- if (o) return o;
646
- let r;
647
- try {
648
- r = new Intl.DateTimeFormat(Oe, { ...ft, timeZone: t });
649
- } catch {
650
- r = new Intl.DateTimeFormat(Oe, ft);
651
- }
652
- return pt.set(n, r), r;
653
- }
654
- function ht(e, t) {
655
- const n = Bs(e).formatToParts(t), o = (s) => qt(n, s);
656
- return Date.UTC(
657
- o("year"),
658
- o("month") - 1,
659
- o("day"),
660
- o("hour") % 24,
661
- o("minute"),
662
- o("second")
663
- ) - Math.floor(t.getTime() / 1e3) * 1e3;
664
- }
665
- function bt(e, t) {
666
- const n = ye(Re(K, t), e), o = new Date(n - ht(t, e));
667
- return n - ht(t, o);
668
- }
669
- function js(e, t, n) {
670
- const o = bt(e, n), r = new Date(o + t * _e + _e / 2);
671
- return {
672
- start: e.toISOString(),
673
- end: new Date(bt(r, n) - 1).toISOString()
674
- };
675
- }
676
- const Ft = 7;
677
- function kt(e) {
678
- if (!e) return null;
679
- const t = new Date(e);
680
- return Number.isNaN(t.getTime()) ? null : t;
681
- }
682
- function Ws(e, t, n) {
683
- const o = kt(e);
684
- return o === null || zt(e, t) ? !1 : Us(o, t, n) < Ft;
685
- }
686
- function zt(e, t) {
687
- const n = kt(e);
688
- return n !== null && n.getTime() < t.getTime();
689
- }
690
- function Ut(e, t, n) {
691
- return Math.round((ye(e, t) - ye(e, n)) / _e);
692
- }
693
- function $s(e, t, n, { locale: o = K, timezone: r } = {}) {
694
- const s = new Date(t);
695
- if (Number.isNaN(s.getTime())) return t;
696
- const c = Re(o, r), g = zs(c, s), l = c.time.format(s), f = g ? e("timeWithZone", { time: l, zone: g }) : l, y = Ut(c, s, n);
697
- if (y === 0) return e("dateTimeToday", { time: f });
698
- if (y === -1) return e("dateTimeYesterday", { time: f });
699
- if (y === 1) return e("dateTimeTomorrow", { time: f });
700
- const C = gt(c, s) === gt(c, n) ? c.day.format(s) : c.dayYear.format(s);
701
- return e("dateTimeWithDate", { date: C, time: f });
702
- }
703
- function Bt(e, t = K) {
704
- return !Number.isInteger(e) || e < 1 ? null : ks(t).format(e);
705
- }
706
- function Gi(e, t, n = K) {
707
- if (!e || t === void 0) return null;
708
- const o = Bt(t, n);
709
- return o === null ? null : `${e}.${o}`;
710
- }
711
- function Ys(e, t) {
712
- return t == null ? null : e("pointsAbbreviated", { count: t });
713
- }
714
- function Gs(e, t) {
715
- switch (t.type) {
716
- case "must_view":
717
- return e("requirementMustView");
718
- case "must_submit":
719
- return e("requirementMustSubmit");
720
- case "must_contribute":
721
- return e("requirementMustContribute");
722
- case "must_mark_done":
723
- return e("requirementMustMarkDone");
724
- case "min_score":
725
- return t.minScore === null || t.minScore === void 0 ? e("requirementMinScoreUnknown") : e("requirementMinScore", { count: t.minScore });
726
- case "min_percentage":
727
- return t.minPercentage === null || t.minPercentage === void 0 ? e("requirementMinPercentageUnknown") : e("requirementMinPercentage", { count: t.minPercentage });
728
- case "unknown":
729
- return e("requirementUnknown");
730
- }
731
- }
732
- function Qs(e, t, n) {
733
- return e("progressSummary", { met: t, count: n });
734
- }
735
- function Qi(e, t, n) {
736
- return e("progressScreenReaderValue", { met: t, count: n });
737
- }
738
- function Hs(e) {
739
- if (!e) return null;
740
- const t = e.map((n) => _t(n)).filter((n) => n !== null);
741
- return t.length === 0 ? null : t.reduce((n, o) => n + o, 0);
742
- }
743
- function Hi(e) {
744
- if (!e) return null;
745
- const t = e.filter((n) => n.status !== void 0 && n.status !== "complete");
746
- return Hs(t);
747
- }
748
- function jt(e) {
749
- return { hours: Math.floor(e / 60), mins: e % 60 };
750
- }
751
- function Wt(e, t) {
752
- const { hours: n, mins: o } = jt(t);
753
- return n > 0 && o > 0 ? e("estimatedDurationHoursAndMinutes", { hours: n, minutes: o }) : n > 0 ? e("estimatedDurationHours", { count: n }) : e("estimatedDurationMinutesAbbreviated", { count: o });
754
- }
755
- function Zi(e, t) {
756
- return e("estimatedDurationByline", { duration: Wt(e, t) });
757
- }
758
- function Ki(e, t) {
759
- return e("remainingDurationByline", { duration: Wt(e, t) });
760
- }
761
- function Zs(e, t) {
762
- const { hours: n, mins: o } = jt(t);
763
- return n > 0 && o > 0 ? e("durationHoursAndMinutes", { hours: n, minutes: o }) : n > 0 ? e("durationHours", { count: n }) : e("durationMinutes", { count: o });
764
- }
765
- const Ks = "all", Vs = Ft, Xs = {
766
- all: {
767
- label: "filterAll",
768
- order: 10,
769
- unfiltered: !0,
770
- predicate: () => !0
771
- },
772
- not_started: {
773
- label: "filterNotStarted",
774
- order: 15,
775
- predicate: (e) => {
776
- var t;
777
- return ((t = e.progress) == null ? void 0 : t.status) === "not_started";
778
- },
779
- query: { target: "module", field: "moduleStatus", op: "eq", value: "not_started" }
780
- },
781
- in_progress: {
782
- label: "filterInProgress",
783
- order: 20,
784
- predicate: (e) => {
785
- var t;
786
- return ((t = e.progress) == null ? void 0 : t.status) === "in_progress";
787
- },
788
- query: { target: "module", field: "moduleStatus", op: "eq", value: "in_progress" }
789
- },
790
- complete: {
791
- label: "filterComplete",
792
- order: 30,
793
- predicate: (e) => {
794
- var t;
795
- return ((t = e.progress) == null ? void 0 : t.status) === "complete";
796
- },
797
- query: { target: "module", field: "completionStatus", op: "eq", value: "COMPLETED" }
798
- },
799
- due_this_week: {
800
- label: "filterDueThisWeek",
801
- order: 40,
802
- predicate: (e, { today: t, timezone: n }) => {
803
- var o;
804
- return Ws((o = e.progress) == null ? void 0 : o.nextDueAt, t, n);
805
- },
806
- query: {
807
- target: "module",
808
- field: "dueWithinDays",
809
- op: "within",
810
- value: Vs
811
- }
812
- },
813
- missing: {
814
- label: "filterMissing",
815
- order: 50,
816
- predicate: (e) => {
817
- var t;
818
- return ((t = e.progress) == null ? void 0 : t.status) === "missing";
819
- },
820
- query: { target: "module", field: "moduleStatus", op: "eq", value: "missing" }
821
- }
822
- };
823
- function qe(e) {
824
- return e == null ? void 0 : e.query;
825
- }
826
- function $t(e) {
827
- return (e == null ? void 0 : e.unfiltered) === !0;
828
- }
829
- function Pt(e) {
830
- return e !== void 0 && !$t(e);
831
- }
832
- function Js(e) {
833
- return e !== void 0 && qe(e) === void 0;
834
- }
835
- const ei = {
836
- moduleLabel: (e, t, { locale: n }) => Bt(e, n),
837
- dateTime: (e, t, { t: n, locale: o, timezone: r }) => $s(n, e, t, { locale: o, timezone: r }),
838
- points: (e, { t }) => Ys(t, e),
839
- progress: (e, t, n, { t: o }) => Qs(o, t, n)
840
- }, $ = { size: "xs", color: "mutedColor" }, ti = {
841
- assignment: {
842
- label: "itemTypeAssignment",
843
- order: 10,
844
- icon: /* @__PURE__ */ q(pn, { ...$ })
845
- },
846
- quiz: { label: "itemTypeQuiz", order: 20, icon: /* @__PURE__ */ q(fn, { ...$ }) },
847
- discussion: {
848
- label: "itemTypeDiscussion",
849
- order: 30,
850
- icon: /* @__PURE__ */ q(gn, { ...$ })
851
- },
852
- page: { label: "itemTypePage", order: 40, icon: /* @__PURE__ */ q(mn, { ...$ }) },
853
- file: { label: "itemTypeFile", order: 50, icon: /* @__PURE__ */ q(dn, { ...$ }) },
854
- external_url: {
855
- label: "itemTypeExternalUrl",
856
- order: 60,
857
- icon: /* @__PURE__ */ q(cn, { ...$ })
858
- },
859
- external_tool: {
860
- label: "itemTypeExternalTool",
861
- order: 70,
862
- icon: /* @__PURE__ */ q(ln, { ...$ })
863
- },
864
- sub_header: { label: "itemTypeSubHeader", order: 80, icon: null }
865
- }, Vi = "type", ni = { fontSizeMedium: "inherit" }, Mt = /* @__PURE__ */ q(Et, { ...$ });
866
- function yt({ item: e, today: t }) {
867
- return e.status !== "complete" && e.status !== "locked" && zt(e.dueAt, t);
868
- }
869
- const oi = {
870
- type: {
871
- label: "metaFieldTypeLabel",
872
- order: 10,
873
- renderIcon: ({ item: e, config: t }) => {
874
- const n = se(t.itemTypes, e.type);
875
- return n ? n.renderIcon ? n.renderIcon({ item: e }) : n.icon : null;
876
- },
877
- render: ({ item: e, t, config: n }) => {
878
- const o = se(n.itemTypes, e.type);
879
- return o ? t(o.label) : null;
880
- }
881
- },
882
- points: {
883
- label: "metaFieldPointsLabel",
884
- order: 20,
885
- render: ({ item: e, formatters: t }) => t.points(e.pointsPossible)
886
- },
887
- requirement: {
888
- label: "metaFieldRequirementLabel",
889
- order: 30,
890
- render: ({ item: e, t }) => e.completionRequirement ? Gs(t, e.completionRequirement) : null
891
- },
892
- dueAt: {
893
- label: "metaFieldDueAtLabel",
894
- order: 40,
895
- icon: Mt,
896
- /** Only the shipped glyph reddens; a host that cleared or replaced it keeps what it set. */
897
- renderIcon: (e) => {
898
- var n;
899
- const t = (n = e.config.itemMeta.dueAt) == null ? void 0 : n.icon;
900
- return t !== Mt || !yt(e) ? t : /* @__PURE__ */ q(Et, { ...$, color: "errorColor" });
901
- },
902
- render: (e) => {
903
- const { item: t, today: n, formatters: o } = e;
904
- return t.dueAt ? yt(e) ? /* @__PURE__ */ q(bn, { color: "danger", themeOverride: ni, children: o.pastDueByline(t.dueAt, n) }) : o.dueByline(t.dueAt, n) : null;
905
- }
906
- },
907
- estimatedDuration: {
908
- label: "metaFieldDurationLabel",
909
- order: 50,
910
- icon: /* @__PURE__ */ q(hn, { ...$ }),
911
- render: ({ item: e, t }) => {
912
- const n = _t(e);
913
- return n === null ? null : Zs(t, n);
914
- }
915
- },
916
- unpublished: {
917
- label: "metaFieldPublishStateLabel",
918
- order: 60,
919
- render: ({ item: e, t }) => e.published ? null : t("itemUnpublishedLabel")
920
- }
921
- }, Fe = {
922
- formatters: ei,
923
- itemTypes: ti,
924
- itemStatuses: {},
925
- itemMeta: oi,
926
- filters: Xs,
927
- moduleActions: {},
928
- itemActions: {},
929
- navigation: {},
930
- permissions: {},
931
- notify: void 0
932
- };
933
- Object.freeze(Fe);
934
- for (const e of Object.values(Fe)) {
935
- Object.freeze(e);
936
- for (const t of Object.values(e ?? {})) Object.freeze(t);
937
- }
938
- function ri(e, t) {
939
- return kn(e).filter((n) => {
940
- if ($t(n)) return !1;
941
- const o = qe(n);
942
- return o === void 0 ? !0 : !Mn(t, o);
943
- }).map((n) => n.key);
944
- }
945
- function wt(e) {
946
- return `[platform-modules] the adapter cannot serve filter(s): ${e.join(", ")}. Give the entry a query the adapter's capabilities declare, or mark it unfiltered.`;
947
- }
948
- function si(e, t) {
949
- const n = ri(e, t);
950
- if (n.length === 0) return e;
951
- if (process.env.NODE_ENV !== "production")
952
- throw new Error(wt(n));
953
- console.warn(wt(n));
954
- const o = Object.fromEntries(n.map((r) => [r, { ...e[r], hidden: !0 }]));
955
- return { ...e, ...o };
956
- }
957
- const Yt = Ct(null);
958
- function Xi({ value: e, children: t }) {
959
- return /* @__PURE__ */ q(Yt.Provider, { value: e, children: t });
960
- }
961
- function Gt() {
962
- return xe(Yt) ?? Fe;
963
- }
964
- function Ji(e) {
965
- return se(Gt().itemMeta, e) !== void 0;
966
- }
967
- const ke = 10, ii = 4, ai = 20, Qt = 100, ui = 4, li = 4, ze = 5 * 60 * 1e3, Ht = 20;
968
- function Zt(e) {
969
- const {
970
- courseId: t,
971
- adapter: n,
972
- page: o,
973
- pageSize: r,
974
- includeItems: s,
975
- filter: c,
976
- dueRange: g,
977
- inlineItemsFirst: l,
978
- inlineFirst: f,
979
- view: y,
980
- staleTime: w,
981
- enabled: C
982
- } = e;
983
- return {
984
- // `inlineItemsFirst`/`inlineFirst` are deliberately out of the key: derived from this list.
985
- queryKey: ge.list(t, { view: y, pageSize: r, includeItems: s, filter: c, page: o }),
986
- queryFn: ({ signal: I }) => n.listModules({
987
- courseId: t,
988
- page: o,
989
- pageSize: r,
990
- includeItems: s,
991
- filter: c,
992
- dueRange: g,
993
- inlineItemsFirst: l,
994
- inlineFirst: f,
995
- signal: I
996
- }),
997
- enabled: C,
998
- staleTime: w,
999
- refetchOnWindowFocus: !1
1000
- };
1001
- }
1002
- function ci(e) {
1003
- const { courseId: t, moduleId: n, adapter: o, page: r, pageSize: s, view: c, staleTime: g, enabled: l, limit: f } = e;
1004
- return {
1005
- queryKey: ge.items(t, n, { view: c, pageSize: s, page: r }),
1006
- queryFn: ({ signal: y }) => {
1007
- const w = () => o.listModuleItems({ courseId: t, moduleId: n, page: r, pageSize: s, signal: y });
1008
- return f ? f(() => {
1009
- if (y.aborted)
1010
- throw new DOMException("The operation was aborted.", "AbortError");
1011
- return w();
1012
- }) : w();
1013
- },
1014
- placeholderData: It,
1015
- enabled: l,
1016
- staleTime: g,
1017
- refetchOnWindowFocus: !1
1018
- };
1019
- }
1020
- const we = { request: { kind: "first" }, page: 1 };
1021
- function de(e, t) {
1022
- return e === null ? 1 : Math.max(1, Math.ceil(e / t));
1023
- }
1024
- function di(e, t, n, o) {
1025
- switch (e) {
1026
- case "first":
1027
- return we;
1028
- case "previous":
1029
- return t === 2 ? we : n.hasPreviousPage && n.startCursor !== null ? { request: { kind: "before", cursor: n.startCursor }, page: t - 1 } : null;
1030
- case "next":
1031
- return n.hasNextPage && n.endCursor !== null ? { request: { kind: "after", cursor: n.endCursor }, page: t + 1 } : null;
1032
- case "last": {
1033
- const r = n.totalCount;
1034
- return r === null ? null : {
1035
- request: { kind: "last", count: r % o || o },
1036
- page: de(r, o)
1037
- };
1038
- }
1039
- }
1040
- }
1041
- const De = { kind: "first" }, mi = {
1042
- hasNextPage: !1,
1043
- endCursor: null,
1044
- hasPreviousPage: !1,
1045
- startCursor: null,
1046
- totalCount: null,
1047
- totalNrOfPages: null
1048
- };
1049
- function gi(e) {
1050
- var V, X, ie;
1051
- const {
1052
- courseId: t,
1053
- adapter: n,
1054
- pageSize: o = ke,
1055
- includeItems: r = !1,
1056
- filter: s,
1057
- dueRange: c,
1058
- inlineItemsFirst: g,
1059
- inlineFirst: l,
1060
- view: f,
1061
- staleTime: y = ze,
1062
- enabled: w = !0
1063
- } = e, [C, I] = Q(De), [H, O] = Q(1), x = JSON.stringify([t, f, o, r, s]), p = T(x);
1064
- me(() => {
1065
- p.current !== x && (p.current = x, I(De), O(1));
1066
- }, [x]);
1067
- const P = vt({
1068
- ...Zt({
1069
- courseId: t,
1070
- adapter: n,
1071
- page: C,
1072
- pageSize: o,
1073
- includeItems: r,
1074
- filter: s,
1075
- dueRange: c,
1076
- inlineItemsFirst: g,
1077
- inlineFirst: l,
1078
- view: f,
1079
- staleTime: y,
1080
- enabled: w
1081
- }),
1082
- // `useItemsMode` shares `modulesQueryOptions`, and `inlineFirst` is out of that key.
1083
- placeholderData: It
1084
- }), E = T(null);
1085
- ((V = P.data) == null ? void 0 : V.pageInfo.totalCount) != null && (E.current = P.data.pageInfo.totalCount);
1086
- const D = T(1);
1087
- P.isPlaceholderData || (D.current = H);
1088
- const S = D.current, h = ((X = P.data) == null ? void 0 : X.pageInfo) ?? mi, b = ((ie = P.data) == null ? void 0 : ie.modules) ?? [], L = h.totalCount, Y = de(L, o), G = v(() => {
1089
- I(De), O(1);
1090
- }, []), z = h.hasPreviousPage, U = h.startCursor, m = v(() => {
1091
- !z || U === null || (I({ kind: "before", cursor: U }), O(S - 1));
1092
- }, [z, U, S]), F = h.hasNextPage, A = h.endCursor, fe = v(() => {
1093
- !F || A === null || (I({ kind: "after", cursor: A }), O(S + 1));
1094
- }, [F, A, S]), B = v(() => {
1095
- const J = E.current, Z = J !== null && J > 0 && J % o || o;
1096
- I({ kind: "last", count: Z }), O(Y);
1097
- }, [o, Y]);
1098
- return {
1099
- modules: b,
1100
- pageInfo: h,
1101
- page: S,
1102
- pageCount: Y,
1103
- hasNextPage: F,
1104
- hasPreviousPage: z,
1105
- goToFirstPage: G,
1106
- goToPreviousPage: m,
1107
- goToNextPage: fe,
1108
- goToLastPage: B,
1109
- isLoading: P.isLoading,
1110
- isPending: P.isPending,
1111
- isPlaceholderData: P.isPlaceholderData,
1112
- error: P.error
1113
- };
1114
- }
1115
- const fi = { kind: "first" };
1116
- function pi(e, t, n = Ot) {
1117
- if (e.pageInfo.hasNextPage) return "onDemand";
1118
- let o = 0, r = 0;
1119
- for (const s of e.modules) {
1120
- if (s.itemCount > t) return "onDemand";
1121
- o += s.itemCount, s.itemCount > r && (r = s.itemCount);
1122
- }
1123
- return o > t * 2 ? "onDemand" : Math.max(e.modules.length, 1) * Math.max(r, 1) <= n ? "inline" : "onDemand";
1124
- }
1125
- function hi(e) {
1126
- const {
1127
- courseId: t,
1128
- adapter: n,
1129
- mode: o = "auto",
1130
- inlineThreshold: r = Qt,
1131
- nodeBudget: s = n.inlineNodeBudget ?? Ot,
1132
- pageSize: c = ke,
1133
- filter: g,
1134
- dueRange: l,
1135
- view: f,
1136
- staleTime: y = ze
1137
- } = e, w = o === "auto", C = vt(
1138
- Zt({
1139
- courseId: t,
1140
- adapter: n,
1141
- page: fi,
1142
- pageSize: c,
1143
- includeItems: !1,
1144
- filter: g,
1145
- dueRange: l,
1146
- view: f,
1147
- staleTime: y,
1148
- enabled: w
1149
- })
1150
- );
1151
- if (!w)
1152
- return {
1153
- resolvedMode: o,
1154
- isResolving: !1,
1155
- probed: !1,
1156
- error: null,
1157
- inlineShape: null
1158
- };
1159
- if (C.error)
1160
- return {
1161
- resolvedMode: "onDemand",
1162
- isResolving: !1,
1163
- probed: !0,
1164
- error: C.error,
1165
- inlineShape: null
1166
- };
1167
- const I = C.data;
1168
- return I ? {
1169
- resolvedMode: pi(I, r, s),
1170
- isResolving: !1,
1171
- probed: !0,
1172
- error: null,
1173
- inlineShape: bi(I)
1174
- } : { resolvedMode: null, isResolving: !0, probed: !0, error: null, inlineShape: null };
1175
- }
1176
- function bi(e) {
1177
- let t = 1;
1178
- for (const n of e.modules)
1179
- n.itemCount > t && (t = n.itemCount);
1180
- return { moduleCount: Math.max(e.modules.length, 1), maxItemCount: t };
1181
- }
1182
- const Pi = `(max-width: ${Pn.mobileOnly.maxWidth})`;
1183
- function St() {
1184
- return typeof window > "u" || typeof window.matchMedia != "function" ? null : window.matchMedia(Pi);
1185
- }
1186
- function Mi() {
1187
- const [e, t] = Q(() => {
1188
- var n;
1189
- return ((n = St()) == null ? void 0 : n.matches) ?? !1;
1190
- });
1191
- return me(() => {
1192
- const n = St();
1193
- if (n === null) return;
1194
- t(n.matches);
1195
- const o = (r) => t(r.matches);
1196
- return n.addEventListener("change", o), () => n.removeEventListener("change", o);
1197
- }, []), e;
1198
- }
1199
- const Le = "\0", yi = /* @__PURE__ */ new Map();
1200
- function wi(e, t, {
1201
- pageSize: n,
1202
- retainCollapsedLimit: o = Ht,
1203
- partition: r = ""
1204
- }) {
1205
- const s = Tt(), c = T(/* @__PURE__ */ new Map()), g = T(/* @__PURE__ */ new Map()), l = `${n}${Le}${r}`, f = T(l), [y, w] = Q(yi), C = e.join(Le), I = W(() => C === "" ? [] : C.split(Le), [C]);
1206
- me(() => {
1207
- const p = c.current, P = g.current;
1208
- f.current !== l && (P.clear(), f.current = l);
1209
- const E = () => {
1210
- w((b) => {
1211
- const L = /* @__PURE__ */ new Map();
1212
- let Y = b.size !== p.size;
1213
- for (const [G, z] of p) {
1214
- const U = z.getCurrentResult(), m = P.get(G), F = m ? U.isPlaceholderData ? m.shownPage : m.page : 1, A = b.get(G);
1215
- if (A && A.result === U && A.page === F) {
1216
- L.set(G, A);
1217
- continue;
1218
- }
1219
- L.set(G, { result: U, page: F }), Y = !0;
1220
- }
1221
- return Y ? L : b;
1222
- });
1223
- }, D = (b) => (P.get(b) ?? we).request, S = new Set(I);
1224
- for (const b of I) {
1225
- if (p.has(b)) continue;
1226
- const L = new un(
1227
- s,
1228
- t(b, !0, D(b))
1229
- );
1230
- p.set(b, L), L.subscribe(E);
1231
- }
1232
- for (const [b, L] of p)
1233
- L.setOptions(t(b, S.has(b), D(b)));
1234
- for (const b of I) {
1235
- const L = p.get(b);
1236
- L && (p.delete(b), p.set(b, L));
1237
- }
1238
- let h = p.size - S.size;
1239
- if (h > o)
1240
- for (const [b, L] of p) {
1241
- if (h <= o) break;
1242
- S.has(b) || (L.destroy(), p.delete(b), P.delete(b), h -= 1);
1243
- }
1244
- E();
1245
- }, [s, t, I, o, l]), me(() => {
1246
- const p = c.current;
1247
- return () => {
1248
- for (const P of p.values()) P.destroy();
1249
- p.clear();
1250
- };
1251
- }, []);
1252
- const H = T(n);
1253
- H.current = n;
1254
- const O = T(t);
1255
- O.current = t;
1256
- const x = v((p, P) => {
1257
- const E = c.current.get(p), D = E == null ? void 0 : E.getCurrentResult();
1258
- if (!E || !(D != null && D.data) || D.isPlaceholderData) return;
1259
- const S = g.current.get(p) ?? we, h = di(P, S.page, D.data.pageInfo, H.current);
1260
- !h || h.page === S.page || (g.current.set(p, { ...h, shownPage: S.page }), E.setOptions(
1261
- O.current(p, E.options.enabled !== !1, h.request)
1262
- ));
1263
- }, []);
1264
- return { entries: y, goToPage: x };
1265
- }
1266
- const Si = [];
1267
- function ea(e) {
1268
- var Ve, Xe;
1269
- const {
1270
- courseId: t,
1271
- adapter: n,
1272
- view: o,
1273
- itemsMode: r = "auto",
1274
- inlineThreshold: s = Qt,
1275
- pageSize: c = ke,
1276
- mobilePageSize: g = ii,
1277
- itemPageSize: l = ai,
1278
- itemConcurrency: f = ui,
1279
- retainCollapsedLimit: y = Ht,
1280
- staleTime: w = ze,
1281
- initialExpandedModuleIds: C,
1282
- initialFilter: I = Ks,
1283
- today: H
1284
- } = e, O = Mi() ? g : c, x = Tt(), p = Gt(), [P, E] = Q(I), D = W(
1285
- () => si(p.filters, n.capabilities),
1286
- [p.filters, n.capabilities]
1287
- ), S = se(D, P), h = qe(S), { timezone: b } = Fs(), [L] = Q(() => /* @__PURE__ */ new Date()), Y = H ?? L, G = W(
1288
- () => (h == null ? void 0 : h.op) === "within" ? js(Y, Number(h.value), b) : void 0,
1289
- [h == null ? void 0 : h.op, h == null ? void 0 : h.value, Y, b]
1290
- ), z = hi({
1291
- courseId: t,
1292
- adapter: n,
1293
- mode: r,
1294
- inlineThreshold: s,
1295
- pageSize: O,
1296
- filter: h,
1297
- dueRange: G,
1298
- view: o,
1299
- staleTime: w
1300
- }), U = z.resolvedMode, m = gi({
1301
- courseId: t,
1302
- adapter: n,
1303
- pageSize: O,
1304
- filter: h,
1305
- dueRange: G,
1306
- view: o,
1307
- staleTime: w,
1308
- includeItems: U === "inline",
1309
- inlineItemsFirst: (Ve = z.inlineShape) == null ? void 0 : Ve.maxItemCount,
1310
- inlineFirst: (Xe = z.inlineShape) == null ? void 0 : Xe.moduleCount,
1311
- enabled: U !== null
1312
- }), [F, A] = Q(
1313
- () => C ?? []
1314
- ), fe = C === void 0, B = T(!1), V = Pt(S), X = T(V);
1315
- X.current = V;
1316
- const ie = T(m.hasNextPage);
1317
- ie.current = m.hasNextPage;
1318
- const J = T(m.isPlaceholderData);
1319
- J.current = m.isPlaceholderData, me(() => {
1320
- !fe || B.current || V || m.isPlaceholderData || A((i) => {
1321
- const u = new Set(i), d = [...i];
1322
- for (const M of m.modules)
1323
- M.collapsed === !1 && !u.has(M.id) && d.push(M.id);
1324
- return d.length === i.length ? i : d;
1325
- });
1326
- }, [m.modules, m.isPlaceholderData, fe, V]);
1327
- const Z = W(() => {
1328
- const i = /* @__PURE__ */ new Map();
1329
- for (const u of m.modules) i.set(u.id, u);
1330
- return i;
1331
- }, [m.modules]), Se = W(
1332
- () => F.filter((i) => {
1333
- const u = Z.get(i);
1334
- return u !== void 0 && u.items === void 0;
1335
- }),
1336
- [F, Z]
1337
- ), Ue = W(() => new Set(Se), [Se]), Be = W(() => nt(f), [f]), Kt = v(
1338
- (i, u, d) => ci({
1339
- courseId: t,
1340
- moduleId: i,
1341
- adapter: n,
1342
- page: d,
1343
- pageSize: l,
1344
- view: o,
1345
- staleTime: w,
1346
- enabled: u,
1347
- limit: Be
1348
- }),
1349
- [t, n, l, o, w, Be]
1350
- ), je = wi(Se, Kt, {
1351
- pageSize: l,
1352
- retainCollapsedLimit: y,
1353
- partition: JSON.stringify([t, o])
1354
- }), We = W(() => nt(li), []), [Vt, $e] = Q(0), pe = v((i) => ($e((u) => u + 1), i.finally(() => $e((u) => u - 1))), []), ae = T(/* @__PURE__ */ new Map()), Ie = T(Promise.resolve()), j = v(
1355
- (i, u, d) => {
1356
- if (X.current) return;
1357
- const M = n.setModuleCollapsed;
1358
- if (!M) return;
1359
- const N = Promise.all([Ie.current, ae.current.get(i)]).then(
1360
- () => We(() => M({ courseId: t, moduleId: i, collapsed: u }))
1361
- ), _ = ((d == null ? void 0 : d.track) === !0 ? pe(N) : N).catch((k) => {
1362
- console.warn(
1363
- `[platform-modules] failed to persist module ${i} collapsed=${u}: ${String(k)}`
1364
- );
1365
- }).finally(() => {
1366
- ae.current.get(i) === _ && ae.current.delete(i);
1367
- });
1368
- ae.current.set(i, _);
1369
- },
1370
- [n, t, We, pe]
1371
- ), he = v(
1372
- (i, u) => {
1373
- const d = n.setAllModulesCollapsed;
1374
- if (!(!X.current && !ie.current && !J.current && d !== void 0)) {
1375
- for (const _ of u) j(_, i, { track: !0 });
1376
- return;
1377
- }
1378
- const N = pe(
1379
- Promise.all([Ie.current, ...ae.current.values()]).then(
1380
- () => d({ courseId: t, collapsed: i })
1381
- )
1382
- ).catch((_) => {
1383
- console.warn(
1384
- `[platform-modules] failed to persist all modules collapsed=${i}: ${String(_)}`
1385
- );
1386
- });
1387
- Ie.current = N;
1388
- },
1389
- [n, t, j, pe]
1390
- ), ve = v(
1391
- (i, u) => {
1392
- B.current = !0, A(
1393
- (d) => d.includes(i) ? d : [...d, i]
1394
- ), (u == null ? void 0 : u.persist) !== !1 && j(i, !1);
1395
- },
1396
- [j]
1397
- ), ue = v(
1398
- (i, u) => {
1399
- B.current = !0, A((d) => d.filter((M) => M !== i)), x.cancelQueries({ queryKey: Me(t, i) }), (u == null ? void 0 : u.persist) !== !1 && j(i, !0);
1400
- },
1401
- [x, t, j]
1402
- ), Xt = v(
1403
- (i) => {
1404
- B.current = !0, A((u) => {
1405
- const d = new Set(u), M = i.filter((N) => !d.has(N));
1406
- return M.length === 0 ? u : [...u, ...M];
1407
- });
1408
- for (const u of i) j(u, !1, { track: !0 });
1409
- },
1410
- [j]
1411
- ), Jt = v(
1412
- (i) => {
1413
- B.current = !0;
1414
- const u = new Set(i);
1415
- A((d) => {
1416
- const M = d.filter((N) => !u.has(N));
1417
- return M.length === d.length ? d : M;
1418
- });
1419
- for (const d of u)
1420
- x.cancelQueries({ queryKey: Me(t, d) }), j(d, !0, { track: !0 });
1421
- },
1422
- [x, t, j]
1423
- ), ee = T(F);
1424
- ee.current = F;
1425
- const en = v(() => {
1426
- B.current = !0;
1427
- const i = ee.current;
1428
- if (i.length !== 0) {
1429
- for (const u of i)
1430
- x.cancelQueries({ queryKey: Me(t, u) });
1431
- A([]), he(!0, i);
1432
- }
1433
- }, [x, t, he]), tn = v(() => {
1434
- B.current = !0;
1435
- const i = m.modules.map((u) => u.id);
1436
- i.length !== 0 && (A(i), he(!1, i));
1437
- }, [m.modules, he]), Te = T(P);
1438
- Te.current = P;
1439
- const te = T(null), nn = v(
1440
- (i) => {
1441
- if (i === Te.current) return;
1442
- if (Te.current = i, Pt(se(D, i))) {
1443
- te.current === null && (te.current = ee.current);
1444
- const d = B.current;
1445
- for (const M of ee.current) ue(M, { persist: !1 });
1446
- B.current = d;
1447
- } else te.current !== null && (A(te.current), ee.current = te.current, te.current = null);
1448
- E(i);
1449
- },
1450
- [D, ue]
1451
- ), on = v(
1452
- (i) => {
1453
- ee.current.includes(i) ? ue(i) : ve(i);
1454
- },
1455
- [ue, ve]
1456
- ), Ye = T(Z);
1457
- Ye.current = Z;
1458
- const [Ge, rn] = Q(() => /* @__PURE__ */ new Map()), Qe = je.goToPage, ne = v(
1459
- (i, u) => {
1460
- var N;
1461
- const d = (N = Ye.current.get(i)) == null ? void 0 : N.items;
1462
- if (d === void 0) {
1463
- Qe(i, u);
1464
- return;
1465
- }
1466
- const M = de(d.length, l);
1467
- rn((_) => {
1468
- const k = Math.min(_.get(i) ?? 1, M), le = u === "first" ? 1 : u === "last" ? M : Math.min(Math.max(k + (u === "next" ? 1 : -1), 1), M);
1469
- return le === k ? _ : new Map(_).set(i, le);
1470
- });
1471
- },
1472
- [Qe, l]
1473
- ), Ce = W(() => /* @__PURE__ */ new Map(), [ne]), He = v(
1474
- (i) => {
1475
- let u = Ce.get(i);
1476
- return u || (u = {
1477
- goToFirstPage: () => ne(i, "first"),
1478
- goToPreviousPage: () => ne(i, "previous"),
1479
- goToNextPage: () => ne(i, "next"),
1480
- goToLastPage: () => ne(i, "last")
1481
- }, Ce.set(i, u)), u;
1482
- },
1483
- [Ce, ne]
1484
- ), Ze = je.entries, Ke = T(/* @__PURE__ */ new Map()), sn = v(
1485
- (i) => {
1486
- var Je, et;
1487
- const u = Z.get(i), d = Ze.get(i), M = Ue.has(i), N = Ge.get(i), _ = He(i), k = Ke.current.get(i);
1488
- if (k && k.items === (u == null ? void 0 : u.items) && k.entry === d && k.active === M && k.inlinePage === N && k.navigation === _)
1489
- return k.value;
1490
- const le = (ce) => (Ke.current.set(i, {
1491
- items: u == null ? void 0 : u.items,
1492
- entry: d,
1493
- active: M,
1494
- inlinePage: N,
1495
- navigation: _,
1496
- value: ce
1497
- }), ce);
1498
- if ((u == null ? void 0 : u.items) !== void 0) {
1499
- const ce = de(u.items.length, l), tt = Math.min(N ?? 1, ce), Ee = (tt - 1) * l;
1500
- return le({
1501
- items: u.items.slice(Ee, Ee + l),
1502
- page: tt,
1503
- pageCount: ce,
1504
- itemOffset: u.items.slice(0, Ee).filter((an) => an.type !== "sub_header").length,
1505
- ..._,
1506
- isLoading: !1,
1507
- isRefreshing: !1,
1508
- error: null,
1509
- source: "inline"
1510
- });
1511
- }
1512
- const R = d == null ? void 0 : d.result, be = (d == null ? void 0 : d.page) ?? 1, oe = (Je = R == null ? void 0 : R.data) == null ? void 0 : Je.pageInfo;
1513
- return le({
1514
- items: ((et = R == null ? void 0 : R.data) == null ? void 0 : et.items) ?? Si,
1515
- page: be,
1516
- pageCount: Math.max(
1517
- de((oe == null ? void 0 : oe.totalCount) ?? null, l),
1518
- oe != null && oe.hasNextPage ? be + 1 : be
1519
- ),
1520
- // Assumes earlier pages hold no sub-headers. Exact numbers need a per-module running count.
1521
- itemOffset: (be - 1) * l,
1522
- ..._,
1523
- isLoading: R ? R.isLoading : M,
1524
- isRefreshing: (R == null ? void 0 : R.isPlaceholderData) ?? !1,
1525
- error: (R == null ? void 0 : R.error) ?? null,
1526
- source: "onDemand"
1527
- });
1528
- },
1529
- [Z, Ze, Ue, Ge, He, l]
1530
- );
1531
- return {
1532
- modules: m.modules,
1533
- pageInfo: m.pageInfo,
1534
- page: m.page,
1535
- pageCount: m.pageCount,
1536
- pageSize: O,
1537
- hasNextPage: m.hasNextPage,
1538
- hasPreviousPage: m.hasPreviousPage,
1539
- goToFirstPage: m.goToFirstPage,
1540
- goToPreviousPage: m.goToPreviousPage,
1541
- goToNextPage: m.goToNextPage,
1542
- goToLastPage: m.goToLastPage,
1543
- isLoading: (z.isResolving || m.isPending) && !m.isPlaceholderData,
1544
- isRefreshing: m.isPlaceholderData,
1545
- error: m.error ?? z.error,
1546
- itemsMode: U,
1547
- getItems: sn,
1548
- expandModule: ve,
1549
- collapseModule: ue,
1550
- expandModules: Xt,
1551
- collapseModules: Jt,
1552
- collapseAllModules: en,
1553
- expandAllModules: tn,
1554
- toggleModule: on,
1555
- expandedModuleIds: F,
1556
- filter: P,
1557
- setFilter: nn,
1558
- filterEntry: S,
1559
- filterPredicate: Js(S) ? S == null ? void 0 : S.predicate : void 0,
1560
- isPersistingCollapsed: Vt > 0
1561
- };
1562
- }
1563
- export {
1564
- qe as $,
1565
- Yi as A,
1566
- Xi as B,
1567
- Ui as C,
1568
- ea as D,
1569
- En as E,
1570
- Ni as F,
1571
- Ks as G,
1572
- Dt as H,
1573
- Ot as I,
1574
- In as J,
1575
- Mn as K,
1576
- Lt as L,
1577
- xi as M,
1578
- wn as N,
1579
- yn as O,
1580
- vn as P,
1581
- Cn as Q,
1582
- At as R,
1583
- Sn as S,
1584
- _i as T,
1585
- Tn as U,
1586
- Nt as V,
1587
- _t as W,
1588
- Nn as X,
1589
- Xs as Y,
1590
- ei as Z,
1591
- Vs as _,
1592
- Oi as a,
1593
- si as a0,
1594
- Js as a1,
1595
- Vi as a2,
1596
- ri as a3,
1597
- Ji as a4,
1598
- se as a5,
1599
- Qt as a6,
1600
- ui as a7,
1601
- ai as a8,
1602
- ii as a9,
1603
- ke as aa,
1604
- Ht as ab,
1605
- ze as ac,
1606
- gi as ad,
1607
- Wi as ae,
1608
- Me as af,
1609
- ge as ag,
1610
- Fn as ah,
1611
- Rt as ai,
1612
- K as aj,
1613
- Rs as ak,
1614
- ot as b,
1615
- Bi as c,
1616
- ki as d,
1617
- Fi as e,
1618
- Fe as f,
1619
- zi as g,
1620
- Ae as h,
1621
- ji as i,
1622
- Fs as j,
1623
- Zi as k,
1624
- Gi as l,
1625
- $i as m,
1626
- Ws as n,
1627
- at as o,
1628
- Hs as p,
1629
- Hi as q,
1630
- Ki as r,
1631
- qi as s,
1632
- Qi as t,
1633
- Gt as u,
1634
- kn as v,
1635
- Ri as w,
1636
- An as x,
1637
- Ln as y,
1638
- Dn as z
1639
- };