{"version":3,"file":"tasktracker.js","mappings":"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","sources":["webpack://mvc/./FrontEndDev/typescript/CalcPad/Helpers/CPMethods.ts","webpack://mvc/./FrontEndDev/typescript/ConceptBuilder/Helpers/ConceptBuilderMethods.ts","webpack://mvc/./FrontEndDev/typescript/SharedLibrary/AjaxHelper.ts","webpack://mvc/webpack/bootstrap","webpack://mvc/./FrontEndDev/typescript/TaskTrackerShared/index.ts"],"sourcesContent":["import { AnswerPart, AnswerPartResponse, AnswerPartStandalone } from \"../../../react/CalcPad/apimodels/AnswerPart\";\r\nimport { GetAssignmentRequest, GetAssignmentResponse } from \"../../../react/CalcPad/apimodels/DisplayAssignment\";\r\nimport { PreviewProblemRequest, PreviewProblemResponse } from \"../../../react/CalcPad/apimodels/PreviewProblem\";\r\nimport { CPReactMethods } from \"../../../react/CalcPad/app\";\r\nimport { AjaxHelper } from \"../../SharedLibrary/AjaxHelper\";\r\n\r\n// declare so we can reference the methods without importing the ACTUAL class.\r\ndeclare global {\r\n interface Window {\r\n CPReactMethods: CPReactMethods\r\n }\r\n}\r\n\r\nexport class CPMethods {\r\n\r\n public launchAssignment(container: HTMLDivElement, taskEntityPartCodename: string): void {\r\n const ajax = new AjaxHelper();\r\n window.toasts = window.GlobalMethods.AddToast(window.toasts, \"loadingAssignment\", \"Loading Assignment\");\r\n window.GlobalMethods.ShowToast(window.toasts, \"loadingAssignment\")\r\n // Get Assignment\r\n let request: GetAssignmentRequest = {\r\n taskEntityPartCodename\r\n };\r\n ajax.postRequest(\"/api/tasktracker/calcpad/GetAssignment\", request)\r\n .then(response => {\r\n window.GlobalMethods.HideToast(window.toasts, \"loadingAssignment\")\r\n if (!response.successful) {\r\n if (response.message.indexOf(\"Could not find an assignment\") > -1) {\r\n alert(\"Could not find an assignment by that code name \" + taskEntityPartCodename + \".\");\r\n } else {\r\n alert(response.message);\r\n }\r\n }\r\n window.CPReactMethods.launchAssignmentDisplay(container, response.data)\r\n });\r\n }\r\n\r\n public launchProblem(container: HTMLDivElement, problemGuid: string): Promise {\r\n const ajax = new AjaxHelper();\r\n\r\n // Get Problem\r\n let request: PreviewProblemRequest = {\r\n problemGuid: problemGuid\r\n }\r\n return ajax.postRequest(\"/api/tasktracker/calcpad/PreviewProblem\", request)\r\n .then(response => {\r\n if (!response.successful) {\r\n throw new Error(response.message)\r\n }\r\n window.CPReactMethods.launchProblemDisplayPublic(container, response.data)\r\n })\r\n }\r\n\r\n // Used for Public assignments and also answer teacher's assignment's problem\r\n public answerPart(problemInstanceId: number, partInstanceId: number, seed: number, answer: number, exponent?: number, courseGuid?: string): Promise {\r\n const ajax = new AjaxHelper();\r\n\r\n // Get Assignment\r\n let request: AnswerPart = {\r\n courseGuid,\r\n problemInstanceId,\r\n partInstanceId,\r\n seed,\r\n answer,\r\n exponent: exponent ?? 0\r\n };\r\n return ajax.postRequest(\"/api/tasktracker/calcpad/AnswerPart\", request)\r\n .then(response => {\r\n if (!response.successful) {\r\n throw new Error(response.message);\r\n }\r\n return response.correct;\r\n });\r\n }\r\n\r\n // Used for public preview of single problem\r\n public answerPartStandalone(problemGuid: string, partId: number, seed: number, answer: number, exponent?: number): Promise {\r\n const ajax = new AjaxHelper();\r\n\r\n // Get Assignment\r\n let request: AnswerPartStandalone = {\r\n problemGuid,\r\n partId,\r\n seed,\r\n answer,\r\n exponent: exponent ?? 0\r\n };\r\n return ajax.postRequest(\"/api/tasktracker/calcpad/AnswerPartStandalone\", request)\r\n .then(response => {\r\n if (!response.successful) {\r\n throw new Error(response.message);\r\n }\r\n return response;\r\n });\r\n }\r\n}\r\n","export class CBReactMethods {\r\n\r\n}\r\n\r\nexport class CBMethods {\r\n \r\n}\r\nexport class CBStudentMethods {\r\n \r\n}\r\n\r\nexport class CBInstructorMethods {\r\n \r\n}\r\n","import { ITestingLoginResponse } from \"./Models/ITestingLoginResponse\";\r\n\r\nexport interface IAjaxHelper {\r\n postRequest(Url: string, Data?: any): Promise\r\n getRequest(Url: string, Data?: Record): Promise\r\n runInSequence(values: Array, funcToRun: (value: T) => Promise, funcAfterEachRun?: (value: TPromise) => boolean | any | undefined, funcWhenFinished?: () => any | undefined): void\r\n}\r\n\r\nexport class AjaxHelperTesting implements IAjaxHelper {\r\n sessionId: string = \"\";\r\n\r\n constructor() {\r\n fetch(\"https://physicsclassroom.hbstest.net/api/tasktracker/questions/TestingUserLogin\", {\r\n method: \"POST\",\r\n mode: 'cors',\r\n credentials: \"include\",\r\n cache: \"no-cache\",\r\n headers: {\r\n \"Authorization\": \"Bearer \" + this.sessionId,\r\n 'Content-Type': 'application/json',\r\n }\r\n }).then(x => {\r\n return x.json();\r\n }).then(x => {\r\n var response = x as ITestingLoginResponse;\r\n if (response.successful) {\r\n this.sessionId = response.SessionID;\r\n } else {\r\n alert(\"Error setting up testing instance: \" + response.message);\r\n }\r\n });\r\n }\r\n\r\n /*\r\n * Performs a POST on the given url, passing the given data (if any) as the Body post\r\n * @param Url - Url of the API to hit\r\n * @param Data - The JSON object the post as the body parameters\r\n * @returns response parsed as T Type\r\n */\r\n async postRequest(Url: string, Data?: any): Promise {\r\n const response = await fetch(\"https://physicsclassroom.hbstest.net\" + Url, {\r\n method: \"POST\",\r\n mode: 'cors',\r\n credentials: \"include\",\r\n cache: \"no-cache\",\r\n headers: {\r\n \"Authorization\": \"Bearer \" + this.sessionId,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: (Data ? JSON.stringify(Data) : \"\")\r\n });\r\n return await response.json();\r\n }\r\n\r\n /*\r\n * Performs a GET on the given url, passing any data records as query parameters, and parsing the response as T object type\r\n * @param Url - Url of the API to hit\r\n * @param Data - Key (string) value (string, number, or boolean) of any parameters to include in the call, these are parsed as URL variables \r\n * @returns response parsed as T Type\r\n */\r\n async getRequest(Url: string, Data?: Record): Promise {\r\n var urlWithParams = \"https://physicsclassroom.hbstest.net\" + Url;\r\n if (Data) {\r\n let params = new Array();\r\n for (let key in Data) {\r\n params.push(encodeURI(key) + \"=\" + encodeURI(Data[key].toString()))\r\n }\r\n urlWithParams += \"?\" + params.join(\"&\");\r\n }\r\n const response = await fetch(urlWithParams, {\r\n method: \"GET\",\r\n mode: 'cors',\r\n credentials: \"include\",\r\n cache: \"no-cache\",\r\n headers: {\r\n \"Authorization\": \"Bearer \" + this.sessionId,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n return await response.json();\r\n }\r\n\r\n /*\r\n * Runs the given promise calls in order against the provided array of values, waiting for each item to finish it's promise before executing the next\r\n * @param values - Array of values that will execute in the funcToRun in order\r\n * @param funcToRun - Function that takes the single value and returns a Promise of the asynchronous call (ex postRequest or getRequest of this helper)\r\n * @param funcAfterEachRun - Optional function that receives the Promise's result, if you return false then aborts the rest of the calls, nothing / true continues\r\n * @param funcWhenFinished - Optional function that runs once every item is executed.\r\n */\r\n public runInSequence(values: Array, funcToRun: (value: T) => Promise, funcAfterEachRun?: (value: TPromise) => boolean | any | undefined, funcWhenFinished?: () => any | undefined): void {\r\n console.log(\"Cannot use RunInSequence method for testing instance of ajax helper.\");\r\n if (typeof funcWhenFinished !== undefined) {\r\n funcWhenFinished!!();\r\n }\r\n return;\r\n }\r\n}\r\n\r\nexport class AjaxCaller {\r\n /*\r\n * Performs a POST on the given url, passing the given data (if any) as the Body post\r\n * @param Url - Url of the API to hit\r\n * @param Data - The JSON object the post as the body parameters\r\n * @returns response parsed as T Type\r\n */\r\n static async postRequest(Url: string, Data?: any): Promise {\r\n const helper = new AjaxHelper();\r\n return helper.postRequest(Url, Data);\r\n }\r\n\r\n static async postRequestExcelFile(Url: string, FileName: string, Data?: any): Promise {\r\n const helper = new AjaxHelper();\r\n var sanitizedFilename = FileName.replace(/[\\\\/:*?\"<>|\\.]/g, '');\r\n return helper.postRequestFile(Url, Data)\r\n .then(blob => {\r\n var file = new Blob([blob], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n console.log(file);\r\n var fileURL = URL.createObjectURL(file);\r\n\r\n // create tag dinamically\r\n var fileLink = document.createElement('a');\r\n fileLink.href = fileURL;\r\n\r\n // it forces the name of the downloaded file\r\n fileLink.download = sanitizedFilename;\r\n\r\n // triggers the click event\r\n fileLink.click();\r\n });\r\n }\r\n\r\n /*\r\n * Performs a GET on the given url, passing any data records as query parameters, and parsing the response as T object type\r\n * @param Url - Url of the API to hit\r\n * @param Data - Key (string) value (string, number, or boolean) of any parameters to include in the call, these are parsed as URL variables \r\n * @returns response parsed as T Type\r\n */\r\n static async getRequest(Url: string, Data?: Record): Promise {\r\n const helper = new AjaxHelper();\r\n return helper.getRequest(Url, Data);\r\n }\r\n}\r\n\r\nexport class AjaxHelper implements IAjaxHelper {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n /*\r\n * Performs a POST on the given url, passing the given data (if any) as the Body post\r\n * @param Url - Url of the API to hit\r\n * @param Data - The JSON object the post as the body parameters\r\n * @returns response parsed as T Type\r\n */\r\n async postRequest(Url: string, Data?: any): Promise {\r\n const response = await fetch(Url, {\r\n method: \"POST\",\r\n mode: 'cors',\r\n cache: \"no-cache\",\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: (Data ? JSON.stringify(Data) : \"\")\r\n });\r\n if (!response.ok) {\r\n var json = await response.json();\r\n throw json.message ?? json.Message;\r\n }\r\n return await response.json();\r\n }\r\n\r\n /*\r\n * Performs a POST on the given url, passing the given data (if any) as the Body post\r\n * @param Url - Url of the API to hit\r\n * @param Data - The JSON object the post as the body parameters\r\n * @returns response parsed as T Type\r\n */\r\n async postRequestFile(Url: string, Data?: any): Promise {\r\n const response = await fetch(Url, {\r\n method: \"POST\",\r\n mode: 'cors',\r\n cache: \"no-cache\",\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: (Data ? JSON.stringify(Data) : \"\")\r\n });\r\n if (!response.ok) {\r\n var json = await response.json();\r\n throw json.message;\r\n }\r\n console.log(response);\r\n return await response.blob();\r\n }\r\n\r\n /*\r\n * Performs a GET on the given url, passing any data records as query parameters, and parsing the response as T object type\r\n * @param Url - Url of the API to hit\r\n * @param Data - Key (string) value (string, number, or boolean) of any parameters to include in the call, these are parsed as URL variables \r\n * @returns response parsed as T Type\r\n */\r\n async getRequest(Url: string, Data?: Record): Promise {\r\n var urlWithParams = Url;\r\n if (Data) {\r\n let params = new Array();\r\n for (let key in Data) {\r\n params.push(encodeURI(key) + \"=\" + encodeURI(Data[key].toString()))\r\n }\r\n urlWithParams += \"?\" + params.join(\"&\");\r\n }\r\n const response = await fetch(urlWithParams, {\r\n method: \"GET\",\r\n mode: 'cors',\r\n cache: \"no-cache\"\r\n });\r\n if (!response.ok) {\r\n var json = await response.json();\r\n throw json.message ?? json.Message;\r\n }\r\n return await response.json();\r\n }\r\n\r\n /*\r\n * Runs the given promise calls in order against the provided array of values, waiting for each item to finish it's promise before executing the next\r\n * @param values - Array of values that will execute in the funcToRun in order\r\n * @param funcToRun - Function that takes the single value and returns a Promise of the asynchronous call (ex postRequest or getRequest of this helper)\r\n * @param funcAfterEachRun - Optional function that receives the Promise's result, if you return false then aborts the rest of the calls, nothing / true continues\r\n * @param funcWhenFinished - Optional function that runs once every item is executed.\r\n */\r\n public runInSequence(values: Array, funcToRun: (value: T) => Promise, funcAfterEachRun?: (value: TPromise) => boolean | any | undefined, funcWhenFinished?: () => any | undefined): void {\r\n if (values.length > 0) {\r\n var value = values[0];\r\n values = values.splice(1);\r\n funcToRun(value).then((tPromise: TPromise) => {\r\n if (typeof funcAfterEachRun !== undefined && funcAfterEachRun != null) {\r\n var result = funcAfterEachRun(tPromise);\r\n if (typeof result === \"boolean\" && !(result as boolean)) {\r\n // Abort\r\n return;\r\n }\r\n }\r\n this.runInSequence(values, funcToRun, funcAfterEachRun, funcWhenFinished);\r\n });\r\n } else {\r\n if (typeof funcWhenFinished !== undefined) {\r\n funcWhenFinished!!();\r\n }\r\n }\r\n return;\r\n }\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import { CPMethods } from '../CalcPad/Helpers/CPMethods';\r\nimport { CBMethods } from '../ConceptBuilder/Helpers/ConceptBuilderMethods';\r\n\r\n// declare my helper in the window interface\r\ndeclare global {\r\n interface Window {\r\n CalcPad: CPMethods\r\n ConceptBuilder: CBMethods\r\n }\r\n}\r\n\r\n// Can access your methods with window.SiteMethods.theMethodName()\r\nwindow.CalcPad = new CPMethods();\r\nwindow.ConceptBuilder = new CBMethods();\r\n\r\n"],"names":[],"sourceRoot":""}