@instructure/platform-modules 1.10.0 → 1.12.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/README.md +72 -27
- package/dist/adapters/canvasGraphql/index.d.ts +1 -1
- package/dist/adapters/canvasGraphql/index.d.ts.map +1 -1
- package/dist/adapters/canvasGraphql/normalize.d.ts +10 -3
- package/dist/adapters/canvasGraphql/normalize.d.ts.map +1 -1
- package/dist/adapters/canvasGraphql/queries.d.ts +13 -3
- package/dist/adapters/canvasGraphql/queries.d.ts.map +1 -1
- package/dist/adapters/inMemory.d.ts +2 -0
- package/dist/adapters/inMemory.d.ts.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/types.d.ts +27 -3
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/analytics/types.d.ts +1 -1
- package/dist/analytics/types.d.ts.map +1 -1
- package/dist/cache/keys.d.ts +3 -0
- package/dist/cache/keys.d.ts.map +1 -1
- package/dist/components/FilterSelect.d.ts +2 -2
- package/dist/components/FilterSelect.d.ts.map +1 -1
- package/dist/components/ModuleCard.d.ts +1 -3
- package/dist/components/ModuleCard.d.ts.map +1 -1
- package/dist/components/ModuleCard.stories.d.ts +3 -0
- package/dist/components/ModuleCard.stories.d.ts.map +1 -1
- package/dist/components/ModuleItemRow.d.ts +3 -0
- package/dist/components/ModuleItemRow.d.ts.map +1 -1
- package/dist/components/ModulesList.d.ts +0 -1
- package/dist/components/ModulesList.d.ts.map +1 -1
- package/dist/components/ModulesList.stories.d.ts +3 -2
- package/dist/components/ModulesList.stories.d.ts.map +1 -1
- package/dist/components/ModulesProgressBar.d.ts +3 -1
- package/dist/components/ModulesProgressBar.d.ts.map +1 -1
- package/dist/components/ModulesProgressBar.stories.d.ts +1 -0
- package/dist/components/ModulesProgressBar.stories.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/labels.d.ts +10 -0
- package/dist/components/labels.d.ts.map +1 -1
- package/dist/config/capabilities.d.ts.map +1 -1
- package/dist/config/filters.d.ts +3 -2
- package/dist/config/filters.d.ts.map +1 -1
- package/dist/config/schemas.d.ts +2 -2
- package/dist/config/schemas.d.ts.map +1 -1
- package/dist/config/types.d.ts +0 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/hooks/constants.d.ts +1 -4
- package/dist/hooks/constants.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +2 -3
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/pageSteps.d.ts +12 -0
- package/dist/hooks/pageSteps.d.ts.map +1 -0
- package/dist/hooks/queryOptions.d.ts +8 -5
- package/dist/hooks/queryOptions.d.ts.map +1 -1
- package/dist/hooks/useItemsMode.d.ts +2 -0
- package/dist/hooks/useItemsMode.d.ts.map +1 -1
- package/dist/hooks/useModuleItemQueries.d.ts +19 -8
- package/dist/hooks/useModuleItemQueries.d.ts.map +1 -1
- package/dist/hooks/useModules.d.ts +13 -5
- package/dist/hooks/useModules.d.ts.map +1 -1
- package/dist/hooks/useModulesPageData.d.ts +23 -11
- package/dist/hooks/useModulesPageData.d.ts.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2499 -2088
- package/dist/organize/Organize.stories.d.ts +2 -1
- package/dist/organize/Organize.stories.d.ts.map +1 -1
- package/dist/organize/OrganizeModulesModal.d.ts.map +1 -1
- package/dist/organize/ProposalPreview.d.ts.map +1 -1
- package/dist/organize/fixture.d.ts.map +1 -1
- package/dist/organize/types.d.ts +1 -1
- package/dist/types/domain.d.ts +9 -2
- package/dist/types/domain.d.ts.map +1 -1
- package/dist/types/extensions.d.ts +2 -0
- package/dist/types/extensions.d.ts.map +1 -1
- package/dist/types/filterClause.d.ts +3 -3
- package/dist/types/filterClause.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/schemas.d.ts +2 -1
- package/dist/types/schemas.d.ts.map +1 -1
- package/locales/en.json +15 -25
- package/package.json +3 -1
- package/dist/hooks/useModuleItems.d.ts +0 -25
- package/dist/hooks/useModuleItems.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -22,8 +22,9 @@ packages listed under `peerDependencies` in `package.json`.
|
|
|
22
22
|
|
|
23
23
|
## Usage
|
|
24
24
|
|
|
25
|
-
Build an adapter once, outside render. Wrap the page in the i18n provider
|
|
26
|
-
|
|
25
|
+
Build an adapter once, outside render. Wrap the page in the i18n provider and call the hook *below*
|
|
26
|
+
it — the hook reads `timezone` off that context to resolve the `due_this_week` window it sends to
|
|
27
|
+
Canvas. Pass the hook's whole result to the list.
|
|
27
28
|
|
|
28
29
|
```tsx
|
|
29
30
|
import {
|
|
@@ -36,13 +37,17 @@ import {
|
|
|
36
37
|
const adapter = createCanvasGraphqlAdapter({ executeQuery })
|
|
37
38
|
|
|
38
39
|
function ModulesPage({ courseId }: { courseId: string }) {
|
|
39
|
-
const data = useModulesPageData({ courseId, adapter, view: 'student' })
|
|
40
40
|
return (
|
|
41
41
|
<ModulesI18nProvider translations={translations} locale={locale} timezone={timezone}>
|
|
42
|
-
<
|
|
42
|
+
<ModulesPageBody courseId={courseId} />
|
|
43
43
|
</ModulesI18nProvider>
|
|
44
44
|
)
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
function ModulesPageBody({ courseId }: { courseId: string }) {
|
|
48
|
+
const data = useModulesPageData({ courseId, adapter, view: 'student' })
|
|
49
|
+
return <ModulesList data={data} />
|
|
50
|
+
}
|
|
46
51
|
```
|
|
47
52
|
|
|
48
53
|
Keep the adapter referentially stable. A new adapter identity on every render rebuilds every item
|
|
@@ -55,7 +60,7 @@ every key has a default. A host supplies as much or as little as it wants:
|
|
|
55
60
|
|
|
56
61
|
```tsx
|
|
57
62
|
// Partial. Anything omitted renders the English in en.json.
|
|
58
|
-
const translations = useMemo(() => ({
|
|
63
|
+
const translations = useMemo(() => ({ noModulesEmptyStateTitle: 'No units available yet' }), [])
|
|
59
64
|
```
|
|
60
65
|
|
|
61
66
|
The catalog is separately importable when you want to extract from it or build a
|
|
@@ -64,8 +69,8 @@ full one — `import en from '@instructure/platform-modules/locales/en.json'`.
|
|
|
64
69
|
Resolution walks the host catalog, then `en.json`, then the key itself, taking the
|
|
65
70
|
first entry that is actually a string. Three consequences worth knowing:
|
|
66
71
|
|
|
67
|
-
- **Rebranding and translating are the same edit.** `{
|
|
68
|
-
|
|
72
|
+
- **Rebranding and translating are the same edit.** `{ noModulesEmptyStateTitle: 'No units yet' }`
|
|
73
|
+
is the whole of a copy change, which is why there is no separate `strings` config key.
|
|
69
74
|
- **A key the catalog does not carry renders as its own text**, so a host-registered label passes
|
|
70
75
|
through rather than showing a bare key.
|
|
71
76
|
- **Only a string overrides.** `''` blanks a string deliberately; a `null` or a number from an
|
|
@@ -110,7 +115,7 @@ pre-formatted string — the same value is then formatted for your locale when r
|
|
|
110
115
|
You can also give forms to a key `en.json` ships flat. The quantity a plural form would agree
|
|
111
116
|
with is named `count` on every key, so this works wherever your language needs a distinction
|
|
112
117
|
English does not. A second quantity in the same sentence keeps its own name and cannot drive
|
|
113
|
-
selection — `%{loaded}` in `itemsLoadedAnnouncement
|
|
118
|
+
selection — `%{loaded}` in `itemsLoadedAnnouncement`, `%{percent}` and
|
|
114
119
|
`%{met}` in `progressSummary`:
|
|
115
120
|
|
|
116
121
|
```tsx
|
|
@@ -121,8 +126,8 @@ selection — `%{loaded}` in `itemsLoadedAnnouncement` and `loadMoreItems`, `%{p
|
|
|
121
126
|
|
|
122
127
|
## Configuration
|
|
123
128
|
|
|
124
|
-
Everything
|
|
125
|
-
what you want different.
|
|
129
|
+
Everything you can customize is either a key in one config object or an entry in your translation
|
|
130
|
+
catalog. Start from `baseModulesConfig` and write only what you want different.
|
|
126
131
|
|
|
127
132
|
```tsx
|
|
128
133
|
import {
|
|
@@ -132,7 +137,7 @@ import {
|
|
|
132
137
|
} from '@instructure/platform-modules'
|
|
133
138
|
|
|
134
139
|
const modulesConfig = resolveModulesConfig(baseModulesConfig, {
|
|
135
|
-
|
|
140
|
+
itemTypes: { quiz: { label: 'Knowledge check' } },
|
|
136
141
|
})
|
|
137
142
|
|
|
138
143
|
;<ModulesConfigProvider value={modulesConfig}>
|
|
@@ -140,22 +145,63 @@ const modulesConfig = resolveModulesConfig(baseModulesConfig, {
|
|
|
140
145
|
</ModulesConfigProvider>
|
|
141
146
|
```
|
|
142
147
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
148
|
+
The provider is optional. Without it the package renders against `baseModulesConfig`. In tests, use
|
|
149
|
+
`partialModulesConfig({ … })` to pin one key without building the rest.
|
|
150
|
+
|
|
151
|
+
### What you can change
|
|
152
|
+
|
|
153
|
+
| To change… | Use… | Story |
|
|
154
|
+
|---|---|---|
|
|
155
|
+
| Any words on the page | your translation catalog (see [Translations](#translations)) | `HostRebrand`, `PartialCatalog` |
|
|
156
|
+
| How module labels, dates, points, and progress read | `formatters` | `LetterLabelScheme`, `NoLabelScheme` |
|
|
157
|
+
| Item type labels, icons, and order | `itemTypes` | `ItemTypesCustomized` |
|
|
158
|
+
| The facts on an item row's meta line | `itemMeta` | `ItemMetaCustomized` |
|
|
159
|
+
| The filter tabs | `filters` | `FiltersCustomized` |
|
|
160
|
+
| Where a title links, and client-side routing | `navigation` | `ItemTitleLinksRewritten`, `ItemTitleLinksIntercepted`, `ModuleTitleLinks` |
|
|
161
|
+
|
|
162
|
+
**Words have no config key.** A rebrand and a translation are the same edit in the same place:
|
|
163
|
+
`{ noModulesEmptyStateTitle: 'No units yet' }` in your catalog. Strings resolve as
|
|
164
|
+
`translations[key] ?? en[key]`, with the package's `locales/en.json` as the floor.
|
|
165
|
+
|
|
166
|
+
`itemStatuses`, `moduleActions`, and `itemActions` are valid keys, but nothing renders them yet.
|
|
167
|
+
|
|
168
|
+
### How overrides merge
|
|
169
|
+
|
|
170
|
+
- **Omission keeps the base's version.** A key or field you don't mention stays as the base has it.
|
|
171
|
+
An explicit `undefined` does the same.
|
|
172
|
+
- **Registries merge per entry.** `itemTypes`, `itemMeta`, and `filters` merge as
|
|
173
|
+
`{ ...base[key], ...override[key] }`. Name an existing key to change only the fields you state.
|
|
174
|
+
Name a new key to add an entry, and give it every required field.
|
|
175
|
+
A new `filters` entry also needs a `query` the adapter can serve, or `unfiltered: true`.
|
|
176
|
+
Without one it throws outside production and is hidden in production.
|
|
177
|
+
- **`hidden: true` is the only way to remove an entry.** `null` and omission don't remove.
|
|
178
|
+
- **`order` sorts entries ascending.** The base spaces its values 10, 20, 30, and so on, so use 15 to
|
|
179
|
+
place an entry between the first two built-ins.
|
|
180
|
+
- **Labels go through `t`.** A registry entry's `label` can be a key from your catalog or plain
|
|
181
|
+
English. Plain English renders as written.
|
|
182
|
+
- **`formatters` and `navigation` are shallow.** Each function you supply replaces the base's.
|
|
183
|
+
|
|
184
|
+
Resolution validates eagerly. A typo'd key or a malformed entry throws when you build the config,
|
|
185
|
+
not at render.
|
|
186
|
+
|
|
187
|
+
### Where to build it
|
|
188
|
+
|
|
189
|
+
Build the config at module scope, as above. `resolveModulesConfig` runs once and the reference stays
|
|
190
|
+
stable. If you later fold in fetched data, such as permissions or the course's LTI tools, move the
|
|
191
|
+
build into a component and memoize it on that data.
|
|
192
|
+
|
|
193
|
+
### What you can't change
|
|
147
194
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
tools, the observed student — move the build into a component and memoize it on that data.
|
|
195
|
+
Canvas calculates module and item status, lock state, and lock reasons before the data reaches the
|
|
196
|
+
package. The package only displays them, so changing how one is calculated is a Canvas change.
|
|
151
197
|
|
|
152
|
-
|
|
153
|
-
`
|
|
198
|
+
Their wording is yours to change in your catalog, like any other string, for example
|
|
199
|
+
`moduleStatusComplete` or `itemStatusMissing` in `locales/en.json`. Their colors, icons, and
|
|
200
|
+
precedence are fixed.
|
|
154
201
|
|
|
155
|
-
|
|
156
|
-
declared but not yet implemented throws at construction rather than rendering nothing.
|
|
202
|
+
Expand all/collapse all has no config key. To change it, ask product.
|
|
157
203
|
|
|
158
|
-
`docs/adr/0001-customization.md` has the reasoning
|
|
204
|
+
`docs/adr/0001-customization.md` has the reasoning.
|
|
159
205
|
|
|
160
206
|
## Adapters
|
|
161
207
|
|
|
@@ -192,14 +238,13 @@ const organizationActions: ModuleOrganizationActions = useMemo(
|
|
|
192
238
|
/>
|
|
193
239
|
```
|
|
194
240
|
|
|
195
|
-
The package holds no URL, no polling and no job model
|
|
196
|
-
`docs/adr/0018-injected-module-organization-actions.md`. Both methods take an `AbortSignal`, which
|
|
241
|
+
The package holds no URL, no polling and no job model. Both methods take an `AbortSignal`, which
|
|
197
242
|
Cancel and Regenerate use, so honor it or the request outlives the modal. `apply` resolves `void`,
|
|
198
243
|
which is your chance to invalidate before the modal closes.
|
|
199
244
|
|
|
200
245
|
There is no progress callback. The modal shows an indeterminate spinner and, once the request
|
|
201
246
|
outlives `ORGANIZE_SLOW_AFTER_MS`, one reassurance line, and it announces each step in the polite
|
|
202
|
-
live region. Every host gets the same
|
|
247
|
+
live region. Every host gets the same behavior without implementing anything.
|
|
203
248
|
|
|
204
249
|
`organizationAiDisclosure` is one more optional, host-supplied prop: any `ReactNode`, drawn in the
|
|
205
250
|
modal header. Pass your AI disclosure panel; the package renders it and knows nothing about its
|
|
@@ -208,7 +253,7 @@ content.
|
|
|
208
253
|
### The two proposal flags
|
|
209
254
|
|
|
210
255
|
`setPrerequisites` and `setRequirements` are the "Module progression" checkbox pair. They default
|
|
211
|
-
to `true` and map to `set_prerequisites` / `set_requirements` on Canvas's generate call. Canvas
|
|
256
|
+
to `true` and map to `set_prerequisites` / `set_requirements` on Canvas's generate call. Canvas honors them **at generation time only**:
|
|
212
257
|
apply writes whatever the proposal carries. Unticking a box means "propose none of these", not
|
|
213
258
|
"propose them and leave them out", so forward the same pair to both `organize` and `apply` — the
|
|
214
259
|
two calls have to agree about what the proposal contains.
|
|
@@ -19,5 +19,5 @@ export interface CanvasGraphqlAdapterOptions {
|
|
|
19
19
|
}
|
|
20
20
|
export declare function createCanvasGraphqlAdapter({ executeQuery, inlineItemLimit, nodeBudget, onUnsupportedItem, onUnsupportedStatus, studentId, validate, capabilities, includeEstimatedDuration, }: CanvasGraphqlAdapterOptions): ModulesDataAdapter;
|
|
21
21
|
export { GET_MODULE_ITEMS, GET_MODULES, type GetModuleItemsVariables, type GetModulesVariables, } from './queries';
|
|
22
|
-
export { buildStudentContext, deriveModuleProgress, firstSubmission, type GetModuleItemsResult, type GetModulesResult, type GraphqlCompletionRequirement, type GraphqlModuleConnection, type GraphqlModuleItemConnection, type GraphqlModuleItemContent, type GraphqlModuleItemNode, type GraphqlModuleNode, type GraphqlModuleProgression, type GraphqlModuleStatistics, type GraphqlPageInfo, type GraphqlRequirement, type GraphqlSubmission, type GraphqlSubmissionConnection, type ModuleStudentContext, normalizeItemType, normalizeModule, normalizeModuleItem, normalizeModuleItemsPage, normalizeModulesPage, normalizePageInfo, type NormalizeOptions, PartialCanvasResponseError, type PartialResponseSubject, parseDurationMinutes, type UnsupportedModuleItem, type UnsupportedModuleStatus, } from './normalize';
|
|
22
|
+
export { buildStudentContext, deriveModuleProgress, firstSubmission, type GetModuleItemsResult, type GetModulesResult, type GraphqlCompletionRequirement, type GraphqlModuleConnection, type GraphqlModuleItemConnection, type GraphqlModuleItemContent, type GraphqlModuleItemNode, type GraphqlModuleNode, type GraphqlModuleProgression, type GraphqlModulesPageInfo, type GraphqlModuleStatistics, type GraphqlPageInfo, type GraphqlRequirement, type GraphqlSubmission, type GraphqlSubmissionConnection, type ModuleStudentContext, normalizeItemType, normalizeModule, normalizeModuleItem, normalizeModuleItemsPage, normalizeModulesPage, normalizeModulesPageInfo, normalizePageInfo, type NormalizeOptions, PartialCanvasResponseError, type PartialResponseSubject, parseDurationMinutes, type UnsupportedModuleItem, type UnsupportedModuleStatus, } from './normalize';
|
|
23
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,0BAA0B,CAAA;AAEhF,OAAO,KAAK,EAGV,kBAAkB,EAInB,MAAM,UAAU,CAAA;AACjB,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,aAAa,CAAA;AAWpB,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,UAAU,EAC7C,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,UAAU,KAClB,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEvE,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,YAAY,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACzD,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC/D;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IAEjC,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AA8FD,wBAAgB,0BAA0B,CAAC,EACzC,YAAY,EACZ,eAAmC,EACnC,UAAqC,EACrC,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,QAAe,EACf,YAA0C,EAC1C,wBAAgC,GACjC,EAAE,2BAA2B,GAAG,kBAAkB,CAwGlD;AAED,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAA"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { CompletionRequirement, CompletionRequirementType, Module, ModuleItem, ModuleItemsPage, ModuleItemType, ModuleProgress, ModulesPage, PageInfo } from '../../types/domain';
|
|
1
|
+
import { CompletionRequirement, CompletionRequirementType, Module, ModuleItem, ModuleItemsPage, ModuleItemType, ModuleProgress, ModulesPage, ModulesPageInfo, PageInfo } from '../../types/domain';
|
|
2
2
|
export interface GraphqlPageInfo {
|
|
3
3
|
hasNextPage: boolean;
|
|
4
4
|
endCursor: string | null;
|
|
5
5
|
}
|
|
6
|
+
export interface GraphqlModulesPageInfo extends GraphqlPageInfo {
|
|
7
|
+
hasPreviousPage?: boolean | null;
|
|
8
|
+
startCursor?: string | null;
|
|
9
|
+
totalCount?: number | null;
|
|
10
|
+
totalNrOfPages?: number | null;
|
|
11
|
+
}
|
|
6
12
|
export interface GraphqlCompletionRequirement {
|
|
7
13
|
id: string | number;
|
|
8
14
|
type: string;
|
|
@@ -61,7 +67,7 @@ export interface GraphqlModuleItemNode {
|
|
|
61
67
|
}
|
|
62
68
|
export interface GraphqlModuleItemConnection {
|
|
63
69
|
nodes?: (GraphqlModuleItemNode | null)[] | null;
|
|
64
|
-
pageInfo:
|
|
70
|
+
pageInfo: GraphqlModulesPageInfo;
|
|
65
71
|
}
|
|
66
72
|
export interface GraphqlModuleNode {
|
|
67
73
|
_id: string | number;
|
|
@@ -84,7 +90,7 @@ export interface GraphqlModuleNode {
|
|
|
84
90
|
}
|
|
85
91
|
export interface GraphqlModuleConnection {
|
|
86
92
|
nodes?: (GraphqlModuleNode | null)[] | null;
|
|
87
|
-
pageInfo:
|
|
93
|
+
pageInfo: GraphqlModulesPageInfo;
|
|
88
94
|
}
|
|
89
95
|
export interface GetModulesResult {
|
|
90
96
|
legacyNode?: {
|
|
@@ -122,6 +128,7 @@ export declare function normalizeItemType(content: GraphqlModuleItemContent | nu
|
|
|
122
128
|
export declare function parseDurationMinutes(value: string | null | undefined): number | null;
|
|
123
129
|
export declare function normalizeCompletionRequirementType(type: string): CompletionRequirementType;
|
|
124
130
|
export declare function normalizePageInfo(pageInfo: GraphqlPageInfo | null | undefined): PageInfo;
|
|
131
|
+
export declare function normalizeModulesPageInfo(pageInfo: GraphqlModulesPageInfo | null | undefined): ModulesPageInfo;
|
|
125
132
|
export interface ModuleStudentContext {
|
|
126
133
|
locked: boolean;
|
|
127
134
|
workflowState: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,MAAM,EACN,UAAU,EACV,eAAe,EAEf,cAAc,EACd,cAAc,EACd,WAAW,
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/normalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import { DueRange } from '../../components/labels';
|
|
1
2
|
import { DocumentNode } from 'graphql';
|
|
2
3
|
export declare const GET_MODULES: DocumentNode;
|
|
3
4
|
export declare const GET_MODULE_ITEMS: DocumentNode;
|
|
4
5
|
export interface GetModulesVariables {
|
|
5
6
|
courseId: string;
|
|
6
|
-
|
|
7
|
+
/** Unset (with `last` set instead) for backward pagination — never both in one call. */
|
|
8
|
+
first?: number | null;
|
|
7
9
|
after?: string | null;
|
|
10
|
+
before?: string | null;
|
|
11
|
+
last?: number | null;
|
|
8
12
|
includeItems: boolean;
|
|
9
13
|
itemsFirst: number;
|
|
10
14
|
includeSubmissions: boolean;
|
|
@@ -15,7 +19,11 @@ export interface GetModulesVariables {
|
|
|
15
19
|
/** The subset of Canvas's `ModuleFilterInput` this adapter compiles to. */
|
|
16
20
|
export interface ModuleFilterInput {
|
|
17
21
|
completionStatus?: ModuleCompletionStatus;
|
|
22
|
+
moduleStatus?: readonly ModuleStatusFilter[];
|
|
23
|
+
dueBetween?: DueRange;
|
|
18
24
|
}
|
|
25
|
+
/** Canvas's `ModuleStatus`, the fused progression-and-missing-work status. */
|
|
26
|
+
export type ModuleStatusFilter = 'LOCKED' | 'MISSING' | 'MISSING_AND_INCOMPLETE' | 'INCOMPLETE' | 'COMPLETE' | 'IN_PROGRESS' | 'NOT_STARTED';
|
|
19
27
|
/** Canvas's `ModuleCompletionStatus`. `INCOMPLETE` includes locked, unlocked and started. */
|
|
20
28
|
export type ModuleCompletionStatus = 'COMPLETED' | 'INCOMPLETE' | 'IN_PROGRESS' | 'NOT_STARTED';
|
|
21
29
|
export interface GetModuleItemsVariables {
|
|
@@ -23,7 +31,9 @@ export interface GetModuleItemsVariables {
|
|
|
23
31
|
includeSubmissions: boolean;
|
|
24
32
|
includeEstimatedDuration: boolean;
|
|
25
33
|
studentId?: string | null;
|
|
26
|
-
first: number;
|
|
27
|
-
after
|
|
34
|
+
first: number | null;
|
|
35
|
+
after: string | null;
|
|
36
|
+
before: string | null;
|
|
37
|
+
last: number | null;
|
|
28
38
|
}
|
|
29
39
|
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAuF3C,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAuF3C,eAAO,MAAM,WAAW,EAAE,YAqEzB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,YAwC9B,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,wBAAwB,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAClC;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAC5C,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB;AAED,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,SAAS,GACT,wBAAwB,GACxB,YAAY,GACZ,UAAU,GACV,aAAa,GACb,aAAa,CAAA;AAEjB,6FAA6F;AAC7F,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,CAAA;AAE/F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,wBAAwB,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Module, ModuleItem } from '../types/domain';
|
|
2
|
+
import { FilterCapabilities } from '../types/filterClause';
|
|
2
3
|
import { ModulesDataAdapter } from './types';
|
|
3
4
|
export { INLINE_ITEM_LIMIT } from './limits';
|
|
4
5
|
export interface InMemoryFixture {
|
|
@@ -21,5 +22,6 @@ export declare class InMemoryCourseMismatchError extends Error {
|
|
|
21
22
|
readonly received: string;
|
|
22
23
|
constructor(expected: string, received: string);
|
|
23
24
|
}
|
|
25
|
+
export declare const IN_MEMORY_CAPABILITIES: FilterCapabilities;
|
|
24
26
|
export declare function createInMemoryAdapter(fixture: InMemoryFixture, options?: InMemoryAdapterOptions): ModulesDataAdapter;
|
|
25
27
|
//# sourceMappingURL=inMemory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inMemory.d.ts","sourceRoot":"","sources":["../../src/adapters/inMemory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inMemory.d.ts","sourceRoot":"","sources":["../../src/adapters/inMemory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EAIX,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,uBAAuB,CAAA;AAE7E,OAAO,KAAK,EAGV,kBAAkB,EAInB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;CAC9C;AAED,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,iBAAiB,GACjB,oBAAoB,GACpB,wBAAwB,CAAA;AAE5B,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,iBAAiB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;CAC7E;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;gBAEb,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAS/C;AAyED,eAAO,MAAM,sBAAsB,EAAE,kBAEpC,CAAA;AAsCD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,CA4FpB"}
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type { ListModuleItemsArgs, ListModulesArgs, ModulesDataAdapter, SetAllModulesCollapsedArgs, SetModuleCollapsedArgs, } from './types';
|
|
1
|
+
export type { ListModuleItemsArgs, ListModulesArgs, ModulesDataAdapter, ModulesPageRequest, SetAllModulesCollapsedArgs, SetModuleCollapsedArgs, } from './types';
|
|
2
2
|
export { createInMemoryAdapter, InMemoryCourseMismatchError, INLINE_ITEM_LIMIT, type InMemoryAdapterOptions, type InMemoryFixture, type InMemoryOperation, type InMemoryRequest, } from './inMemory';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAA"}
|
package/dist/adapters/types.d.ts
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
|
+
import { DueRange } from '../components/labels';
|
|
1
2
|
import { ModuleItemsPage, ModulesPage } from '../types/domain';
|
|
2
3
|
import { FilterCapabilities, FilterClause } from '../types/filterClause';
|
|
4
|
+
/**
|
|
5
|
+
* A relay cursor connection can only reach page 1, a cursor-adjacent page, or the last page.
|
|
6
|
+
* `last.count` is the true size of that page — the caller works it out from the total it already
|
|
7
|
+
* has, since the true last page can be shorter than `pageSize` and the adapter has no total to
|
|
8
|
+
* work it out itself.
|
|
9
|
+
*/
|
|
10
|
+
export type ModulesPageRequest = {
|
|
11
|
+
kind: 'first';
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'after';
|
|
14
|
+
cursor: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'before';
|
|
17
|
+
cursor: string;
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'last';
|
|
20
|
+
count: number;
|
|
21
|
+
};
|
|
3
22
|
/**
|
|
4
23
|
* Five obligations an adapter must meet:
|
|
5
24
|
*
|
|
6
25
|
* 1. Return the transport's real `pageInfo`. GraphQL: `endCursor`. REST: the parsed `Link` header.
|
|
7
|
-
* 2. Never synthesize a cursor.
|
|
26
|
+
* 2. Never synthesize a cursor for a real transport. (A test double encoding its own offset as a
|
|
27
|
+
* cursor doesn't count — that's the double's own transport, not a shortcut.)
|
|
8
28
|
* 3. Abort on the supplied `AbortSignal`.
|
|
9
29
|
* 4. Normalize fully. No transport detail reaches a caller.
|
|
10
30
|
* 5. Honor `ListModulesArgs.filter`, or throw. Serving a clause `capabilities` does not declare
|
|
11
31
|
* issues a cursor against the wrong result set, so every page after it is wrong too.
|
|
32
|
+
* 6. Read a `within` clause's window from `dueRange`, or throw. The clause carries a day count so
|
|
33
|
+
* the query key stays stable; only the caller knows the viewer's clock.
|
|
12
34
|
*/
|
|
13
35
|
export interface ModulesDataAdapter {
|
|
14
36
|
listModules(args: ListModulesArgs): Promise<ModulesPage>;
|
|
@@ -22,10 +44,12 @@ export interface ModulesDataAdapter {
|
|
|
22
44
|
}
|
|
23
45
|
export interface ListModulesArgs {
|
|
24
46
|
courseId: string;
|
|
25
|
-
|
|
47
|
+
page?: ModulesPageRequest;
|
|
26
48
|
pageSize: number;
|
|
27
49
|
/** Only ever a clause `capabilities` admits. Throw on anything else. */
|
|
28
50
|
filter?: FilterClause;
|
|
51
|
+
/** Required when `filter.op` is `within`. */
|
|
52
|
+
dueRange?: DueRange;
|
|
29
53
|
includeItems: boolean;
|
|
30
54
|
inlineItemsFirst?: number;
|
|
31
55
|
inlineFirst?: number;
|
|
@@ -34,7 +58,7 @@ export interface ListModulesArgs {
|
|
|
34
58
|
export interface ListModuleItemsArgs {
|
|
35
59
|
courseId: string;
|
|
36
60
|
moduleId: string;
|
|
37
|
-
|
|
61
|
+
page?: ModulesPageRequest;
|
|
38
62
|
pageSize: number;
|
|
39
63
|
signal?: AbortSignal;
|
|
40
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE7E
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACxD,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACpE,qDAAqD;IACrD,kBAAkB,CAAC,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,2FAA2F;IAC3F,sBAAsB,CAAC,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB"}
|
|
@@ -5,7 +5,7 @@ import { ModuleItemType } from '../types';
|
|
|
5
5
|
* on it, plus `foundation-lms` — the white-label host has no `appContext` value of its own.
|
|
6
6
|
*/
|
|
7
7
|
export type ModulesAnalyticsHost = 'canvas-academic' | 'canvas-career' | 'canvas-uae' | 'foundation-lms';
|
|
8
|
-
export type ModulesAnalyticsEvent = 'module-expand' | 'module-collapse' | 'expand-all' | 'collapse-all' | '
|
|
8
|
+
export type ModulesAnalyticsEvent = 'module-expand' | 'module-collapse' | 'expand-all' | 'collapse-all' | 'paginate-modules' | 'paginate-items' | `item-click-${ModuleItemType}`;
|
|
9
9
|
export interface ModulesAnalyticsPayload {
|
|
10
10
|
event: ModulesAnalyticsEvent;
|
|
11
11
|
host: ModulesAnalyticsHost;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analytics/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9C;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,gBAAgB,CAAA;AAEpB,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analytics/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9C;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,gBAAgB,CAAA;AAEpB,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,cAAc,EAAE,CAAA;AAElC,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,qBAAqB,CAAA;IAC5B,IAAI,EAAE,oBAAoB,CAAA;CAC3B"}
|
package/dist/cache/keys.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ModulesPageRequest } from '../adapters/types';
|
|
1
2
|
import { FilterClause } from '../types/filterClause';
|
|
2
3
|
export type ModulesView = 'student' | 'teacher';
|
|
3
4
|
export interface ModulesListKeyOptions {
|
|
@@ -6,10 +7,12 @@ export interface ModulesListKeyOptions {
|
|
|
6
7
|
includeItems?: boolean;
|
|
7
8
|
/** The clause partitions, not the chip. Chips the server never saw share one entry. */
|
|
8
9
|
filter?: FilterClause;
|
|
10
|
+
page?: ModulesPageRequest;
|
|
9
11
|
}
|
|
10
12
|
export interface ModuleItemsKeyOptions {
|
|
11
13
|
view?: ModulesView;
|
|
12
14
|
pageSize?: number;
|
|
15
|
+
page?: ModulesPageRequest;
|
|
13
16
|
}
|
|
14
17
|
export type ModulesAllKey = readonly ['platform-modules'];
|
|
15
18
|
export type ModulesCourseKey = readonly ['platform-modules', string];
|
package/dist/cache/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/cache/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/C,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uFAAuF;IACvF,MAAM,CAAC,EAAE,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/cache/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/C,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uFAAuF;IACvF,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAA;AACzD,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;AACpE,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAA;AACjG,MAAM,MAAM,cAAc,GAAG,SAAS;IACpC,kBAAkB;IAClB,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,qBAAqB;CACtB,CAAA;AAID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAA;IAC1C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,cAAc,CAAA;IACpE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,cAAc,CAAA;CACxF;AAED,eAAO,MAAM,WAAW,EAAE,iBAOzB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,CAEjG;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAElE"}
|
|
@@ -2,7 +2,7 @@ import { ReactElement } from 'react';
|
|
|
2
2
|
export interface FilterSelectProps {
|
|
3
3
|
value: string;
|
|
4
4
|
onChange: (filter: string) => void;
|
|
5
|
-
|
|
5
|
+
interaction?: 'enabled' | 'disabled';
|
|
6
6
|
}
|
|
7
|
-
export declare function FilterSelect({ value, onChange,
|
|
7
|
+
export declare function FilterSelect({ value, onChange, interaction, }: FilterSelectProps): ReactElement | null;
|
|
8
8
|
//# sourceMappingURL=FilterSelect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterSelect.d.ts","sourceRoot":"","sources":["../../src/components/FilterSelect.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AAKzD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"FilterSelect.d.ts","sourceRoot":"","sources":["../../src/components/FilterSelect.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AAKzD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CACrC;AAkBD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,WAAuB,GACxB,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAqCzC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Breakpoints } from '@instructure/platform-with-breakpoints';
|
|
2
|
-
import {
|
|
3
|
-
import { ComponentProps, NamedExoticComponent } from 'react';
|
|
2
|
+
import { NamedExoticComponent } from 'react';
|
|
4
3
|
import { ModuleItemsState } from '../hooks';
|
|
5
4
|
import { Module } from '../types';
|
|
6
5
|
export interface ModuleCardProps {
|
|
@@ -15,6 +14,5 @@ export interface ModuleCardProps {
|
|
|
15
14
|
breakpoints?: Breakpoints;
|
|
16
15
|
toggleRef?: (moduleId: string, element: HTMLButtonElement | null) => void;
|
|
17
16
|
}
|
|
18
|
-
export declare const progressBarTheme: ComponentProps<typeof ProgressBar>['themeOverride'];
|
|
19
17
|
export declare const ModuleCard: NamedExoticComponent<ModuleCardProps>;
|
|
20
18
|
//# sourceMappingURL=ModuleCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleCard.d.ts","sourceRoot":"","sources":["../../src/components/ModuleCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"ModuleCard.d.ts","sourceRoot":"","sources":["../../src/components/ModuleCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAczE,OAAO,EAIL,KAAK,oBAAoB,EAI1B,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,UAAU,CAAA;AAmBlD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,UAAU,EAAE,gBAAgB,CAAA;IAC5B,KAAK,EAAE,IAAI,CAAA;IACX,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1E;AAygBD,eAAO,MAAM,UAAU,EAAE,oBAAoB,CAAC,eAAe,CAAwB,CAAA"}
|
|
@@ -17,6 +17,7 @@ export declare const NoLabel: Story;
|
|
|
17
17
|
export declare const ExpandedWithStatusPills: Story;
|
|
18
18
|
export declare const ExpandedNonGradableItems: Story;
|
|
19
19
|
export declare const ExpandedLockedModule: Story;
|
|
20
|
+
export declare const PaginatedItems: Story;
|
|
20
21
|
export declare const ExpandedUntouchedModule: Story;
|
|
21
22
|
export declare const ProgressNotStarted: Story;
|
|
22
23
|
export declare const ProgressPartial: Story;
|
|
@@ -31,6 +32,8 @@ export declare const StackedStatusPill: Story;
|
|
|
31
32
|
export declare const InlineStatusPill: Story;
|
|
32
33
|
export declare const DueSoonPill: Story;
|
|
33
34
|
export declare const DueSoonPillMobile: Story;
|
|
35
|
+
export declare const StackedItemPills: Story;
|
|
36
|
+
export declare const StackedMetaLine: Story;
|
|
34
37
|
export declare const LongModuleName: Story;
|
|
35
38
|
export declare const LetterLabelScheme: Story;
|
|
36
39
|
export declare const NoLabelScheme: Story;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleCard.stories.d.ts","sourceRoot":"","sources":["../../src/components/ModuleCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ModuleCard.stories.d.ts","sourceRoot":"","sources":["../../src/components/ModuleCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,KAAK,cAAc,EAA+B,MAAM,OAAO,CAAA;AAOxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAe,KAAK,SAAS,EAAoB,MAAM,eAAe,CAAA;AAE7E,KAAK,mBAAmB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAgCnF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAgBnC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAElC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAA;AAEhC,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAErB,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,KAErC,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,KAWtC,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAElC,CAAA;AAyBD,eAAO,MAAM,cAAc,EAAE,KAG5B,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,KAErC,CAAA;AAmBD,eAAO,MAAM,kBAAkB,EAAE,KAEhC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAE7B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,KAEpC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,KAEtC,CAAA;AAaD,eAAO,MAAM,uBAAuB,EAAE,KAOrC,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,KAUvC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAgB/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAiBzB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAE/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAc9B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAgB7B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAA;AAQD,eAAO,MAAM,iBAAiB,EAAE,KAU/B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAA"}
|
|
@@ -16,6 +16,9 @@ export interface ModuleItemRowProps {
|
|
|
16
16
|
today: Date;
|
|
17
17
|
attachedAbove?: boolean;
|
|
18
18
|
attachedBelow?: boolean;
|
|
19
|
+
stackPill?: boolean;
|
|
20
|
+
moduleLabel?: string | null;
|
|
21
|
+
itemNumber?: number;
|
|
19
22
|
}
|
|
20
23
|
export declare const ModuleItemRow: NamedExoticComponent<ModuleItemRowProps>;
|
|
21
24
|
//# sourceMappingURL=ModuleItemRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleItemRow.d.ts","sourceRoot":"","sources":["../../src/components/ModuleItemRow.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,aAAa,EAKlB,KAAK,oBAAoB,EAO1B,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAkB1C,eAAO,MAAM,iBAAiB,EAAE,aAQ/B,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,aAM7C,CAAA;AAOD,wBAAgB,mBAAmB,IAAI,aAAa,CAanD;AAED,0FAA0F;AAC1F,eAAO,MAAM,SAAS;;;CAA2D,CAAA;
|
|
1
|
+
{"version":3,"file":"ModuleItemRow.d.ts","sourceRoot":"","sources":["../../src/components/ModuleItemRow.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,aAAa,EAKlB,KAAK,oBAAoB,EAO1B,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAkB1C,eAAO,MAAM,iBAAiB,EAAE,aAQ/B,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,aAM7C,CAAA;AAOD,wBAAgB,mBAAmB,IAAI,aAAa,CAanD;AAED,0FAA0F;AAC1F,eAAO,MAAM,SAAS;;;CAA2D,CAAA;AAwBjF,eAAO,MAAM,oBAAoB,EAAE,aAElC,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,SAAS,EAAE,aAKvB,CAAA;AA6BD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,IAAI,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA6RD,eAAO,MAAM,aAAa,EAAE,oBAAoB,CAAC,kBAAkB,CAA2B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModulesList.d.ts","sourceRoot":"","sources":["../../src/components/ModulesList.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"ModulesList.d.ts","sourceRoot":"","sources":["../../src/components/ModulesList.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EAAoB,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAOlE,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,wBAAwB,CAAA;IAC9B,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,aAAa,CAAC,EAAE,oBAAoB,CAAA;IACpC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAA;IAC/B,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACjC,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,yBAAyB,CAAA;IAC/C,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,0FAA0F;IAC1F,wBAAwB,CAAC,EAAE,SAAS,CAAA;CACrC;AA6fD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAET,CAAA"}
|
|
@@ -15,8 +15,7 @@ interface ModulesListStoryProps {
|
|
|
15
15
|
initialExpandedModuleIds: string[];
|
|
16
16
|
i18n: 'none' | 'pseudo' | 'rebranded' | 'partial';
|
|
17
17
|
timezone: 'none' | 'America/Denver' | 'America/Los_Angeles' | 'Australia/Sydney';
|
|
18
|
-
|
|
19
|
-
navigation: 'none' | 'rewritten' | 'intercepted' | 'moduleLinks' | 'breadcrumb';
|
|
18
|
+
navigation: 'none' | 'rewritten' | 'intercepted' | 'moduleLinks';
|
|
20
19
|
config: HostConfigName;
|
|
21
20
|
theme: ThemeName;
|
|
22
21
|
showDiagnostics: boolean;
|
|
@@ -40,10 +39,12 @@ export declare const LockReasons: Story;
|
|
|
40
39
|
export declare const ModuleTitleLinks: Story;
|
|
41
40
|
export declare const EmptyCourse: Story;
|
|
42
41
|
export declare const TeacherViewNoProgress: Story;
|
|
42
|
+
export declare const FilterNotStarted: Story;
|
|
43
43
|
export declare const FilterInProgress: Story;
|
|
44
44
|
export declare const FilterComplete: Story;
|
|
45
45
|
export declare const FilterDueThisWeek: Story;
|
|
46
46
|
export declare const FilterMissing: Story;
|
|
47
|
+
export declare const FilterNoMatches: Story;
|
|
47
48
|
export declare const StatusCoverage: Story;
|
|
48
49
|
export declare const PseudoLocalized: Story;
|
|
49
50
|
export declare const HostRebrand: Story;
|