PageSourceSearch

https://efsa-prep.netlify.app/default-src_prep_shared_services_dow…l-api_d2l-api-se-53ebb2.772a42deef3e8c14.js

js efsa-prep.netlify.app collected 2026-10-03 10:41:35 UTC 37,216 bytes, 376 lines download raw bytes

1"use strict";
2(self["webpackChunkprep"] = self["webpackChunkprep"] || []).push([["default-src_prep_shared_services_download-s3-link_service_ts-src_app_pages_d2l-api_d2l-api-se-53ebb2"],{
3
4/***/ 71722:
5/*!***************************************************************!*\
6  !*** ./src/@prep/shared/services/download-s3-link.service.ts ***!
7  \***************************************************************/
8/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
10__webpack_require__.r(__webpack_exports__);
11/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12/* harmony export */   "DownloadS3LinkService": () => (/* binding */ DownloadS3LinkService)
13/* harmony export */ });
14/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 64139);
15/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/operators */ 88759);
16/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ 86942);
17/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ 47418);
18/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 3184);
19/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common/http */ 28784);
20
21
22
23
24class DownloadS3LinkService {
25    constructor(http) {
26        this.http = http;
27    }
28    downloadSelectedFile(fileUrl, fileName) {
29        return this.http.get(fileUrl, { responseType: 'blob' }).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_0__.tap)((blob) => {
30            var _a;
31            let nameFromUrl = '';
32            if (fileUrl === null || fileUrl === void 0 ? void 0 : fileUrl.trim()) {
33                try {
34                    const parsedUrl = new URL(fileUrl, window.location.href);
35                    const contentDisposition = parsedUrl.searchParams.get('response-content-disposition');
36                    const dispositionMatch = contentDisposition && /filename(\*)?=(?:UTF-8'')?"?([^";]+)"?/i.exec(contentDisposition);
37                    if (dispositionMatch === null || dispositionMatch === void 0 ? void 0 : dispositionMatch[2]) {
38                        try {
39                            nameFromUrl = dispositionMatch[1] ? decodeURIComponent(dispositionMatch[2]) : dispositionMatch[2];
40                        }
41                        catch (_b) {
42                            nameFromUrl = dispositionMatch[2];
43                        }
44                    }
45                    else {
46                        nameFromUrl = decodeURIComponent(parsedUrl.pathname.split('/').pop() || '');
47                    }
48                }
49                catch (_c) {
50                    const urlPath = fileUrl.split('?')[0];
51                    nameFromUrl = urlPath.split('/').pop() || '';
52                }
53            }
54            const urlExtension = nameFromUrl.includes('.') ? (_a = nameFromUrl.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase() : undefined;
55            const baseName = (fileName === null || fileName === void 0 ? void 0 : fileName.trim()) || nameFromUrl || 'PREP-Downloaded-File';
56            const fileNameWithoutExt = baseName.replace(/\.[^/.]+$/, '');
57            const finalFileName = urlExtension
58                ? `${fileNameWithoutExt}.${urlExtension}`
59                : baseName;
60            const blobUrl = window.URL.createObjectURL(blob);
61            const a = document.createElement('a');
62            a.href = blobUrl;
63            a.download = finalFileName;
64            a.style.display = 'none';
65            document.body.appendChild(a);
66            a.click();
67            a.remove();
68            window.URL.revokeObjectURL(blobUrl);
69        }), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_1__.map)(() => true), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.catchError)(err => {
70            console.error('Download failed:', err);
71            return (0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(false);
72        }));
73    }
74}
75DownloadS3LinkService.ɵfac = function DownloadS3LinkService_Factory(t) { return new (t || DownloadS3LinkService)(_angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵinject"](_angular_common_http__WEBPACK_IMPORTED_MODULE_5__.HttpClient)); };
76DownloadS3LinkService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineInjectable"]({ token: DownloadS3LinkService, factory: DownloadS3LinkService.ɵfac, providedIn: 'root' });
77
78
79/***/ }),
80
81/***/ 9044:
82/*!******************************************************************************************!*\
83  !*** ./src/app/pages/d2l-api/d2l-api-session-expire/d2l-api-session-expire.component.ts ***!
84  \******************************************************************************************/
85/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
86
87__webpack_require__.r(__webpack_exports__);
88/* harmony export */ __webpack_require__.d(__webpack_exports__, {
89/* harmony export */   "openD2lApiSessionExpiredDialog": () => (/* binding */ openD2lApiSessionExpiredDialog),
90/* harmony export */   "D2lApiSessionExpireComponent": () => (/* binding */ D2lApiSessionExpireComponent)
91/* harmony export */ });
92/* harmony import */ var _angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/material/dialog */ 95758);
93/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ 83910);
94/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 3184);
95/* harmony import */ var _service_d2l_api_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../service/d2l-api.service */ 78777);
96/* harmony import */ var _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/material/snack-bar */ 32528);
97/* harmony import */ var _angular_material_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/icon */ 65590);
98/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/common */ 36362);
99/* harmony import */ var _angular_material_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/material/button */ 87317);
100
101
102
103
104
105
106
107
108
109function D2lApiSessionExpireComponent_button_19_Template(rf, ctx) { if (rf & 1) {
110    const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵgetCurrentView"]();
111    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "button", 16);
112    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function D2lApiSessionExpireComponent_button_19_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrestoreView"](_r3); const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); return ctx_r2.goToDashboard(); });
113    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "mat-icon", 15);
114    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2, "dashboard");
115    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
116    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3, " Go to Dashboard ");
117    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
118} }
119function D2lApiSessionExpireComponent_button_20_Template(rf, ctx) { if (rf & 1) {
120    const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵgetCurrentView"]();
121    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "button", 17);
122    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function D2lApiSessionExpireComponent_button_20_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵrestoreView"](_r5); const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"](); return ctx_r4.login(); });
123    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "mat-icon", 15);
124    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](2, "login");
125    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
126    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3, " Login with D2L ");
127    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
128} if (rf & 2) {
129    const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵnextContext"]();
130    _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("disabled", ctx_r1.is_loading);
131} }
132/**
133 * Shared opener for the D2L API session-expired dialog so callers (D2lApiComponent,
134 * RspOrdersComponent, ...) don't each duplicate the dialog config and afterClosed handling.
135 */
136function openD2lApiSessionExpiredDialog(dialog, router, retryFn) {
137    const ref = dialog.open(D2lApiSessionExpireComponent, {
138        width: '500px',
139        panelClass: 'rounded-dialog',
140        ariaLabel: 'D2L session expired dialog',
141        data: {
142            title: 'D2L authentication required',
143            message: 'Your D2L session could not be authenticated. Please contact your administrator to verify the D2L credentials, then try again.',
144            showDashboardOption: true,
145        },
146        disableClose: true,
147        autoFocus: false,
148        restoreFocus: true,
149    });
150    ref.afterClosed().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.take)(1)).subscribe(result => {
151        if (result === 'dashboard') {
152            router.navigate(['/dashboard']);
153            return;
154        }
155        if (result === 'retry' && retryFn) {
156            retryFn();
157        }
158    });
159}
160class D2lApiSessionExpireComponent {
161    constructor(d2lApiService, snackbar, dialogRef, data) {
162        this.d2lApiService = d2lApiService;
163        this.snackbar = snackbar;
164        this.dialogRef = dialogRef;
165        this.data = data;
166        this.defaultMessage = 'Your D2L session has expired. Please login again to continue.';
167        this.is_loading = false;
168    }
169    get showLoginOption() {
170        return true;
171    }
172    login() {
173        this.is_loading = true;
174        this.d2lApiService.loginD2l().subscribe((res) => {
175            this.is_loading = false;
176            window.location.href = res.auth_url;
177        }, (err) => {
178            var _a;
179            this.is_loading = false;
180            this.snackbar.open(((_a = err === null || err === void 0 ? void 0 : err.error) === null || _a === void 0 ? void 0 : _a.message) || 'Login failed. Please try again.', 'Close', { duration: 3000 });
181        });
182    }
183    retry() {
184        this.dialogRef.close('retry');
185    }
186    goToDashboard() {
187        this.dialogRef.close('dashboard');
188    }
189    close() {
190        this.dialogRef.close('dismiss');
191    }
192}
193D2lApiSessionExpireComponent.ɵfac = function D2lApiSessionExpireComponent_Factory(t) { return new (t || D2lApiSessionExpireComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_service_d2l_api_service__WEBPACK_IMPORTED_MODULE_0__.D2lApiService), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_3__.MatSnackBar), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__.MatDialogRef), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdirectiveInject"](_angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__.MAT_DIALOG_DATA)); };
194D2lApiSessionExpireComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ type: D2lApiSessionExpireComponent, selectors: [["app-d2l-api-session-expire"]], decls: 25, vars: 5, consts: [["mat-dialog-title", "", "id", "d2l-api-session-expired-title", 1, "session-title"], [1, "session-title__left"], ["aria-hidden", "true", 1, "session-title__icon"], [1, "session-title__text-wrap"], [1, "session-title__text"], ["aria-describedby", "d2l-api-session-expired-desc", 1, "session-content"], ["aria-live", "polite", 1, "sr-only"], ["id", "d2l-api-session-expired-desc", 1, "message-box", "message-box--expired"], ["aria-hidden", "true", 1, "message-box__icon"], [1, "message-box__body"], [1, "message-box__text"], ["align", "end", 1, "session-actions"], ["mat-stroked-button", "", "type", "button", "class", "btn-secondary", "cdkFocusInitial", "", "aria-label", "Go to Dashboard", 3, "click", 4, "ngIf"], ["mat-stroked-button", "", "type", "button", "class", "btn-secondary", "cdkFocusInitial", "", "aria-label", "Login with D2L", 3, "disabled", "click", 4, "ngIf"], ["mat-flat-button", "", "color", "primary", "type", "button", "aria-label", "Retry", 1, "btn-primary", 3, "click"], ["aria-hidden", "true"], ["mat-stroked-button", "", "type", "button", "cdkFocusInitial", "", "aria-label", "Go to Dashboard", 1, "btn-secondary", 3, "click"], ["mat-stroked-button", "", "type", "button", "cdkFocusInitial", "", "aria-label", "Login with D2L", 1, "btn-secondary", 3, "disabled", "click"]], template: function D2lApiSessionExpireComponent_Template(rf, ctx) { if (rf & 1) {
195        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "h2", 0);
196        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](1, "span", 1);
197        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](2, "span", 2);
198        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](3, "mat-icon");
199        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](4, "warning_amber");
200        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
201        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
202        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](5, "span", 3);
203        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](6, "span", 4);
204        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](7);
205        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
206        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
207        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
208        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
209        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](8, "mat-dialog-content", 5);
210        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](9, "div", 6);
211        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](10);
212        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
213        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](11, "section", 7);
214        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](12, "div", 8);
215        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](13, "mat-icon");
216        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](14, "info");
217        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
218        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
219        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](15, "div", 9);
220        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](16, "p", 10);
221        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](17);
222        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
223        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
224        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
225        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
226        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](18, "mat-dialog-actions", 11);
227        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](19, D2lApiSessionExpireComponent_button_19_Template, 4, 0, "button", 12);
228        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](20, D2lApiSessionExpireComponent_button_20_Template, 4, 1, "button", 13);
229        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](21, "button", 14);
230        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function D2lApiSessionExpireComponent_Template_button_click_21_listener() { return ctx.retry(); });
231        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](22, "mat-icon", 15);
232        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](23, "refresh");
233        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
234        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](24, " Retry ");
235        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
236        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]();
237    } if (rf & 2) {
238        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](7);
239        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate"]((ctx.data == null ? null : ctx.data.title) || "D2L authentication required");
240        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3);
241        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" D2L authentication required. ", (ctx.data == null ? null : ctx.data.message) || ctx.defaultMessage, " ");
242        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](7);
243        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", (ctx.data == null ? null : ctx.data.message) || ctx.defaultMessage, " ");
244        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2);
245        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.data.showDashboardOption);
246        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](1);
247        _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", ctx.showLoginOption);
248    } }, directives: [_angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__.MatDialogTitle, _angular_material_icon__WEBPACK_IMPORTED_MODULE_5__.MatIcon, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__.MatDialogContent, _angular_material_dialog__WEBPACK_IMPORTED_MODULE_4__.MatDialogActions, _angular_common__WEBPACK_IMPORTED_MODULE_6__.NgIf, _angular_material_button__WEBPACK_IMPORTED_MODULE_7__.MatButton], styles: ["[_nghost-%COMP%] {\n  display: block;\n}\n\n\n\n.session-title[_ngcontent-%COMP%] {\n  margin: 0 !important;\n  padding-bottom: 8px;\n}\n\n.session-title__left[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n}\n\n.session-title__icon[_ngcontent-%COMP%] {\n  width: 40px;\n  height: 40px;\n  border-radius: 12px;\n  background: #fff7ed;\n  \n  color: #b45309;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  box-shadow: inset 0 0 0 1px #fed7aa;\n}\n\n.session-title__icon[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%] {\n  font-size: 20px;
248\n  width: 20px;\n  height: 20px;\n}\n\n.session-title__text-wrap[_ngcontent-%COMP%] {\n  display: flex;\n  flex-direction: column;\n  gap: 3px;\n}\n\n.session-title__text[_ngcontent-%COMP%] {\n  font-size: 1.06rem;\n  font-weight: 700;\n  color: #0f172a;\n  line-height: 1.25;\n}\n\n.session-title__status[_ngcontent-%COMP%] {\n  display: inline-flex;\n  align-items: center;\n  width: -moz-fit-content;\n  width: fit-content;\n  font-size: 0.75rem;\n  font-weight: 700;\n  line-height: 1;\n  padding: 5px 9px;\n  border-radius: 999px;\n  border: 1px solid transparent;\n}\n\n.session-title__status--expired[_ngcontent-%COMP%] {\n  color: #b45309;\n  background: #fff7ed;\n  border-color: #fed7aa;\n}\n\n\n\n.session-content[_ngcontent-%COMP%] {\n  padding-top: 0 !important;\n}\n\n\n\n.message-box[_ngcontent-%COMP%] {\n  display: flex;\n  gap: 10px;\n  align-items: flex-start;\n  border-radius: 12px;\n  padding: 12px;\n  margin-bottom: 12px;\n}\n\n.message-box--expired[_ngcontent-%COMP%] {\n  border: 1px solid #fed7aa;\n  background: #fffaf2;\n}\n\n.message-box__icon[_ngcontent-%COMP%] {\n  width: 28px;\n  height: 28px;\n  border-radius: 999px;\n  background: #ffedd5;\n  color: #b45309;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n}\n\n.message-box__icon[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%] {\n  font-size: 17px;\n  width: 17px;\n  height: 17px;\n}\n\n.message-box__body[_ngcontent-%COMP%] {\n  min-width: 0;\n  white-space: pre-line;\n}\n\n.message-box__text[_ngcontent-%COMP%] {\n  margin: 0;\n  color: #1f2937;\n  font-size: 0.9rem;\n  line-height: 1.45;\n  white-space: pre-line;\n}\n\n.message-box__hint[_ngcontent-%COMP%] {\n  margin: 6px 0 0 0;\n  font-size: 0.82rem;\n  color: #6b7280;\n  line-height: 1.4;\n}\n\n\n\n.note-row[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: flex-start;\n  gap: 8px;\n  margin-top: 2px;\n}\n\n.note-row__icon[_ngcontent-%COMP%] {\n  font-size: 18px;\n  width: 18px;\n  height: 18px;\n  color: #64748b;
248\n  margin-top: 1px;\n  flex-shrink: 0;\n}\n\n.note-row__text[_ngcontent-%COMP%] {\n  margin: 0;\n  font-size: 0.84rem;\n  color: #475569;\n  line-height: 1.4;\n}\n\n\n\n.session-actions[_ngcontent-%COMP%] {\n  padding-top: 10px !important;\n  gap: 8px;\n  flex-wrap: wrap;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.btn-secondary[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%] {\n  min-height: 40px;\n  border-radius: 10px;\n  font-weight: 600;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n  background: #fff;\n  border-color: #cbd5e1;\n  color: #1f2937;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n  background: #f8fafc;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.22);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n  box-shadow: 0 6px 16px rgba(37, 99, 235, 0.28);\n}\n\n\n\nbutton[_ngcontent-%COMP%]:focus-visible {\n  outline: 1px solid #111827;\n  outline-offset: 2px;\n}\n\n\n\n.sr-only[_ngcontent-%COMP%] {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  margin: -1px !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important;\n}\n\n[_nghost-%COMP%]     .mat-dialog-container {\n  border-radius: 20px !important;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQybC1hcGktc2Vzc2lvbi1leHBpcmUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxjQUFBO0FBQ0Y7O0FBRUEsc0JBQUE7O0FBQ0E7RUFDRSxvQkFBQTtFQUNBLG1CQUFBO0FBQ0Y7O0FBRUE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxTQUFBO0FBQ0Y7O0FBRUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFBcUIsZUFBQTtFQUNyQixjQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsY0FBQTtFQUNBLG1DQUFBO0FBRUY7O0FBQ0E7RUFDRSxlQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUFFRjs7QUFDQTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLFFBQUE7QUFFRjs7QUFDQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7QUFFRjs7QUFDQTtFQUNFLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUFBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLG9CQUFBO0VBQ0EsNkJBQUE7QUFFRjs7QUFDQTtFQUNFLGNBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0FBRUY7O0FBQ0Esb0JBQUE7O0FBQ0E7RUFDRSx5QkFBQTtBQUVGOztBQUNBLDhEQUFBOztBQUNBO0VBQ0UsYUFBQTtFQUNBLFNBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0FBRUY7O0FBQ0E7RUFDRSx5QkFBQTtFQUNBLG1CQUFBO0FBRUY7O0FBQ0E7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsY0FBQTtBQUVGOztBQUNBO0VBQ0UsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBRUY7O0FBQ0E7RUFDRSxZQUFBO0VBQ0EscUJBQUE7QUFFRjs7QUFDQTtFQUNFLFNBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0FBRUY7O0FBQ0E7RUFDRSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0FBRUY7O0FBQ0EscUJBQUE7O0FBQ0E7RUFDRSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxRQUFBO0VBQ0EsZUFBQTtBQUVGOztBQUNBO0VBQ0UsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FBRUY7O0FBQ0E7RUFDRSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7QUFFRjs7QUFDQSxvQkFBQTs7QUFDQTtFQUNFLDRCQUFBO0VBQ0EsUUFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUFFRjs7QUFDQTs7RUFFRSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QUFFRjs7QUFDQTtFQUNFLGdCQUFBO0VBQ0EscUJBQUE7RUFDQSxjQUFBO0FBRUY7O0FBQ0E7RUFDRSxtQkFBQTtBQUVGOztBQUNBO0VBQ0UsOENBQUE7QUFFRjs7QUFDQTtFQUNFLDhDQUFBO0FBRUY7O0FBQ0EscUJBQUE7O0FBQ0E7RUFDRSwwQkFBQTtFQUNBLG1CQUFBO0FBRUY7O0FBQ0EsNEJBQUE7O0FBQ0E7RUFDRSw2QkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLHVCQUFBO0VBQ0EsMkJBQUE7RUFDQSxpQ0FBQTtFQUNBLDhCQUFBO0VBQ0Esb0JBQUE7QUFFRjs7QUFDQTtFQUNFLDhCQUFBO0FBRUYiLCJmaWxlIjoiZDJsLWFwaS1zZXNzaW9uLWV4cGlyZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyogLS0tIFRpdGxlIHJvdyAtLS0gKi9cclxuLnNlc3Npb24tdGl0bGUge1xyXG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XHJcbn1cclxuXHJcbi5zZXNzaW9uLXRpdGxlX19sZWZ0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAxMnB4O1xyXG59XHJcblxyXG4uc2Vzc2lvbi10aXRsZV9faWNvbiB7XHJcbiAgd2lkdGg6IDQwcHg7XHJcbiAgaGVpZ2h0OiA0MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjdlZDsgLyogd2FybSBhbWJlciAqL1xyXG4gIGNvbG9yOiAjYjQ1MzA5O1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW
2481zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgZmxleC1zaHJpbms6IDA7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4ICNmZWQ3YWE7XHJcbn1cclxuXHJcbi5zZXNzaW9uLXRpdGxlX19pY29uIG1hdC1pY29uIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4uc2Vzc2lvbi10aXRsZV9fdGV4dC13cmFwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAzcHg7XHJcbn1cclxuXHJcbi5zZXNzaW9uLXRpdGxlX190ZXh0IHtcclxuICBmb250LXNpemU6IDEuMDZyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBjb2xvcjogIzBmMTcyYTtcclxuICBsaW5lLWhlaWdodDogMS4yNTtcclxufVxyXG5cclxuLnNlc3Npb24tdGl0bGVfX3N0YXR1cyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgcGFkZGluZzogNXB4IDlweDtcclxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLnNlc3Npb24tdGl0bGVfX3N0YXR1cy0tZXhwaXJlZCB7XHJcbiAgY29sb3I6ICNiNDUzMDk7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjdlZDtcclxuICBib3JkZXItY29sb3I6ICNmZWQ3YWE7XHJcbn1cclxuXHJcbi8qIC0tLSBDb250ZW50IC0tLSAqL1xyXG4uc2Vzc2lvbi1jb250ZW50IHtcclxuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKiAtLS0gTWVzc2FnZSBibG9jayAoc2FtZSBsYW5ndWFnZSBhcyB5b3VyIHN5bmMgZGlhbG9nKSAtLS0gKi9cclxuLm1lc3NhZ2UtYm94IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGdhcDogMTBweDtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gIHBhZGRpbmc6IDEycHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxufVxyXG5cclxuLm1lc3NhZ2UtYm94LS1leHBpcmVkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmVkN2FhO1xyXG4gIGJhY2tncm91bmQ6ICNmZmZhZjI7XHJcbn1cclxuXHJcbi5tZXNzYWdlLWJveF9faWNvbiB7XHJcbiAgd2lkdGg6IDI4cHg7XHJcbiAgaGVpZ2h0OiAyOHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gIGJhY2tncm91bmQ6ICNmZmVkZDU7XHJcbiAgY29sb3I6ICNiNDUzMDk7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLm1lc3NhZ2UtYm94X19pY29uIG1hdC1pY29uIHtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgd2lkdGg6IDE3cHg7XHJcbiAgaGVpZ2h0OiAxN3B4O1xyXG59XHJcblxyXG4ubWVzc2FnZS1ib3hfX2JvZHkge1xyXG4gIG1pbi13aWR0aDogMDtcclxuICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XHJcbn1cclxuXHJcbi5tZXNzYWdlLWJveF9fdGV4dCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGNvbG9yOiAjMWYyOTM3O1xyXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xyXG4gIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcclxufVxyXG5cclxuLm1lc3NhZ2UtYm94X19oaW50IHtcclxuICBtYXJnaW46IDZweCAwIDAgMDtcclxuICBmb250LXNpemU6IDAuODJyZW07XHJcbiAgY29sb3I6ICM2YjcyODA7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDtcclxufVxyXG5cclxuLyogLS0tIE5vdGUgcm93IC0tLSAqL1xyXG4ubm90ZS1yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgZ2FwOiA4cHg7XHJcbiAgbWFyZ2luLXRvcDogMnB4O1xyXG59XHJcblxyXG4ubm90ZS1yb3dfX2ljb24ge1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICB3aWR0aDogMThweDtcclxuICBoZWlnaHQ6IDE4cHg7XHJcbiAgY29sb3I6ICM2NDc0OGI7XHJcbiAgbWFyZ2luLXRvcDogMXB4O1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4ubm90ZS1yb3dfX3RleHQge1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LXNpemU6IDAuODRyZW07XHJcbiAgY29sb3I6ICM0NzU1Njk7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDtcclxufVxyXG5cclxuLyogLS0tIEFjdGlvbnMgLS0tICovXHJcbi5zZXNzaW9uLWFjdGlvbnMge1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgZ2FwOiA4cHg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5idG4tc2Vjb25kYXJ5LFxyXG4uYnRuLXByaW1hcnkge1xyXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4uYnRuLXNlY29uZGFyeSB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBib3JkZXItY29sb3I6ICNjYmQ1ZTE7XHJcbiAgY29sb3I6ICMxZjI5Mzc7XHJcbn1cclxuXHJcbi5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xyXG59XHJcblxyXG4uYnRuLXByaW1hcnkge1xyXG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeTpob3ZlciB7XHJcbiAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDM3LCA5OSwgMjM1LCAwLjI4KTtcclxufVxyXG5cclxuLyogRm9jdXMgdmlzaWJpbGl0eSAqL1xyXG5idXR0b246Zm9jdXMtdmlzaWJsZSB7XHJcbiAgb3V0bGluZTogMXB4IHNvbGlkICMxMTE4Mjc7XHJcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcclxufVxyXG5cclxuLyogU2NyZWVuLXJlYWRlciBvbmx5IHRleHQgKi9cclxuLnNyLW9ubHkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcclxuICBib3JkZXI6IDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XHJcbiAgYm9yZGVyLXJhZGl1czogMjBweCAhaW1wb3J0YW50O1xyXG59Il19 */"] });
249
250
251/***/ }),
252
253/***/ 47023:
254/*!***************************************************************************************!*\
255  !*** ./src/app/pages/d2l-api/d2l-api-session-expire/d2l-api-session-expire.module.ts ***!
256  \***************************************************************************************/
257/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
258
259__webpack_require__.r(__webpack_exports__);
260/* harmony export */ __webpack_require__.d(__webpack_exports__, {
261/* harmony export */   "D2lApiSessionExpireModule": () => (/* binding */ D2lApiSessionExpireModule)
262/* harmony export */ });
263/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 36362);
264/* harmony import */ var _d2l_api_session_expire_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./d2l-api-session-expire.component */ 9044);
265/* harmony import */ var src_prep_shared_card_card_module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! src/@prep/shared/card/card.module */ 70249);
266/* harmony import */ var src_prep_shared_scrollbar_scrollbar_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/@prep/shared/scrollbar/scrollbar.module */ 83182);
267/* harmony import */ var src_prep_shared_material_components_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! src/@prep/shared/material-components.module */ 50654);
268/* harmony import */ var _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/material/progress-spinner */ 74742);
269/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 3184);
270
271
272
273
274
275
276
277class D2lApiSessionExpireModule {
278}
279D2lApiSessionExpireModule.ɵfac = function D2lApiSessionExpireModule_Factory(t) { return new (t || D2lApiSessionExpireModule)(); };
280D2lApiSessionExpireModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineNgModule"]({ type: D2lApiSessionExpireModule });
281D2lApiSessionExpireModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineInjector"]({ imports: [[
282            _angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule,
283            src_prep_shared_material_components_module__WEBPACK_IMPORTED_MODULE_3__.MaterialModule,
284            src_prep_shared_scrollbar_scrollbar_module__WEBPACK_IMPORTED_MODULE_2__.ScrollbarModule,
285            src_prep_shared_card_card_module__WEBPACK_IMPORTED_MODULE_1__.PrepCardModule,
286            _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_6__.MatProgressSpinnerModule
287        ]] });
288(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsetNgModuleScope"](D2lApiSessionExpireModule, { declarations: [_d2l_api_session_expire_component__WEBPACK_IMPORTED_MODULE_0__.D2lApiSessionExpireComponent], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule,
289        src_prep_shared_material_components_module__WEBPACK_IMPORTED_MODULE_3__.MaterialModule,
290        src_prep_shared_scrollbar_scrollbar_module__WEBPACK_IMPORTED_MODULE_2__.ScrollbarModule,
291        src_prep_shared_card_card_module__WEBPACK_IMPORTED_MODULE_1__.PrepCardModule,
292        _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_6__.MatProgressSpinnerModule], exports: [_d2l_api_session_expire_component__WEBPACK_IMPORTED_MODULE_0__.D2lApiSessionExpireComponent] }); })();
293
294
295/***/ }),
296
297/***/ 78777:
298/*!**********************************************************!*\
299  !*** ./src/app/pages/d2l-api/service/d2l-api.service.ts ***!
300  \**********************************************************/
301/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
302
303__webpack_require__.r(__webpack_exports__);
304/* harmony export */ __webpack_require__.d(__webpack_exports__, {
305/* harmony export */   "D2lApiService": () => (/* binding */ D2lApiService)
306/* harmony export */ });
307/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ 28784);
308/* harmony import */ var src_environments_environment_prod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! src/environments/environment.prod */ 89019);
309/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 3184);
310
311
312
313
314class D2lApiService {
315    constructor(http) {
316        this.http = http;
317        this.baseUrl = src_environments_environment_prod__WEBPACK_IMPORTED_MODULE_0__.environment.backend;
318    }
319    loadCourses(cursor = null, search = '') {
320        let url = `${this.baseUrl}clms/d2l-courses/`;
321        const params = [];
322        if (cursor) {
323            params.push(`cursor=${encodeURIComponent(cursor)}`);
324        }
325        if (search) {
326            params.push(`search=${encodeURIComponent(search)}`);
327        }
328        if (params.length) {
329            url += `?${params.join('&')}`;
330        }
331        return this.http.get(url, this.getAuthHeaders());
332    }
333    loadFiles(courseId, offset = 0, limit = 10, path = '', search = '') {
334        let url = `${this.baseUrl}clms/d2l-course-files/?course_id=${courseId}&offset=${offset}&limit=${limit}`;
335        // When searching, only send `path` if the caller is scoped to a folder —
336        // an empty path means "search from the course root".
337        if (path) {
338            url += `&path=${encodeURIComponent(path)}`;
339        }
340        if (search) {
341            url += `&search=${encodeURIComponent(search)}`;
342        }
343        return this.http.get(url, this.getAuthHeaders());
344    }
345    postLoadMoreFileDetails(fd) {
346        return this.http.post(this.baseUrl + 'remediation/sales/get-files-status-d2l/', fd, this.getAuthHeaders());
347    }
348    postExportToD2L(fd) {
349        return this.http.post(this.baseUrl + 'clms/send-to-d2l/', fd, this.getAuthHeaders());
350    }
351    postExportToD2LPREPFile(fd) {
352        return this.http.post(this.baseUrl + 'clms/send-to-d2l_export_file/', fd, this.getAuthHeaders());
353    }
354    postDownloadOriginalFile(fd) {
355        return this.http.post(this.baseUrl + 'clms/d2l-download-file/', fd, this.getAuthHeaders());
356    }
357    loginD2l() {
358        return this.http.get(this.baseUrl + 'accounts/d2l/login/', this.getAuthHeaders());
359    }
360    getAuthHeaders() {
361        const token = localStorage.getItem('token');
362        const httpHeaders = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpHeaders({
363            Authorization: 'Token ' + token,
364            'Content-Type': 'application/json; charset=utf-8',
365        });
366        return { headers: httpHeaders };
367    }
368}
369D2lApiService.ɵfac = function D2lApiService_Factory(t) { return new (t || D2lApiService)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵinject"](_angular_common_http__WEBPACK_IMPORTED_MODULE_1__.HttpClient)); };
370D2lApiService.ɵprov = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineInjectable"]({ token: D2lApiService, factory: D2lApiService.ɵfac, providedIn: 'root' });
371
372
373/***/ })
374
375}]);
376//# sourceMappingURL=default-src_prep_shared_services_download-s3-link_service_ts-src_app_pages_d2l-api_d2l-api-se-53ebb2.772a42deef3e8c14.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.