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.