@instructure/platform-modules 1.11.0 → 1.13.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 -23
- package/dist/adapters/canvasGraphql/index.d.ts.map +1 -1
- package/dist/adapters/canvasGraphql/normalize.d.ts +2 -1
- package/dist/adapters/canvasGraphql/normalize.d.ts.map +1 -1
- package/dist/adapters/canvasGraphql/queries.d.ts +9 -2
- 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/types.d.ts +6 -1
- 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 +1 -0
- package/dist/cache/keys.d.ts.map +1 -1
- package/dist/chunks/useModulesPageData-BFCZuChP.js +1639 -0
- package/dist/components/FilterSelect.d.ts +1 -2
- package/dist/components/FilterSelect.d.ts.map +1 -1
- package/dist/components/ModuleCard.d.ts.map +1 -1
- package/dist/components/ModuleCard.stories.d.ts +1 -0
- package/dist/components/ModuleCard.stories.d.ts.map +1 -1
- package/dist/components/ModuleItemRow.d.ts +8 -5
- 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 +20 -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 +9 -0
- package/dist/components/labels.d.ts.map +1 -1
- package/dist/config/base.d.ts.map +1 -1
- package/dist/config/capabilities.d.ts.map +1 -1
- package/dist/config/filters.d.ts +2 -1
- package/dist/config/filters.d.ts.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/itemMeta.d.ts.map +1 -1
- package/dist/config/itemTypes.d.ts +1 -1
- package/dist/config/resolve.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 +22 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/edit/adapter/inMemoryEdit.d.ts +5 -0
- package/dist/edit/adapter/inMemoryEdit.d.ts.map +1 -0
- package/dist/edit/adapter/types.d.ts +90 -0
- package/dist/edit/adapter/types.d.ts.map +1 -0
- package/dist/edit/hooks/useModulesEditData.d.ts +28 -0
- package/dist/edit/hooks/useModulesEditData.d.ts.map +1 -0
- package/dist/edit/index.d.ts +5 -0
- package/dist/edit/index.d.ts.map +1 -0
- package/dist/edit.js +189 -0
- package/dist/hooks/constants.d.ts +3 -3
- 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 +5 -3
- package/dist/hooks/queryOptions.d.ts.map +1 -1
- package/dist/hooks/useIsMobileViewport.d.ts +3 -0
- package/dist/hooks/useIsMobileViewport.d.ts.map +1 -0
- 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 +2 -0
- package/dist/hooks/useModules.d.ts.map +1 -1
- package/dist/hooks/useModulesPageData.d.ts +16 -7
- package/dist/hooks/useModulesPageData.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1663 -2867
- 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/types/domain.d.ts +3 -1
- package/dist/types/domain.d.ts.map +1 -1
- package/dist/types/filterClause.d.ts +2 -2
- package/dist/types/filterClause.d.ts.map +1 -1
- package/dist/types/schemas.d.ts.map +1 -1
- package/locales/en.json +6 -9
- package/package.json +8 -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,66 @@ 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
|
+
`permissions`, `notify`, and `navigation.getItemEditHref` are for the edit view in
|
|
168
|
+
`@instructure/platform-modules/edit`. A `permissions` flag set to `false` turns that write off, and
|
|
169
|
+
an omitted flag leaves it to the adapter.
|
|
170
|
+
|
|
171
|
+
### How overrides merge
|
|
172
|
+
|
|
173
|
+
- **Omission keeps the base's version.** A key or field you don't mention stays as the base has it.
|
|
174
|
+
An explicit `undefined` does the same.
|
|
175
|
+
- **Registries merge per entry.** `itemTypes`, `itemMeta`, and `filters` merge as
|
|
176
|
+
`{ ...base[key], ...override[key] }`. Name an existing key to change only the fields you state.
|
|
177
|
+
Name a new key to add an entry, and give it every required field.
|
|
178
|
+
A new `filters` entry also needs a `query` the adapter can serve, or `unfiltered: true`.
|
|
179
|
+
Without one it throws outside production and is hidden in production.
|
|
180
|
+
- **`hidden: true` is the only way to remove an entry.** `null` and omission don't remove.
|
|
181
|
+
- **`order` sorts entries ascending.** The base spaces its values 10, 20, 30, and so on, so use 15 to
|
|
182
|
+
place an entry between the first two built-ins.
|
|
183
|
+
- **Labels go through `t`.** A registry entry's `label` can be a key from your catalog or plain
|
|
184
|
+
English. Plain English renders as written.
|
|
185
|
+
- **`formatters` and `navigation` are shallow.** Each function you supply replaces the base's.
|
|
186
|
+
|
|
187
|
+
Resolution validates eagerly. A typo'd key or a malformed entry throws when you build the config,
|
|
188
|
+
not at render.
|
|
189
|
+
|
|
190
|
+
### Where to build it
|
|
191
|
+
|
|
192
|
+
Build the config at module scope, as above. `resolveModulesConfig` runs once and the reference stays
|
|
193
|
+
stable. If you later fold in fetched data, such as permissions or the course's LTI tools, move the
|
|
194
|
+
build into a component and memoize it on that data.
|
|
195
|
+
|
|
196
|
+
### What you can't change
|
|
147
197
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
tools, the observed student — move the build into a component and memoize it on that data.
|
|
198
|
+
Canvas calculates module and item status, lock state, and lock reasons before the data reaches the
|
|
199
|
+
package. The package only displays them, so changing how one is calculated is a Canvas change.
|
|
151
200
|
|
|
152
|
-
|
|
153
|
-
`
|
|
201
|
+
Their wording is yours to change in your catalog, like any other string, for example
|
|
202
|
+
`moduleStatusComplete` or `itemStatusMissing` in `locales/en.json`. Their colors, icons, and
|
|
203
|
+
precedence are fixed.
|
|
154
204
|
|
|
155
|
-
|
|
156
|
-
declared but not yet implemented throws at construction rather than rendering nothing.
|
|
205
|
+
Expand all/collapse all has no config key. To change it, ask product.
|
|
157
206
|
|
|
158
|
-
`docs/adr/0001-customization.md` has the reasoning
|
|
207
|
+
`docs/adr/0001-customization.md` has the reasoning.
|
|
159
208
|
|
|
160
209
|
## Adapters
|
|
161
210
|
|
|
@@ -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"}
|
|
@@ -67,7 +67,7 @@ export interface GraphqlModuleItemNode {
|
|
|
67
67
|
}
|
|
68
68
|
export interface GraphqlModuleItemConnection {
|
|
69
69
|
nodes?: (GraphqlModuleItemNode | null)[] | null;
|
|
70
|
-
pageInfo:
|
|
70
|
+
pageInfo: GraphqlModulesPageInfo;
|
|
71
71
|
}
|
|
72
72
|
export interface GraphqlModuleNode {
|
|
73
73
|
_id: string | number;
|
|
@@ -76,6 +76,7 @@ export interface GraphqlModuleNode {
|
|
|
76
76
|
published?: boolean | null;
|
|
77
77
|
unlockAt?: string | null;
|
|
78
78
|
moduleItemsTotalCount?: number | null;
|
|
79
|
+
estimatedDuration?: string | null;
|
|
79
80
|
requirementCount?: number | null;
|
|
80
81
|
requireSequentialProgress?: boolean | null;
|
|
81
82
|
prerequisites?: ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/normalize.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/adapters/canvasGraphql/normalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
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;
|
|
@@ -18,7 +19,11 @@ export interface GetModulesVariables {
|
|
|
18
19
|
/** The subset of Canvas's `ModuleFilterInput` this adapter compiles to. */
|
|
19
20
|
export interface ModuleFilterInput {
|
|
20
21
|
completionStatus?: ModuleCompletionStatus;
|
|
22
|
+
moduleStatus?: readonly ModuleStatusFilter[];
|
|
23
|
+
dueBetween?: DueRange;
|
|
21
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';
|
|
22
27
|
/** Canvas's `ModuleCompletionStatus`. `INCOMPLETE` includes locked, unlocked and started. */
|
|
23
28
|
export type ModuleCompletionStatus = 'COMPLETED' | 'INCOMPLETE' | 'IN_PROGRESS' | 'NOT_STARTED';
|
|
24
29
|
export interface GetModuleItemsVariables {
|
|
@@ -26,7 +31,9 @@ export interface GetModuleItemsVariables {
|
|
|
26
31
|
includeSubmissions: boolean;
|
|
27
32
|
includeEstimatedDuration: boolean;
|
|
28
33
|
studentId?: string | null;
|
|
29
|
-
first: number;
|
|
30
|
-
after
|
|
34
|
+
first: number | null;
|
|
35
|
+
after: string | null;
|
|
36
|
+
before: string | null;
|
|
37
|
+
last: number | null;
|
|
31
38
|
}
|
|
32
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,YAsEzB,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/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DueRange } from '../components/labels';
|
|
1
2
|
import { ModuleItemsPage, ModulesPage } from '../types/domain';
|
|
2
3
|
import { FilterCapabilities, FilterClause } from '../types/filterClause';
|
|
3
4
|
/**
|
|
@@ -28,6 +29,8 @@ export type ModulesPageRequest = {
|
|
|
28
29
|
* 4. Normalize fully. No transport detail reaches a caller.
|
|
29
30
|
* 5. Honor `ListModulesArgs.filter`, or throw. Serving a clause `capabilities` does not declare
|
|
30
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.
|
|
31
34
|
*/
|
|
32
35
|
export interface ModulesDataAdapter {
|
|
33
36
|
listModules(args: ListModulesArgs): Promise<ModulesPage>;
|
|
@@ -45,6 +48,8 @@ export interface ListModulesArgs {
|
|
|
45
48
|
pageSize: number;
|
|
46
49
|
/** Only ever a clause `capabilities` admits. Throw on anything else. */
|
|
47
50
|
filter?: FilterClause;
|
|
51
|
+
/** Required when `filter.op` is `within`. */
|
|
52
|
+
dueRange?: DueRange;
|
|
48
53
|
includeItems: boolean;
|
|
49
54
|
inlineItemsFirst?: number;
|
|
50
55
|
inlineFirst?: number;
|
|
@@ -53,7 +58,7 @@ export interface ListModulesArgs {
|
|
|
53
58
|
export interface ListModuleItemsArgs {
|
|
54
59
|
courseId: string;
|
|
55
60
|
moduleId: string;
|
|
56
|
-
|
|
61
|
+
page?: ModulesPageRequest;
|
|
57
62
|
pageSize: number;
|
|
58
63
|
signal?: AbortSignal;
|
|
59
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;;;;;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
|
|
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' | 'paginate-modules' | '
|
|
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,kBAAkB,GAClB,
|
|
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
|
@@ -12,6 +12,7 @@ export interface ModulesListKeyOptions {
|
|
|
12
12
|
export interface ModuleItemsKeyOptions {
|
|
13
13
|
view?: ModulesView;
|
|
14
14
|
pageSize?: number;
|
|
15
|
+
page?: ModulesPageRequest;
|
|
15
16
|
}
|
|
16
17
|
export type ModulesAllKey = readonly ['platform-modules'];
|
|
17
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,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;
|
|
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"}
|