diff --git a/client/Database/database.ts b/client/Database/database.ts index 11f2e200360a82d5a4bf324fbb2236d55ccb9a53..36ca92f398994b64089aca7dfb360d66625f12ef 100644 --- a/client/Database/database.ts +++ b/client/Database/database.ts @@ -27,8 +27,6 @@ const firebaseConfig = { appId: "1:902143402555:web:29213e81de0a0cba38b21e", }; - - //Backup databas - ska användas av R&D /* const firebaseConfig = { apiKey: "AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc", @@ -50,7 +48,6 @@ const firebaseConfig = { measurementId: "G-PFLDQY00DB" }; */ - const app = initializeApp(firebaseConfig); export const auth = getAuth(); export const db = getFirestore(app); diff --git a/client/KnowledgeBank/Nolans3.ts b/client/KnowledgeBank/Nolans3.ts index e97bce9a3e114e8ccfc3a7aebdc5f92008caa515..a29e10e536755fdd385d8bc85da7c1496105e655 100644 --- a/client/KnowledgeBank/Nolans3.ts +++ b/client/KnowledgeBank/Nolans3.ts @@ -1,28 +1,26 @@ -export function loadPage () { - const container = document.querySelector('#container-fluid'); +export function loadPage() { + const container = document.querySelector("#container-fluid"); + if (!container) return; // Stop if the container isn't found - if (!container) return; // Stop if the container isn't found - - fetch('KnowledgeBank/Nolans3.html') - .then(response => response.text()) - .then(data => { - // Create a temporary container element to hold the loaded content - const tempContainer = document.createElement('div'); - tempContainer.innerHTML = data; + fetch("KnowledgeBank/Nolans3.html") + .then((response) => response.text()) + .then((data) => { + // Create a temporary container element to hold the loaded content + const tempContainer = document.createElement("div"); + tempContainer.innerHTML = data; - // Select the specific element with the class you want - const specificElement = tempContainer.querySelector('.nolans-main-container'); + // Select the specific element with the class you want + const specificElement = tempContainer.querySelector( + ".nolans-main-container" + ); - if (specificElement) { - // Insert the specific element into the target element - container.insertBefore(specificElement, container.firstChild); - } - - }) - .catch(error => { - console.error('Failed to load the external HTML file:', error); - }); - - -} \ No newline at end of file + if (specificElement) { + // Insert the specific element into the target element + container.insertBefore(specificElement, container.firstChild); + } + }) + .catch((error) => { + console.error("Failed to load the external HTML file:", error); + }); +} diff --git a/client/currentProjects/currentProjects.ts b/client/currentProjects/currentProjects.ts index 78a8ca2ba647574f2050e09a0a5db5aa0b4252af..aa8e86616bb736df0c083ff59c629b5bd94a8d8a 100644 --- a/client/currentProjects/currentProjects.ts +++ b/client/currentProjects/currentProjects.ts @@ -17,9 +17,9 @@ import { loadUnits, clearContent, removeCardsFromDiv, -} from "../ideaBank/ideaBank.js" +} from "../ideaBank/ideaBank.js"; -import * as projectPage from "../projectPage/projectPage.js"; +import { formatDate } from "../projectPage/projectPage.js"; let projectCards: projectCard[] = []; let filteredImprovementWorks: any[] = []; @@ -32,6 +32,7 @@ class projectCard { public id: number; public projectId: string; public stage: any; + public dateStarted: any; constructor( id: number, @@ -40,7 +41,8 @@ class projectCard { title: string, description: string, projectId: string, - currentStage: string + currentStage: string, + dateStarted: any ) { this.name = name; this.department = department; @@ -49,6 +51,7 @@ class projectCard { this.id = id; this.projectId = projectId; this.stage = currentStage; + this.dateStarted = dateStarted; } showMoreInfo(blockId: string, thisTextId: string): void { @@ -91,8 +94,8 @@ class projectCard { // Check if the stage is directly a key in stageImages if (!stageImages[stageKey as keyof typeof stageImages]) { - // If not, try to map the Swedish stage to English using nolanStageMapping - stageKey = nolanStageMapping[stageKey]; + // If not, try to map the Swedish stage to English using nolanStageMapping + stageKey = nolanStageMapping[stageKey]; } // Now get the imageUrl using the stageKey @@ -100,26 +103,40 @@ class projectCard { return ` <div class="totalExpandedOngoingWorkCard"> - <div style="cursor: default;" class="flex-container ongoingCard" id="${this.projectId}"> + <div style="cursor: default;" class="flex-container ongoingCard" id="${ + this.projectId + }"> <div class="ongoingCardImageContainer toSinglePage"> <div class = "flex-box ongoingCardImage toSinglePage" id="pinkFaded"></div> </div> <div class="div ongoingCardInfo toSinglePage"> <p class="toSinglePage" id="ongoingCardManager">${this.name}</p> - <p class="toSinglePage" id="ongoingCardDepartment">${this.department}</p> + <p class="toSinglePage" id="ongoingCardDepartment">${ + this.department + }</p> <p class="toSinglePage" id="ongoingCardIdeaTitle">${this.title}</p> + + <p class="toSinglePage" id=ongoingCardStartDate" style="font-size: 12px;">${formatDate( + this.dateStarted + )}</p> </div> - <button id="project-button-${this.projectId}" data-project-id="${this.id}" class="projectButton" role="button">Gå till projektsidan</button> + <button id="project-button-${this.projectId}" data-project-id="${ + this.id + }" class="projectButton" role="button">Gå till projektsidan</button> <div> <img class="statusImage" src="${imageUrl}" alt="Stage Image"> </div> <div class="container ongoingSeeCardDetails toSinglePage"> <div class="ongoingSeeCardDetailsInner"> - <p id="ongoingSeeDetailsButton${this.projectId}" class = "moreInfoClass">> Mer information</p> + <p id="ongoingSeeDetailsButton${ + this.projectId + }" class = "moreInfoClass">> Mer information</p> </div> </div> </div> - <div class = "expandedOngoingWorkCard" id="expandedOngoingWorkCard${this.projectId}" style="display: none;"> + <div class = "expandedOngoingWorkCard" id="expandedOngoingWorkCard${ + this.projectId + }" style="display: none;"> <div class ="expandedTextOngoingWorkCard"> ${this.description} </div> @@ -151,142 +168,179 @@ export async function loadPage(listenersLoaded: boolean) { // Select the specific element with the class you want const specificElement = tempContainer.querySelector(".filterBar"); - const createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection') as HTMLSelectElement; - const createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection') as HTMLSelectElement; - const createNolanStageCheckBoxContainer = tempContainer.querySelector('#nolanStageSelection') as HTMLSelectElement; - const createPatientRiskLevelCheckBoxContainer = tempContainer.querySelector('#patientRiskLevelSelection') as HTMLSelectElement; - const createOrderSelectionContainer = tempContainer.querySelector('#orderSelection') as HTMLSelectElement; - - if (createHospitalCheckBoxContainer) { - createHospitalCheckBoxContainer.addEventListener('change', async function(event) { - - const checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type="checkbox"]'); - console.log("createHospitalCheckBoxContainer") - - // Empty list of checked hospitals - checkedHospitalIds = []; + const createHospitalCheckBoxContainer = tempContainer.querySelector( + "#hospitalSelection" + ) as HTMLSelectElement; + const createUnitCheckBoxContainer = tempContainer.querySelector( + "#unitSelection" + ) as HTMLSelectElement; + const createNolanStageCheckBoxContainer = tempContainer.querySelector( + "#nolanStageSelection" + ) as HTMLSelectElement; + const createPatientRiskLevelCheckBoxContainer = + tempContainer.querySelector( + "#patientRiskLevelSelection" + ) as HTMLSelectElement; + const createOrderSelectionContainer = tempContainer.querySelector( + "#orderSelection" + ) as HTMLSelectElement; - // Array to store IDs of checked checkboxes - checkboxes.forEach((checkbox) => { + if (createHospitalCheckBoxContainer) { + createHospitalCheckBoxContainer.addEventListener( + "change", + async function (event) { + const checkboxes = createHospitalCheckBoxContainer.querySelectorAll( + 'input[type="checkbox"]' + ); + console.log("createHospitalCheckBoxContainer"); + + // Empty list of checked hospitals + checkedHospitalIds = []; + + // Array to store IDs of checked checkboxes + checkboxes.forEach((checkbox) => { // Ensure the checkbox is an HTMLInputElement const inputCheckbox = checkbox as HTMLInputElement; - + // Check if the checkbox is checked and add its ID to the array if (inputCheckbox.checked) { checkedHospitalIds.push(inputCheckbox.id); } - }); + }); - // Log all checked hospital IDs - console.log('Checked hospitals:', checkedHospitalIds); + // Log all checked hospital IDs + console.log("Checked hospitals:", checkedHospitalIds); - // Future change: Only clear the unitIds for unchecked hospitals! - clearContent("unitSelection"); - loadUnits(checkedHospitalIds); - }); + // Future change: Only clear the unitIds for unchecked hospitals! + clearContent("unitSelection"); + loadUnits(checkedHospitalIds); + } + ); } if (createUnitCheckBoxContainer) { - createUnitCheckBoxContainer.addEventListener('change', async function(event) { - - const checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type="checkbox"]'); - - console.log("createUnitCheckBoxContainer") - // Empty list of checked units - checkedUnitIds = []; - - checkboxes.forEach((checkbox) => { + createUnitCheckBoxContainer.addEventListener( + "change", + async function (event) { + const checkboxes = createUnitCheckBoxContainer.querySelectorAll( + 'input[type="checkbox"]' + ); + + console.log("createUnitCheckBoxContainer"); + // Empty list of checked units + checkedUnitIds = []; + + checkboxes.forEach((checkbox) => { // Ensure the checkbox is an HTMLInputElement const inputCheckbox = checkbox as HTMLInputElement; - + // Check if the checkbox is checked and add its ID to the array if (inputCheckbox.checked) { checkedUnitIds.push(inputCheckbox.id); } - }); - - filteredImprovementWorks = await getFilteredImprovementWorks({ - patientRiskLevels: checkedPatientRiskLevels, - nolanStages: checkedNolanStages, - units: checkedUnitIds, - }); - removeCardsFromDiv("div.projectCardCardDiv"); - getProjects(container, listenersLoaded, filteredImprovementWorks); -}); + }); + + filteredImprovementWorks = await getFilteredImprovementWorks({ + patientRiskLevels: checkedPatientRiskLevels, + nolanStages: checkedNolanStages, + units: checkedUnitIds, + }); + removeCardsFromDiv("div.projectCardCardDiv"); + getProjects(container, listenersLoaded, filteredImprovementWorks); + } + ); } if (createNolanStageCheckBoxContainer) { - createNolanStageCheckBoxContainer.addEventListener('change', async function(event) { - - const checkboxes = createNolanStageCheckBoxContainer.querySelectorAll('input[type="checkbox"]'); - - // Empty list of checked hospitals - checkedNolanStages = []; - - // Array to store IDs of checked checkboxes - checkboxes.forEach((checkbox) => { + createNolanStageCheckBoxContainer.addEventListener( + "change", + async function (event) { + const checkboxes = + createNolanStageCheckBoxContainer.querySelectorAll( + 'input[type="checkbox"]' + ); + + // Empty list of checked hospitals + checkedNolanStages = []; + + // Array to store IDs of checked checkboxes + checkboxes.forEach((checkbox) => { // Ensure the checkbox is an HTMLInputElement const inputCheckbox = checkbox as HTMLInputElement; - + // Check if the checkbox is checked and add its ID to the array if (inputCheckbox.checked) { checkedNolanStages.push(inputCheckbox.id); checkedNolanStages.push(nolanStageMapping[inputCheckbox.id]); console.log("checkedNolanStages: ", checkedNolanStages); } - }); - - filteredImprovementWorks = await getFilteredImprovementWorks({ - patientRiskLevels: checkedPatientRiskLevels, - nolanStages: checkedNolanStages, - units: checkedUnitIds, - }); - removeCardsFromDiv("div.projectCardCardDiv"); - getProjects(container, listenersLoaded, filteredImprovementWorks); - }); + }); + + filteredImprovementWorks = await getFilteredImprovementWorks({ + patientRiskLevels: checkedPatientRiskLevels, + nolanStages: checkedNolanStages, + units: checkedUnitIds, + }); + removeCardsFromDiv("div.projectCardCardDiv"); + getProjects(container, listenersLoaded, filteredImprovementWorks); + } + ); } if (createPatientRiskLevelCheckBoxContainer) { - createPatientRiskLevelCheckBoxContainer.addEventListener('change', async function(event) { - - const checkboxes = createPatientRiskLevelCheckBoxContainer.querySelectorAll('input[type="checkbox"]'); - console.log("createPatientRiskLevelCheckBoxContainer") - - // Empty list of checked hospitals - checkedPatientRiskLevels = []; - - // Array to store IDs of checked checkboxes - checkboxes.forEach((checkbox) => { + createPatientRiskLevelCheckBoxContainer.addEventListener( + "change", + async function (event) { + const checkboxes = + createPatientRiskLevelCheckBoxContainer.querySelectorAll( + 'input[type="checkbox"]' + ); + console.log("createPatientRiskLevelCheckBoxContainer"); + + // Empty list of checked hospitals + checkedPatientRiskLevels = []; + + // Array to store IDs of checked checkboxes + checkboxes.forEach((checkbox) => { // Ensure the checkbox is an HTMLInputElement const inputCheckbox = checkbox as HTMLInputElement; - + // Check if the checkbox is checked and add its ID to the array if (inputCheckbox.checked) { checkedPatientRiskLevels.push(inputCheckbox.id); - checkedPatientRiskLevels.push(patientRiskLevelMapping[inputCheckbox.id]); - console.log("checkedPatientRiskLevels: ", checkedPatientRiskLevels); + checkedPatientRiskLevels.push( + patientRiskLevelMapping[inputCheckbox.id] + ); + console.log( + "checkedPatientRiskLevels: ", + checkedPatientRiskLevels + ); } - }); - - filteredImprovementWorks = await getFilteredImprovementWorks({ - patientRiskLevels: checkedPatientRiskLevels, - nolanStages: checkedNolanStages, - units: checkedUnitIds, - }); - removeCardsFromDiv("div.projectCardCardDiv"); - getProjects(container, listenersLoaded, filteredImprovementWorks); - }); + }); + + filteredImprovementWorks = await getFilteredImprovementWorks({ + patientRiskLevels: checkedPatientRiskLevels, + nolanStages: checkedNolanStages, + units: checkedUnitIds, + }); + removeCardsFromDiv("div.projectCardCardDiv"); + getProjects(container, listenersLoaded, filteredImprovementWorks); + } + ); } if (createOrderSelectionContainer) { - createOrderSelectionContainer.addEventListener('change', async function(event) { + createOrderSelectionContainer.addEventListener( + "change", + async function (event) { const inputCheckbox = event.target as HTMLInputElement; - + ascendingDates = inputCheckbox.checked; - + removeCardsFromDiv("div.projectCardCardDiv"); sortProjects(container, listenersLoaded, ascendingDates); - }); + } + ); } if (specificElement) { @@ -297,12 +351,14 @@ export async function loadPage(listenersLoaded: boolean) { .catch((error) => { console.error("Failed to load the external HTML file:", error); }); - filteredImprovementWorks = await getImprovementWorks({completed: false}); + filteredImprovementWorks = await getImprovementWorks({ completed: false }); console.log("Filtered improvementWorks: ", filteredImprovementWorks); removeCardsFromDiv("div.projectCardCardDiv"); getProjects(container, listenersLoaded, filteredImprovementWorks); - const searchBar = document.getElementById("searchBarImprovement") as HTMLInputElement; + const searchBar = document.getElementById( + "searchBarImprovement" + ) as HTMLInputElement; searchBar?.addEventListener("keydown", function (event) { if (event.key === "Enter") { performSearch(searchBar, container); @@ -316,28 +372,40 @@ export async function loadPage(listenersLoaded: boolean) { } async function loadNolanStages() { - const selectStageHTML = $('#nolanStageSelection'); // loads the select type from html - const allStages = ["Planera", "Göra", "Studera", "Agera"] - allStages.forEach(stage => { - const generatedElement = document.createRange().createContextualFragment(` + const selectStageHTML = $("#nolanStageSelection"); // loads the select type from html + const allStages = ["Planera", "Göra", "Studera", "Agera"]; + allStages.forEach((stage) => { + const generatedElement = document.createRange().createContextualFragment( + ` <div class="form-check"> - <input class="form-check-input" type="checkbox" value="" id="`+stage+`"> - <label class="form-check-label" for="flexCheckDefault">` + stage + `</label> - </div>`) + <input class="form-check-input" type="checkbox" value="" id="` + + stage + + `"> + <label class="form-check-label" for="flexCheckDefault">` + + stage + + `</label> + </div>` + ); selectStageHTML.append(generatedElement); console.log("Adding HTML for for stage ", stage); }); } async function loadPatientRiskLevels() { - const selectPatientRiskLevelHTML = $('#patientRiskLevelSelection'); // loads the select type from html - const allRiskLevels = ["Grön", "Blå", "Gul", "Röd"] - allRiskLevels.forEach(riskLevel => { - const generatedElement = document.createRange().createContextualFragment(` + const selectPatientRiskLevelHTML = $("#patientRiskLevelSelection"); // loads the select type from html + const allRiskLevels = ["Grön", "Blå", "Gul", "Röd"]; + allRiskLevels.forEach((riskLevel) => { + const generatedElement = document.createRange().createContextualFragment( + ` <div class="form-check"> - <input class="form-check-input" type="checkbox" value="" id="`+riskLevel+`"> - <label class="form-check-label" for="flexCheckDefault">Risknivå ` + riskLevel + `</label> - </div>`) + <input class="form-check-input" type="checkbox" value="" id="` + + riskLevel + + `"> + <label class="form-check-label" for="flexCheckDefault">Risknivå ` + + riskLevel + + `</label> + </div>` + ); selectPatientRiskLevelHTML.append(generatedElement); console.log("Adding HTML for for risk level ", riskLevel); }); @@ -346,27 +414,29 @@ async function loadPatientRiskLevels() { function sortProjects( selectElement: Element, listenersLoaded: boolean, - ascendingDates: boolean, - ) { - // Sort in reversed order if ascendingDates is true - const cardsToIterate = ascendingDates ? [...projectCards].reverse() : projectCards; - - // Loop through the saved array of cards and generate HTML for each card - for (const card of cardsToIterate) { - let cardHTML = card.generateHTML(); - let div = document.createElement("div"); - div.className = "projectCardCardDiv"; // Set the class name(s) here - div.innerHTML = cardHTML; - if (!selectElement) return; - selectElement.appendChild(div); // Stop if the container isn't found - addEventListener(card.projectId, card); - } + ascendingDates: boolean +) { + // Sort in reversed order if ascendingDates is true + const cardsToIterate = ascendingDates + ? [...projectCards].reverse() + : projectCards; + + // Loop through the saved array of cards and generate HTML for each card + for (const card of cardsToIterate) { + let cardHTML = card.generateHTML(); + let div = document.createElement("div"); + div.className = "projectCardCardDiv"; // Set the class name(s) here + div.innerHTML = cardHTML; + if (!selectElement) return; + selectElement.appendChild(div); // Stop if the container isn't found + addEventListener(card.projectId, card); + } } async function getProjects( selectElement: Element, listenersLoaded: boolean, - improvementWorks: any[], + improvementWorks: any[] ) { let id = 0; projectCards = []; @@ -374,6 +444,7 @@ async function getProjects( let title = improvementWork.name; let department = await getObjectById("unit", improvementWork.unitId); let projectLeader = await getImprovementWorkResponsible(improvementWork.id); + let dateStarted = improvementWork.dateStarted; if (department) { let card = new projectCard( id, @@ -382,7 +453,8 @@ async function getProjects( title, improvementWork.content, improvementWork.id, - improvementWork.currentStage + improvementWork.currentStage, + dateStarted ); projectCards.push(card); let cardHTML = card.generateHTML(); @@ -399,13 +471,13 @@ async function getProjects( }); } -export async function addEventListener( - projectId: string, - card: projectCard -) { - - $("#ongoingSeeDetailsButton"+projectId).off("click").on("click",async function () { - const expandedDiv = document.getElementById("expandedOngoingWorkCard" + projectId); +export async function addEventListener(projectId: string, card: projectCard) { + $("#ongoingSeeDetailsButton" + projectId) + .off("click") + .on("click", async function () { + const expandedDiv = document.getElementById( + "expandedOngoingWorkCard" + projectId + ); if (expandedDiv && expandedDiv.style.display === "none") { card.showMoreInfo( `expandedOngoingWorkCard` + projectId, @@ -419,7 +491,9 @@ export async function addEventListener( } }); - $("#project-button-"+projectId).off("click").on("click", async function () { + $("#project-button-" + projectId) + .off("click") + .on("click", async function () { let tmp = await getObjectById("improvementWork", projectId); const currentStage = tmp.currentStage; if (currentStage === "Act") { @@ -434,8 +508,8 @@ export async function addEventListener( loadProjectPageP(projectId); } }); - - /*$(document).on("click", "#" + projectId, async function (event) { + + /*$(document).on("click", "#" + projectId, async function (event) { let tmp = await getObjectById("improvementWork", projectId); const currentStage = tmp.currentStage; const element = event.target as HTMLElement; @@ -472,11 +546,11 @@ export async function addEventListener( } const patientRiskLevelMapping: { [key: string]: string } = { - Grön: "Green", - Blå: "Blue", - Gul: "Yellow", - Röd: "Red" -} + Grön: "Green", + Blå: "Blue", + Gul: "Yellow", + Röd: "Red", +}; const nolanStageMapping: { [key: string]: string } = { Planera: "Plan", @@ -493,11 +567,11 @@ async function performSearch(searchBar: HTMLInputElement, container: Element) { // Remove each element projectCards = []; - let query: { [key: string]: string | boolean} = {}; - query.completed = false + let query: { [key: string]: string | boolean } = {}; + query.completed = false; removeCardsFromDiv("div.projectCardCardDiv"); - + if (inputValue !== "") { const matchedStage = Object.keys(nolanStageMapping).find((stage) => stage.toLowerCase().includes(inputValue.toLowerCase()) diff --git a/client/dist/login.bundle.js b/client/dist/login.bundle.js index bcd9dade13e76230e31ecf58865c793cd267d56d..7a65d34116e86e936f07616ad5ea2bcc7cfb2fc9 100644 --- a/client/dist/login.bundle.js +++ b/client/dist/login.bundle.js @@ -96,7 +96,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n alert(\"Felaktiga inloggnings-uppgifter\");\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); /***/ }), @@ -106,7 +106,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyB7n9YIDCmeyzeZzteFnXqOUBijzEO59ls\",\n authDomain: \"backup-277c3.firebaseapp.com\",\n projectId: \"backup-277c3\",\n storageBucket: \"backup-277c3.appspot.com\",\n messagingSenderId: \"296015398098\",\n appId: \"1:296015398098:web:71e1d1ec2b0c370e5a590b\",\n measurementId: \"G-E933CXWWCG\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyDqkaVZMr11J4mfnR0auqoQilZyPfyD-x4\",\n authDomain: \"c3solutions-dc109.firebaseapp.com\",\n projectId: \"c3solutions-dc109\",\n storageBucket: \"c3solutions-dc109.appspot.com\",\n messagingSenderId: \"902143402555\",\n appId: \"1:902143402555:web:29213e81de0a0cba38b21e\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); /***/ }), @@ -156,7 +156,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*****************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\nfunction loadPage() {\n var container = document.querySelector('#container-fluid');\n if (!container) return; // Stop if the container isn't found\n fetch('KnowledgeBank/Nolans3.html').then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement('div');\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector('.nolans-main-container');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n}\n\n//# sourceURL=webpack://c3/./client/KnowledgeBank/Nolans3.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\nfunction loadPage() {\n var container = document.querySelector(\"#container-fluid\");\n if (!container) return; // Stop if the container isn't found\n fetch(\"KnowledgeBank/Nolans3.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".nolans-main-container\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n}\n\n//# sourceURL=webpack://c3/./client/KnowledgeBank/Nolans3.js?"); /***/ }), @@ -256,7 +256,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \***************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ideaBank/ideaBank.js */ \"./client/ideaBank/ideaBank.js\");\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nvar projectCards = [];\nvar filteredImprovementWorks = [];\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, currentStage) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.stage = currentStage;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n var stageImages = {\n Act: \"../images/Hemsida_PGSA_A.png\",\n Study: \"../images/Hemsida_PGSA_S.png\",\n Do: \"../images/Hemsida_PGSA_G.png\",\n Plan: \"../images/Hemsida_PGSA_P.png\",\n Finished: \"path/to/finished-image.jpg\"\n };\n var stageKey = this.stage;\n // Check if the stage is directly a key in stageImages\n if (!stageImages[stageKey]) {\n // If not, try to map the Swedish stage to English using nolanStageMapping\n stageKey = nolanStageMapping[stageKey];\n }\n // Now get the imageUrl using the stageKey\n var imageUrl = stageImages[stageKey];\n return \"\\n <div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: default;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n </div>\\n <button id=\\\"project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n <div>\\n <img class=\\\"statusImage\\\" src=\\\"\").concat(imageUrl, \"\\\" alt=\\\"Stage Image\\\">\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.projectId, \"\\\" class = \\\"moreInfoClass\\\">> Mer information</p>\\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}();\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var container, checkedHospitalIds, checkedUnitIds, checkedNolanStages, checkedPatientRiskLevels, ascendingDates, searchBar;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context6.next = 3;\n break;\n }\n return _context6.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = [];\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n checkedNolanStages = [];\n checkedPatientRiskLevels = [];\n ascendingDates = false;\n fetch(\"currentProjects/currentProjects.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n var createNolanStageCheckBoxContainer = tempContainer.querySelector('#nolanStageSelection');\n var createPatientRiskLevelCheckBoxContainer = tempContainer.querySelector('#patientRiskLevelSelection');\n var createOrderSelectionContainer = tempContainer.querySelector('#orderSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createHospitalCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"unitSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadUnits)(checkedHospitalIds);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createUnitCheckBoxContainer\");\n // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n _context2.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context2.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n }\n if (createNolanStageCheckBoxContainer) {\n createNolanStageCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n checkboxes = createNolanStageCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedNolanStages = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedNolanStages.push(inputCheckbox.id);\n checkedNolanStages.push(nolanStageMapping[inputCheckbox.id]);\n console.log(\"checkedNolanStages: \", checkedNolanStages);\n }\n });\n _context3.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 5:\n filteredImprovementWorks = _context3.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n });\n }\n if (createPatientRiskLevelCheckBoxContainer) {\n createPatientRiskLevelCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n checkboxes = createPatientRiskLevelCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createPatientRiskLevelCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedPatientRiskLevels = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedPatientRiskLevels.push(inputCheckbox.id);\n checkedPatientRiskLevels.push(patientRiskLevelMapping[inputCheckbox.id]);\n console.log(\"checkedPatientRiskLevels: \", checkedPatientRiskLevels);\n }\n });\n _context4.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context4.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n });\n }\n if (createOrderSelectionContainer) {\n createOrderSelectionContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var inputCheckbox;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n inputCheckbox = event.target;\n ascendingDates = inputCheckbox.checked;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n sortProjects(container, listenersLoaded, ascendingDates);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n _context6.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({\n completed: false\n });\n case 12:\n filteredImprovementWorks = _context6.sent;\n console.log(\"Filtered improvementWorks: \", filteredImprovementWorks);\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n searchBar = document.getElementById(\"searchBarImprovement\");\n searchBar === null || searchBar === void 0 ? void 0 : searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar, container);\n }\n });\n console.log(\"Loading hospitals\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"hospitalSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadHospitals)();\n loadNolanStages();\n loadPatientRiskLevels();\n case 23:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction loadNolanStages() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var selectStageHTML, allStages;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n selectStageHTML = $('#nolanStageSelection'); // loads the select type from html\n allStages = [\"Planera\", \"Göra\", \"Studera\", \"Agera\"];\n allStages.forEach(function (stage) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + stage + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + stage + \"</label>\\n </div>\");\n selectStageHTML.append(generatedElement);\n console.log(\"Adding HTML for for stage \", stage);\n });\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction loadPatientRiskLevels() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var selectPatientRiskLevelHTML, allRiskLevels;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n selectPatientRiskLevelHTML = $('#patientRiskLevelSelection'); // loads the select type from html\n allRiskLevels = [\"Grön\", \"Blå\", \"Gul\", \"Röd\"];\n allRiskLevels.forEach(function (riskLevel) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + riskLevel + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">Riskniv\\xE5 \" + riskLevel + \"</label>\\n </div>\");\n selectPatientRiskLevelHTML.append(generatedElement);\n console.log(\"Adding HTML for for risk level \", riskLevel);\n });\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction sortProjects(selectElement, listenersLoaded, ascendingDates) {\n // Sort in reversed order if ascendingDates is true\n var cardsToIterate = ascendingDates ? _toConsumableArray(projectCards).reverse() : projectCards;\n // Loop through the saved array of cards and generate HTML for each card\n var _iterator = _createForOfIteratorHelper(cardsToIterate),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var card = _step.value;\n var cardHTML = card.generateHTML();\n var div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (!selectElement) return;\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(card.projectId, card);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction getProjects(selectElement, listenersLoaded, improvementWorks) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this = this;\n var id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n id = 0;\n projectCards = [];\n improvementWorks.forEach(function (improvementWork) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, projectLeader, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = improvementWork.name;\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", improvementWork.unitId);\n case 3:\n department = _context9.sent;\n _context9.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 6:\n projectLeader = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n card = new projectCard(id, projectLeader.firstName + \" \" + projectLeader.lastName, department.name, title, improvementWork.content, improvementWork.id, improvementWork.currentStage);\n projectCards.push(card);\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(improvementWork.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(improvementWork.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n $(\"#ongoingSeeDetailsButton\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var expandedDiv;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n expandedDiv = document.getElementById(\"expandedOngoingWorkCard\" + projectId);\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n } else {\n card.closeMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n }\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n $(\"#project-button-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context12.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n });\n /*$(document).on(\"click\", \"#\" + projectId, async function (event) {\n let tmp = await getObjectById(\"improvementWork\", projectId);\n const currentStage = tmp.currentStage;\n const element = event.target as HTMLElement;\n if (element.classList.contains(\"moreInfoClass\")) {\n const expandedDiv = document.getElementById(\n \"expandedOngoingWorkCard\" + projectId\n );\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n } else {\n card.closeMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n }\n } else if (element.classList.contains(\"projectButton\") || element.classList.contains(\"toSinglePage\")) {\n document.removeEventListener(\"click\", event.target);\n if (currentStage === \"Act\") {\n loadProjectPageA(projectId);\n } else if (currentStage === \"Study\") {\n loadProjectPageS(projectId);\n } else if (currentStage === \"Do\") {\n loadProjectPageG(projectId);\n } else if (currentStage === \"Plan\") {\n loadProjectPageP(projectId);\n } else if (currentStage === \"Finished\") {\n loadProjectPageP(projectId);\n }\n }\n });*/\n case 2:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\nfunction performSearch(searchBar, container) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var inputValue, query, matchedStage;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n inputValue = searchBar.value; //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n query = {};\n query.completed = false;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n if (inputValue !== \"\") {\n matchedStage = Object.keys(nolanStageMapping).find(function (stage) {\n return stage.toLowerCase().includes(inputValue.toLowerCase());\n });\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n _context14.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)(query);\n case 10:\n filteredImprovementWorks = _context14.sent;\n _context14.next = 13;\n return getProjects(container, true, filteredImprovementWorks);\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ideaBank/ideaBank.js */ \"./client/ideaBank/ideaBank.js\");\n/* harmony import */ var _projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../projectPage/projectPage.js */ \"./client/projectPage/projectPage.js\");\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nvar projectCards = [];\nvar filteredImprovementWorks = [];\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, currentStage, dateStarted) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.stage = currentStage;\n this.dateStarted = dateStarted;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n var stageImages = {\n Act: \"../images/Hemsida_PGSA_A.png\",\n Study: \"../images/Hemsida_PGSA_S.png\",\n Do: \"../images/Hemsida_PGSA_G.png\",\n Plan: \"../images/Hemsida_PGSA_P.png\",\n Finished: \"path/to/finished-image.jpg\"\n };\n var stageKey = this.stage;\n // Check if the stage is directly a key in stageImages\n if (!stageImages[stageKey]) {\n // If not, try to map the Swedish stage to English using nolanStageMapping\n stageKey = nolanStageMapping[stageKey];\n }\n // Now get the imageUrl using the stageKey\n var imageUrl = stageImages[stageKey];\n return \"\\n <div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: default;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n\\n <p class=\\\"toSinglePage\\\" id=ongoingCardStartDate\\\" style=\\\"font-size: 12px;\\\">\").concat((0,_projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__.formatDate)(this.dateStarted), \"</p>\\n </div>\\n <button id=\\\"project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n <div>\\n <img class=\\\"statusImage\\\" src=\\\"\").concat(imageUrl, \"\\\" alt=\\\"Stage Image\\\">\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.projectId, \"\\\" class = \\\"moreInfoClass\\\">> Mer information</p>\\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}();\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var container, checkedHospitalIds, checkedUnitIds, checkedNolanStages, checkedPatientRiskLevels, ascendingDates, searchBar;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context6.next = 3;\n break;\n }\n return _context6.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = [];\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n checkedNolanStages = [];\n checkedPatientRiskLevels = [];\n ascendingDates = false;\n fetch(\"currentProjects/currentProjects.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector(\"#hospitalSelection\");\n var createUnitCheckBoxContainer = tempContainer.querySelector(\"#unitSelection\");\n var createNolanStageCheckBoxContainer = tempContainer.querySelector(\"#nolanStageSelection\");\n var createPatientRiskLevelCheckBoxContainer = tempContainer.querySelector(\"#patientRiskLevelSelection\");\n var createOrderSelectionContainer = tempContainer.querySelector(\"#orderSelection\");\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createHospitalCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log(\"Checked hospitals:\", checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"unitSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadUnits)(checkedHospitalIds);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createUnitCheckBoxContainer\");\n // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n _context2.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context2.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n }\n if (createNolanStageCheckBoxContainer) {\n createNolanStageCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n checkboxes = createNolanStageCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedNolanStages = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedNolanStages.push(inputCheckbox.id);\n checkedNolanStages.push(nolanStageMapping[inputCheckbox.id]);\n console.log(\"checkedNolanStages: \", checkedNolanStages);\n }\n });\n _context3.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 5:\n filteredImprovementWorks = _context3.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n });\n }\n if (createPatientRiskLevelCheckBoxContainer) {\n createPatientRiskLevelCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n checkboxes = createPatientRiskLevelCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createPatientRiskLevelCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedPatientRiskLevels = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedPatientRiskLevels.push(inputCheckbox.id);\n checkedPatientRiskLevels.push(patientRiskLevelMapping[inputCheckbox.id]);\n console.log(\"checkedPatientRiskLevels: \", checkedPatientRiskLevels);\n }\n });\n _context4.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context4.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n });\n }\n if (createOrderSelectionContainer) {\n createOrderSelectionContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var inputCheckbox;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n inputCheckbox = event.target;\n ascendingDates = inputCheckbox.checked;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n sortProjects(container, listenersLoaded, ascendingDates);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n _context6.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({\n completed: false\n });\n case 12:\n filteredImprovementWorks = _context6.sent;\n console.log(\"Filtered improvementWorks: \", filteredImprovementWorks);\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n searchBar = document.getElementById(\"searchBarImprovement\");\n searchBar === null || searchBar === void 0 ? void 0 : searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar, container);\n }\n });\n console.log(\"Loading hospitals\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"hospitalSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadHospitals)();\n loadNolanStages();\n loadPatientRiskLevels();\n case 23:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction loadNolanStages() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var selectStageHTML, allStages;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n selectStageHTML = $(\"#nolanStageSelection\"); // loads the select type from html\n allStages = [\"Planera\", \"Göra\", \"Studera\", \"Agera\"];\n allStages.forEach(function (stage) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + stage + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + stage + \"</label>\\n </div>\");\n selectStageHTML.append(generatedElement);\n console.log(\"Adding HTML for for stage \", stage);\n });\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction loadPatientRiskLevels() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var selectPatientRiskLevelHTML, allRiskLevels;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n selectPatientRiskLevelHTML = $(\"#patientRiskLevelSelection\"); // loads the select type from html\n allRiskLevels = [\"Grön\", \"Blå\", \"Gul\", \"Röd\"];\n allRiskLevels.forEach(function (riskLevel) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + riskLevel + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">Riskniv\\xE5 \" + riskLevel + \"</label>\\n </div>\");\n selectPatientRiskLevelHTML.append(generatedElement);\n console.log(\"Adding HTML for for risk level \", riskLevel);\n });\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction sortProjects(selectElement, listenersLoaded, ascendingDates) {\n // Sort in reversed order if ascendingDates is true\n var cardsToIterate = ascendingDates ? _toConsumableArray(projectCards).reverse() : projectCards;\n // Loop through the saved array of cards and generate HTML for each card\n var _iterator = _createForOfIteratorHelper(cardsToIterate),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var card = _step.value;\n var cardHTML = card.generateHTML();\n var div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (!selectElement) return;\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(card.projectId, card);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction getProjects(selectElement, listenersLoaded, improvementWorks) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this = this;\n var id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n id = 0;\n projectCards = [];\n improvementWorks.forEach(function (improvementWork) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, projectLeader, dateStarted, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = improvementWork.name;\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", improvementWork.unitId);\n case 3:\n department = _context9.sent;\n _context9.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 6:\n projectLeader = _context9.sent;\n dateStarted = improvementWork.dateStarted;\n if (!department) {\n _context9.next = 22;\n break;\n }\n card = new projectCard(id, projectLeader.firstName + \" \" + projectLeader.lastName, department.name, title, improvementWork.content, improvementWork.id, improvementWork.currentStage, dateStarted);\n projectCards.push(card);\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 17;\n break;\n }\n return _context9.abrupt(\"return\");\n case 17:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(improvementWork.id, card);\n id++;\n _context9.next = 23;\n break;\n case 22:\n console.log(improvementWork.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 23:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n $(\"#ongoingSeeDetailsButton\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var expandedDiv;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n expandedDiv = document.getElementById(\"expandedOngoingWorkCard\" + projectId);\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n } else {\n card.closeMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n }\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n $(\"#project-button-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context12.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n });\n /*$(document).on(\"click\", \"#\" + projectId, async function (event) {\n let tmp = await getObjectById(\"improvementWork\", projectId);\n const currentStage = tmp.currentStage;\n const element = event.target as HTMLElement;\n if (element.classList.contains(\"moreInfoClass\")) {\n const expandedDiv = document.getElementById(\n \"expandedOngoingWorkCard\" + projectId\n );\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n } else {\n card.closeMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n }\n } else if (element.classList.contains(\"projectButton\") || element.classList.contains(\"toSinglePage\")) {\n document.removeEventListener(\"click\", event.target);\n if (currentStage === \"Act\") {\n loadProjectPageA(projectId);\n } else if (currentStage === \"Study\") {\n loadProjectPageS(projectId);\n } else if (currentStage === \"Do\") {\n loadProjectPageG(projectId);\n } else if (currentStage === \"Plan\") {\n loadProjectPageP(projectId);\n } else if (currentStage === \"Finished\") {\n loadProjectPageP(projectId);\n }\n }\n });*/\n case 2:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\nfunction performSearch(searchBar, container) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var inputValue, query, matchedStage;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n inputValue = searchBar.value; //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n query = {};\n query.completed = false;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n if (inputValue !== \"\") {\n matchedStage = Object.keys(nolanStageMapping).find(function (stage) {\n return stage.toLowerCase().includes(inputValue.toLowerCase());\n });\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n _context14.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)(query);\n case 10:\n filteredImprovementWorks = _context14.sent;\n _context14.next = 13;\n return getProjects(container, true, filteredImprovementWorks);\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); /***/ }), @@ -266,7 +266,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \****************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Database/authentication.js */ \"./client/Database/authentication.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../client/Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction logoutUser(event) {\n event.preventDefault();\n alert(\"logout\");\n (0,_Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__.logout)();\n}\nvar myIdeaCards = {};\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n _createClass(IdeaCard, [{\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImageHP\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFadedHP\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n </div>\\n <div class=\\\"ideaCardUpvotesHP\\\">\\n <div class=\\\"upvoteDivHP\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\\\" class=\\\"ideaCardFont\\\"> \").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFont\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 1</p>\\n <p class=\\\"ideaCardFont\\\">K0mment 2</p>\\n </div>\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera Projekt</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, signedInUserHsaID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var user, userSuggestions, counter;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", signedInUserHsaID);\n case 2:\n user = _context2.sent;\n _context2.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 5:\n userSuggestions = _context2.sent;\n //If there exist filter use those instead to get matching suggestions rest should not need to be changed\n counter = 0;\n userSuggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context.sent;\n _context.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context.sent;\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n addListner(userSuggestions, container);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\nfunction addListner(cardArray, element) {\n element.addEventListener(\"click\", function (event) {\n var target = event.target;\n //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n var cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n var card = cardArray[cardId];\n var expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n console.log(expandedDiv);\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n });\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var container;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context5.next = 3;\n break;\n }\n return _context5.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n fetch(\"homePage.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var tempContainer, specificElement, tmp, user, suggestionContainer, nameHeaderElement, userFullName, projectContainer, departmentContainer, departmentDiv;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n // Create a temporary container element to hold the loaded content\n tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n specificElement = tempContainer.querySelector(\".main-content\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n tmp = localStorage.getItem(\"user\");\n console.log(tmp);\n if (tmp) {\n _context4.next = 9;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context4.abrupt(\"return\");\n case 9:\n user = JSON.parse(tmp)[0];\n suggestionContainer = document.getElementById(\"suggestion-container\");\n if (!suggestionContainer) {\n _context4.next = 15;\n break;\n }\n _context4.next = 14;\n return createNewCards(\"HomePageIdeaCardDiv\", suggestionContainer, user.id);\n case 14:\n addListner(myIdeaCards, container);\n case 15:\n nameHeaderElement = document.getElementById(\"user-name-header\");\n userFullName = user.firstName + \" \" + user.lastName;\n if (nameHeaderElement) {\n nameHeaderElement.textContent = userFullName;\n }\n projectContainer = document.getElementById(\"project-container\");\n if (!projectContainer) {\n _context4.next = 22;\n break;\n }\n _context4.next = 22;\n return getProjects(projectContainer, listenersLoaded, user.id);\n case 22:\n console.log(\"innan\");\n departmentContainer = document.getElementById(\"department-container\");\n departmentDiv = document.getElementById(\"nolanAct\");\n if (!(departmentContainer && document.getElementById(\"nolanAct\") && departmentDiv.innerHTML.trim() === \"\")) {\n _context4.next = 29;\n break;\n }\n console.log(\"anropar funktionen\");\n _context4.next = 29;\n return improvementWorkInfo(departmentContainer, user);\n case 29:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n $(\"#homepage-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context6.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\n/*\nasync function performSearch(searchBar: HTMLInputElement, container: HTMLElement) {\n let inputValue = searchBar.value;\n //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n\n let query: { [key: string]: string } = {};\n\n removeCardsFromDiv(\"div.projectCardCardDiv\");\n \n if (inputValue !== \"\") {\n const matchedStage = Object.keys(nolanStageMapping).find((stage) =>\n stage.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n filteredImprovementWorks = await getImprovementWorks(query);\n await getProjects(container, true, filteredImprovementWorks);\n}\n*/\nfunction improvementWorkInfo(departmentContainer, user) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var improvementWorks, improvementWorksPlan, improvementWorksDo, improvementWorkStudy, improvementWorksAct, _iterator, _step, improvementWork, improvementWorkContainer, improvementWorkContainerElement, nolanAct, actElement, nolanPlan, planElement, nolanDo, doElement, nolanStudy, studyElement;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorks)({\n unitId: user.unitId\n });\n case 2:\n improvementWorks = _context8.sent;\n console.log(\"i funktionen\");\n //Count number of improvement works in the department in each stage\n improvementWorksPlan = 0;\n improvementWorksDo = 0;\n improvementWorkStudy = 0;\n improvementWorksAct = 0;\n _iterator = _createForOfIteratorHelper(improvementWorks);\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n improvementWork = _step.value;\n if (improvementWork.currentStage == \"Plan\") {\n improvementWorksPlan += 1;\n } else if (improvementWork.currentStage == \"Do\") {\n improvementWorksDo += 1;\n } else if (improvementWork.currentStage == \"Study\") {\n improvementWorkStudy += 1;\n } else if (improvementWork.currentStage == \"Act\") {\n improvementWorksAct += 1;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n improvementWorkContainer = document.getElementById(\"numberOfImprovementWorks\"); //Append a div displaying the number of improvement works in the user's department\n improvementWorkContainerElement = document.createElement(\"p\");\n improvementWorkContainerElement.innerHTML = \"Antal pågående förbättringsarbeten i din avdelning: \" + improvementWorks.length;\n if (improvementWorkContainer && improvementWorkContainer.innerHTML.trim() === \"\") {\n improvementWorkContainer.appendChild(improvementWorkContainerElement);\n }\n //Append the text displaying the number of improvement works that are in the stage act\n nolanAct = document.getElementById(\"nolanAct\");\n actElement = document.createElement(\"p\");\n actElement.innerHTML = \"Agera: \" + improvementWorksAct;\n actElement.style.margin = \"5px\";\n if (nolanAct) {\n nolanAct.appendChild(actElement);\n }\n //Append the text displaying the number of improvement works that are in the stage plan\n nolanPlan = document.getElementById(\"nolanPlan\");\n planElement = document.createElement(\"p\");\n planElement.innerHTML = \"Planera: \" + improvementWorksPlan;\n planElement.style.margin = \"5px\";\n if (nolanPlan) {\n nolanPlan.appendChild(planElement);\n }\n //Append the text displaying the number of improvement works that are in the stage do\n nolanDo = document.getElementById(\"nolanDo\");\n doElement = document.createElement(\"p\");\n doElement.innerHTML = \"Göra: \" + improvementWorksDo;\n doElement.style.margin = \"5px\";\n if (nolanDo) {\n nolanDo.appendChild(doElement);\n }\n //Append the text displaying the number of improvement works that are in the stage study\n nolanStudy = document.getElementById(\"nolanStudy\");\n studyElement = document.createElement(\"p\");\n studyElement.innerHTML = \"Studera: \" + improvementWorkStudy;\n studyElement.style.margin = \"5px\";\n if (nolanStudy) {\n nolanStudy.appendChild(studyElement);\n }\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this3 = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorksForUser)(userHsaId);\n case 2:\n data = _context10.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = project.name;\n _context9.next = 3;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", project.unitId);\n case 3:\n department = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n name = \"Projektledare\"; //Waiting for backend fix\n description = project.content;\n i = id;\n card = new projectCard(i, name, department.name, title, description, project.id);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"homePageProjectCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(project.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(project.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nvar projectCards = {};\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"homeTotalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: pointer;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"homepage-\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n </div>\\n\\n <!--<button id=\\\"homepage-project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>-->\\n\\n\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n \\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"homepage-expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"homepage-expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}(); //<p id=\"homepage-ongoingSeeDetailsButton${this.projectId}\" class = \"moreInfoClass\">> Mer information</p>\n\n//# sourceURL=webpack://c3/./client/homePage.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Database/authentication.js */ \"./client/Database/authentication.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../client/Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./projectPage/projectPage.js */ \"./client/projectPage/projectPage.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nfunction logoutUser(event) {\n event.preventDefault();\n alert(\"logout\");\n (0,_Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__.logout)();\n}\nvar myIdeaCards = {};\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n _createClass(IdeaCard, [{\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImageHP\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFadedHP\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n </div>\\n <div class=\\\"ideaCardUpvotesHP\\\">\\n <div class=\\\"upvoteDivHP\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\\\" class=\\\"ideaCardFont\\\"> \").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFont\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 1</p>\\n <p class=\\\"ideaCardFont\\\">K0mment 2</p>\\n </div>\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera Projekt</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, signedInUserHsaID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var user, userSuggestions, counter;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", signedInUserHsaID);\n case 2:\n user = _context2.sent;\n _context2.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 5:\n userSuggestions = _context2.sent;\n //If there exist filter use those instead to get matching suggestions rest should not need to be changed\n counter = 0;\n userSuggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context.sent;\n _context.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context.sent;\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n addListner(userSuggestions, container);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\nfunction addListner(cardArray, element) {\n element.addEventListener(\"click\", function (event) {\n var target = event.target;\n //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n var cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n var card = cardArray[cardId];\n var expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n console.log(expandedDiv);\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n });\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var container;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context5.next = 3;\n break;\n }\n return _context5.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n fetch(\"homePage.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var tempContainer, specificElement, tmp, user, suggestionContainer, nameHeaderElement, userFullName, projectContainer, departmentContainer, departmentDiv;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n // Create a temporary container element to hold the loaded content\n tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n specificElement = tempContainer.querySelector(\".main-content\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n tmp = localStorage.getItem(\"user\");\n console.log(tmp);\n if (tmp) {\n _context4.next = 9;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context4.abrupt(\"return\");\n case 9:\n user = JSON.parse(tmp)[0];\n suggestionContainer = document.getElementById(\"suggestion-container\");\n if (!suggestionContainer) {\n _context4.next = 15;\n break;\n }\n _context4.next = 14;\n return createNewCards(\"HomePageIdeaCardDiv\", suggestionContainer, user.id);\n case 14:\n addListner(myIdeaCards, container);\n case 15:\n nameHeaderElement = document.getElementById(\"user-name-header\");\n userFullName = user.firstName + \" \" + user.lastName;\n if (nameHeaderElement) {\n nameHeaderElement.textContent = userFullName;\n }\n projectContainer = document.getElementById(\"project-container\");\n if (!projectContainer) {\n _context4.next = 22;\n break;\n }\n _context4.next = 22;\n return getProjects(projectContainer, listenersLoaded, user.id);\n case 22:\n console.log(\"innan\");\n departmentContainer = document.getElementById(\"department-container\");\n departmentDiv = document.getElementById(\"nolanAct\");\n if (!(departmentContainer && document.getElementById(\"nolanAct\") && departmentDiv.innerHTML.trim() === \"\")) {\n _context4.next = 29;\n break;\n }\n console.log(\"anropar funktionen\");\n _context4.next = 29;\n return improvementWorkInfo(departmentContainer, user);\n case 29:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n $(\"#homepage-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context6.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\n/*\nasync function performSearch(searchBar: HTMLInputElement, container: HTMLElement) {\n let inputValue = searchBar.value;\n //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n\n let query: { [key: string]: string } = {};\n\n removeCardsFromDiv(\"div.projectCardCardDiv\");\n \n if (inputValue !== \"\") {\n const matchedStage = Object.keys(nolanStageMapping).find((stage) =>\n stage.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n filteredImprovementWorks = await getImprovementWorks(query);\n await getProjects(container, true, filteredImprovementWorks);\n}\n*/\nfunction improvementWorkInfo(departmentContainer, user) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var improvementWorks, improvementWorksPlan, improvementWorksDo, improvementWorkStudy, improvementWorksAct, _iterator, _step, improvementWork, improvementWorkContainer, improvementWorkContainerElement, nolanAct, actElement, nolanPlan, planElement, nolanDo, doElement, nolanStudy, studyElement;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorks)({\n unitId: user.unitId\n });\n case 2:\n improvementWorks = _context8.sent;\n console.log(\"i funktionen\");\n //Count number of improvement works in the department in each stage\n improvementWorksPlan = 0;\n improvementWorksDo = 0;\n improvementWorkStudy = 0;\n improvementWorksAct = 0;\n _iterator = _createForOfIteratorHelper(improvementWorks);\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n improvementWork = _step.value;\n if (improvementWork.currentStage == \"Plan\") {\n improvementWorksPlan += 1;\n } else if (improvementWork.currentStage == \"Do\") {\n improvementWorksDo += 1;\n } else if (improvementWork.currentStage == \"Study\") {\n improvementWorkStudy += 1;\n } else if (improvementWork.currentStage == \"Act\") {\n improvementWorksAct += 1;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n improvementWorkContainer = document.getElementById(\"numberOfImprovementWorks\"); //Append a div displaying the number of improvement works in the user's department\n improvementWorkContainerElement = document.createElement(\"p\");\n improvementWorkContainerElement.innerHTML = \"Antal pågående förbättringsarbeten i din avdelning: \" + improvementWorks.length;\n if (improvementWorkContainer && improvementWorkContainer.innerHTML.trim() === \"\") {\n improvementWorkContainer.appendChild(improvementWorkContainerElement);\n }\n //Append the text displaying the number of improvement works that are in the stage act\n nolanAct = document.getElementById(\"nolanAct\");\n actElement = document.createElement(\"p\");\n actElement.innerHTML = \"Agera: \" + improvementWorksAct;\n actElement.style.margin = \"5px\";\n if (nolanAct) {\n nolanAct.appendChild(actElement);\n }\n //Append the text displaying the number of improvement works that are in the stage plan\n nolanPlan = document.getElementById(\"nolanPlan\");\n planElement = document.createElement(\"p\");\n planElement.innerHTML = \"Planera: \" + improvementWorksPlan;\n planElement.style.margin = \"5px\";\n if (nolanPlan) {\n nolanPlan.appendChild(planElement);\n }\n //Append the text displaying the number of improvement works that are in the stage do\n nolanDo = document.getElementById(\"nolanDo\");\n doElement = document.createElement(\"p\");\n doElement.innerHTML = \"Göra: \" + improvementWorksDo;\n doElement.style.margin = \"5px\";\n if (nolanDo) {\n nolanDo.appendChild(doElement);\n }\n //Append the text displaying the number of improvement works that are in the stage study\n nolanStudy = document.getElementById(\"nolanStudy\");\n studyElement = document.createElement(\"p\");\n studyElement.innerHTML = \"Studera: \" + improvementWorkStudy;\n studyElement.style.margin = \"5px\";\n if (nolanStudy) {\n nolanStudy.appendChild(studyElement);\n }\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this3 = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorksForUser)(userHsaId);\n case 2:\n data = _context10.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = project.name;\n _context9.next = 3;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", project.unitId);\n case 3:\n department = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n name = \"Projektledare\"; //Waiting for backend fix\n description = project.content;\n i = id;\n card = new projectCard(i, name, department.name, title, description, project.id, project.dateStarted);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"homePageProjectCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(project.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(project.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nvar projectCards = {};\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, dateStarted) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.dateStarted = dateStarted;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"homeTotalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: pointer;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"homepage-\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardStartDate\\\" style=\\\"font-size: 12px;\\\"> \").concat((0,_projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__.formatDate)(this.dateStarted), \"</p>\\n </div>\\n\\n <!--<button id=\\\"homepage-project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>-->\\n\\n\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n \\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"homepage-expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"homepage-expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}(); //<p id=\"homepage-ongoingSeeDetailsButton${this.projectId}\" class = \"moreInfoClass\">> Mer information</p>\n\n//# sourceURL=webpack://c3/./client/homePage.js?"); /***/ }), @@ -276,7 +276,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearContent: () => (/* binding */ clearContent),\n/* harmony export */ loadHospitals: () => (/* binding */ loadHospitals),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadUnits: () => (/* binding */ loadUnits),\n/* harmony export */ removeCardsFromDiv: () => (/* binding */ removeCardsFromDiv),\n/* harmony export */ testFunc: () => (/* binding */ testFunc)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n//import {loadInitiatePage} from \"../SidebarAndHeader/pageHandler.js\";\nvar myIdeaCards = {};\n// Initialize filtered suggestions as empty array (potentially change to get all suggestions\nvar filteredSuggestions = [];\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n // <img src=\"images/upvoteIcon.png\" class =\"upvoteIcon\" alt=\"upvoteIcon\">\n _createClass(IdeaCard, [{\n key: \"addUpvote\",\n value: function addUpvote() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var tmp, user, suggestion;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n tmp = localStorage.getItem(\"user\");\n if (tmp) {\n _context.next = 4;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context.abrupt(\"return\");\n case 4:\n user = JSON.parse(tmp)[0];\n _context.next = 7;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.upvoteSuggestion)(this.suggestionID, user.id);\n case 7:\n _context.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n id: this.suggestionID\n });\n case 9:\n suggestion = _context.sent;\n this.upvoteCount = suggestion[0].upvotes.length;\n return _context.abrupt(\"return\", suggestion[0].upvotes.length);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImage\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFaded\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n <div class=\\\"ideaCardUpvotes\\\">\\n <div class=\\\"upvoteDiv\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" id = \\\"upvoteIconPic\").concat(this.id, \"\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\").concat(this.id, \"\\\" class=\\\"ideaCardFont upvoteNumber\\\" >\").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n \\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFontComments\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFontComments\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 7</p>\\n <p class=\\\"ideaCardFont\\\">Komment 2</p>\\n </div>\\n\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera f\\xF6rb\\xE4ttringsf\\xF6rslag</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n window.location.href = '../client/projectPage/projectPageP.html';\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, suggestions) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var counter;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n counter = 1;\n suggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context2.sent;\n _context2.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context2.sent;\n console.log(suggestion);\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction testFunc() {\n console.log(\"Test func works\");\n}\nfunction loadPage() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var container, scriptElement, checkedHospitalIds, checkedUnitIds, searchBar;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context7.next = 3;\n break;\n }\n return _context7.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n scriptElement = document.createElement(\"script\");\n scriptElement.src = \"../dist/ideaBank.bundle.js\";\n container.appendChild(scriptElement);\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n fetch(\"ideaBank/ideaBank.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n clearContent(\"unitSelection\");\n loadUnits(checkedHospitalIds);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n // Log all checked unit IDs\n _context6.next = 5;\n return getFilteredSuggestions(checkedUnitIds);\n case 5:\n filteredSuggestions = _context6.sent;\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 8:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n myIdeaCards = {};\n _context7.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 12:\n filteredSuggestions = _context7.sent;\n console.log(\"Filtered suggestions: \", filteredSuggestions);\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n _context7.next = 17;\n return createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 17:\n addListner(myIdeaCards, container);\n searchBar = document.getElementById(\"searchBarId\");\n searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar);\n }\n });\n loadHospitals();\n case 21:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction getFilteredSuggestions(checkedUnitIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var suggestions, _iterator, _step, checkedUnitId, allSuggestionsOfUnit;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n suggestions = [];\n if (!checkedUnitIds) {\n _context8.next = 24;\n break;\n }\n _iterator = _createForOfIteratorHelper(checkedUnitIds);\n _context8.prev = 3;\n _iterator.s();\n case 5:\n if ((_step = _iterator.n()).done) {\n _context8.next = 13;\n break;\n }\n checkedUnitId = _step.value;\n _context8.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n unitId: checkedUnitId\n });\n case 9:\n allSuggestionsOfUnit = _context8.sent;\n suggestions = suggestions.concat(allSuggestionsOfUnit);\n case 11:\n _context8.next = 5;\n break;\n case 13:\n _context8.next = 18;\n break;\n case 15:\n _context8.prev = 15;\n _context8.t0 = _context8[\"catch\"](3);\n _iterator.e(_context8.t0);\n case 18:\n _context8.prev = 18;\n _iterator.f();\n return _context8.finish(18);\n case 21:\n return _context8.abrupt(\"return\", suggestions);\n case 24:\n _context8.next = 26;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 26:\n suggestions = _context8.sent;\n return _context8.abrupt(\"return\", suggestions);\n case 28:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[3, 15, 18, 21]]);\n }));\n}\nfunction loadHospitals() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var selectHospitalHTML, allHospitals;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n selectHospitalHTML = $('#hospitalSelection'); // loads the select type from html\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({});\n case 3:\n allHospitals = _context9.sent;\n console.log(allHospitals);\n allHospitals.forEach(function (hospital) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + hospital.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + hospital.name + \"</label>\\n </div>\");\n selectHospitalHTML.append(generatedElement);\n console.log(\"Adding HTML for for hospital \", hospital.id);\n });\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n}\nfunction loadUnits(checkedHospitalIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var selectUnitHTML, allUnits, _iterator2, _step2, checkedHospitalId, allUnitsOfHospital;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n selectUnitHTML = $('#unitSelection'); // loads the select type from html\n allUnits = [];\n if (!(checkedHospitalIds.length != 0)) {\n _context10.next = 22;\n break;\n }\n _iterator2 = _createForOfIteratorHelper(checkedHospitalIds);\n _context10.prev = 4;\n _iterator2.s();\n case 6:\n if ((_step2 = _iterator2.n()).done) {\n _context10.next = 14;\n break;\n }\n checkedHospitalId = _step2.value;\n _context10.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n hospitalId: checkedHospitalId\n });\n case 10:\n allUnitsOfHospital = _context10.sent;\n allUnits = allUnits.concat(allUnitsOfHospital);\n case 12:\n _context10.next = 6;\n break;\n case 14:\n _context10.next = 19;\n break;\n case 16:\n _context10.prev = 16;\n _context10.t0 = _context10[\"catch\"](4);\n _iterator2.e(_context10.t0);\n case 19:\n _context10.prev = 19;\n _iterator2.f();\n return _context10.finish(19);\n case 22:\n allUnits.forEach(function (unit) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + unit.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + unit.name + \"</label>\\n </div>\");\n selectUnitHTML.append(generatedElement);\n console.log(\"Adding HTML for for unit \", unit.id);\n });\n case 23:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[4, 16, 19, 22]]);\n }));\n}\nfunction clearContent(id) {\n var container = document.getElementById(id);\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n}\nfunction addListner(cardArray, element) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n element.addEventListener(\"click\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var target, cardId, card, expandedDiv, _cardId, _card, upvoteDisplay;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n target = event.target; //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n console.log(\"fel Div\");\n cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n card = cardArray[cardId];\n expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n if (!(target && target.className.baseVal.includes(\"bi-caret-up upvoteSymbol\"))) {\n _context11.next = 14;\n break;\n }\n _cardId = parseInt(target.id.replace(\"upvoteIconPic\", \"\"), 10);\n if (!myIdeaCards[_cardId]) {\n _context11.next = 12;\n break;\n }\n _card = myIdeaCards[_cardId];\n _context11.next = 8;\n return _card.addUpvote();\n case 8:\n upvoteDisplay = document.getElementById(\"upvoteNumber\" + _cardId);\n if (upvoteDisplay) {\n upvoteDisplay.textContent = _card.upvoteCount.toString();\n }\n _context11.next = 13;\n break;\n case 12:\n console.error(\"Card not found for ID: \" + _cardId);\n case 13:\n console.log(\"upvoteIcon clicked\");\n case 14:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n}\nfunction removeCardsFromDiv(divName) {\n //Remove current elements\n var elementsToRemove = document.querySelectorAll(divName);\n // Remove each element\n elementsToRemove.forEach(function (element) {\n element.remove();\n });\n myIdeaCards = {};\n}\nfunction performSearch(searchBar) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var inputValue, container, suggestions, suggestionName, _iterator3, _step3, suggestion, users, spaceIndex, firstName, lastName, _iterator4, _step4, user, _iterator5, _step5, _user;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n inputValue = searchBar.value;\n console.log(\"Search query:\", inputValue);\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context13.next = 5;\n break;\n }\n return _context13.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n if (!(inputValue != \"\")) {\n _context13.next = 92;\n break;\n }\n _context13.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 9:\n suggestions = _context13.sent;\n suggestionName = false;\n _iterator3 = _createForOfIteratorHelper(suggestions);\n _context13.prev = 12;\n _iterator3.s();\n case 14:\n if ((_step3 = _iterator3.n()).done) {\n _context13.next = 24;\n break;\n }\n suggestion = _step3.value;\n if (!(suggestion.name.toLowerCase() >= inputValue.toLowerCase() && suggestion.name.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 22;\n break;\n }\n suggestionName = true;\n _context13.next = 20;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n name: suggestion.name\n });\n case 20:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 22:\n _context13.next = 14;\n break;\n case 24:\n _context13.next = 29;\n break;\n case 26:\n _context13.prev = 26;\n _context13.t0 = _context13[\"catch\"](12);\n _iterator3.e(_context13.t0);\n case 29:\n _context13.prev = 29;\n _iterator3.f();\n return _context13.finish(29);\n case 32:\n if (suggestionName) {\n _context13.next = 90;\n break;\n }\n _context13.next = 35;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({});\n case 35:\n users = _context13.sent;\n spaceIndex = inputValue.indexOf(\" \"); //If the search is for first and last name\n if (!(spaceIndex !== -1)) {\n _context13.next = 63;\n break;\n }\n firstName = inputValue.substring(0, spaceIndex).toLowerCase();\n lastName = inputValue.substring(spaceIndex + 1).toLowerCase();\n _iterator4 = _createForOfIteratorHelper(users);\n _context13.prev = 41;\n _iterator4.s();\n case 43:\n if ((_step4 = _iterator4.n()).done) {\n _context13.next = 53;\n break;\n }\n user = _step4.value;\n if (!(user.firstName.toLowerCase() >= firstName && user.firstName.toLowerCase() <= firstName + \"~\")) {\n _context13.next = 51;\n break;\n }\n if (!(user.lastName.toLowerCase() >= lastName && user.lastName.toLowerCase() <= lastName + \"~\")) {\n _context13.next = 51;\n break;\n }\n _context13.next = 49;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 49:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 51:\n _context13.next = 43;\n break;\n case 53:\n _context13.next = 58;\n break;\n case 55:\n _context13.prev = 55;\n _context13.t1 = _context13[\"catch\"](41);\n _iterator4.e(_context13.t1);\n case 58:\n _context13.prev = 58;\n _iterator4.f();\n return _context13.finish(58);\n case 61:\n _context13.next = 90;\n break;\n case 63:\n //If the search is for only first or last name\n _iterator5 = _createForOfIteratorHelper(users);\n _context13.prev = 64;\n _iterator5.s();\n case 66:\n if ((_step5 = _iterator5.n()).done) {\n _context13.next = 82;\n break;\n }\n _user = _step5.value;\n if (!(_user.firstName.toLowerCase() >= inputValue.toLowerCase() && _user.firstName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 75;\n break;\n }\n _context13.next = 71;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 71:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n _context13.next = 80;\n break;\n case 75:\n if (!(_user.lastName.toLowerCase() >= inputValue.toLowerCase() && _user.lastName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 80;\n break;\n }\n _context13.next = 78;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 78:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 80:\n _context13.next = 66;\n break;\n case 82:\n _context13.next = 87;\n break;\n case 84:\n _context13.prev = 84;\n _context13.t2 = _context13[\"catch\"](64);\n _iterator5.e(_context13.t2);\n case 87:\n _context13.prev = 87;\n _iterator5.f();\n return _context13.finish(87);\n case 90:\n _context13.next = 96;\n break;\n case 92:\n _context13.next = 94;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 94:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 96:\n addListner(myIdeaCards, container);\n case 97:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[12, 26, 29, 32], [41, 55, 58, 61], [64, 84, 87, 90]]);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/ideaBank/ideaBank.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearContent: () => (/* binding */ clearContent),\n/* harmony export */ loadHospitals: () => (/* binding */ loadHospitals),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadUnits: () => (/* binding */ loadUnits),\n/* harmony export */ removeCardsFromDiv: () => (/* binding */ removeCardsFromDiv),\n/* harmony export */ testFunc: () => (/* binding */ testFunc)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n//import {loadInitiatePage} from \"../SidebarAndHeader/pageHandler.js\";\nvar myIdeaCards = {};\n// Initialize filtered suggestions as empty array (potentially change to get all suggestions\nvar filteredSuggestions = [];\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n // <img src=\"images/upvoteIcon.png\" class =\"upvoteIcon\" alt=\"upvoteIcon\">\n _createClass(IdeaCard, [{\n key: \"addUpvote\",\n value: function addUpvote() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var tmp, user, suggestion;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n tmp = localStorage.getItem(\"user\");\n if (tmp) {\n _context.next = 4;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context.abrupt(\"return\");\n case 4:\n user = JSON.parse(tmp)[0];\n _context.next = 7;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.upvoteSuggestion)(this.suggestionID, user.id);\n case 7:\n _context.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n id: this.suggestionID\n });\n case 9:\n suggestion = _context.sent;\n this.upvoteCount = suggestion[0].upvotes.length;\n this.upvoteCount++;\n return _context.abrupt(\"return\", suggestion[0].upvotes.length);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImage\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFaded\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n <div class=\\\"ideaCardUpvotes\\\">\\n <div class=\\\"upvoteDiv\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"grey\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\" id=\\\"upvoteIconPic\").concat(this.id, \"\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg>\\n <div id =\\\"upvoteNumber\").concat(this.id, \"\\\" class=\\\"ideaCardFont upvoteNumber\\\" >\").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n \\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFontComments\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFontComments\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 7</p>\\n <p class=\\\"ideaCardFont\\\">Komment 2</p>\\n </div>\\n\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera f\\xF6rb\\xE4ttringsf\\xF6rslag</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n window.location.href = '../client/projectPage/projectPageP.html';\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, suggestions) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var counter;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n counter = 1;\n suggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context2.sent;\n _context2.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context2.sent;\n console.log(suggestion);\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction testFunc() {\n console.log(\"Test func works\");\n}\nfunction loadPage() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var container, scriptElement, checkedHospitalIds, checkedUnitIds, searchBar;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context7.next = 3;\n break;\n }\n return _context7.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n scriptElement = document.createElement(\"script\");\n scriptElement.src = \"../dist/ideaBank.bundle.js\";\n container.appendChild(scriptElement);\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n fetch(\"ideaBank/ideaBank.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n clearContent(\"unitSelection\");\n loadUnits(checkedHospitalIds);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n // Log all checked unit IDs\n _context6.next = 5;\n return getFilteredSuggestions(checkedUnitIds);\n case 5:\n filteredSuggestions = _context6.sent;\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 8:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n myIdeaCards = {};\n _context7.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 12:\n filteredSuggestions = _context7.sent;\n console.log(\"Filtered suggestions: \", filteredSuggestions);\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n _context7.next = 17;\n return createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 17:\n addListner(myIdeaCards, container);\n searchBar = document.getElementById(\"searchBarId\");\n searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar);\n }\n });\n loadHospitals();\n case 21:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction getFilteredSuggestions(checkedUnitIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var suggestions, _iterator, _step, checkedUnitId, allSuggestionsOfUnit;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n suggestions = [];\n if (!checkedUnitIds) {\n _context8.next = 24;\n break;\n }\n _iterator = _createForOfIteratorHelper(checkedUnitIds);\n _context8.prev = 3;\n _iterator.s();\n case 5:\n if ((_step = _iterator.n()).done) {\n _context8.next = 13;\n break;\n }\n checkedUnitId = _step.value;\n _context8.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n unitId: checkedUnitId\n });\n case 9:\n allSuggestionsOfUnit = _context8.sent;\n suggestions = suggestions.concat(allSuggestionsOfUnit);\n case 11:\n _context8.next = 5;\n break;\n case 13:\n _context8.next = 18;\n break;\n case 15:\n _context8.prev = 15;\n _context8.t0 = _context8[\"catch\"](3);\n _iterator.e(_context8.t0);\n case 18:\n _context8.prev = 18;\n _iterator.f();\n return _context8.finish(18);\n case 21:\n return _context8.abrupt(\"return\", suggestions);\n case 24:\n _context8.next = 26;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 26:\n suggestions = _context8.sent;\n return _context8.abrupt(\"return\", suggestions);\n case 28:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[3, 15, 18, 21]]);\n }));\n}\nfunction loadHospitals() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var selectHospitalHTML, allHospitals;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n selectHospitalHTML = $('#hospitalSelection'); // loads the select type from html\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({});\n case 3:\n allHospitals = _context9.sent;\n console.log(allHospitals);\n allHospitals.forEach(function (hospital) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + hospital.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + hospital.name + \"</label>\\n </div>\");\n selectHospitalHTML.append(generatedElement);\n console.log(\"Adding HTML for for hospital \", hospital.id);\n });\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n}\nfunction loadUnits(checkedHospitalIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var selectUnitHTML, allUnits, _iterator2, _step2, checkedHospitalId, allUnitsOfHospital;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n selectUnitHTML = $('#unitSelection'); // loads the select type from html\n allUnits = [];\n if (!(checkedHospitalIds.length != 0)) {\n _context10.next = 22;\n break;\n }\n _iterator2 = _createForOfIteratorHelper(checkedHospitalIds);\n _context10.prev = 4;\n _iterator2.s();\n case 6:\n if ((_step2 = _iterator2.n()).done) {\n _context10.next = 14;\n break;\n }\n checkedHospitalId = _step2.value;\n _context10.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n hospitalId: checkedHospitalId\n });\n case 10:\n allUnitsOfHospital = _context10.sent;\n allUnits = allUnits.concat(allUnitsOfHospital);\n case 12:\n _context10.next = 6;\n break;\n case 14:\n _context10.next = 19;\n break;\n case 16:\n _context10.prev = 16;\n _context10.t0 = _context10[\"catch\"](4);\n _iterator2.e(_context10.t0);\n case 19:\n _context10.prev = 19;\n _iterator2.f();\n return _context10.finish(19);\n case 22:\n allUnits.forEach(function (unit) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + unit.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + unit.name + \"</label>\\n </div>\");\n selectUnitHTML.append(generatedElement);\n console.log(\"Adding HTML for for unit \", unit.id);\n });\n case 23:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[4, 16, 19, 22]]);\n }));\n}\nfunction clearContent(id) {\n var container = document.getElementById(id);\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n}\nfunction addListner(cardArray, element) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n element.addEventListener(\"click\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var target, cardId, card, expandedDiv, _cardId, _card, upvoteDisplay;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n target = event.target; //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n console.log(\"fel Div\");\n cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n card = cardArray[cardId];\n expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n if (!(target && target.className.baseVal.includes(\"bi-caret-up upvoteSymbol\"))) {\n _context11.next = 16;\n break;\n }\n _cardId = parseInt(target.id.replace(\"upvoteIconPic\", \"\"), 10);\n if (!myIdeaCards[_cardId]) {\n _context11.next = 14;\n break;\n }\n _card = myIdeaCards[_cardId];\n _context11.next = 8;\n return _card.addUpvote();\n case 8:\n if (target.getAttribute(\"fill\") === \"grey\") {\n target.setAttribute(\"fill\", \"red\"); // Replace 'red' with the color indicating an upvote\n } else {\n target.setAttribute(\"fill\", \"grey\"); // Revert back to default color\n }\n upvoteDisplay = document.getElementById(\"upvoteNumber\" + _cardId);\n console.log(_card.upvoteCount.toString());\n if (upvoteDisplay) {\n upvoteDisplay.textContent = _card.upvoteCount.toString();\n }\n _context11.next = 15;\n break;\n case 14:\n console.error(\"Card not found for ID: \" + _cardId);\n case 15:\n console.log(\"upvoteIcon clicked\");\n case 16:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n}\nfunction removeCardsFromDiv(divName) {\n //Remove current elements\n var elementsToRemove = document.querySelectorAll(divName);\n // Remove each element\n elementsToRemove.forEach(function (element) {\n element.remove();\n });\n myIdeaCards = {};\n}\nfunction performSearch(searchBar) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var inputValue, container, suggestions, suggestionName, _iterator3, _step3, suggestion, users, spaceIndex, firstName, lastName, _iterator4, _step4, user, _iterator5, _step5, _user;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n inputValue = searchBar.value;\n console.log(\"Search query:\", inputValue);\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context13.next = 5;\n break;\n }\n return _context13.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n if (!(inputValue != \"\")) {\n _context13.next = 92;\n break;\n }\n _context13.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 9:\n suggestions = _context13.sent;\n suggestionName = false;\n _iterator3 = _createForOfIteratorHelper(suggestions);\n _context13.prev = 12;\n _iterator3.s();\n case 14:\n if ((_step3 = _iterator3.n()).done) {\n _context13.next = 24;\n break;\n }\n suggestion = _step3.value;\n if (!(suggestion.name.toLowerCase() >= inputValue.toLowerCase() && suggestion.name.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 22;\n break;\n }\n suggestionName = true;\n _context13.next = 20;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n name: suggestion.name\n });\n case 20:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 22:\n _context13.next = 14;\n break;\n case 24:\n _context13.next = 29;\n break;\n case 26:\n _context13.prev = 26;\n _context13.t0 = _context13[\"catch\"](12);\n _iterator3.e(_context13.t0);\n case 29:\n _context13.prev = 29;\n _iterator3.f();\n return _context13.finish(29);\n case 32:\n if (suggestionName) {\n _context13.next = 90;\n break;\n }\n _context13.next = 35;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({});\n case 35:\n users = _context13.sent;\n spaceIndex = inputValue.indexOf(\" \"); //If the search is for first and last name\n if (!(spaceIndex !== -1)) {\n _context13.next = 63;\n break;\n }\n firstName = inputValue.substring(0, spaceIndex).toLowerCase();\n lastName = inputValue.substring(spaceIndex + 1).toLowerCase();\n _iterator4 = _createForOfIteratorHelper(users);\n _context13.prev = 41;\n _iterator4.s();\n case 43:\n if ((_step4 = _iterator4.n()).done) {\n _context13.next = 53;\n break;\n }\n user = _step4.value;\n if (!(user.firstName.toLowerCase() >= firstName && user.firstName.toLowerCase() <= firstName + \"~\")) {\n _context13.next = 51;\n break;\n }\n if (!(user.lastName.toLowerCase() >= lastName && user.lastName.toLowerCase() <= lastName + \"~\")) {\n _context13.next = 51;\n break;\n }\n _context13.next = 49;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 49:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 51:\n _context13.next = 43;\n break;\n case 53:\n _context13.next = 58;\n break;\n case 55:\n _context13.prev = 55;\n _context13.t1 = _context13[\"catch\"](41);\n _iterator4.e(_context13.t1);\n case 58:\n _context13.prev = 58;\n _iterator4.f();\n return _context13.finish(58);\n case 61:\n _context13.next = 90;\n break;\n case 63:\n //If the search is for only first or last name\n _iterator5 = _createForOfIteratorHelper(users);\n _context13.prev = 64;\n _iterator5.s();\n case 66:\n if ((_step5 = _iterator5.n()).done) {\n _context13.next = 82;\n break;\n }\n _user = _step5.value;\n if (!(_user.firstName.toLowerCase() >= inputValue.toLowerCase() && _user.firstName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 75;\n break;\n }\n _context13.next = 71;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 71:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n _context13.next = 80;\n break;\n case 75:\n if (!(_user.lastName.toLowerCase() >= inputValue.toLowerCase() && _user.lastName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 80;\n break;\n }\n _context13.next = 78;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 78:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 80:\n _context13.next = 66;\n break;\n case 82:\n _context13.next = 87;\n break;\n case 84:\n _context13.prev = 84;\n _context13.t2 = _context13[\"catch\"](64);\n _iterator5.e(_context13.t2);\n case 87:\n _context13.prev = 87;\n _iterator5.f();\n return _context13.finish(87);\n case 90:\n _context13.next = 96;\n break;\n case 92:\n _context13.next = 94;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 94:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 96:\n addListner(myIdeaCards, container);\n case 97:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[12, 26, 29, 32], [41, 55, 58, 61], [64, 84, 87, 90]]);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/ideaBank/ideaBank.js?"); /***/ }), @@ -326,7 +326,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadImprovementWorkTasks: () => (/* binding */ loadImprovementWorkTasks),\n/* harmony export */ loadMemberModal: () => (/* binding */ loadMemberModal),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadProjectHeader: () => (/* binding */ loadProjectHeader),\n/* harmony export */ openTaskModal: () => (/* binding */ openTaskModal)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../initiateForbattringsarbete/initiateIdea.js */ \"./client/initiateForbattringsarbete/initiateIdea.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction loadPage(projectId) {}\nfunction loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var tasks, taskListElement;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getTasks)({\n improvementWorkId: projectId,\n stage: stage\n });\n case 2:\n tasks = _context2.sent;\n taskListElement = $('#' + taskListId);\n modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId);\n if (taskListElement) {\n tasks.forEach(function (task) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var taskElement, textSpan, checkbox;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n taskElement = $('<li>');\n textSpan = $('<span>').text(task.name);\n checkbox = $('<input>').attr('type', 'checkbox');\n if (task.completed) {\n checkbox.prop('checked', true);\n }\n taskElement.append(textSpan, checkbox);\n taskElement.addClass(stageListClassName);\n taskElement.on('click', function () {\n var startDateFormatted = formatDate(task.startDate);\n var endDateFormatted = formatDate(task.deadlineDate);\n openTaskModal(task.name, task.content, task.id, startDateFormatted, endDateFormatted, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId);\n });\n checkbox.on('click', function (event) {\n event.stopPropagation();\n if (checkbox.prop('checked')) {\n console.log('Checkbox is checked.');\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', task.id, {\n completed: true\n });\n } else {\n console.log('Checkbox is unchecked.');\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', task.id, {\n completed: false\n });\n }\n });\n taskListElement.append(taskElement); // Stop if the container isn't found\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n } else {\n console.log(\"Task container not found\");\n }\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Opens modal for a task\nfunction openTaskModal(taskTitle, taskContent, taskId, taskStart, taskEnd, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId) {\n var taskModal = document.getElementById(taskModalId);\n var title = document.getElementById(taskTitleId);\n var content = document.getElementById(taskContentId);\n var startDate = document.getElementById(taskStartDateId);\n var endDate = document.getElementById(taskEndDateId);\n if (taskModal) {\n taskModal.setAttribute('data-task-id', taskId);\n if (title && content && startDate && endDate) {\n title.value = \"\";\n content.value = \"\";\n startDate.value = \"\";\n endDate.value = \"\";\n if (taskTitle !== \"\" || taskContent !== \"\" || taskStart !== \"\" || taskEnd !== \"\") {\n title.value = taskTitle;\n content.value = taskContent;\n startDate.value = taskStart;\n endDate.value = taskEnd;\n }\n }\n taskModal.style.display = 'block';\n }\n}\n//Adds eventlistener to close modal\nfunction modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId) {\n var closeButton = document.getElementById(closeBtnId);\n var taskModal = document.getElementById(taskModalId);\n var saveButton = document.getElementById(saveBtnId);\n var deleteButton = document.getElementById(deleteBtnId);\n if (closeButton && taskModal) {\n var closeBtnListener = closeButton.hasAttribute('data-has-event-listener');\n if (!closeBtnListener) {\n closeButton.setAttribute('data-has-event-listener', 'true');\n closeButton.addEventListener('click', function () {\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n\n if (saveButton && taskModal) {\n var saveBtnListener = saveButton.hasAttribute('data-has-event-listener');\n if (!saveBtnListener) {\n saveButton.setAttribute('data-has-event-listener', 'true');\n saveButton.addEventListener('click', function () {\n createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId);\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n\n if (deleteButton && taskModal) {\n var deleteBtnListener = deleteButton.hasAttribute('data-has-event-listener');\n if (!deleteBtnListener) {\n deleteButton.setAttribute('data-has-event-listener', 'true');\n deleteButton.addEventListener('click', function () {\n deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId);\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n}\n\nfunction createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var modalElement, titleElement, deadlineElement, startElement, contentElement, taskId, improvementWork, deadline, startDate, listElement, _deadline, _startDate, _listElement;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n //title: string, deadline : Date, startDate: Date, stage: string, content: string\n modalElement = document.getElementById(taskModalId);\n titleElement = document.getElementById(taskTitleId);\n deadlineElement = document.getElementById(taskEndDateId);\n startElement = document.getElementById(taskStartDateId);\n contentElement = document.getElementById(taskContentId);\n taskId = modalElement.getAttribute('data-task-id');\n if (!(taskId === '')) {\n _context3.next = 13;\n break;\n }\n _context3.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)('improvementWork', projectId);\n case 9:\n improvementWork = _context3.sent;\n if (titleElement && contentElement && deadlineElement && startElement) {\n if (titleElement.value !== \"\", deadlineElement.value !== \"\", startElement.value !== \"\", contentElement.value !== \"\") {\n deadline = new Date(deadlineElement.value); //Date string to timestamp\n startDate = new Date(startElement.value); //Date string to timestamp\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.createTaskOnImprovementWork)(null, projectId, titleElement.value, deadline, startDate, improvementWork.currentStage, contentElement.value);\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n } else {\n console.log(\"All input fields for the task where not filled in\");\n }\n } else {\n console.log(\"All input element where not found\");\n }\n _context3.next = 21;\n break;\n case 13:\n if (!taskId) {\n _context3.next = 21;\n break;\n }\n _deadline = new Date(deadlineElement.value); //Date string to timestamp\n _startDate = new Date(startElement.value); //Date string to timestamp\n _context3.next = 18;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', taskId, {\n name: titleElement.value,\n deadlineDate: _deadline,\n startDate: _startDate,\n content: contentElement.value\n });\n case 18:\n _listElement = document.getElementById(taskListId);\n _listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n //loadPage(projectId); //Loads tasks since updated ASK for help\n case 21:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var modalElement, taskId, listElement;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n modalElement = document.getElementById(taskModalId);\n taskId = modalElement.getAttribute('data-task-id');\n if (!taskId) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.deleteInstance)('task', taskId);\n case 5:\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction formatDate(timeStamp) {\n var date = timeStamp.toDate();\n var day = String(date.getDate()).toString();\n var month = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based\n var year = String(date.getFullYear()).toString();\n if (parseInt(month, 10) < 10 && parseInt(day, 10) > 9) {\n return \"\".concat(year, \"-0\").concat(month, \"-\").concat(day);\n } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-\").concat(month, \"-0\").concat(day);\n } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-0\").concat(month, \"-0\").concat(day);\n } else {\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n }\n}\nfunction timestamptoDate(timestamp) {\n if (timestamp instanceof firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.Timestamp) {\n var date = timestamp.toDate();\n return date;\n } else {\n console.error('Invalid timestamp type.');\n return null;\n }\n}\nfunction getDaysMonthYear(startDate) {\n var currentTime = new Date();\n if (startDate) {\n var millisecondsDifference = currentTime.getTime() - startDate.getTime();\n // Convert milliseconds to seconds\n var secondsDifference = millisecondsDifference / 1000;\n // Calculate years, months, and days\n var years = Math.floor(secondsDifference / (365.25 * 24 * 60 * 60));\n var remainingSeconds = secondsDifference % (365.25 * 24 * 60 * 60);\n var months = Math.floor(remainingSeconds / (30 * 24 * 60 * 60)); // Assuming 30 days per month\n var days = Math.floor(remainingSeconds % (30 * 24 * 60 * 60) / (24 * 60 * 60));\n return \" \".concat(years, \" \\xE5r, \").concat(months, \" m\\xE5nader, \").concat(days, \" dagar.\");\n } else {\n return \"Det finns inget startdatum registrerat\";\n }\n}\nfunction loadProjectHeader(improvementWork) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this2 = this;\n var loadingIndicators, titleP, aAreaElement, resources, time, formatdateStarted, aUnitArray, projectLeader, members, aProjectLeader, aMembers, aUnit, aUnitElement, hospitalArray, aHospital, aHospitalElement;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n loadingIndicators = document.querySelectorAll(\".loadingIndicator\");\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = 'block';\n });\n titleP = document.getElementById(\"title\");\n titleP.textContent = improvementWork.name;\n aAreaElement = document.getElementById(\"pArea\");\n aAreaElement.textContent = improvementWork.area;\n resources = document.getElementById(\"pResources\");\n resources.textContent = improvementWork.resources;\n time = document.getElementById(\"pTime\");\n formatdateStarted = timestamptoDate(improvementWork.dateStarted);\n time.textContent = getDaysMonthYear(formatdateStarted);\n _context6.next = 13;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n unitId: improvementWork.unitId\n });\n case 13:\n aUnitArray = _context6.sent;\n _context6.next = 16;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 16:\n projectLeader = _context6.sent;\n _context6.next = 19;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsersForImprovementWork)(improvementWork.id);\n case 19:\n members = _context6.sent;\n aProjectLeader = document.getElementById(\"pLeader\");\n aProjectLeader.textContent = projectLeader.firstName + \" \" + projectLeader.lastName + \" (\" + projectLeader.email + \")\";\n aMembers = document.getElementById(\"pMembers\");\n members.forEach(function (member) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n aMembers.textContent = aMembers.textContent + member.firstName + \" \" + member.lastName + \", \";\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n //stop loding current members\n if (aUnitArray.length === 0) {\n console.log(\"Error loading the units.\");\n }\n aUnit = aUnitArray[0];\n aUnitElement = document.getElementById(\"pUnit\");\n aUnitElement.textContent = aUnit.name;\n _context6.next = 30;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalId: aUnit.hospitalId\n });\n case 30:\n hospitalArray = _context6.sent;\n if (hospitalArray.length === 0) {\n console.log(\"Error loading the hospitals.\");\n }\n aHospital = hospitalArray[0];\n aHospitalElement = document.getElementById(\"pHospital\");\n aHospitalElement.textContent = aHospital.name;\n // Close loading indicators\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = 'none';\n });\n case 36:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction getDivWithIdFromHTML(path, id) {\n // Returning a Promise\n return fetch(path).then(function (response) {\n return response.text();\n }).then(function (html) {\n // Create a temporary container\n var container = document.createElement('div');\n container.innerHTML = html;\n // Get the modal content from the container\n var element = container.querySelector(id);\n return element;\n })[\"catch\"](function (error) {\n console.error('Error loading modal content:', error);\n return null;\n });\n}\nfunction loadMemberModal() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var modalContent, selectEmployeeChangeSection;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return getDivWithIdFromHTML('../projectPage/addMemberModal.html', '#addMemberModal');\n case 2:\n modalContent = _context7.sent;\n if (modalContent) {\n $('#container-fluid').append(modalContent);\n $(modalContent).modal('show');\n }\n /* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees');\n if (selectMemberContent) {\n $('#modal-body').append(selectMemberContent);\n } */\n selectEmployeeChangeSection = document.querySelector('#selectEmployee');\n if (selectEmployeeChangeSection) {\n selectEmployeeChangeSection.addEventListener('change', _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.assignedEmployer);\n } else {\n console.error(\"Error: 'changebutton' not found\");\n }\n (0,_initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.loadEmployees)();\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPage.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatDate: () => (/* binding */ formatDate),\n/* harmony export */ loadImprovementWorkTasks: () => (/* binding */ loadImprovementWorkTasks),\n/* harmony export */ loadMemberModal: () => (/* binding */ loadMemberModal),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadProjectHeader: () => (/* binding */ loadProjectHeader),\n/* harmony export */ openTaskModal: () => (/* binding */ openTaskModal)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../initiateForbattringsarbete/initiateIdea.js */ \"./client/initiateForbattringsarbete/initiateIdea.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction loadPage(projectId) {}\nfunction loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var tasks, taskListElement;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getTasks)({\n improvementWorkId: projectId,\n stage: stage\n });\n case 2:\n tasks = _context2.sent;\n taskListElement = $(\"#\" + taskListId);\n modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId);\n if (taskListElement) {\n tasks.forEach(function (task) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var taskElement, textSpan, checkbox;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n taskElement = $(\"<li>\");\n textSpan = $(\"<span>\").text(task.name);\n checkbox = $(\"<input>\").attr(\"type\", \"checkbox\");\n if (task.completed) {\n checkbox.prop(\"checked\", true);\n }\n taskElement.append(textSpan, checkbox);\n taskElement.addClass(stageListClassName);\n taskElement.on(\"click\", function () {\n var startDateFormatted = formatDate(task.startDate);\n var endDateFormatted = formatDate(task.deadlineDate);\n openTaskModal(task.name, task.content, task.id, startDateFormatted, endDateFormatted, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId);\n });\n checkbox.on(\"click\", function (event) {\n event.stopPropagation();\n if (checkbox.prop(\"checked\")) {\n console.log(\"Checkbox is checked.\");\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", task.id, {\n completed: true\n });\n } else {\n console.log(\"Checkbox is unchecked.\");\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", task.id, {\n completed: false\n });\n }\n });\n taskListElement.append(taskElement); // Stop if the container isn't found\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n } else {\n console.log(\"Task container not found\");\n }\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Opens modal for a task\nfunction openTaskModal(taskTitle, taskContent, taskId, taskStart, taskEnd, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId) {\n var taskModal = document.getElementById(taskModalId);\n var title = document.getElementById(taskTitleId);\n var content = document.getElementById(taskContentId);\n var startDate = document.getElementById(taskStartDateId);\n var endDate = document.getElementById(taskEndDateId);\n if (taskModal) {\n taskModal.setAttribute(\"data-task-id\", taskId);\n if (title && content && startDate && endDate) {\n title.value = \"\";\n content.value = \"\";\n startDate.value = \"\";\n endDate.value = \"\";\n if (taskTitle !== \"\" || taskContent !== \"\" || taskStart !== \"\" || taskEnd !== \"\") {\n title.value = taskTitle;\n content.value = taskContent;\n startDate.value = taskStart;\n endDate.value = taskEnd;\n }\n }\n taskModal.style.display = \"block\";\n }\n}\n//Adds eventlistener to close modal\nfunction modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId) {\n var closeButton = document.getElementById(closeBtnId);\n var taskModal = document.getElementById(taskModalId);\n var saveButton = document.getElementById(saveBtnId);\n var deleteButton = document.getElementById(deleteBtnId);\n if (closeButton && taskModal) {\n var closeBtnListener = closeButton.hasAttribute(\"data-has-event-listener\");\n if (!closeBtnListener) {\n closeButton.setAttribute(\"data-has-event-listener\", \"true\");\n closeButton.addEventListener(\"click\", function () {\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n\n if (saveButton && taskModal) {\n var saveBtnListener = saveButton.hasAttribute(\"data-has-event-listener\");\n if (!saveBtnListener) {\n saveButton.setAttribute(\"data-has-event-listener\", \"true\");\n saveButton.addEventListener(\"click\", function () {\n createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId);\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n\n if (deleteButton && taskModal) {\n var deleteBtnListener = deleteButton.hasAttribute(\"data-has-event-listener\");\n if (!deleteBtnListener) {\n deleteButton.setAttribute(\"data-has-event-listener\", \"true\");\n deleteButton.addEventListener(\"click\", function () {\n deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId);\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n}\n\nfunction createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var modalElement, titleElement, deadlineElement, startElement, contentElement, taskId, improvementWork, deadline, startDate, listElement, _deadline, _startDate, _listElement;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n //title: string, deadline : Date, startDate: Date, stage: string, content: string\n modalElement = document.getElementById(taskModalId);\n titleElement = document.getElementById(taskTitleId);\n deadlineElement = document.getElementById(taskEndDateId);\n startElement = document.getElementById(taskStartDateId);\n contentElement = document.getElementById(taskContentId);\n taskId = modalElement.getAttribute(\"data-task-id\");\n if (!(taskId === \"\")) {\n _context3.next = 13;\n break;\n }\n _context3.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 9:\n improvementWork = _context3.sent;\n if (titleElement && contentElement && deadlineElement && startElement) {\n if (titleElement.value !== \"\", deadlineElement.value !== \"\", startElement.value !== \"\", contentElement.value !== \"\") {\n deadline = new Date(deadlineElement.value); //Date string to timestamp\n startDate = new Date(startElement.value); //Date string to timestamp\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.createTaskOnImprovementWork)(null, projectId, titleElement.value, deadline, startDate, improvementWork.currentStage, contentElement.value);\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n } else {\n console.log(\"All input fields for the task where not filled in\");\n }\n } else {\n console.log(\"All input element where not found\");\n }\n _context3.next = 21;\n break;\n case 13:\n if (!taskId) {\n _context3.next = 21;\n break;\n }\n _deadline = new Date(deadlineElement.value); //Date string to timestamp\n _startDate = new Date(startElement.value); //Date string to timestamp\n _context3.next = 18;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", taskId, {\n name: titleElement.value,\n deadlineDate: _deadline,\n startDate: _startDate,\n content: contentElement.value\n });\n case 18:\n _listElement = document.getElementById(taskListId);\n _listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n //loadPage(projectId); //Loads tasks since updated ASK for help\n case 21:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var modalElement, taskId, listElement;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n modalElement = document.getElementById(taskModalId);\n taskId = modalElement.getAttribute(\"data-task-id\");\n if (!taskId) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.deleteInstance)(\"task\", taskId);\n case 5:\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction formatDate(timeStamp) {\n var date = timeStamp.toDate();\n var day = String(date.getDate()).toString();\n var month = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based\n var year = String(date.getFullYear()).toString();\n if (parseInt(month, 10) < 10 && parseInt(day, 10) > 9) {\n return \"\".concat(year, \"-0\").concat(month, \"-\").concat(day);\n } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-\").concat(month, \"-0\").concat(day);\n } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-0\").concat(month, \"-0\").concat(day);\n } else {\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n }\n}\nfunction timestamptoDate(timestamp) {\n if (timestamp instanceof firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.Timestamp) {\n var date = timestamp.toDate();\n return date;\n } else {\n console.error(\"Invalid timestamp type.\");\n return null;\n }\n}\nfunction getDaysMonthYear(startDate) {\n var currentTime = new Date();\n if (startDate) {\n var millisecondsDifference = currentTime.getTime() - startDate.getTime();\n // Convert milliseconds to seconds\n var secondsDifference = millisecondsDifference / 1000;\n // Calculate years, months, and days\n var years = Math.floor(secondsDifference / (365.25 * 24 * 60 * 60));\n var remainingSeconds = secondsDifference % (365.25 * 24 * 60 * 60);\n var months = Math.floor(remainingSeconds / (30 * 24 * 60 * 60)); // Assuming 30 days per month\n var days = Math.floor(remainingSeconds % (30 * 24 * 60 * 60) / (24 * 60 * 60));\n return \" \".concat(years, \" \\xE5r, \").concat(months, \" m\\xE5nader, \").concat(days, \" dagar.\");\n } else {\n return \"Det finns inget startdatum registrerat\";\n }\n}\nfunction loadProjectHeader(improvementWork) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this2 = this;\n var loadingIndicators, titleP, aAreaElement, resources, time, formatdateStarted, aUnitArray, projectLeader, members, aProjectLeader, aMembers, aUnit, aUnitElement, hospitalArray, aHospital, aHospitalElement;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n // Show loading indicators\n loadingIndicators = document.querySelectorAll(\".loadingIndicator\");\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = \"block\";\n });\n titleP = document.getElementById(\"title\");\n titleP.textContent = improvementWork.name;\n aAreaElement = document.getElementById(\"pArea\");\n aAreaElement.textContent = improvementWork.area;\n resources = document.getElementById(\"pResources\");\n resources.textContent = improvementWork.resources;\n time = document.getElementById(\"pTime\");\n formatdateStarted = timestamptoDate(improvementWork.dateStarted);\n time.textContent = getDaysMonthYear(formatdateStarted);\n _context6.next = 13;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n unitId: improvementWork.unitId\n });\n case 13:\n aUnitArray = _context6.sent;\n _context6.next = 16;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 16:\n projectLeader = _context6.sent;\n _context6.next = 19;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsersForImprovementWork)(improvementWork.id);\n case 19:\n members = _context6.sent;\n aProjectLeader = document.getElementById(\"pLeader\");\n aProjectLeader.textContent = projectLeader.firstName + \" \" + projectLeader.lastName + \" (\" + projectLeader.email + \")\";\n aMembers = document.getElementById(\"pMembers\");\n members.forEach(function (member) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n aMembers.textContent = aMembers.textContent + member.firstName + \" \" + member.lastName + \", \";\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n //stop loding current members\n if (aUnitArray.length === 0) {\n console.log(\"Error loading the units.\");\n }\n aUnit = aUnitArray[0];\n aUnitElement = document.getElementById(\"pUnit\");\n aUnitElement.textContent = aUnit.name;\n _context6.next = 30;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalId: aUnit.hospitalId\n });\n case 30:\n hospitalArray = _context6.sent;\n if (hospitalArray.length === 0) {\n console.log(\"Error loading the hospitals.\");\n }\n aHospital = hospitalArray[0];\n aHospitalElement = document.getElementById(\"pHospital\");\n aHospitalElement.textContent = aHospital.name;\n // Close loading indicators\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = \"none\";\n });\n case 36:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction getDivWithIdFromHTML(path, id) {\n // Returning a Promise\n return fetch(path).then(function (response) {\n return response.text();\n }).then(function (html) {\n // Create a temporary container\n var container = document.createElement(\"div\");\n container.innerHTML = html;\n // Get the modal content from the container\n var element = container.querySelector(id);\n return element;\n })[\"catch\"](function (error) {\n console.error(\"Error loading modal content:\", error);\n return null;\n });\n}\nfunction loadMemberModal() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var modalContent, selectEmployeeChangeSection;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return getDivWithIdFromHTML(\"../projectPage/addMemberModal.html\", \"#addMemberModal\");\n case 2:\n modalContent = _context7.sent;\n if (modalContent) {\n $(\"#container-fluid\").append(modalContent);\n $(modalContent).modal(\"show\");\n }\n /* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees');\n if (selectMemberContent) {\n $('#modal-body').append(selectMemberContent);\n } */\n selectEmployeeChangeSection = document.querySelector(\"#selectEmployee\");\n if (selectEmployeeChangeSection) {\n selectEmployeeChangeSection.addEventListener(\"change\", _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.assignedEmployer);\n } else {\n console.error(\"Error: 'changebutton' not found\");\n }\n (0,_initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.loadEmployees)();\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPage.js?"); /***/ }), diff --git a/client/dist/makeSuggestion.bundle.js b/client/dist/makeSuggestion.bundle.js index e7fe0b62066f34f43ac478f0f95d5c375ff25ae6..0c473f9c52c120dc1a3efed22ea4321b2dda96d1 100644 --- a/client/dist/makeSuggestion.bundle.js +++ b/client/dist/makeSuggestion.bundle.js @@ -96,7 +96,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n alert(\"Felaktiga inloggnings-uppgifter\");\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); /***/ }), @@ -106,7 +106,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyB7n9YIDCmeyzeZzteFnXqOUBijzEO59ls\",\n authDomain: \"backup-277c3.firebaseapp.com\",\n projectId: \"backup-277c3\",\n storageBucket: \"backup-277c3.appspot.com\",\n messagingSenderId: \"296015398098\",\n appId: \"1:296015398098:web:71e1d1ec2b0c370e5a590b\",\n measurementId: \"G-E933CXWWCG\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyDqkaVZMr11J4mfnR0auqoQilZyPfyD-x4\",\n authDomain: \"c3solutions-dc109.firebaseapp.com\",\n projectId: \"c3solutions-dc109\",\n storageBucket: \"c3solutions-dc109.appspot.com\",\n messagingSenderId: \"902143402555\",\n appId: \"1:902143402555:web:29213e81de0a0cba38b21e\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); /***/ }), @@ -156,7 +156,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*****************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\nfunction loadPage() {\n var container = document.querySelector('#container-fluid');\n if (!container) return; // Stop if the container isn't found\n fetch('KnowledgeBank/Nolans3.html').then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement('div');\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector('.nolans-main-container');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n}\n\n//# sourceURL=webpack://c3/./client/KnowledgeBank/Nolans3.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\nfunction loadPage() {\n var container = document.querySelector(\"#container-fluid\");\n if (!container) return; // Stop if the container isn't found\n fetch(\"KnowledgeBank/Nolans3.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".nolans-main-container\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n}\n\n//# sourceURL=webpack://c3/./client/KnowledgeBank/Nolans3.js?"); /***/ }), @@ -256,7 +256,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \***************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ideaBank/ideaBank.js */ \"./client/ideaBank/ideaBank.js\");\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nvar projectCards = [];\nvar filteredImprovementWorks = [];\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, currentStage) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.stage = currentStage;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n var stageImages = {\n Act: \"../images/Hemsida_PGSA_A.png\",\n Study: \"../images/Hemsida_PGSA_S.png\",\n Do: \"../images/Hemsida_PGSA_G.png\",\n Plan: \"../images/Hemsida_PGSA_P.png\",\n Finished: \"path/to/finished-image.jpg\"\n };\n var stageKey = this.stage;\n // Check if the stage is directly a key in stageImages\n if (!stageImages[stageKey]) {\n // If not, try to map the Swedish stage to English using nolanStageMapping\n stageKey = nolanStageMapping[stageKey];\n }\n // Now get the imageUrl using the stageKey\n var imageUrl = stageImages[stageKey];\n return \"\\n <div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: default;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n </div>\\n <button id=\\\"project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n <div>\\n <img class=\\\"statusImage\\\" src=\\\"\").concat(imageUrl, \"\\\" alt=\\\"Stage Image\\\">\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.projectId, \"\\\" class = \\\"moreInfoClass\\\">> Mer information</p>\\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}();\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var container, checkedHospitalIds, checkedUnitIds, checkedNolanStages, checkedPatientRiskLevels, ascendingDates, searchBar;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context6.next = 3;\n break;\n }\n return _context6.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = [];\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n checkedNolanStages = [];\n checkedPatientRiskLevels = [];\n ascendingDates = false;\n fetch(\"currentProjects/currentProjects.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n var createNolanStageCheckBoxContainer = tempContainer.querySelector('#nolanStageSelection');\n var createPatientRiskLevelCheckBoxContainer = tempContainer.querySelector('#patientRiskLevelSelection');\n var createOrderSelectionContainer = tempContainer.querySelector('#orderSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createHospitalCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"unitSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadUnits)(checkedHospitalIds);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createUnitCheckBoxContainer\");\n // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n _context2.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context2.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n }\n if (createNolanStageCheckBoxContainer) {\n createNolanStageCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n checkboxes = createNolanStageCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedNolanStages = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedNolanStages.push(inputCheckbox.id);\n checkedNolanStages.push(nolanStageMapping[inputCheckbox.id]);\n console.log(\"checkedNolanStages: \", checkedNolanStages);\n }\n });\n _context3.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 5:\n filteredImprovementWorks = _context3.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n });\n }\n if (createPatientRiskLevelCheckBoxContainer) {\n createPatientRiskLevelCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n checkboxes = createPatientRiskLevelCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createPatientRiskLevelCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedPatientRiskLevels = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedPatientRiskLevels.push(inputCheckbox.id);\n checkedPatientRiskLevels.push(patientRiskLevelMapping[inputCheckbox.id]);\n console.log(\"checkedPatientRiskLevels: \", checkedPatientRiskLevels);\n }\n });\n _context4.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context4.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n });\n }\n if (createOrderSelectionContainer) {\n createOrderSelectionContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var inputCheckbox;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n inputCheckbox = event.target;\n ascendingDates = inputCheckbox.checked;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n sortProjects(container, listenersLoaded, ascendingDates);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n _context6.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({\n completed: false\n });\n case 12:\n filteredImprovementWorks = _context6.sent;\n console.log(\"Filtered improvementWorks: \", filteredImprovementWorks);\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n searchBar = document.getElementById(\"searchBarImprovement\");\n searchBar === null || searchBar === void 0 ? void 0 : searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar, container);\n }\n });\n console.log(\"Loading hospitals\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"hospitalSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadHospitals)();\n loadNolanStages();\n loadPatientRiskLevels();\n case 23:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction loadNolanStages() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var selectStageHTML, allStages;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n selectStageHTML = $('#nolanStageSelection'); // loads the select type from html\n allStages = [\"Planera\", \"Göra\", \"Studera\", \"Agera\"];\n allStages.forEach(function (stage) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + stage + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + stage + \"</label>\\n </div>\");\n selectStageHTML.append(generatedElement);\n console.log(\"Adding HTML for for stage \", stage);\n });\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction loadPatientRiskLevels() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var selectPatientRiskLevelHTML, allRiskLevels;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n selectPatientRiskLevelHTML = $('#patientRiskLevelSelection'); // loads the select type from html\n allRiskLevels = [\"Grön\", \"Blå\", \"Gul\", \"Röd\"];\n allRiskLevels.forEach(function (riskLevel) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + riskLevel + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">Riskniv\\xE5 \" + riskLevel + \"</label>\\n </div>\");\n selectPatientRiskLevelHTML.append(generatedElement);\n console.log(\"Adding HTML for for risk level \", riskLevel);\n });\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction sortProjects(selectElement, listenersLoaded, ascendingDates) {\n // Sort in reversed order if ascendingDates is true\n var cardsToIterate = ascendingDates ? _toConsumableArray(projectCards).reverse() : projectCards;\n // Loop through the saved array of cards and generate HTML for each card\n var _iterator = _createForOfIteratorHelper(cardsToIterate),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var card = _step.value;\n var cardHTML = card.generateHTML();\n var div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (!selectElement) return;\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(card.projectId, card);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction getProjects(selectElement, listenersLoaded, improvementWorks) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this = this;\n var id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n id = 0;\n projectCards = [];\n improvementWorks.forEach(function (improvementWork) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, projectLeader, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = improvementWork.name;\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", improvementWork.unitId);\n case 3:\n department = _context9.sent;\n _context9.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 6:\n projectLeader = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n card = new projectCard(id, projectLeader.firstName + \" \" + projectLeader.lastName, department.name, title, improvementWork.content, improvementWork.id, improvementWork.currentStage);\n projectCards.push(card);\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(improvementWork.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(improvementWork.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n $(\"#ongoingSeeDetailsButton\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var expandedDiv;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n expandedDiv = document.getElementById(\"expandedOngoingWorkCard\" + projectId);\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n } else {\n card.closeMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n }\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n $(\"#project-button-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context12.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n });\n /*$(document).on(\"click\", \"#\" + projectId, async function (event) {\n let tmp = await getObjectById(\"improvementWork\", projectId);\n const currentStage = tmp.currentStage;\n const element = event.target as HTMLElement;\n if (element.classList.contains(\"moreInfoClass\")) {\n const expandedDiv = document.getElementById(\n \"expandedOngoingWorkCard\" + projectId\n );\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n } else {\n card.closeMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n }\n } else if (element.classList.contains(\"projectButton\") || element.classList.contains(\"toSinglePage\")) {\n document.removeEventListener(\"click\", event.target);\n if (currentStage === \"Act\") {\n loadProjectPageA(projectId);\n } else if (currentStage === \"Study\") {\n loadProjectPageS(projectId);\n } else if (currentStage === \"Do\") {\n loadProjectPageG(projectId);\n } else if (currentStage === \"Plan\") {\n loadProjectPageP(projectId);\n } else if (currentStage === \"Finished\") {\n loadProjectPageP(projectId);\n }\n }\n });*/\n case 2:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\nfunction performSearch(searchBar, container) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var inputValue, query, matchedStage;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n inputValue = searchBar.value; //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n query = {};\n query.completed = false;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n if (inputValue !== \"\") {\n matchedStage = Object.keys(nolanStageMapping).find(function (stage) {\n return stage.toLowerCase().includes(inputValue.toLowerCase());\n });\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n _context14.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)(query);\n case 10:\n filteredImprovementWorks = _context14.sent;\n _context14.next = 13;\n return getProjects(container, true, filteredImprovementWorks);\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ideaBank/ideaBank.js */ \"./client/ideaBank/ideaBank.js\");\n/* harmony import */ var _projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../projectPage/projectPage.js */ \"./client/projectPage/projectPage.js\");\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nvar projectCards = [];\nvar filteredImprovementWorks = [];\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, currentStage, dateStarted) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.stage = currentStage;\n this.dateStarted = dateStarted;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n var stageImages = {\n Act: \"../images/Hemsida_PGSA_A.png\",\n Study: \"../images/Hemsida_PGSA_S.png\",\n Do: \"../images/Hemsida_PGSA_G.png\",\n Plan: \"../images/Hemsida_PGSA_P.png\",\n Finished: \"path/to/finished-image.jpg\"\n };\n var stageKey = this.stage;\n // Check if the stage is directly a key in stageImages\n if (!stageImages[stageKey]) {\n // If not, try to map the Swedish stage to English using nolanStageMapping\n stageKey = nolanStageMapping[stageKey];\n }\n // Now get the imageUrl using the stageKey\n var imageUrl = stageImages[stageKey];\n return \"\\n <div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: default;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n\\n <p class=\\\"toSinglePage\\\" id=ongoingCardStartDate\\\" style=\\\"font-size: 12px;\\\">\").concat((0,_projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__.formatDate)(this.dateStarted), \"</p>\\n </div>\\n <button id=\\\"project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n <div>\\n <img class=\\\"statusImage\\\" src=\\\"\").concat(imageUrl, \"\\\" alt=\\\"Stage Image\\\">\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.projectId, \"\\\" class = \\\"moreInfoClass\\\">> Mer information</p>\\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}();\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var container, checkedHospitalIds, checkedUnitIds, checkedNolanStages, checkedPatientRiskLevels, ascendingDates, searchBar;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context6.next = 3;\n break;\n }\n return _context6.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = [];\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n checkedNolanStages = [];\n checkedPatientRiskLevels = [];\n ascendingDates = false;\n fetch(\"currentProjects/currentProjects.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector(\"#hospitalSelection\");\n var createUnitCheckBoxContainer = tempContainer.querySelector(\"#unitSelection\");\n var createNolanStageCheckBoxContainer = tempContainer.querySelector(\"#nolanStageSelection\");\n var createPatientRiskLevelCheckBoxContainer = tempContainer.querySelector(\"#patientRiskLevelSelection\");\n var createOrderSelectionContainer = tempContainer.querySelector(\"#orderSelection\");\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createHospitalCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log(\"Checked hospitals:\", checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"unitSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadUnits)(checkedHospitalIds);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createUnitCheckBoxContainer\");\n // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n _context2.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context2.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n }\n if (createNolanStageCheckBoxContainer) {\n createNolanStageCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n checkboxes = createNolanStageCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedNolanStages = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedNolanStages.push(inputCheckbox.id);\n checkedNolanStages.push(nolanStageMapping[inputCheckbox.id]);\n console.log(\"checkedNolanStages: \", checkedNolanStages);\n }\n });\n _context3.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 5:\n filteredImprovementWorks = _context3.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n });\n }\n if (createPatientRiskLevelCheckBoxContainer) {\n createPatientRiskLevelCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n checkboxes = createPatientRiskLevelCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createPatientRiskLevelCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedPatientRiskLevels = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedPatientRiskLevels.push(inputCheckbox.id);\n checkedPatientRiskLevels.push(patientRiskLevelMapping[inputCheckbox.id]);\n console.log(\"checkedPatientRiskLevels: \", checkedPatientRiskLevels);\n }\n });\n _context4.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context4.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n });\n }\n if (createOrderSelectionContainer) {\n createOrderSelectionContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var inputCheckbox;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n inputCheckbox = event.target;\n ascendingDates = inputCheckbox.checked;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n sortProjects(container, listenersLoaded, ascendingDates);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n _context6.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({\n completed: false\n });\n case 12:\n filteredImprovementWorks = _context6.sent;\n console.log(\"Filtered improvementWorks: \", filteredImprovementWorks);\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n searchBar = document.getElementById(\"searchBarImprovement\");\n searchBar === null || searchBar === void 0 ? void 0 : searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar, container);\n }\n });\n console.log(\"Loading hospitals\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"hospitalSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadHospitals)();\n loadNolanStages();\n loadPatientRiskLevels();\n case 23:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction loadNolanStages() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var selectStageHTML, allStages;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n selectStageHTML = $(\"#nolanStageSelection\"); // loads the select type from html\n allStages = [\"Planera\", \"Göra\", \"Studera\", \"Agera\"];\n allStages.forEach(function (stage) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + stage + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + stage + \"</label>\\n </div>\");\n selectStageHTML.append(generatedElement);\n console.log(\"Adding HTML for for stage \", stage);\n });\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction loadPatientRiskLevels() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var selectPatientRiskLevelHTML, allRiskLevels;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n selectPatientRiskLevelHTML = $(\"#patientRiskLevelSelection\"); // loads the select type from html\n allRiskLevels = [\"Grön\", \"Blå\", \"Gul\", \"Röd\"];\n allRiskLevels.forEach(function (riskLevel) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + riskLevel + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">Riskniv\\xE5 \" + riskLevel + \"</label>\\n </div>\");\n selectPatientRiskLevelHTML.append(generatedElement);\n console.log(\"Adding HTML for for risk level \", riskLevel);\n });\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction sortProjects(selectElement, listenersLoaded, ascendingDates) {\n // Sort in reversed order if ascendingDates is true\n var cardsToIterate = ascendingDates ? _toConsumableArray(projectCards).reverse() : projectCards;\n // Loop through the saved array of cards and generate HTML for each card\n var _iterator = _createForOfIteratorHelper(cardsToIterate),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var card = _step.value;\n var cardHTML = card.generateHTML();\n var div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (!selectElement) return;\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(card.projectId, card);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction getProjects(selectElement, listenersLoaded, improvementWorks) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this = this;\n var id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n id = 0;\n projectCards = [];\n improvementWorks.forEach(function (improvementWork) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, projectLeader, dateStarted, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = improvementWork.name;\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", improvementWork.unitId);\n case 3:\n department = _context9.sent;\n _context9.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 6:\n projectLeader = _context9.sent;\n dateStarted = improvementWork.dateStarted;\n if (!department) {\n _context9.next = 22;\n break;\n }\n card = new projectCard(id, projectLeader.firstName + \" \" + projectLeader.lastName, department.name, title, improvementWork.content, improvementWork.id, improvementWork.currentStage, dateStarted);\n projectCards.push(card);\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 17;\n break;\n }\n return _context9.abrupt(\"return\");\n case 17:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(improvementWork.id, card);\n id++;\n _context9.next = 23;\n break;\n case 22:\n console.log(improvementWork.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 23:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n $(\"#ongoingSeeDetailsButton\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var expandedDiv;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n expandedDiv = document.getElementById(\"expandedOngoingWorkCard\" + projectId);\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n } else {\n card.closeMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n }\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n $(\"#project-button-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context12.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n });\n /*$(document).on(\"click\", \"#\" + projectId, async function (event) {\n let tmp = await getObjectById(\"improvementWork\", projectId);\n const currentStage = tmp.currentStage;\n const element = event.target as HTMLElement;\n if (element.classList.contains(\"moreInfoClass\")) {\n const expandedDiv = document.getElementById(\n \"expandedOngoingWorkCard\" + projectId\n );\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n } else {\n card.closeMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n }\n } else if (element.classList.contains(\"projectButton\") || element.classList.contains(\"toSinglePage\")) {\n document.removeEventListener(\"click\", event.target);\n if (currentStage === \"Act\") {\n loadProjectPageA(projectId);\n } else if (currentStage === \"Study\") {\n loadProjectPageS(projectId);\n } else if (currentStage === \"Do\") {\n loadProjectPageG(projectId);\n } else if (currentStage === \"Plan\") {\n loadProjectPageP(projectId);\n } else if (currentStage === \"Finished\") {\n loadProjectPageP(projectId);\n }\n }\n });*/\n case 2:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\nfunction performSearch(searchBar, container) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var inputValue, query, matchedStage;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n inputValue = searchBar.value; //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n query = {};\n query.completed = false;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n if (inputValue !== \"\") {\n matchedStage = Object.keys(nolanStageMapping).find(function (stage) {\n return stage.toLowerCase().includes(inputValue.toLowerCase());\n });\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n _context14.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)(query);\n case 10:\n filteredImprovementWorks = _context14.sent;\n _context14.next = 13;\n return getProjects(container, true, filteredImprovementWorks);\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); /***/ }), @@ -266,7 +266,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \****************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Database/authentication.js */ \"./client/Database/authentication.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../client/Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction logoutUser(event) {\n event.preventDefault();\n alert(\"logout\");\n (0,_Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__.logout)();\n}\nvar myIdeaCards = {};\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n _createClass(IdeaCard, [{\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImageHP\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFadedHP\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n </div>\\n <div class=\\\"ideaCardUpvotesHP\\\">\\n <div class=\\\"upvoteDivHP\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\\\" class=\\\"ideaCardFont\\\"> \").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFont\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 1</p>\\n <p class=\\\"ideaCardFont\\\">K0mment 2</p>\\n </div>\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera Projekt</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, signedInUserHsaID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var user, userSuggestions, counter;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", signedInUserHsaID);\n case 2:\n user = _context2.sent;\n _context2.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 5:\n userSuggestions = _context2.sent;\n //If there exist filter use those instead to get matching suggestions rest should not need to be changed\n counter = 0;\n userSuggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context.sent;\n _context.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context.sent;\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n addListner(userSuggestions, container);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\nfunction addListner(cardArray, element) {\n element.addEventListener(\"click\", function (event) {\n var target = event.target;\n //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n var cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n var card = cardArray[cardId];\n var expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n console.log(expandedDiv);\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n });\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var container;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context5.next = 3;\n break;\n }\n return _context5.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n fetch(\"homePage.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var tempContainer, specificElement, tmp, user, suggestionContainer, nameHeaderElement, userFullName, projectContainer, departmentContainer, departmentDiv;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n // Create a temporary container element to hold the loaded content\n tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n specificElement = tempContainer.querySelector(\".main-content\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n tmp = localStorage.getItem(\"user\");\n console.log(tmp);\n if (tmp) {\n _context4.next = 9;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context4.abrupt(\"return\");\n case 9:\n user = JSON.parse(tmp)[0];\n suggestionContainer = document.getElementById(\"suggestion-container\");\n if (!suggestionContainer) {\n _context4.next = 15;\n break;\n }\n _context4.next = 14;\n return createNewCards(\"HomePageIdeaCardDiv\", suggestionContainer, user.id);\n case 14:\n addListner(myIdeaCards, container);\n case 15:\n nameHeaderElement = document.getElementById(\"user-name-header\");\n userFullName = user.firstName + \" \" + user.lastName;\n if (nameHeaderElement) {\n nameHeaderElement.textContent = userFullName;\n }\n projectContainer = document.getElementById(\"project-container\");\n if (!projectContainer) {\n _context4.next = 22;\n break;\n }\n _context4.next = 22;\n return getProjects(projectContainer, listenersLoaded, user.id);\n case 22:\n console.log(\"innan\");\n departmentContainer = document.getElementById(\"department-container\");\n departmentDiv = document.getElementById(\"nolanAct\");\n if (!(departmentContainer && document.getElementById(\"nolanAct\") && departmentDiv.innerHTML.trim() === \"\")) {\n _context4.next = 29;\n break;\n }\n console.log(\"anropar funktionen\");\n _context4.next = 29;\n return improvementWorkInfo(departmentContainer, user);\n case 29:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n $(\"#homepage-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context6.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\n/*\nasync function performSearch(searchBar: HTMLInputElement, container: HTMLElement) {\n let inputValue = searchBar.value;\n //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n\n let query: { [key: string]: string } = {};\n\n removeCardsFromDiv(\"div.projectCardCardDiv\");\n \n if (inputValue !== \"\") {\n const matchedStage = Object.keys(nolanStageMapping).find((stage) =>\n stage.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n filteredImprovementWorks = await getImprovementWorks(query);\n await getProjects(container, true, filteredImprovementWorks);\n}\n*/\nfunction improvementWorkInfo(departmentContainer, user) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var improvementWorks, improvementWorksPlan, improvementWorksDo, improvementWorkStudy, improvementWorksAct, _iterator, _step, improvementWork, improvementWorkContainer, improvementWorkContainerElement, nolanAct, actElement, nolanPlan, planElement, nolanDo, doElement, nolanStudy, studyElement;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorks)({\n unitId: user.unitId\n });\n case 2:\n improvementWorks = _context8.sent;\n console.log(\"i funktionen\");\n //Count number of improvement works in the department in each stage\n improvementWorksPlan = 0;\n improvementWorksDo = 0;\n improvementWorkStudy = 0;\n improvementWorksAct = 0;\n _iterator = _createForOfIteratorHelper(improvementWorks);\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n improvementWork = _step.value;\n if (improvementWork.currentStage == \"Plan\") {\n improvementWorksPlan += 1;\n } else if (improvementWork.currentStage == \"Do\") {\n improvementWorksDo += 1;\n } else if (improvementWork.currentStage == \"Study\") {\n improvementWorkStudy += 1;\n } else if (improvementWork.currentStage == \"Act\") {\n improvementWorksAct += 1;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n improvementWorkContainer = document.getElementById(\"numberOfImprovementWorks\"); //Append a div displaying the number of improvement works in the user's department\n improvementWorkContainerElement = document.createElement(\"p\");\n improvementWorkContainerElement.innerHTML = \"Antal pågående förbättringsarbeten i din avdelning: \" + improvementWorks.length;\n if (improvementWorkContainer && improvementWorkContainer.innerHTML.trim() === \"\") {\n improvementWorkContainer.appendChild(improvementWorkContainerElement);\n }\n //Append the text displaying the number of improvement works that are in the stage act\n nolanAct = document.getElementById(\"nolanAct\");\n actElement = document.createElement(\"p\");\n actElement.innerHTML = \"Agera: \" + improvementWorksAct;\n actElement.style.margin = \"5px\";\n if (nolanAct) {\n nolanAct.appendChild(actElement);\n }\n //Append the text displaying the number of improvement works that are in the stage plan\n nolanPlan = document.getElementById(\"nolanPlan\");\n planElement = document.createElement(\"p\");\n planElement.innerHTML = \"Planera: \" + improvementWorksPlan;\n planElement.style.margin = \"5px\";\n if (nolanPlan) {\n nolanPlan.appendChild(planElement);\n }\n //Append the text displaying the number of improvement works that are in the stage do\n nolanDo = document.getElementById(\"nolanDo\");\n doElement = document.createElement(\"p\");\n doElement.innerHTML = \"Göra: \" + improvementWorksDo;\n doElement.style.margin = \"5px\";\n if (nolanDo) {\n nolanDo.appendChild(doElement);\n }\n //Append the text displaying the number of improvement works that are in the stage study\n nolanStudy = document.getElementById(\"nolanStudy\");\n studyElement = document.createElement(\"p\");\n studyElement.innerHTML = \"Studera: \" + improvementWorkStudy;\n studyElement.style.margin = \"5px\";\n if (nolanStudy) {\n nolanStudy.appendChild(studyElement);\n }\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this3 = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorksForUser)(userHsaId);\n case 2:\n data = _context10.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = project.name;\n _context9.next = 3;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", project.unitId);\n case 3:\n department = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n name = \"Projektledare\"; //Waiting for backend fix\n description = project.content;\n i = id;\n card = new projectCard(i, name, department.name, title, description, project.id);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"homePageProjectCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(project.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(project.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nvar projectCards = {};\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"homeTotalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: pointer;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"homepage-\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n </div>\\n\\n <!--<button id=\\\"homepage-project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>-->\\n\\n\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n \\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"homepage-expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"homepage-expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}(); //<p id=\"homepage-ongoingSeeDetailsButton${this.projectId}\" class = \"moreInfoClass\">> Mer information</p>\n\n//# sourceURL=webpack://c3/./client/homePage.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Database/authentication.js */ \"./client/Database/authentication.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../client/Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./projectPage/projectPage.js */ \"./client/projectPage/projectPage.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nfunction logoutUser(event) {\n event.preventDefault();\n alert(\"logout\");\n (0,_Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__.logout)();\n}\nvar myIdeaCards = {};\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n _createClass(IdeaCard, [{\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImageHP\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFadedHP\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n </div>\\n <div class=\\\"ideaCardUpvotesHP\\\">\\n <div class=\\\"upvoteDivHP\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\\\" class=\\\"ideaCardFont\\\"> \").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFont\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 1</p>\\n <p class=\\\"ideaCardFont\\\">K0mment 2</p>\\n </div>\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera Projekt</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, signedInUserHsaID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var user, userSuggestions, counter;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", signedInUserHsaID);\n case 2:\n user = _context2.sent;\n _context2.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 5:\n userSuggestions = _context2.sent;\n //If there exist filter use those instead to get matching suggestions rest should not need to be changed\n counter = 0;\n userSuggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context.sent;\n _context.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context.sent;\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n addListner(userSuggestions, container);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\nfunction addListner(cardArray, element) {\n element.addEventListener(\"click\", function (event) {\n var target = event.target;\n //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n var cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n var card = cardArray[cardId];\n var expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n console.log(expandedDiv);\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n });\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var container;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context5.next = 3;\n break;\n }\n return _context5.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n fetch(\"homePage.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var tempContainer, specificElement, tmp, user, suggestionContainer, nameHeaderElement, userFullName, projectContainer, departmentContainer, departmentDiv;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n // Create a temporary container element to hold the loaded content\n tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n specificElement = tempContainer.querySelector(\".main-content\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n tmp = localStorage.getItem(\"user\");\n console.log(tmp);\n if (tmp) {\n _context4.next = 9;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context4.abrupt(\"return\");\n case 9:\n user = JSON.parse(tmp)[0];\n suggestionContainer = document.getElementById(\"suggestion-container\");\n if (!suggestionContainer) {\n _context4.next = 15;\n break;\n }\n _context4.next = 14;\n return createNewCards(\"HomePageIdeaCardDiv\", suggestionContainer, user.id);\n case 14:\n addListner(myIdeaCards, container);\n case 15:\n nameHeaderElement = document.getElementById(\"user-name-header\");\n userFullName = user.firstName + \" \" + user.lastName;\n if (nameHeaderElement) {\n nameHeaderElement.textContent = userFullName;\n }\n projectContainer = document.getElementById(\"project-container\");\n if (!projectContainer) {\n _context4.next = 22;\n break;\n }\n _context4.next = 22;\n return getProjects(projectContainer, listenersLoaded, user.id);\n case 22:\n console.log(\"innan\");\n departmentContainer = document.getElementById(\"department-container\");\n departmentDiv = document.getElementById(\"nolanAct\");\n if (!(departmentContainer && document.getElementById(\"nolanAct\") && departmentDiv.innerHTML.trim() === \"\")) {\n _context4.next = 29;\n break;\n }\n console.log(\"anropar funktionen\");\n _context4.next = 29;\n return improvementWorkInfo(departmentContainer, user);\n case 29:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n $(\"#homepage-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context6.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\n/*\nasync function performSearch(searchBar: HTMLInputElement, container: HTMLElement) {\n let inputValue = searchBar.value;\n //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n\n let query: { [key: string]: string } = {};\n\n removeCardsFromDiv(\"div.projectCardCardDiv\");\n \n if (inputValue !== \"\") {\n const matchedStage = Object.keys(nolanStageMapping).find((stage) =>\n stage.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n filteredImprovementWorks = await getImprovementWorks(query);\n await getProjects(container, true, filteredImprovementWorks);\n}\n*/\nfunction improvementWorkInfo(departmentContainer, user) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var improvementWorks, improvementWorksPlan, improvementWorksDo, improvementWorkStudy, improvementWorksAct, _iterator, _step, improvementWork, improvementWorkContainer, improvementWorkContainerElement, nolanAct, actElement, nolanPlan, planElement, nolanDo, doElement, nolanStudy, studyElement;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorks)({\n unitId: user.unitId\n });\n case 2:\n improvementWorks = _context8.sent;\n console.log(\"i funktionen\");\n //Count number of improvement works in the department in each stage\n improvementWorksPlan = 0;\n improvementWorksDo = 0;\n improvementWorkStudy = 0;\n improvementWorksAct = 0;\n _iterator = _createForOfIteratorHelper(improvementWorks);\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n improvementWork = _step.value;\n if (improvementWork.currentStage == \"Plan\") {\n improvementWorksPlan += 1;\n } else if (improvementWork.currentStage == \"Do\") {\n improvementWorksDo += 1;\n } else if (improvementWork.currentStage == \"Study\") {\n improvementWorkStudy += 1;\n } else if (improvementWork.currentStage == \"Act\") {\n improvementWorksAct += 1;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n improvementWorkContainer = document.getElementById(\"numberOfImprovementWorks\"); //Append a div displaying the number of improvement works in the user's department\n improvementWorkContainerElement = document.createElement(\"p\");\n improvementWorkContainerElement.innerHTML = \"Antal pågående förbättringsarbeten i din avdelning: \" + improvementWorks.length;\n if (improvementWorkContainer && improvementWorkContainer.innerHTML.trim() === \"\") {\n improvementWorkContainer.appendChild(improvementWorkContainerElement);\n }\n //Append the text displaying the number of improvement works that are in the stage act\n nolanAct = document.getElementById(\"nolanAct\");\n actElement = document.createElement(\"p\");\n actElement.innerHTML = \"Agera: \" + improvementWorksAct;\n actElement.style.margin = \"5px\";\n if (nolanAct) {\n nolanAct.appendChild(actElement);\n }\n //Append the text displaying the number of improvement works that are in the stage plan\n nolanPlan = document.getElementById(\"nolanPlan\");\n planElement = document.createElement(\"p\");\n planElement.innerHTML = \"Planera: \" + improvementWorksPlan;\n planElement.style.margin = \"5px\";\n if (nolanPlan) {\n nolanPlan.appendChild(planElement);\n }\n //Append the text displaying the number of improvement works that are in the stage do\n nolanDo = document.getElementById(\"nolanDo\");\n doElement = document.createElement(\"p\");\n doElement.innerHTML = \"Göra: \" + improvementWorksDo;\n doElement.style.margin = \"5px\";\n if (nolanDo) {\n nolanDo.appendChild(doElement);\n }\n //Append the text displaying the number of improvement works that are in the stage study\n nolanStudy = document.getElementById(\"nolanStudy\");\n studyElement = document.createElement(\"p\");\n studyElement.innerHTML = \"Studera: \" + improvementWorkStudy;\n studyElement.style.margin = \"5px\";\n if (nolanStudy) {\n nolanStudy.appendChild(studyElement);\n }\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this3 = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorksForUser)(userHsaId);\n case 2:\n data = _context10.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = project.name;\n _context9.next = 3;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", project.unitId);\n case 3:\n department = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n name = \"Projektledare\"; //Waiting for backend fix\n description = project.content;\n i = id;\n card = new projectCard(i, name, department.name, title, description, project.id, project.dateStarted);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"homePageProjectCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(project.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(project.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nvar projectCards = {};\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, dateStarted) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.dateStarted = dateStarted;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"homeTotalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: pointer;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"homepage-\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardStartDate\\\" style=\\\"font-size: 12px;\\\"> \").concat((0,_projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__.formatDate)(this.dateStarted), \"</p>\\n </div>\\n\\n <!--<button id=\\\"homepage-project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>-->\\n\\n\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n \\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"homepage-expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"homepage-expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}(); //<p id=\"homepage-ongoingSeeDetailsButton${this.projectId}\" class = \"moreInfoClass\">> Mer information</p>\n\n//# sourceURL=webpack://c3/./client/homePage.js?"); /***/ }), @@ -276,7 +276,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearContent: () => (/* binding */ clearContent),\n/* harmony export */ loadHospitals: () => (/* binding */ loadHospitals),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadUnits: () => (/* binding */ loadUnits),\n/* harmony export */ removeCardsFromDiv: () => (/* binding */ removeCardsFromDiv),\n/* harmony export */ testFunc: () => (/* binding */ testFunc)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n//import {loadInitiatePage} from \"../SidebarAndHeader/pageHandler.js\";\nvar myIdeaCards = {};\n// Initialize filtered suggestions as empty array (potentially change to get all suggestions\nvar filteredSuggestions = [];\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n // <img src=\"images/upvoteIcon.png\" class =\"upvoteIcon\" alt=\"upvoteIcon\">\n _createClass(IdeaCard, [{\n key: \"addUpvote\",\n value: function addUpvote() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var tmp, user, suggestion;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n tmp = localStorage.getItem(\"user\");\n if (tmp) {\n _context.next = 4;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context.abrupt(\"return\");\n case 4:\n user = JSON.parse(tmp)[0];\n _context.next = 7;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.upvoteSuggestion)(this.suggestionID, user.id);\n case 7:\n _context.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n id: this.suggestionID\n });\n case 9:\n suggestion = _context.sent;\n this.upvoteCount = suggestion[0].upvotes.length;\n return _context.abrupt(\"return\", suggestion[0].upvotes.length);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImage\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFaded\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n <div class=\\\"ideaCardUpvotes\\\">\\n <div class=\\\"upvoteDiv\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" id = \\\"upvoteIconPic\").concat(this.id, \"\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\").concat(this.id, \"\\\" class=\\\"ideaCardFont upvoteNumber\\\" >\").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n \\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFontComments\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFontComments\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 7</p>\\n <p class=\\\"ideaCardFont\\\">Komment 2</p>\\n </div>\\n\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera f\\xF6rb\\xE4ttringsf\\xF6rslag</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n window.location.href = '../client/projectPage/projectPageP.html';\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, suggestions) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var counter;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n counter = 1;\n suggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context2.sent;\n _context2.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context2.sent;\n console.log(suggestion);\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction testFunc() {\n console.log(\"Test func works\");\n}\nfunction loadPage() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var container, scriptElement, checkedHospitalIds, checkedUnitIds, searchBar;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context7.next = 3;\n break;\n }\n return _context7.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n scriptElement = document.createElement(\"script\");\n scriptElement.src = \"../dist/ideaBank.bundle.js\";\n container.appendChild(scriptElement);\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n fetch(\"ideaBank/ideaBank.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n clearContent(\"unitSelection\");\n loadUnits(checkedHospitalIds);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n // Log all checked unit IDs\n _context6.next = 5;\n return getFilteredSuggestions(checkedUnitIds);\n case 5:\n filteredSuggestions = _context6.sent;\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 8:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n myIdeaCards = {};\n _context7.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 12:\n filteredSuggestions = _context7.sent;\n console.log(\"Filtered suggestions: \", filteredSuggestions);\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n _context7.next = 17;\n return createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 17:\n addListner(myIdeaCards, container);\n searchBar = document.getElementById(\"searchBarId\");\n searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar);\n }\n });\n loadHospitals();\n case 21:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction getFilteredSuggestions(checkedUnitIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var suggestions, _iterator, _step, checkedUnitId, allSuggestionsOfUnit;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n suggestions = [];\n if (!checkedUnitIds) {\n _context8.next = 24;\n break;\n }\n _iterator = _createForOfIteratorHelper(checkedUnitIds);\n _context8.prev = 3;\n _iterator.s();\n case 5:\n if ((_step = _iterator.n()).done) {\n _context8.next = 13;\n break;\n }\n checkedUnitId = _step.value;\n _context8.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n unitId: checkedUnitId\n });\n case 9:\n allSuggestionsOfUnit = _context8.sent;\n suggestions = suggestions.concat(allSuggestionsOfUnit);\n case 11:\n _context8.next = 5;\n break;\n case 13:\n _context8.next = 18;\n break;\n case 15:\n _context8.prev = 15;\n _context8.t0 = _context8[\"catch\"](3);\n _iterator.e(_context8.t0);\n case 18:\n _context8.prev = 18;\n _iterator.f();\n return _context8.finish(18);\n case 21:\n return _context8.abrupt(\"return\", suggestions);\n case 24:\n _context8.next = 26;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 26:\n suggestions = _context8.sent;\n return _context8.abrupt(\"return\", suggestions);\n case 28:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[3, 15, 18, 21]]);\n }));\n}\nfunction loadHospitals() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var selectHospitalHTML, allHospitals;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n selectHospitalHTML = $('#hospitalSelection'); // loads the select type from html\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({});\n case 3:\n allHospitals = _context9.sent;\n console.log(allHospitals);\n allHospitals.forEach(function (hospital) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + hospital.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + hospital.name + \"</label>\\n </div>\");\n selectHospitalHTML.append(generatedElement);\n console.log(\"Adding HTML for for hospital \", hospital.id);\n });\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n}\nfunction loadUnits(checkedHospitalIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var selectUnitHTML, allUnits, _iterator2, _step2, checkedHospitalId, allUnitsOfHospital;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n selectUnitHTML = $('#unitSelection'); // loads the select type from html\n allUnits = [];\n if (!(checkedHospitalIds.length != 0)) {\n _context10.next = 22;\n break;\n }\n _iterator2 = _createForOfIteratorHelper(checkedHospitalIds);\n _context10.prev = 4;\n _iterator2.s();\n case 6:\n if ((_step2 = _iterator2.n()).done) {\n _context10.next = 14;\n break;\n }\n checkedHospitalId = _step2.value;\n _context10.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n hospitalId: checkedHospitalId\n });\n case 10:\n allUnitsOfHospital = _context10.sent;\n allUnits = allUnits.concat(allUnitsOfHospital);\n case 12:\n _context10.next = 6;\n break;\n case 14:\n _context10.next = 19;\n break;\n case 16:\n _context10.prev = 16;\n _context10.t0 = _context10[\"catch\"](4);\n _iterator2.e(_context10.t0);\n case 19:\n _context10.prev = 19;\n _iterator2.f();\n return _context10.finish(19);\n case 22:\n allUnits.forEach(function (unit) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + unit.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + unit.name + \"</label>\\n </div>\");\n selectUnitHTML.append(generatedElement);\n console.log(\"Adding HTML for for unit \", unit.id);\n });\n case 23:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[4, 16, 19, 22]]);\n }));\n}\nfunction clearContent(id) {\n var container = document.getElementById(id);\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n}\nfunction addListner(cardArray, element) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n element.addEventListener(\"click\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var target, cardId, card, expandedDiv, _cardId, _card, upvoteDisplay;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n target = event.target; //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n console.log(\"fel Div\");\n cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n card = cardArray[cardId];\n expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n if (!(target && target.className.baseVal.includes(\"bi-caret-up upvoteSymbol\"))) {\n _context11.next = 14;\n break;\n }\n _cardId = parseInt(target.id.replace(\"upvoteIconPic\", \"\"), 10);\n if (!myIdeaCards[_cardId]) {\n _context11.next = 12;\n break;\n }\n _card = myIdeaCards[_cardId];\n _context11.next = 8;\n return _card.addUpvote();\n case 8:\n upvoteDisplay = document.getElementById(\"upvoteNumber\" + _cardId);\n if (upvoteDisplay) {\n upvoteDisplay.textContent = _card.upvoteCount.toString();\n }\n _context11.next = 13;\n break;\n case 12:\n console.error(\"Card not found for ID: \" + _cardId);\n case 13:\n console.log(\"upvoteIcon clicked\");\n case 14:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n}\nfunction removeCardsFromDiv(divName) {\n //Remove current elements\n var elementsToRemove = document.querySelectorAll(divName);\n // Remove each element\n elementsToRemove.forEach(function (element) {\n element.remove();\n });\n myIdeaCards = {};\n}\nfunction performSearch(searchBar) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var inputValue, container, suggestions, suggestionName, _iterator3, _step3, suggestion, users, spaceIndex, firstName, lastName, _iterator4, _step4, user, _iterator5, _step5, _user;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n inputValue = searchBar.value;\n console.log(\"Search query:\", inputValue);\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context13.next = 5;\n break;\n }\n return _context13.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n if (!(inputValue != \"\")) {\n _context13.next = 92;\n break;\n }\n _context13.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 9:\n suggestions = _context13.sent;\n suggestionName = false;\n _iterator3 = _createForOfIteratorHelper(suggestions);\n _context13.prev = 12;\n _iterator3.s();\n case 14:\n if ((_step3 = _iterator3.n()).done) {\n _context13.next = 24;\n break;\n }\n suggestion = _step3.value;\n if (!(suggestion.name.toLowerCase() >= inputValue.toLowerCase() && suggestion.name.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 22;\n break;\n }\n suggestionName = true;\n _context13.next = 20;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n name: suggestion.name\n });\n case 20:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 22:\n _context13.next = 14;\n break;\n case 24:\n _context13.next = 29;\n break;\n case 26:\n _context13.prev = 26;\n _context13.t0 = _context13[\"catch\"](12);\n _iterator3.e(_context13.t0);\n case 29:\n _context13.prev = 29;\n _iterator3.f();\n return _context13.finish(29);\n case 32:\n if (suggestionName) {\n _context13.next = 90;\n break;\n }\n _context13.next = 35;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({});\n case 35:\n users = _context13.sent;\n spaceIndex = inputValue.indexOf(\" \"); //If the search is for first and last name\n if (!(spaceIndex !== -1)) {\n _context13.next = 63;\n break;\n }\n firstName = inputValue.substring(0, spaceIndex).toLowerCase();\n lastName = inputValue.substring(spaceIndex + 1).toLowerCase();\n _iterator4 = _createForOfIteratorHelper(users);\n _context13.prev = 41;\n _iterator4.s();\n case 43:\n if ((_step4 = _iterator4.n()).done) {\n _context13.next = 53;\n break;\n }\n user = _step4.value;\n if (!(user.firstName.toLowerCase() >= firstName && user.firstName.toLowerCase() <= firstName + \"~\")) {\n _context13.next = 51;\n break;\n }\n if (!(user.lastName.toLowerCase() >= lastName && user.lastName.toLowerCase() <= lastName + \"~\")) {\n _context13.next = 51;\n break;\n }\n _context13.next = 49;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 49:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 51:\n _context13.next = 43;\n break;\n case 53:\n _context13.next = 58;\n break;\n case 55:\n _context13.prev = 55;\n _context13.t1 = _context13[\"catch\"](41);\n _iterator4.e(_context13.t1);\n case 58:\n _context13.prev = 58;\n _iterator4.f();\n return _context13.finish(58);\n case 61:\n _context13.next = 90;\n break;\n case 63:\n //If the search is for only first or last name\n _iterator5 = _createForOfIteratorHelper(users);\n _context13.prev = 64;\n _iterator5.s();\n case 66:\n if ((_step5 = _iterator5.n()).done) {\n _context13.next = 82;\n break;\n }\n _user = _step5.value;\n if (!(_user.firstName.toLowerCase() >= inputValue.toLowerCase() && _user.firstName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 75;\n break;\n }\n _context13.next = 71;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 71:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n _context13.next = 80;\n break;\n case 75:\n if (!(_user.lastName.toLowerCase() >= inputValue.toLowerCase() && _user.lastName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 80;\n break;\n }\n _context13.next = 78;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 78:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 80:\n _context13.next = 66;\n break;\n case 82:\n _context13.next = 87;\n break;\n case 84:\n _context13.prev = 84;\n _context13.t2 = _context13[\"catch\"](64);\n _iterator5.e(_context13.t2);\n case 87:\n _context13.prev = 87;\n _iterator5.f();\n return _context13.finish(87);\n case 90:\n _context13.next = 96;\n break;\n case 92:\n _context13.next = 94;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 94:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 96:\n addListner(myIdeaCards, container);\n case 97:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[12, 26, 29, 32], [41, 55, 58, 61], [64, 84, 87, 90]]);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/ideaBank/ideaBank.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearContent: () => (/* binding */ clearContent),\n/* harmony export */ loadHospitals: () => (/* binding */ loadHospitals),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadUnits: () => (/* binding */ loadUnits),\n/* harmony export */ removeCardsFromDiv: () => (/* binding */ removeCardsFromDiv),\n/* harmony export */ testFunc: () => (/* binding */ testFunc)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n//import {loadInitiatePage} from \"../SidebarAndHeader/pageHandler.js\";\nvar myIdeaCards = {};\n// Initialize filtered suggestions as empty array (potentially change to get all suggestions\nvar filteredSuggestions = [];\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n // <img src=\"images/upvoteIcon.png\" class =\"upvoteIcon\" alt=\"upvoteIcon\">\n _createClass(IdeaCard, [{\n key: \"addUpvote\",\n value: function addUpvote() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var tmp, user, suggestion;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n tmp = localStorage.getItem(\"user\");\n if (tmp) {\n _context.next = 4;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context.abrupt(\"return\");\n case 4:\n user = JSON.parse(tmp)[0];\n _context.next = 7;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.upvoteSuggestion)(this.suggestionID, user.id);\n case 7:\n _context.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n id: this.suggestionID\n });\n case 9:\n suggestion = _context.sent;\n this.upvoteCount = suggestion[0].upvotes.length;\n this.upvoteCount++;\n return _context.abrupt(\"return\", suggestion[0].upvotes.length);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImage\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFaded\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n <div class=\\\"ideaCardUpvotes\\\">\\n <div class=\\\"upvoteDiv\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"grey\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\" id=\\\"upvoteIconPic\").concat(this.id, \"\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg>\\n <div id =\\\"upvoteNumber\").concat(this.id, \"\\\" class=\\\"ideaCardFont upvoteNumber\\\" >\").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n \\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFontComments\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFontComments\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 7</p>\\n <p class=\\\"ideaCardFont\\\">Komment 2</p>\\n </div>\\n\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera f\\xF6rb\\xE4ttringsf\\xF6rslag</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n window.location.href = '../client/projectPage/projectPageP.html';\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, suggestions) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var counter;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n counter = 1;\n suggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context2.sent;\n _context2.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context2.sent;\n console.log(suggestion);\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction testFunc() {\n console.log(\"Test func works\");\n}\nfunction loadPage() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var container, scriptElement, checkedHospitalIds, checkedUnitIds, searchBar;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context7.next = 3;\n break;\n }\n return _context7.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n scriptElement = document.createElement(\"script\");\n scriptElement.src = \"../dist/ideaBank.bundle.js\";\n container.appendChild(scriptElement);\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n fetch(\"ideaBank/ideaBank.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n clearContent(\"unitSelection\");\n loadUnits(checkedHospitalIds);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n // Log all checked unit IDs\n _context6.next = 5;\n return getFilteredSuggestions(checkedUnitIds);\n case 5:\n filteredSuggestions = _context6.sent;\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 8:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n myIdeaCards = {};\n _context7.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 12:\n filteredSuggestions = _context7.sent;\n console.log(\"Filtered suggestions: \", filteredSuggestions);\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n _context7.next = 17;\n return createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 17:\n addListner(myIdeaCards, container);\n searchBar = document.getElementById(\"searchBarId\");\n searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar);\n }\n });\n loadHospitals();\n case 21:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction getFilteredSuggestions(checkedUnitIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var suggestions, _iterator, _step, checkedUnitId, allSuggestionsOfUnit;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n suggestions = [];\n if (!checkedUnitIds) {\n _context8.next = 24;\n break;\n }\n _iterator = _createForOfIteratorHelper(checkedUnitIds);\n _context8.prev = 3;\n _iterator.s();\n case 5:\n if ((_step = _iterator.n()).done) {\n _context8.next = 13;\n break;\n }\n checkedUnitId = _step.value;\n _context8.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n unitId: checkedUnitId\n });\n case 9:\n allSuggestionsOfUnit = _context8.sent;\n suggestions = suggestions.concat(allSuggestionsOfUnit);\n case 11:\n _context8.next = 5;\n break;\n case 13:\n _context8.next = 18;\n break;\n case 15:\n _context8.prev = 15;\n _context8.t0 = _context8[\"catch\"](3);\n _iterator.e(_context8.t0);\n case 18:\n _context8.prev = 18;\n _iterator.f();\n return _context8.finish(18);\n case 21:\n return _context8.abrupt(\"return\", suggestions);\n case 24:\n _context8.next = 26;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 26:\n suggestions = _context8.sent;\n return _context8.abrupt(\"return\", suggestions);\n case 28:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[3, 15, 18, 21]]);\n }));\n}\nfunction loadHospitals() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var selectHospitalHTML, allHospitals;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n selectHospitalHTML = $('#hospitalSelection'); // loads the select type from html\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({});\n case 3:\n allHospitals = _context9.sent;\n console.log(allHospitals);\n allHospitals.forEach(function (hospital) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + hospital.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + hospital.name + \"</label>\\n </div>\");\n selectHospitalHTML.append(generatedElement);\n console.log(\"Adding HTML for for hospital \", hospital.id);\n });\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n}\nfunction loadUnits(checkedHospitalIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var selectUnitHTML, allUnits, _iterator2, _step2, checkedHospitalId, allUnitsOfHospital;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n selectUnitHTML = $('#unitSelection'); // loads the select type from html\n allUnits = [];\n if (!(checkedHospitalIds.length != 0)) {\n _context10.next = 22;\n break;\n }\n _iterator2 = _createForOfIteratorHelper(checkedHospitalIds);\n _context10.prev = 4;\n _iterator2.s();\n case 6:\n if ((_step2 = _iterator2.n()).done) {\n _context10.next = 14;\n break;\n }\n checkedHospitalId = _step2.value;\n _context10.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n hospitalId: checkedHospitalId\n });\n case 10:\n allUnitsOfHospital = _context10.sent;\n allUnits = allUnits.concat(allUnitsOfHospital);\n case 12:\n _context10.next = 6;\n break;\n case 14:\n _context10.next = 19;\n break;\n case 16:\n _context10.prev = 16;\n _context10.t0 = _context10[\"catch\"](4);\n _iterator2.e(_context10.t0);\n case 19:\n _context10.prev = 19;\n _iterator2.f();\n return _context10.finish(19);\n case 22:\n allUnits.forEach(function (unit) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + unit.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + unit.name + \"</label>\\n </div>\");\n selectUnitHTML.append(generatedElement);\n console.log(\"Adding HTML for for unit \", unit.id);\n });\n case 23:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[4, 16, 19, 22]]);\n }));\n}\nfunction clearContent(id) {\n var container = document.getElementById(id);\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n}\nfunction addListner(cardArray, element) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n element.addEventListener(\"click\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var target, cardId, card, expandedDiv, _cardId, _card, upvoteDisplay;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n target = event.target; //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n console.log(\"fel Div\");\n cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n card = cardArray[cardId];\n expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n if (!(target && target.className.baseVal.includes(\"bi-caret-up upvoteSymbol\"))) {\n _context11.next = 16;\n break;\n }\n _cardId = parseInt(target.id.replace(\"upvoteIconPic\", \"\"), 10);\n if (!myIdeaCards[_cardId]) {\n _context11.next = 14;\n break;\n }\n _card = myIdeaCards[_cardId];\n _context11.next = 8;\n return _card.addUpvote();\n case 8:\n if (target.getAttribute(\"fill\") === \"grey\") {\n target.setAttribute(\"fill\", \"red\"); // Replace 'red' with the color indicating an upvote\n } else {\n target.setAttribute(\"fill\", \"grey\"); // Revert back to default color\n }\n upvoteDisplay = document.getElementById(\"upvoteNumber\" + _cardId);\n console.log(_card.upvoteCount.toString());\n if (upvoteDisplay) {\n upvoteDisplay.textContent = _card.upvoteCount.toString();\n }\n _context11.next = 15;\n break;\n case 14:\n console.error(\"Card not found for ID: \" + _cardId);\n case 15:\n console.log(\"upvoteIcon clicked\");\n case 16:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n}\nfunction removeCardsFromDiv(divName) {\n //Remove current elements\n var elementsToRemove = document.querySelectorAll(divName);\n // Remove each element\n elementsToRemove.forEach(function (element) {\n element.remove();\n });\n myIdeaCards = {};\n}\nfunction performSearch(searchBar) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var inputValue, container, suggestions, suggestionName, _iterator3, _step3, suggestion, users, spaceIndex, firstName, lastName, _iterator4, _step4, user, _iterator5, _step5, _user;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n inputValue = searchBar.value;\n console.log(\"Search query:\", inputValue);\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context13.next = 5;\n break;\n }\n return _context13.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n if (!(inputValue != \"\")) {\n _context13.next = 92;\n break;\n }\n _context13.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 9:\n suggestions = _context13.sent;\n suggestionName = false;\n _iterator3 = _createForOfIteratorHelper(suggestions);\n _context13.prev = 12;\n _iterator3.s();\n case 14:\n if ((_step3 = _iterator3.n()).done) {\n _context13.next = 24;\n break;\n }\n suggestion = _step3.value;\n if (!(suggestion.name.toLowerCase() >= inputValue.toLowerCase() && suggestion.name.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 22;\n break;\n }\n suggestionName = true;\n _context13.next = 20;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n name: suggestion.name\n });\n case 20:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 22:\n _context13.next = 14;\n break;\n case 24:\n _context13.next = 29;\n break;\n case 26:\n _context13.prev = 26;\n _context13.t0 = _context13[\"catch\"](12);\n _iterator3.e(_context13.t0);\n case 29:\n _context13.prev = 29;\n _iterator3.f();\n return _context13.finish(29);\n case 32:\n if (suggestionName) {\n _context13.next = 90;\n break;\n }\n _context13.next = 35;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({});\n case 35:\n users = _context13.sent;\n spaceIndex = inputValue.indexOf(\" \"); //If the search is for first and last name\n if (!(spaceIndex !== -1)) {\n _context13.next = 63;\n break;\n }\n firstName = inputValue.substring(0, spaceIndex).toLowerCase();\n lastName = inputValue.substring(spaceIndex + 1).toLowerCase();\n _iterator4 = _createForOfIteratorHelper(users);\n _context13.prev = 41;\n _iterator4.s();\n case 43:\n if ((_step4 = _iterator4.n()).done) {\n _context13.next = 53;\n break;\n }\n user = _step4.value;\n if (!(user.firstName.toLowerCase() >= firstName && user.firstName.toLowerCase() <= firstName + \"~\")) {\n _context13.next = 51;\n break;\n }\n if (!(user.lastName.toLowerCase() >= lastName && user.lastName.toLowerCase() <= lastName + \"~\")) {\n _context13.next = 51;\n break;\n }\n _context13.next = 49;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 49:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 51:\n _context13.next = 43;\n break;\n case 53:\n _context13.next = 58;\n break;\n case 55:\n _context13.prev = 55;\n _context13.t1 = _context13[\"catch\"](41);\n _iterator4.e(_context13.t1);\n case 58:\n _context13.prev = 58;\n _iterator4.f();\n return _context13.finish(58);\n case 61:\n _context13.next = 90;\n break;\n case 63:\n //If the search is for only first or last name\n _iterator5 = _createForOfIteratorHelper(users);\n _context13.prev = 64;\n _iterator5.s();\n case 66:\n if ((_step5 = _iterator5.n()).done) {\n _context13.next = 82;\n break;\n }\n _user = _step5.value;\n if (!(_user.firstName.toLowerCase() >= inputValue.toLowerCase() && _user.firstName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 75;\n break;\n }\n _context13.next = 71;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 71:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n _context13.next = 80;\n break;\n case 75:\n if (!(_user.lastName.toLowerCase() >= inputValue.toLowerCase() && _user.lastName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 80;\n break;\n }\n _context13.next = 78;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 78:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 80:\n _context13.next = 66;\n break;\n case 82:\n _context13.next = 87;\n break;\n case 84:\n _context13.prev = 84;\n _context13.t2 = _context13[\"catch\"](64);\n _iterator5.e(_context13.t2);\n case 87:\n _context13.prev = 87;\n _iterator5.f();\n return _context13.finish(87);\n case 90:\n _context13.next = 96;\n break;\n case 92:\n _context13.next = 94;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 94:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 96:\n addListner(myIdeaCards, container);\n case 97:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[12, 26, 29, 32], [41, 55, 58, 61], [64, 84, 87, 90]]);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/ideaBank/ideaBank.js?"); /***/ }), @@ -326,7 +326,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadImprovementWorkTasks: () => (/* binding */ loadImprovementWorkTasks),\n/* harmony export */ loadMemberModal: () => (/* binding */ loadMemberModal),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadProjectHeader: () => (/* binding */ loadProjectHeader),\n/* harmony export */ openTaskModal: () => (/* binding */ openTaskModal)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../initiateForbattringsarbete/initiateIdea.js */ \"./client/initiateForbattringsarbete/initiateIdea.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction loadPage(projectId) {}\nfunction loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var tasks, taskListElement;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getTasks)({\n improvementWorkId: projectId,\n stage: stage\n });\n case 2:\n tasks = _context2.sent;\n taskListElement = $('#' + taskListId);\n modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId);\n if (taskListElement) {\n tasks.forEach(function (task) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var taskElement, textSpan, checkbox;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n taskElement = $('<li>');\n textSpan = $('<span>').text(task.name);\n checkbox = $('<input>').attr('type', 'checkbox');\n if (task.completed) {\n checkbox.prop('checked', true);\n }\n taskElement.append(textSpan, checkbox);\n taskElement.addClass(stageListClassName);\n taskElement.on('click', function () {\n var startDateFormatted = formatDate(task.startDate);\n var endDateFormatted = formatDate(task.deadlineDate);\n openTaskModal(task.name, task.content, task.id, startDateFormatted, endDateFormatted, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId);\n });\n checkbox.on('click', function (event) {\n event.stopPropagation();\n if (checkbox.prop('checked')) {\n console.log('Checkbox is checked.');\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', task.id, {\n completed: true\n });\n } else {\n console.log('Checkbox is unchecked.');\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', task.id, {\n completed: false\n });\n }\n });\n taskListElement.append(taskElement); // Stop if the container isn't found\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n } else {\n console.log(\"Task container not found\");\n }\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Opens modal for a task\nfunction openTaskModal(taskTitle, taskContent, taskId, taskStart, taskEnd, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId) {\n var taskModal = document.getElementById(taskModalId);\n var title = document.getElementById(taskTitleId);\n var content = document.getElementById(taskContentId);\n var startDate = document.getElementById(taskStartDateId);\n var endDate = document.getElementById(taskEndDateId);\n if (taskModal) {\n taskModal.setAttribute('data-task-id', taskId);\n if (title && content && startDate && endDate) {\n title.value = \"\";\n content.value = \"\";\n startDate.value = \"\";\n endDate.value = \"\";\n if (taskTitle !== \"\" || taskContent !== \"\" || taskStart !== \"\" || taskEnd !== \"\") {\n title.value = taskTitle;\n content.value = taskContent;\n startDate.value = taskStart;\n endDate.value = taskEnd;\n }\n }\n taskModal.style.display = 'block';\n }\n}\n//Adds eventlistener to close modal\nfunction modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId) {\n var closeButton = document.getElementById(closeBtnId);\n var taskModal = document.getElementById(taskModalId);\n var saveButton = document.getElementById(saveBtnId);\n var deleteButton = document.getElementById(deleteBtnId);\n if (closeButton && taskModal) {\n var closeBtnListener = closeButton.hasAttribute('data-has-event-listener');\n if (!closeBtnListener) {\n closeButton.setAttribute('data-has-event-listener', 'true');\n closeButton.addEventListener('click', function () {\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n\n if (saveButton && taskModal) {\n var saveBtnListener = saveButton.hasAttribute('data-has-event-listener');\n if (!saveBtnListener) {\n saveButton.setAttribute('data-has-event-listener', 'true');\n saveButton.addEventListener('click', function () {\n createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId);\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n\n if (deleteButton && taskModal) {\n var deleteBtnListener = deleteButton.hasAttribute('data-has-event-listener');\n if (!deleteBtnListener) {\n deleteButton.setAttribute('data-has-event-listener', 'true');\n deleteButton.addEventListener('click', function () {\n deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId);\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n}\n\nfunction createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var modalElement, titleElement, deadlineElement, startElement, contentElement, taskId, improvementWork, deadline, startDate, listElement, _deadline, _startDate, _listElement;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n //title: string, deadline : Date, startDate: Date, stage: string, content: string\n modalElement = document.getElementById(taskModalId);\n titleElement = document.getElementById(taskTitleId);\n deadlineElement = document.getElementById(taskEndDateId);\n startElement = document.getElementById(taskStartDateId);\n contentElement = document.getElementById(taskContentId);\n taskId = modalElement.getAttribute('data-task-id');\n if (!(taskId === '')) {\n _context3.next = 13;\n break;\n }\n _context3.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)('improvementWork', projectId);\n case 9:\n improvementWork = _context3.sent;\n if (titleElement && contentElement && deadlineElement && startElement) {\n if (titleElement.value !== \"\", deadlineElement.value !== \"\", startElement.value !== \"\", contentElement.value !== \"\") {\n deadline = new Date(deadlineElement.value); //Date string to timestamp\n startDate = new Date(startElement.value); //Date string to timestamp\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.createTaskOnImprovementWork)(null, projectId, titleElement.value, deadline, startDate, improvementWork.currentStage, contentElement.value);\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n } else {\n console.log(\"All input fields for the task where not filled in\");\n }\n } else {\n console.log(\"All input element where not found\");\n }\n _context3.next = 21;\n break;\n case 13:\n if (!taskId) {\n _context3.next = 21;\n break;\n }\n _deadline = new Date(deadlineElement.value); //Date string to timestamp\n _startDate = new Date(startElement.value); //Date string to timestamp\n _context3.next = 18;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', taskId, {\n name: titleElement.value,\n deadlineDate: _deadline,\n startDate: _startDate,\n content: contentElement.value\n });\n case 18:\n _listElement = document.getElementById(taskListId);\n _listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n //loadPage(projectId); //Loads tasks since updated ASK for help\n case 21:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var modalElement, taskId, listElement;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n modalElement = document.getElementById(taskModalId);\n taskId = modalElement.getAttribute('data-task-id');\n if (!taskId) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.deleteInstance)('task', taskId);\n case 5:\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction formatDate(timeStamp) {\n var date = timeStamp.toDate();\n var day = String(date.getDate()).toString();\n var month = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based\n var year = String(date.getFullYear()).toString();\n if (parseInt(month, 10) < 10 && parseInt(day, 10) > 9) {\n return \"\".concat(year, \"-0\").concat(month, \"-\").concat(day);\n } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-\").concat(month, \"-0\").concat(day);\n } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-0\").concat(month, \"-0\").concat(day);\n } else {\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n }\n}\nfunction timestamptoDate(timestamp) {\n if (timestamp instanceof firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.Timestamp) {\n var date = timestamp.toDate();\n return date;\n } else {\n console.error('Invalid timestamp type.');\n return null;\n }\n}\nfunction getDaysMonthYear(startDate) {\n var currentTime = new Date();\n if (startDate) {\n var millisecondsDifference = currentTime.getTime() - startDate.getTime();\n // Convert milliseconds to seconds\n var secondsDifference = millisecondsDifference / 1000;\n // Calculate years, months, and days\n var years = Math.floor(secondsDifference / (365.25 * 24 * 60 * 60));\n var remainingSeconds = secondsDifference % (365.25 * 24 * 60 * 60);\n var months = Math.floor(remainingSeconds / (30 * 24 * 60 * 60)); // Assuming 30 days per month\n var days = Math.floor(remainingSeconds % (30 * 24 * 60 * 60) / (24 * 60 * 60));\n return \" \".concat(years, \" \\xE5r, \").concat(months, \" m\\xE5nader, \").concat(days, \" dagar.\");\n } else {\n return \"Det finns inget startdatum registrerat\";\n }\n}\nfunction loadProjectHeader(improvementWork) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this2 = this;\n var loadingIndicators, titleP, aAreaElement, resources, time, formatdateStarted, aUnitArray, projectLeader, members, aProjectLeader, aMembers, aUnit, aUnitElement, hospitalArray, aHospital, aHospitalElement;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n loadingIndicators = document.querySelectorAll(\".loadingIndicator\");\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = 'block';\n });\n titleP = document.getElementById(\"title\");\n titleP.textContent = improvementWork.name;\n aAreaElement = document.getElementById(\"pArea\");\n aAreaElement.textContent = improvementWork.area;\n resources = document.getElementById(\"pResources\");\n resources.textContent = improvementWork.resources;\n time = document.getElementById(\"pTime\");\n formatdateStarted = timestamptoDate(improvementWork.dateStarted);\n time.textContent = getDaysMonthYear(formatdateStarted);\n _context6.next = 13;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n unitId: improvementWork.unitId\n });\n case 13:\n aUnitArray = _context6.sent;\n _context6.next = 16;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 16:\n projectLeader = _context6.sent;\n _context6.next = 19;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsersForImprovementWork)(improvementWork.id);\n case 19:\n members = _context6.sent;\n aProjectLeader = document.getElementById(\"pLeader\");\n aProjectLeader.textContent = projectLeader.firstName + \" \" + projectLeader.lastName + \" (\" + projectLeader.email + \")\";\n aMembers = document.getElementById(\"pMembers\");\n members.forEach(function (member) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n aMembers.textContent = aMembers.textContent + member.firstName + \" \" + member.lastName + \", \";\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n //stop loding current members\n if (aUnitArray.length === 0) {\n console.log(\"Error loading the units.\");\n }\n aUnit = aUnitArray[0];\n aUnitElement = document.getElementById(\"pUnit\");\n aUnitElement.textContent = aUnit.name;\n _context6.next = 30;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalId: aUnit.hospitalId\n });\n case 30:\n hospitalArray = _context6.sent;\n if (hospitalArray.length === 0) {\n console.log(\"Error loading the hospitals.\");\n }\n aHospital = hospitalArray[0];\n aHospitalElement = document.getElementById(\"pHospital\");\n aHospitalElement.textContent = aHospital.name;\n // Close loading indicators\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = 'none';\n });\n case 36:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction getDivWithIdFromHTML(path, id) {\n // Returning a Promise\n return fetch(path).then(function (response) {\n return response.text();\n }).then(function (html) {\n // Create a temporary container\n var container = document.createElement('div');\n container.innerHTML = html;\n // Get the modal content from the container\n var element = container.querySelector(id);\n return element;\n })[\"catch\"](function (error) {\n console.error('Error loading modal content:', error);\n return null;\n });\n}\nfunction loadMemberModal() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var modalContent, selectEmployeeChangeSection;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return getDivWithIdFromHTML('../projectPage/addMemberModal.html', '#addMemberModal');\n case 2:\n modalContent = _context7.sent;\n if (modalContent) {\n $('#container-fluid').append(modalContent);\n $(modalContent).modal('show');\n }\n /* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees');\n if (selectMemberContent) {\n $('#modal-body').append(selectMemberContent);\n } */\n selectEmployeeChangeSection = document.querySelector('#selectEmployee');\n if (selectEmployeeChangeSection) {\n selectEmployeeChangeSection.addEventListener('change', _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.assignedEmployer);\n } else {\n console.error(\"Error: 'changebutton' not found\");\n }\n (0,_initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.loadEmployees)();\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPage.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatDate: () => (/* binding */ formatDate),\n/* harmony export */ loadImprovementWorkTasks: () => (/* binding */ loadImprovementWorkTasks),\n/* harmony export */ loadMemberModal: () => (/* binding */ loadMemberModal),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadProjectHeader: () => (/* binding */ loadProjectHeader),\n/* harmony export */ openTaskModal: () => (/* binding */ openTaskModal)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../initiateForbattringsarbete/initiateIdea.js */ \"./client/initiateForbattringsarbete/initiateIdea.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction loadPage(projectId) {}\nfunction loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var tasks, taskListElement;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getTasks)({\n improvementWorkId: projectId,\n stage: stage\n });\n case 2:\n tasks = _context2.sent;\n taskListElement = $(\"#\" + taskListId);\n modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId);\n if (taskListElement) {\n tasks.forEach(function (task) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var taskElement, textSpan, checkbox;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n taskElement = $(\"<li>\");\n textSpan = $(\"<span>\").text(task.name);\n checkbox = $(\"<input>\").attr(\"type\", \"checkbox\");\n if (task.completed) {\n checkbox.prop(\"checked\", true);\n }\n taskElement.append(textSpan, checkbox);\n taskElement.addClass(stageListClassName);\n taskElement.on(\"click\", function () {\n var startDateFormatted = formatDate(task.startDate);\n var endDateFormatted = formatDate(task.deadlineDate);\n openTaskModal(task.name, task.content, task.id, startDateFormatted, endDateFormatted, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId);\n });\n checkbox.on(\"click\", function (event) {\n event.stopPropagation();\n if (checkbox.prop(\"checked\")) {\n console.log(\"Checkbox is checked.\");\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", task.id, {\n completed: true\n });\n } else {\n console.log(\"Checkbox is unchecked.\");\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", task.id, {\n completed: false\n });\n }\n });\n taskListElement.append(taskElement); // Stop if the container isn't found\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n } else {\n console.log(\"Task container not found\");\n }\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Opens modal for a task\nfunction openTaskModal(taskTitle, taskContent, taskId, taskStart, taskEnd, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId) {\n var taskModal = document.getElementById(taskModalId);\n var title = document.getElementById(taskTitleId);\n var content = document.getElementById(taskContentId);\n var startDate = document.getElementById(taskStartDateId);\n var endDate = document.getElementById(taskEndDateId);\n if (taskModal) {\n taskModal.setAttribute(\"data-task-id\", taskId);\n if (title && content && startDate && endDate) {\n title.value = \"\";\n content.value = \"\";\n startDate.value = \"\";\n endDate.value = \"\";\n if (taskTitle !== \"\" || taskContent !== \"\" || taskStart !== \"\" || taskEnd !== \"\") {\n title.value = taskTitle;\n content.value = taskContent;\n startDate.value = taskStart;\n endDate.value = taskEnd;\n }\n }\n taskModal.style.display = \"block\";\n }\n}\n//Adds eventlistener to close modal\nfunction modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId) {\n var closeButton = document.getElementById(closeBtnId);\n var taskModal = document.getElementById(taskModalId);\n var saveButton = document.getElementById(saveBtnId);\n var deleteButton = document.getElementById(deleteBtnId);\n if (closeButton && taskModal) {\n var closeBtnListener = closeButton.hasAttribute(\"data-has-event-listener\");\n if (!closeBtnListener) {\n closeButton.setAttribute(\"data-has-event-listener\", \"true\");\n closeButton.addEventListener(\"click\", function () {\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n\n if (saveButton && taskModal) {\n var saveBtnListener = saveButton.hasAttribute(\"data-has-event-listener\");\n if (!saveBtnListener) {\n saveButton.setAttribute(\"data-has-event-listener\", \"true\");\n saveButton.addEventListener(\"click\", function () {\n createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId);\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n\n if (deleteButton && taskModal) {\n var deleteBtnListener = deleteButton.hasAttribute(\"data-has-event-listener\");\n if (!deleteBtnListener) {\n deleteButton.setAttribute(\"data-has-event-listener\", \"true\");\n deleteButton.addEventListener(\"click\", function () {\n deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId);\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n}\n\nfunction createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var modalElement, titleElement, deadlineElement, startElement, contentElement, taskId, improvementWork, deadline, startDate, listElement, _deadline, _startDate, _listElement;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n //title: string, deadline : Date, startDate: Date, stage: string, content: string\n modalElement = document.getElementById(taskModalId);\n titleElement = document.getElementById(taskTitleId);\n deadlineElement = document.getElementById(taskEndDateId);\n startElement = document.getElementById(taskStartDateId);\n contentElement = document.getElementById(taskContentId);\n taskId = modalElement.getAttribute(\"data-task-id\");\n if (!(taskId === \"\")) {\n _context3.next = 13;\n break;\n }\n _context3.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 9:\n improvementWork = _context3.sent;\n if (titleElement && contentElement && deadlineElement && startElement) {\n if (titleElement.value !== \"\", deadlineElement.value !== \"\", startElement.value !== \"\", contentElement.value !== \"\") {\n deadline = new Date(deadlineElement.value); //Date string to timestamp\n startDate = new Date(startElement.value); //Date string to timestamp\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.createTaskOnImprovementWork)(null, projectId, titleElement.value, deadline, startDate, improvementWork.currentStage, contentElement.value);\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n } else {\n console.log(\"All input fields for the task where not filled in\");\n }\n } else {\n console.log(\"All input element where not found\");\n }\n _context3.next = 21;\n break;\n case 13:\n if (!taskId) {\n _context3.next = 21;\n break;\n }\n _deadline = new Date(deadlineElement.value); //Date string to timestamp\n _startDate = new Date(startElement.value); //Date string to timestamp\n _context3.next = 18;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", taskId, {\n name: titleElement.value,\n deadlineDate: _deadline,\n startDate: _startDate,\n content: contentElement.value\n });\n case 18:\n _listElement = document.getElementById(taskListId);\n _listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n //loadPage(projectId); //Loads tasks since updated ASK for help\n case 21:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var modalElement, taskId, listElement;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n modalElement = document.getElementById(taskModalId);\n taskId = modalElement.getAttribute(\"data-task-id\");\n if (!taskId) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.deleteInstance)(\"task\", taskId);\n case 5:\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction formatDate(timeStamp) {\n var date = timeStamp.toDate();\n var day = String(date.getDate()).toString();\n var month = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based\n var year = String(date.getFullYear()).toString();\n if (parseInt(month, 10) < 10 && parseInt(day, 10) > 9) {\n return \"\".concat(year, \"-0\").concat(month, \"-\").concat(day);\n } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-\").concat(month, \"-0\").concat(day);\n } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-0\").concat(month, \"-0\").concat(day);\n } else {\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n }\n}\nfunction timestamptoDate(timestamp) {\n if (timestamp instanceof firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.Timestamp) {\n var date = timestamp.toDate();\n return date;\n } else {\n console.error(\"Invalid timestamp type.\");\n return null;\n }\n}\nfunction getDaysMonthYear(startDate) {\n var currentTime = new Date();\n if (startDate) {\n var millisecondsDifference = currentTime.getTime() - startDate.getTime();\n // Convert milliseconds to seconds\n var secondsDifference = millisecondsDifference / 1000;\n // Calculate years, months, and days\n var years = Math.floor(secondsDifference / (365.25 * 24 * 60 * 60));\n var remainingSeconds = secondsDifference % (365.25 * 24 * 60 * 60);\n var months = Math.floor(remainingSeconds / (30 * 24 * 60 * 60)); // Assuming 30 days per month\n var days = Math.floor(remainingSeconds % (30 * 24 * 60 * 60) / (24 * 60 * 60));\n return \" \".concat(years, \" \\xE5r, \").concat(months, \" m\\xE5nader, \").concat(days, \" dagar.\");\n } else {\n return \"Det finns inget startdatum registrerat\";\n }\n}\nfunction loadProjectHeader(improvementWork) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this2 = this;\n var loadingIndicators, titleP, aAreaElement, resources, time, formatdateStarted, aUnitArray, projectLeader, members, aProjectLeader, aMembers, aUnit, aUnitElement, hospitalArray, aHospital, aHospitalElement;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n // Show loading indicators\n loadingIndicators = document.querySelectorAll(\".loadingIndicator\");\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = \"block\";\n });\n titleP = document.getElementById(\"title\");\n titleP.textContent = improvementWork.name;\n aAreaElement = document.getElementById(\"pArea\");\n aAreaElement.textContent = improvementWork.area;\n resources = document.getElementById(\"pResources\");\n resources.textContent = improvementWork.resources;\n time = document.getElementById(\"pTime\");\n formatdateStarted = timestamptoDate(improvementWork.dateStarted);\n time.textContent = getDaysMonthYear(formatdateStarted);\n _context6.next = 13;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n unitId: improvementWork.unitId\n });\n case 13:\n aUnitArray = _context6.sent;\n _context6.next = 16;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 16:\n projectLeader = _context6.sent;\n _context6.next = 19;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsersForImprovementWork)(improvementWork.id);\n case 19:\n members = _context6.sent;\n aProjectLeader = document.getElementById(\"pLeader\");\n aProjectLeader.textContent = projectLeader.firstName + \" \" + projectLeader.lastName + \" (\" + projectLeader.email + \")\";\n aMembers = document.getElementById(\"pMembers\");\n members.forEach(function (member) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n aMembers.textContent = aMembers.textContent + member.firstName + \" \" + member.lastName + \", \";\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n //stop loding current members\n if (aUnitArray.length === 0) {\n console.log(\"Error loading the units.\");\n }\n aUnit = aUnitArray[0];\n aUnitElement = document.getElementById(\"pUnit\");\n aUnitElement.textContent = aUnit.name;\n _context6.next = 30;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalId: aUnit.hospitalId\n });\n case 30:\n hospitalArray = _context6.sent;\n if (hospitalArray.length === 0) {\n console.log(\"Error loading the hospitals.\");\n }\n aHospital = hospitalArray[0];\n aHospitalElement = document.getElementById(\"pHospital\");\n aHospitalElement.textContent = aHospital.name;\n // Close loading indicators\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = \"none\";\n });\n case 36:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction getDivWithIdFromHTML(path, id) {\n // Returning a Promise\n return fetch(path).then(function (response) {\n return response.text();\n }).then(function (html) {\n // Create a temporary container\n var container = document.createElement(\"div\");\n container.innerHTML = html;\n // Get the modal content from the container\n var element = container.querySelector(id);\n return element;\n })[\"catch\"](function (error) {\n console.error(\"Error loading modal content:\", error);\n return null;\n });\n}\nfunction loadMemberModal() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var modalContent, selectEmployeeChangeSection;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return getDivWithIdFromHTML(\"../projectPage/addMemberModal.html\", \"#addMemberModal\");\n case 2:\n modalContent = _context7.sent;\n if (modalContent) {\n $(\"#container-fluid\").append(modalContent);\n $(modalContent).modal(\"show\");\n }\n /* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees');\n if (selectMemberContent) {\n $('#modal-body').append(selectMemberContent);\n } */\n selectEmployeeChangeSection = document.querySelector(\"#selectEmployee\");\n if (selectEmployeeChangeSection) {\n selectEmployeeChangeSection.addEventListener(\"change\", _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.assignedEmployer);\n } else {\n console.error(\"Error: 'changebutton' not found\");\n }\n (0,_initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.loadEmployees)();\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPage.js?"); /***/ }), diff --git a/client/dist/pageHandler.bundle.js b/client/dist/pageHandler.bundle.js index ed9f6731d8fa0a4f82f8e2f68f7e1c1b475260ab..cdb7fa4a6219cc24d767f0bdef56efc9385ba0b2 100644 --- a/client/dist/pageHandler.bundle.js +++ b/client/dist/pageHandler.bundle.js @@ -96,7 +96,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n alert(\"Felaktiga inloggnings-uppgifter\");\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); /***/ }), @@ -106,7 +106,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyB7n9YIDCmeyzeZzteFnXqOUBijzEO59ls\",\n authDomain: \"backup-277c3.firebaseapp.com\",\n projectId: \"backup-277c3\",\n storageBucket: \"backup-277c3.appspot.com\",\n messagingSenderId: \"296015398098\",\n appId: \"1:296015398098:web:71e1d1ec2b0c370e5a590b\",\n measurementId: \"G-E933CXWWCG\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyDqkaVZMr11J4mfnR0auqoQilZyPfyD-x4\",\n authDomain: \"c3solutions-dc109.firebaseapp.com\",\n projectId: \"c3solutions-dc109\",\n storageBucket: \"c3solutions-dc109.appspot.com\",\n messagingSenderId: \"902143402555\",\n appId: \"1:902143402555:web:29213e81de0a0cba38b21e\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); /***/ }), @@ -156,7 +156,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*****************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\nfunction loadPage() {\n var container = document.querySelector('#container-fluid');\n if (!container) return; // Stop if the container isn't found\n fetch('KnowledgeBank/Nolans3.html').then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement('div');\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector('.nolans-main-container');\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error('Failed to load the external HTML file:', error);\n });\n}\n\n//# sourceURL=webpack://c3/./client/KnowledgeBank/Nolans3.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\nfunction loadPage() {\n var container = document.querySelector(\"#container-fluid\");\n if (!container) return; // Stop if the container isn't found\n fetch(\"KnowledgeBank/Nolans3.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".nolans-main-container\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n}\n\n//# sourceURL=webpack://c3/./client/KnowledgeBank/Nolans3.js?"); /***/ }), @@ -256,7 +256,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \***************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ideaBank/ideaBank.js */ \"./client/ideaBank/ideaBank.js\");\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nvar projectCards = [];\nvar filteredImprovementWorks = [];\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, currentStage) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.stage = currentStage;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n var stageImages = {\n Act: \"../images/Hemsida_PGSA_A.png\",\n Study: \"../images/Hemsida_PGSA_S.png\",\n Do: \"../images/Hemsida_PGSA_G.png\",\n Plan: \"../images/Hemsida_PGSA_P.png\",\n Finished: \"path/to/finished-image.jpg\"\n };\n var stageKey = this.stage;\n // Check if the stage is directly a key in stageImages\n if (!stageImages[stageKey]) {\n // If not, try to map the Swedish stage to English using nolanStageMapping\n stageKey = nolanStageMapping[stageKey];\n }\n // Now get the imageUrl using the stageKey\n var imageUrl = stageImages[stageKey];\n return \"\\n <div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: default;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n </div>\\n <button id=\\\"project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n <div>\\n <img class=\\\"statusImage\\\" src=\\\"\").concat(imageUrl, \"\\\" alt=\\\"Stage Image\\\">\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.projectId, \"\\\" class = \\\"moreInfoClass\\\">> Mer information</p>\\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}();\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var container, checkedHospitalIds, checkedUnitIds, checkedNolanStages, checkedPatientRiskLevels, ascendingDates, searchBar;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context6.next = 3;\n break;\n }\n return _context6.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = [];\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n checkedNolanStages = [];\n checkedPatientRiskLevels = [];\n ascendingDates = false;\n fetch(\"currentProjects/currentProjects.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n var createNolanStageCheckBoxContainer = tempContainer.querySelector('#nolanStageSelection');\n var createPatientRiskLevelCheckBoxContainer = tempContainer.querySelector('#patientRiskLevelSelection');\n var createOrderSelectionContainer = tempContainer.querySelector('#orderSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createHospitalCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"unitSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadUnits)(checkedHospitalIds);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createUnitCheckBoxContainer\");\n // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n _context2.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context2.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n }\n if (createNolanStageCheckBoxContainer) {\n createNolanStageCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n checkboxes = createNolanStageCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedNolanStages = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedNolanStages.push(inputCheckbox.id);\n checkedNolanStages.push(nolanStageMapping[inputCheckbox.id]);\n console.log(\"checkedNolanStages: \", checkedNolanStages);\n }\n });\n _context3.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 5:\n filteredImprovementWorks = _context3.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n });\n }\n if (createPatientRiskLevelCheckBoxContainer) {\n createPatientRiskLevelCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n checkboxes = createPatientRiskLevelCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createPatientRiskLevelCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedPatientRiskLevels = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedPatientRiskLevels.push(inputCheckbox.id);\n checkedPatientRiskLevels.push(patientRiskLevelMapping[inputCheckbox.id]);\n console.log(\"checkedPatientRiskLevels: \", checkedPatientRiskLevels);\n }\n });\n _context4.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context4.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n });\n }\n if (createOrderSelectionContainer) {\n createOrderSelectionContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var inputCheckbox;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n inputCheckbox = event.target;\n ascendingDates = inputCheckbox.checked;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n sortProjects(container, listenersLoaded, ascendingDates);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n _context6.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({\n completed: false\n });\n case 12:\n filteredImprovementWorks = _context6.sent;\n console.log(\"Filtered improvementWorks: \", filteredImprovementWorks);\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n searchBar = document.getElementById(\"searchBarImprovement\");\n searchBar === null || searchBar === void 0 ? void 0 : searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar, container);\n }\n });\n console.log(\"Loading hospitals\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"hospitalSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadHospitals)();\n loadNolanStages();\n loadPatientRiskLevels();\n case 23:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction loadNolanStages() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var selectStageHTML, allStages;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n selectStageHTML = $('#nolanStageSelection'); // loads the select type from html\n allStages = [\"Planera\", \"Göra\", \"Studera\", \"Agera\"];\n allStages.forEach(function (stage) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + stage + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + stage + \"</label>\\n </div>\");\n selectStageHTML.append(generatedElement);\n console.log(\"Adding HTML for for stage \", stage);\n });\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction loadPatientRiskLevels() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var selectPatientRiskLevelHTML, allRiskLevels;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n selectPatientRiskLevelHTML = $('#patientRiskLevelSelection'); // loads the select type from html\n allRiskLevels = [\"Grön\", \"Blå\", \"Gul\", \"Röd\"];\n allRiskLevels.forEach(function (riskLevel) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + riskLevel + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">Riskniv\\xE5 \" + riskLevel + \"</label>\\n </div>\");\n selectPatientRiskLevelHTML.append(generatedElement);\n console.log(\"Adding HTML for for risk level \", riskLevel);\n });\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction sortProjects(selectElement, listenersLoaded, ascendingDates) {\n // Sort in reversed order if ascendingDates is true\n var cardsToIterate = ascendingDates ? _toConsumableArray(projectCards).reverse() : projectCards;\n // Loop through the saved array of cards and generate HTML for each card\n var _iterator = _createForOfIteratorHelper(cardsToIterate),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var card = _step.value;\n var cardHTML = card.generateHTML();\n var div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (!selectElement) return;\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(card.projectId, card);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction getProjects(selectElement, listenersLoaded, improvementWorks) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this = this;\n var id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n id = 0;\n projectCards = [];\n improvementWorks.forEach(function (improvementWork) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, projectLeader, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = improvementWork.name;\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", improvementWork.unitId);\n case 3:\n department = _context9.sent;\n _context9.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 6:\n projectLeader = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n card = new projectCard(id, projectLeader.firstName + \" \" + projectLeader.lastName, department.name, title, improvementWork.content, improvementWork.id, improvementWork.currentStage);\n projectCards.push(card);\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(improvementWork.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(improvementWork.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n $(\"#ongoingSeeDetailsButton\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var expandedDiv;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n expandedDiv = document.getElementById(\"expandedOngoingWorkCard\" + projectId);\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n } else {\n card.closeMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n }\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n $(\"#project-button-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context12.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n });\n /*$(document).on(\"click\", \"#\" + projectId, async function (event) {\n let tmp = await getObjectById(\"improvementWork\", projectId);\n const currentStage = tmp.currentStage;\n const element = event.target as HTMLElement;\n if (element.classList.contains(\"moreInfoClass\")) {\n const expandedDiv = document.getElementById(\n \"expandedOngoingWorkCard\" + projectId\n );\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n } else {\n card.closeMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n }\n } else if (element.classList.contains(\"projectButton\") || element.classList.contains(\"toSinglePage\")) {\n document.removeEventListener(\"click\", event.target);\n if (currentStage === \"Act\") {\n loadProjectPageA(projectId);\n } else if (currentStage === \"Study\") {\n loadProjectPageS(projectId);\n } else if (currentStage === \"Do\") {\n loadProjectPageG(projectId);\n } else if (currentStage === \"Plan\") {\n loadProjectPageP(projectId);\n } else if (currentStage === \"Finished\") {\n loadProjectPageP(projectId);\n }\n }\n });*/\n case 2:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\nfunction performSearch(searchBar, container) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var inputValue, query, matchedStage;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n inputValue = searchBar.value; //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n query = {};\n query.completed = false;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n if (inputValue !== \"\") {\n matchedStage = Object.keys(nolanStageMapping).find(function (stage) {\n return stage.toLowerCase().includes(inputValue.toLowerCase());\n });\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n _context14.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)(query);\n case 10:\n filteredImprovementWorks = _context14.sent;\n _context14.next = 13;\n return getProjects(container, true, filteredImprovementWorks);\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ideaBank/ideaBank.js */ \"./client/ideaBank/ideaBank.js\");\n/* harmony import */ var _projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../projectPage/projectPage.js */ \"./client/projectPage/projectPage.js\");\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nvar projectCards = [];\nvar filteredImprovementWorks = [];\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, currentStage, dateStarted) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.stage = currentStage;\n this.dateStarted = dateStarted;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n var stageImages = {\n Act: \"../images/Hemsida_PGSA_A.png\",\n Study: \"../images/Hemsida_PGSA_S.png\",\n Do: \"../images/Hemsida_PGSA_G.png\",\n Plan: \"../images/Hemsida_PGSA_P.png\",\n Finished: \"path/to/finished-image.jpg\"\n };\n var stageKey = this.stage;\n // Check if the stage is directly a key in stageImages\n if (!stageImages[stageKey]) {\n // If not, try to map the Swedish stage to English using nolanStageMapping\n stageKey = nolanStageMapping[stageKey];\n }\n // Now get the imageUrl using the stageKey\n var imageUrl = stageImages[stageKey];\n return \"\\n <div class=\\\"totalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: default;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n\\n <p class=\\\"toSinglePage\\\" id=ongoingCardStartDate\\\" style=\\\"font-size: 12px;\\\">\").concat((0,_projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__.formatDate)(this.dateStarted), \"</p>\\n </div>\\n <button id=\\\"project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>\\n <div>\\n <img class=\\\"statusImage\\\" src=\\\"\").concat(imageUrl, \"\\\" alt=\\\"Stage Image\\\">\\n </div>\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n <p id=\\\"ongoingSeeDetailsButton\").concat(this.projectId, \"\\\" class = \\\"moreInfoClass\\\">> Mer information</p>\\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}();\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var container, checkedHospitalIds, checkedUnitIds, checkedNolanStages, checkedPatientRiskLevels, ascendingDates, searchBar;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context6.next = 3;\n break;\n }\n return _context6.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n projectCards = [];\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n checkedNolanStages = [];\n checkedPatientRiskLevels = [];\n ascendingDates = false;\n fetch(\"currentProjects/currentProjects.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector(\"#hospitalSelection\");\n var createUnitCheckBoxContainer = tempContainer.querySelector(\"#unitSelection\");\n var createNolanStageCheckBoxContainer = tempContainer.querySelector(\"#nolanStageSelection\");\n var createPatientRiskLevelCheckBoxContainer = tempContainer.querySelector(\"#patientRiskLevelSelection\");\n var createOrderSelectionContainer = tempContainer.querySelector(\"#orderSelection\");\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createHospitalCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log(\"Checked hospitals:\", checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"unitSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadUnits)(checkedHospitalIds);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createUnitCheckBoxContainer\");\n // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n _context2.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context2.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n }\n if (createNolanStageCheckBoxContainer) {\n createNolanStageCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n checkboxes = createNolanStageCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedNolanStages = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedNolanStages.push(inputCheckbox.id);\n checkedNolanStages.push(nolanStageMapping[inputCheckbox.id]);\n console.log(\"checkedNolanStages: \", checkedNolanStages);\n }\n });\n _context3.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 5:\n filteredImprovementWorks = _context3.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n });\n }\n if (createPatientRiskLevelCheckBoxContainer) {\n createPatientRiskLevelCheckBoxContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n checkboxes = createPatientRiskLevelCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]');\n console.log(\"createPatientRiskLevelCheckBoxContainer\");\n // Empty list of checked hospitals\n checkedPatientRiskLevels = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedPatientRiskLevels.push(inputCheckbox.id);\n checkedPatientRiskLevels.push(patientRiskLevelMapping[inputCheckbox.id]);\n console.log(\"checkedPatientRiskLevels: \", checkedPatientRiskLevels);\n }\n });\n _context4.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getFilteredImprovementWorks)({\n patientRiskLevels: checkedPatientRiskLevels,\n nolanStages: checkedNolanStages,\n units: checkedUnitIds\n });\n case 6:\n filteredImprovementWorks = _context4.sent;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n });\n }\n if (createOrderSelectionContainer) {\n createOrderSelectionContainer.addEventListener(\"change\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var inputCheckbox;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n inputCheckbox = event.target;\n ascendingDates = inputCheckbox.checked;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n sortProjects(container, listenersLoaded, ascendingDates);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n _context6.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)({\n completed: false\n });\n case 12:\n filteredImprovementWorks = _context6.sent;\n console.log(\"Filtered improvementWorks: \", filteredImprovementWorks);\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n getProjects(container, listenersLoaded, filteredImprovementWorks);\n searchBar = document.getElementById(\"searchBarImprovement\");\n searchBar === null || searchBar === void 0 ? void 0 : searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar, container);\n }\n });\n console.log(\"Loading hospitals\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.clearContent)(\"hospitalSelection\");\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.loadHospitals)();\n loadNolanStages();\n loadPatientRiskLevels();\n case 23:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction loadNolanStages() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var selectStageHTML, allStages;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n selectStageHTML = $(\"#nolanStageSelection\"); // loads the select type from html\n allStages = [\"Planera\", \"Göra\", \"Studera\", \"Agera\"];\n allStages.forEach(function (stage) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + stage + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + stage + \"</label>\\n </div>\");\n selectStageHTML.append(generatedElement);\n console.log(\"Adding HTML for for stage \", stage);\n });\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction loadPatientRiskLevels() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var selectPatientRiskLevelHTML, allRiskLevels;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n selectPatientRiskLevelHTML = $(\"#patientRiskLevelSelection\"); // loads the select type from html\n allRiskLevels = [\"Grön\", \"Blå\", \"Gul\", \"Röd\"];\n allRiskLevels.forEach(function (riskLevel) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + riskLevel + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">Riskniv\\xE5 \" + riskLevel + \"</label>\\n </div>\");\n selectPatientRiskLevelHTML.append(generatedElement);\n console.log(\"Adding HTML for for risk level \", riskLevel);\n });\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction sortProjects(selectElement, listenersLoaded, ascendingDates) {\n // Sort in reversed order if ascendingDates is true\n var cardsToIterate = ascendingDates ? _toConsumableArray(projectCards).reverse() : projectCards;\n // Loop through the saved array of cards and generate HTML for each card\n var _iterator = _createForOfIteratorHelper(cardsToIterate),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var card = _step.value;\n var cardHTML = card.generateHTML();\n var div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (!selectElement) return;\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(card.projectId, card);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction getProjects(selectElement, listenersLoaded, improvementWorks) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this = this;\n var id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n id = 0;\n projectCards = [];\n improvementWorks.forEach(function (improvementWork) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, projectLeader, dateStarted, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = improvementWork.name;\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", improvementWork.unitId);\n case 3:\n department = _context9.sent;\n _context9.next = 6;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 6:\n projectLeader = _context9.sent;\n dateStarted = improvementWork.dateStarted;\n if (!department) {\n _context9.next = 22;\n break;\n }\n card = new projectCard(id, projectLeader.firstName + \" \" + projectLeader.lastName, department.name, title, improvementWork.content, improvementWork.id, improvementWork.currentStage, dateStarted);\n projectCards.push(card);\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"projectCardCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 17;\n break;\n }\n return _context9.abrupt(\"return\");\n case 17:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(improvementWork.id, card);\n id++;\n _context9.next = 23;\n break;\n case 22:\n console.log(improvementWork.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 23:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n $(\"#ongoingSeeDetailsButton\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var expandedDiv;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n expandedDiv = document.getElementById(\"expandedOngoingWorkCard\" + projectId);\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n } else {\n card.closeMoreInfo(\"expandedOngoingWorkCard\" + projectId, \"ongoingSeeDetailsButton\" + projectId);\n }\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n $(\"#project-button-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context12.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n });\n /*$(document).on(\"click\", \"#\" + projectId, async function (event) {\n let tmp = await getObjectById(\"improvementWork\", projectId);\n const currentStage = tmp.currentStage;\n const element = event.target as HTMLElement;\n if (element.classList.contains(\"moreInfoClass\")) {\n const expandedDiv = document.getElementById(\n \"expandedOngoingWorkCard\" + projectId\n );\n if (expandedDiv && expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n } else {\n card.closeMoreInfo(\n `expandedOngoingWorkCard` + projectId,\n `ongoingSeeDetailsButton` + projectId\n );\n }\n } else if (element.classList.contains(\"projectButton\") || element.classList.contains(\"toSinglePage\")) {\n document.removeEventListener(\"click\", event.target);\n if (currentStage === \"Act\") {\n loadProjectPageA(projectId);\n } else if (currentStage === \"Study\") {\n loadProjectPageS(projectId);\n } else if (currentStage === \"Do\") {\n loadProjectPageG(projectId);\n } else if (currentStage === \"Plan\") {\n loadProjectPageP(projectId);\n } else if (currentStage === \"Finished\") {\n loadProjectPageP(projectId);\n }\n }\n });*/\n case 2:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\nfunction performSearch(searchBar, container) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var inputValue, query, matchedStage;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n inputValue = searchBar.value; //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n query = {};\n query.completed = false;\n (0,_ideaBank_ideaBank_js__WEBPACK_IMPORTED_MODULE_2__.removeCardsFromDiv)(\"div.projectCardCardDiv\");\n if (inputValue !== \"\") {\n matchedStage = Object.keys(nolanStageMapping).find(function (stage) {\n return stage.toLowerCase().includes(inputValue.toLowerCase());\n });\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n _context14.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorks)(query);\n case 10:\n filteredImprovementWorks = _context14.sent;\n _context14.next = 13;\n return getProjects(container, true, filteredImprovementWorks);\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/currentProjects/currentProjects.js?"); /***/ }), @@ -266,7 +266,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \****************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Database/authentication.js */ \"./client/Database/authentication.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../client/Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction logoutUser(event) {\n event.preventDefault();\n alert(\"logout\");\n (0,_Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__.logout)();\n}\nvar myIdeaCards = {};\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n _createClass(IdeaCard, [{\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImageHP\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFadedHP\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n </div>\\n <div class=\\\"ideaCardUpvotesHP\\\">\\n <div class=\\\"upvoteDivHP\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\\\" class=\\\"ideaCardFont\\\"> \").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFont\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 1</p>\\n <p class=\\\"ideaCardFont\\\">K0mment 2</p>\\n </div>\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera Projekt</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, signedInUserHsaID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var user, userSuggestions, counter;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", signedInUserHsaID);\n case 2:\n user = _context2.sent;\n _context2.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 5:\n userSuggestions = _context2.sent;\n //If there exist filter use those instead to get matching suggestions rest should not need to be changed\n counter = 0;\n userSuggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context.sent;\n _context.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context.sent;\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n addListner(userSuggestions, container);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\nfunction addListner(cardArray, element) {\n element.addEventListener(\"click\", function (event) {\n var target = event.target;\n //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n var cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n var card = cardArray[cardId];\n var expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n console.log(expandedDiv);\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n });\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var container;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context5.next = 3;\n break;\n }\n return _context5.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n fetch(\"homePage.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var tempContainer, specificElement, tmp, user, suggestionContainer, nameHeaderElement, userFullName, projectContainer, departmentContainer, departmentDiv;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n // Create a temporary container element to hold the loaded content\n tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n specificElement = tempContainer.querySelector(\".main-content\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n tmp = localStorage.getItem(\"user\");\n console.log(tmp);\n if (tmp) {\n _context4.next = 9;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context4.abrupt(\"return\");\n case 9:\n user = JSON.parse(tmp)[0];\n suggestionContainer = document.getElementById(\"suggestion-container\");\n if (!suggestionContainer) {\n _context4.next = 15;\n break;\n }\n _context4.next = 14;\n return createNewCards(\"HomePageIdeaCardDiv\", suggestionContainer, user.id);\n case 14:\n addListner(myIdeaCards, container);\n case 15:\n nameHeaderElement = document.getElementById(\"user-name-header\");\n userFullName = user.firstName + \" \" + user.lastName;\n if (nameHeaderElement) {\n nameHeaderElement.textContent = userFullName;\n }\n projectContainer = document.getElementById(\"project-container\");\n if (!projectContainer) {\n _context4.next = 22;\n break;\n }\n _context4.next = 22;\n return getProjects(projectContainer, listenersLoaded, user.id);\n case 22:\n console.log(\"innan\");\n departmentContainer = document.getElementById(\"department-container\");\n departmentDiv = document.getElementById(\"nolanAct\");\n if (!(departmentContainer && document.getElementById(\"nolanAct\") && departmentDiv.innerHTML.trim() === \"\")) {\n _context4.next = 29;\n break;\n }\n console.log(\"anropar funktionen\");\n _context4.next = 29;\n return improvementWorkInfo(departmentContainer, user);\n case 29:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n $(\"#homepage-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context6.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\n/*\nasync function performSearch(searchBar: HTMLInputElement, container: HTMLElement) {\n let inputValue = searchBar.value;\n //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n\n let query: { [key: string]: string } = {};\n\n removeCardsFromDiv(\"div.projectCardCardDiv\");\n \n if (inputValue !== \"\") {\n const matchedStage = Object.keys(nolanStageMapping).find((stage) =>\n stage.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n filteredImprovementWorks = await getImprovementWorks(query);\n await getProjects(container, true, filteredImprovementWorks);\n}\n*/\nfunction improvementWorkInfo(departmentContainer, user) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var improvementWorks, improvementWorksPlan, improvementWorksDo, improvementWorkStudy, improvementWorksAct, _iterator, _step, improvementWork, improvementWorkContainer, improvementWorkContainerElement, nolanAct, actElement, nolanPlan, planElement, nolanDo, doElement, nolanStudy, studyElement;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorks)({\n unitId: user.unitId\n });\n case 2:\n improvementWorks = _context8.sent;\n console.log(\"i funktionen\");\n //Count number of improvement works in the department in each stage\n improvementWorksPlan = 0;\n improvementWorksDo = 0;\n improvementWorkStudy = 0;\n improvementWorksAct = 0;\n _iterator = _createForOfIteratorHelper(improvementWorks);\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n improvementWork = _step.value;\n if (improvementWork.currentStage == \"Plan\") {\n improvementWorksPlan += 1;\n } else if (improvementWork.currentStage == \"Do\") {\n improvementWorksDo += 1;\n } else if (improvementWork.currentStage == \"Study\") {\n improvementWorkStudy += 1;\n } else if (improvementWork.currentStage == \"Act\") {\n improvementWorksAct += 1;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n improvementWorkContainer = document.getElementById(\"numberOfImprovementWorks\"); //Append a div displaying the number of improvement works in the user's department\n improvementWorkContainerElement = document.createElement(\"p\");\n improvementWorkContainerElement.innerHTML = \"Antal pågående förbättringsarbeten i din avdelning: \" + improvementWorks.length;\n if (improvementWorkContainer && improvementWorkContainer.innerHTML.trim() === \"\") {\n improvementWorkContainer.appendChild(improvementWorkContainerElement);\n }\n //Append the text displaying the number of improvement works that are in the stage act\n nolanAct = document.getElementById(\"nolanAct\");\n actElement = document.createElement(\"p\");\n actElement.innerHTML = \"Agera: \" + improvementWorksAct;\n actElement.style.margin = \"5px\";\n if (nolanAct) {\n nolanAct.appendChild(actElement);\n }\n //Append the text displaying the number of improvement works that are in the stage plan\n nolanPlan = document.getElementById(\"nolanPlan\");\n planElement = document.createElement(\"p\");\n planElement.innerHTML = \"Planera: \" + improvementWorksPlan;\n planElement.style.margin = \"5px\";\n if (nolanPlan) {\n nolanPlan.appendChild(planElement);\n }\n //Append the text displaying the number of improvement works that are in the stage do\n nolanDo = document.getElementById(\"nolanDo\");\n doElement = document.createElement(\"p\");\n doElement.innerHTML = \"Göra: \" + improvementWorksDo;\n doElement.style.margin = \"5px\";\n if (nolanDo) {\n nolanDo.appendChild(doElement);\n }\n //Append the text displaying the number of improvement works that are in the stage study\n nolanStudy = document.getElementById(\"nolanStudy\");\n studyElement = document.createElement(\"p\");\n studyElement.innerHTML = \"Studera: \" + improvementWorkStudy;\n studyElement.style.margin = \"5px\";\n if (nolanStudy) {\n nolanStudy.appendChild(studyElement);\n }\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this3 = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorksForUser)(userHsaId);\n case 2:\n data = _context10.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = project.name;\n _context9.next = 3;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", project.unitId);\n case 3:\n department = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n name = \"Projektledare\"; //Waiting for backend fix\n description = project.content;\n i = id;\n card = new projectCard(i, name, department.name, title, description, project.id);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"homePageProjectCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(project.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(project.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nvar projectCards = {};\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"homeTotalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: pointer;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"homepage-\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n </div>\\n\\n <!--<button id=\\\"homepage-project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>-->\\n\\n\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n \\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"homepage-expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"homepage-expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}(); //<p id=\"homepage-ongoingSeeDetailsButton${this.projectId}\" class = \"moreInfoClass\">> Mer information</p>\n\n//# sourceURL=webpack://c3/./client/homePage.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEventListener: () => (/* binding */ addEventListener),\n/* harmony export */ loadPage: () => (/* binding */ loadPage)\n/* harmony export */ });\n/* harmony import */ var _Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Database/authentication.js */ \"./client/Database/authentication.js\");\n/* harmony import */ var _SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SidebarAndHeader/pageHandler.js */ \"./client/SidebarAndHeader/pageHandler.js\");\n/* harmony import */ var _client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../client/Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var _projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./projectPage/projectPage.js */ \"./client/projectPage/projectPage.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nfunction logoutUser(event) {\n event.preventDefault();\n alert(\"logout\");\n (0,_Database_authentication_js__WEBPACK_IMPORTED_MODULE_0__.logout)();\n}\nvar myIdeaCards = {};\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n _createClass(IdeaCard, [{\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImageHP\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFadedHP\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n </div>\\n <div class=\\\"ideaCardUpvotesHP\\\">\\n <div class=\\\"upvoteDivHP\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\\\" class=\\\"ideaCardFont\\\"> \").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFont\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 1</p>\\n <p class=\\\"ideaCardFont\\\">K0mment 2</p>\\n </div>\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera Projekt</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, signedInUserHsaID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var user, userSuggestions, counter;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", signedInUserHsaID);\n case 2:\n user = _context2.sent;\n _context2.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 5:\n userSuggestions = _context2.sent;\n //If there exist filter use those instead to get matching suggestions rest should not need to be changed\n counter = 0;\n userSuggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context.sent;\n _context.next = 5;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context.sent;\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n addListner(userSuggestions, container);\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\nfunction addListner(cardArray, element) {\n element.addEventListener(\"click\", function (event) {\n var target = event.target;\n //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n var cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n var card = cardArray[cardId];\n var expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n console.log(expandedDiv);\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n });\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction loadPage(listenersLoaded) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var container;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context5.next = 3;\n break;\n }\n return _context5.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n fetch(\"homePage.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var tempContainer, specificElement, tmp, user, suggestionContainer, nameHeaderElement, userFullName, projectContainer, departmentContainer, departmentDiv;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n // Create a temporary container element to hold the loaded content\n tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n specificElement = tempContainer.querySelector(\".main-content\");\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n tmp = localStorage.getItem(\"user\");\n console.log(tmp);\n if (tmp) {\n _context4.next = 9;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context4.abrupt(\"return\");\n case 9:\n user = JSON.parse(tmp)[0];\n suggestionContainer = document.getElementById(\"suggestion-container\");\n if (!suggestionContainer) {\n _context4.next = 15;\n break;\n }\n _context4.next = 14;\n return createNewCards(\"HomePageIdeaCardDiv\", suggestionContainer, user.id);\n case 14:\n addListner(myIdeaCards, container);\n case 15:\n nameHeaderElement = document.getElementById(\"user-name-header\");\n userFullName = user.firstName + \" \" + user.lastName;\n if (nameHeaderElement) {\n nameHeaderElement.textContent = userFullName;\n }\n projectContainer = document.getElementById(\"project-container\");\n if (!projectContainer) {\n _context4.next = 22;\n break;\n }\n _context4.next = 22;\n return getProjects(projectContainer, listenersLoaded, user.id);\n case 22:\n console.log(\"innan\");\n departmentContainer = document.getElementById(\"department-container\");\n departmentDiv = document.getElementById(\"nolanAct\");\n if (!(departmentContainer && document.getElementById(\"nolanAct\") && departmentDiv.innerHTML.trim() === \"\")) {\n _context4.next = 29;\n break;\n }\n console.log(\"anropar funktionen\");\n _context4.next = 29;\n return improvementWorkInfo(departmentContainer, user);\n case 29:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\nfunction addEventListener(projectId, card) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n $(\"#homepage-\" + projectId).off(\"click\").on(\"click\", function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var tmp, currentStage;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"improvementWork\", projectId);\n case 2:\n tmp = _context6.sent;\n currentStage = tmp.currentStage;\n if (currentStage === \"Act\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageA)(projectId);\n } else if (currentStage === \"Study\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageS)(projectId);\n } else if (currentStage === \"Do\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageG)(projectId);\n } else if (currentStage === \"Plan\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n } else if (currentStage === \"Finished\") {\n (0,_SidebarAndHeader_pageHandler_js__WEBPACK_IMPORTED_MODULE_1__.loadProjectPageP)(projectId);\n }\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nvar patientRiskLevelMapping = {\n Grön: \"Green\",\n Blå: \"Blue\",\n Gul: \"Yellow\",\n Röd: \"Red\"\n};\nvar nolanStageMapping = {\n Planera: \"Plan\",\n Göra: \"Do\",\n Studera: \"Study\",\n Agera: \"Act\"\n};\n/*\nasync function performSearch(searchBar: HTMLInputElement, container: HTMLElement) {\n let inputValue = searchBar.value;\n //make first character uppercase\n inputValue = inputValue.toLowerCase();\n console.log(\"Search query:\", inputValue);\n // Remove each element\n projectCards = [];\n\n let query: { [key: string]: string } = {};\n\n removeCardsFromDiv(\"div.projectCardCardDiv\");\n \n if (inputValue !== \"\") {\n const matchedStage = Object.keys(nolanStageMapping).find((stage) =>\n stage.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n if (matchedStage) {\n query.nolanStage = nolanStageMapping[matchedStage];\n } else {\n query.name = inputValue;\n }\n }\n filteredImprovementWorks = await getImprovementWorks(query);\n await getProjects(container, true, filteredImprovementWorks);\n}\n*/\nfunction improvementWorkInfo(departmentContainer, user) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var improvementWorks, improvementWorksPlan, improvementWorksDo, improvementWorkStudy, improvementWorksAct, _iterator, _step, improvementWork, improvementWorkContainer, improvementWorkContainerElement, nolanAct, actElement, nolanPlan, planElement, nolanDo, doElement, nolanStudy, studyElement;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorks)({\n unitId: user.unitId\n });\n case 2:\n improvementWorks = _context8.sent;\n console.log(\"i funktionen\");\n //Count number of improvement works in the department in each stage\n improvementWorksPlan = 0;\n improvementWorksDo = 0;\n improvementWorkStudy = 0;\n improvementWorksAct = 0;\n _iterator = _createForOfIteratorHelper(improvementWorks);\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n improvementWork = _step.value;\n if (improvementWork.currentStage == \"Plan\") {\n improvementWorksPlan += 1;\n } else if (improvementWork.currentStage == \"Do\") {\n improvementWorksDo += 1;\n } else if (improvementWork.currentStage == \"Study\") {\n improvementWorkStudy += 1;\n } else if (improvementWork.currentStage == \"Act\") {\n improvementWorksAct += 1;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n improvementWorkContainer = document.getElementById(\"numberOfImprovementWorks\"); //Append a div displaying the number of improvement works in the user's department\n improvementWorkContainerElement = document.createElement(\"p\");\n improvementWorkContainerElement.innerHTML = \"Antal pågående förbättringsarbeten i din avdelning: \" + improvementWorks.length;\n if (improvementWorkContainer && improvementWorkContainer.innerHTML.trim() === \"\") {\n improvementWorkContainer.appendChild(improvementWorkContainerElement);\n }\n //Append the text displaying the number of improvement works that are in the stage act\n nolanAct = document.getElementById(\"nolanAct\");\n actElement = document.createElement(\"p\");\n actElement.innerHTML = \"Agera: \" + improvementWorksAct;\n actElement.style.margin = \"5px\";\n if (nolanAct) {\n nolanAct.appendChild(actElement);\n }\n //Append the text displaying the number of improvement works that are in the stage plan\n nolanPlan = document.getElementById(\"nolanPlan\");\n planElement = document.createElement(\"p\");\n planElement.innerHTML = \"Planera: \" + improvementWorksPlan;\n planElement.style.margin = \"5px\";\n if (nolanPlan) {\n nolanPlan.appendChild(planElement);\n }\n //Append the text displaying the number of improvement works that are in the stage do\n nolanDo = document.getElementById(\"nolanDo\");\n doElement = document.createElement(\"p\");\n doElement.innerHTML = \"Göra: \" + improvementWorksDo;\n doElement.style.margin = \"5px\";\n if (nolanDo) {\n nolanDo.appendChild(doElement);\n }\n //Append the text displaying the number of improvement works that are in the stage study\n nolanStudy = document.getElementById(\"nolanStudy\");\n studyElement = document.createElement(\"p\");\n studyElement.innerHTML = \"Studera: \" + improvementWorkStudy;\n studyElement.style.margin = \"5px\";\n if (nolanStudy) {\n nolanStudy.appendChild(studyElement);\n }\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n}\nfunction getProjects(selectElement, listenersLoaded, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var _this3 = this;\n var data, id;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getImprovementWorksForUser)(userHsaId);\n case 2:\n data = _context10.sent;\n id = 0;\n data.forEach(function (project) {\n return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var title, department, name, description, i, card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n title = project.name;\n _context9.next = 3;\n return (0,_client_Database_database_js__WEBPACK_IMPORTED_MODULE_2__.getObjectById)(\"unit\", project.unitId);\n case 3:\n department = _context9.sent;\n if (!department) {\n _context9.next = 21;\n break;\n }\n name = \"Projektledare\"; //Waiting for backend fix\n description = project.content;\n i = id;\n card = new projectCard(i, name, department.name, title, description, project.id, project.dateStarted);\n projectCards[i] = card;\n cardHTML = card.generateHTML();\n div = document.createElement(\"div\");\n div.className = \"homePageProjectCardDiv\"; // Set the class name(s) here\n div.innerHTML = cardHTML;\n if (selectElement) {\n _context9.next = 16;\n break;\n }\n return _context9.abrupt(\"return\");\n case 16:\n selectElement.appendChild(div); // Stop if the container isn't found\n addEventListener(project.id, card);\n id++;\n _context9.next = 22;\n break;\n case 21:\n console.log(project.unitId + \" is not a unit\"); //Unit Ids on improvement work that do not exist\n case 22:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n });\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n}\nvar projectCards = {};\nvar projectCard = /*#__PURE__*/function () {\n function projectCard(id, name, department, title, description, projectId, dateStarted) {\n _classCallCheck(this, projectCard);\n this.name = name;\n this.department = department;\n this.title = title;\n this.description = description;\n this.id = id;\n this.projectId = projectId;\n this.dateStarted = dateStarted;\n }\n _createClass(projectCard, [{\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"homeTotalExpandedOngoingWorkCard\\\">\\n <div style=\\\"cursor: pointer;\\\" class=\\\"flex-container ongoingCard\\\" id=\\\"homepage-\".concat(this.projectId, \"\\\">\\n <div class=\\\"ongoingCardImageContainer toSinglePage\\\">\\n <div class = \\\"flex-box ongoingCardImage toSinglePage\\\" id=\\\"pinkFaded\\\"></div>\\n </div>\\n <div class=\\\"div ongoingCardInfo toSinglePage\\\">\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardManager\\\">\").concat(this.name, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardDepartment\\\">\").concat(this.department, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardIdeaTitle\\\">\").concat(this.title, \"</p>\\n <p class=\\\"toSinglePage\\\" id=\\\"ongoingCardStartDate\\\" style=\\\"font-size: 12px;\\\"> \").concat((0,_projectPage_projectPage_js__WEBPACK_IMPORTED_MODULE_3__.formatDate)(this.dateStarted), \"</p>\\n </div>\\n\\n <!--<button id=\\\"homepage-project-button-\").concat(this.projectId, \"\\\" data-project-id=\\\"\").concat(this.id, \"\\\" class=\\\"projectButton\\\" role=\\\"button\\\">G\\xE5 till projektsidan</button>-->\\n\\n\\n <div class=\\\"container ongoingSeeCardDetails toSinglePage\\\">\\n <div class=\\\"ongoingSeeCardDetailsInner\\\">\\n \\n </div>\\n </div>\\n </div> \\n <div class = \\\"expandedOngoingWorkCard\\\" id=\\\"homepage-expandedOngoingWorkCard\").concat(this.projectId, \"\\\" style=\\\"display: none;\\\">\\n <div class =\\\"homepage-expandedTextOngoingWorkCard\\\">\\n \").concat(this.description, \"\\n </div>\\n </div>\\n </div> \");\n }\n }]);\n return projectCard;\n}(); //<p id=\"homepage-ongoingSeeDetailsButton${this.projectId}\" class = \"moreInfoClass\">> Mer information</p>\n\n//# sourceURL=webpack://c3/./client/homePage.js?"); /***/ }), @@ -276,7 +276,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearContent: () => (/* binding */ clearContent),\n/* harmony export */ loadHospitals: () => (/* binding */ loadHospitals),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadUnits: () => (/* binding */ loadUnits),\n/* harmony export */ removeCardsFromDiv: () => (/* binding */ removeCardsFromDiv),\n/* harmony export */ testFunc: () => (/* binding */ testFunc)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n//import {loadInitiatePage} from \"../SidebarAndHeader/pageHandler.js\";\nvar myIdeaCards = {};\n// Initialize filtered suggestions as empty array (potentially change to get all suggestions\nvar filteredSuggestions = [];\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n // <img src=\"images/upvoteIcon.png\" class =\"upvoteIcon\" alt=\"upvoteIcon\">\n _createClass(IdeaCard, [{\n key: \"addUpvote\",\n value: function addUpvote() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var tmp, user, suggestion;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n tmp = localStorage.getItem(\"user\");\n if (tmp) {\n _context.next = 4;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context.abrupt(\"return\");\n case 4:\n user = JSON.parse(tmp)[0];\n _context.next = 7;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.upvoteSuggestion)(this.suggestionID, user.id);\n case 7:\n _context.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n id: this.suggestionID\n });\n case 9:\n suggestion = _context.sent;\n this.upvoteCount = suggestion[0].upvotes.length;\n return _context.abrupt(\"return\", suggestion[0].upvotes.length);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImage\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFaded\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n <div class=\\\"ideaCardUpvotes\\\">\\n <div class=\\\"upvoteDiv\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" id = \\\"upvoteIconPic\").concat(this.id, \"\\\" height=\\\"28\\\" fill=\\\"currentColor\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg> <div id =\\\"upvoteNumber\").concat(this.id, \"\\\" class=\\\"ideaCardFont upvoteNumber\\\" >\").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n \\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFontComments\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFontComments\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 7</p>\\n <p class=\\\"ideaCardFont\\\">Komment 2</p>\\n </div>\\n\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera f\\xF6rb\\xE4ttringsf\\xF6rslag</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n window.location.href = '../client/projectPage/projectPageP.html';\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, suggestions) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var counter;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n counter = 1;\n suggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context2.sent;\n _context2.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context2.sent;\n console.log(suggestion);\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction testFunc() {\n console.log(\"Test func works\");\n}\nfunction loadPage() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var container, scriptElement, checkedHospitalIds, checkedUnitIds, searchBar;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context7.next = 3;\n break;\n }\n return _context7.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n scriptElement = document.createElement(\"script\");\n scriptElement.src = \"../dist/ideaBank.bundle.js\";\n container.appendChild(scriptElement);\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n fetch(\"ideaBank/ideaBank.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n clearContent(\"unitSelection\");\n loadUnits(checkedHospitalIds);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n // Log all checked unit IDs\n _context6.next = 5;\n return getFilteredSuggestions(checkedUnitIds);\n case 5:\n filteredSuggestions = _context6.sent;\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 8:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n myIdeaCards = {};\n _context7.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 12:\n filteredSuggestions = _context7.sent;\n console.log(\"Filtered suggestions: \", filteredSuggestions);\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n _context7.next = 17;\n return createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 17:\n addListner(myIdeaCards, container);\n searchBar = document.getElementById(\"searchBarId\");\n searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar);\n }\n });\n loadHospitals();\n case 21:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction getFilteredSuggestions(checkedUnitIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var suggestions, _iterator, _step, checkedUnitId, allSuggestionsOfUnit;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n suggestions = [];\n if (!checkedUnitIds) {\n _context8.next = 24;\n break;\n }\n _iterator = _createForOfIteratorHelper(checkedUnitIds);\n _context8.prev = 3;\n _iterator.s();\n case 5:\n if ((_step = _iterator.n()).done) {\n _context8.next = 13;\n break;\n }\n checkedUnitId = _step.value;\n _context8.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n unitId: checkedUnitId\n });\n case 9:\n allSuggestionsOfUnit = _context8.sent;\n suggestions = suggestions.concat(allSuggestionsOfUnit);\n case 11:\n _context8.next = 5;\n break;\n case 13:\n _context8.next = 18;\n break;\n case 15:\n _context8.prev = 15;\n _context8.t0 = _context8[\"catch\"](3);\n _iterator.e(_context8.t0);\n case 18:\n _context8.prev = 18;\n _iterator.f();\n return _context8.finish(18);\n case 21:\n return _context8.abrupt(\"return\", suggestions);\n case 24:\n _context8.next = 26;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 26:\n suggestions = _context8.sent;\n return _context8.abrupt(\"return\", suggestions);\n case 28:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[3, 15, 18, 21]]);\n }));\n}\nfunction loadHospitals() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var selectHospitalHTML, allHospitals;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n selectHospitalHTML = $('#hospitalSelection'); // loads the select type from html\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({});\n case 3:\n allHospitals = _context9.sent;\n console.log(allHospitals);\n allHospitals.forEach(function (hospital) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + hospital.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + hospital.name + \"</label>\\n </div>\");\n selectHospitalHTML.append(generatedElement);\n console.log(\"Adding HTML for for hospital \", hospital.id);\n });\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n}\nfunction loadUnits(checkedHospitalIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var selectUnitHTML, allUnits, _iterator2, _step2, checkedHospitalId, allUnitsOfHospital;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n selectUnitHTML = $('#unitSelection'); // loads the select type from html\n allUnits = [];\n if (!(checkedHospitalIds.length != 0)) {\n _context10.next = 22;\n break;\n }\n _iterator2 = _createForOfIteratorHelper(checkedHospitalIds);\n _context10.prev = 4;\n _iterator2.s();\n case 6:\n if ((_step2 = _iterator2.n()).done) {\n _context10.next = 14;\n break;\n }\n checkedHospitalId = _step2.value;\n _context10.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n hospitalId: checkedHospitalId\n });\n case 10:\n allUnitsOfHospital = _context10.sent;\n allUnits = allUnits.concat(allUnitsOfHospital);\n case 12:\n _context10.next = 6;\n break;\n case 14:\n _context10.next = 19;\n break;\n case 16:\n _context10.prev = 16;\n _context10.t0 = _context10[\"catch\"](4);\n _iterator2.e(_context10.t0);\n case 19:\n _context10.prev = 19;\n _iterator2.f();\n return _context10.finish(19);\n case 22:\n allUnits.forEach(function (unit) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + unit.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + unit.name + \"</label>\\n </div>\");\n selectUnitHTML.append(generatedElement);\n console.log(\"Adding HTML for for unit \", unit.id);\n });\n case 23:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[4, 16, 19, 22]]);\n }));\n}\nfunction clearContent(id) {\n var container = document.getElementById(id);\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n}\nfunction addListner(cardArray, element) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n element.addEventListener(\"click\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var target, cardId, card, expandedDiv, _cardId, _card, upvoteDisplay;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n target = event.target; //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n console.log(\"fel Div\");\n cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n card = cardArray[cardId];\n expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n if (!(target && target.className.baseVal.includes(\"bi-caret-up upvoteSymbol\"))) {\n _context11.next = 14;\n break;\n }\n _cardId = parseInt(target.id.replace(\"upvoteIconPic\", \"\"), 10);\n if (!myIdeaCards[_cardId]) {\n _context11.next = 12;\n break;\n }\n _card = myIdeaCards[_cardId];\n _context11.next = 8;\n return _card.addUpvote();\n case 8:\n upvoteDisplay = document.getElementById(\"upvoteNumber\" + _cardId);\n if (upvoteDisplay) {\n upvoteDisplay.textContent = _card.upvoteCount.toString();\n }\n _context11.next = 13;\n break;\n case 12:\n console.error(\"Card not found for ID: \" + _cardId);\n case 13:\n console.log(\"upvoteIcon clicked\");\n case 14:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n}\nfunction removeCardsFromDiv(divName) {\n //Remove current elements\n var elementsToRemove = document.querySelectorAll(divName);\n // Remove each element\n elementsToRemove.forEach(function (element) {\n element.remove();\n });\n myIdeaCards = {};\n}\nfunction performSearch(searchBar) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var inputValue, container, suggestions, suggestionName, _iterator3, _step3, suggestion, users, spaceIndex, firstName, lastName, _iterator4, _step4, user, _iterator5, _step5, _user;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n inputValue = searchBar.value;\n console.log(\"Search query:\", inputValue);\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context13.next = 5;\n break;\n }\n return _context13.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n if (!(inputValue != \"\")) {\n _context13.next = 92;\n break;\n }\n _context13.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 9:\n suggestions = _context13.sent;\n suggestionName = false;\n _iterator3 = _createForOfIteratorHelper(suggestions);\n _context13.prev = 12;\n _iterator3.s();\n case 14:\n if ((_step3 = _iterator3.n()).done) {\n _context13.next = 24;\n break;\n }\n suggestion = _step3.value;\n if (!(suggestion.name.toLowerCase() >= inputValue.toLowerCase() && suggestion.name.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 22;\n break;\n }\n suggestionName = true;\n _context13.next = 20;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n name: suggestion.name\n });\n case 20:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 22:\n _context13.next = 14;\n break;\n case 24:\n _context13.next = 29;\n break;\n case 26:\n _context13.prev = 26;\n _context13.t0 = _context13[\"catch\"](12);\n _iterator3.e(_context13.t0);\n case 29:\n _context13.prev = 29;\n _iterator3.f();\n return _context13.finish(29);\n case 32:\n if (suggestionName) {\n _context13.next = 90;\n break;\n }\n _context13.next = 35;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({});\n case 35:\n users = _context13.sent;\n spaceIndex = inputValue.indexOf(\" \"); //If the search is for first and last name\n if (!(spaceIndex !== -1)) {\n _context13.next = 63;\n break;\n }\n firstName = inputValue.substring(0, spaceIndex).toLowerCase();\n lastName = inputValue.substring(spaceIndex + 1).toLowerCase();\n _iterator4 = _createForOfIteratorHelper(users);\n _context13.prev = 41;\n _iterator4.s();\n case 43:\n if ((_step4 = _iterator4.n()).done) {\n _context13.next = 53;\n break;\n }\n user = _step4.value;\n if (!(user.firstName.toLowerCase() >= firstName && user.firstName.toLowerCase() <= firstName + \"~\")) {\n _context13.next = 51;\n break;\n }\n if (!(user.lastName.toLowerCase() >= lastName && user.lastName.toLowerCase() <= lastName + \"~\")) {\n _context13.next = 51;\n break;\n }\n _context13.next = 49;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 49:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 51:\n _context13.next = 43;\n break;\n case 53:\n _context13.next = 58;\n break;\n case 55:\n _context13.prev = 55;\n _context13.t1 = _context13[\"catch\"](41);\n _iterator4.e(_context13.t1);\n case 58:\n _context13.prev = 58;\n _iterator4.f();\n return _context13.finish(58);\n case 61:\n _context13.next = 90;\n break;\n case 63:\n //If the search is for only first or last name\n _iterator5 = _createForOfIteratorHelper(users);\n _context13.prev = 64;\n _iterator5.s();\n case 66:\n if ((_step5 = _iterator5.n()).done) {\n _context13.next = 82;\n break;\n }\n _user = _step5.value;\n if (!(_user.firstName.toLowerCase() >= inputValue.toLowerCase() && _user.firstName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 75;\n break;\n }\n _context13.next = 71;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 71:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n _context13.next = 80;\n break;\n case 75:\n if (!(_user.lastName.toLowerCase() >= inputValue.toLowerCase() && _user.lastName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 80;\n break;\n }\n _context13.next = 78;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 78:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 80:\n _context13.next = 66;\n break;\n case 82:\n _context13.next = 87;\n break;\n case 84:\n _context13.prev = 84;\n _context13.t2 = _context13[\"catch\"](64);\n _iterator5.e(_context13.t2);\n case 87:\n _context13.prev = 87;\n _iterator5.f();\n return _context13.finish(87);\n case 90:\n _context13.next = 96;\n break;\n case 92:\n _context13.next = 94;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 94:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 96:\n addListner(myIdeaCards, container);\n case 97:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[12, 26, 29, 32], [41, 55, 58, 61], [64, 84, 87, 90]]);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/ideaBank/ideaBank.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearContent: () => (/* binding */ clearContent),\n/* harmony export */ loadHospitals: () => (/* binding */ loadHospitals),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadUnits: () => (/* binding */ loadUnits),\n/* harmony export */ removeCardsFromDiv: () => (/* binding */ removeCardsFromDiv),\n/* harmony export */ testFunc: () => (/* binding */ testFunc)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n//import {loadInitiatePage} from \"../SidebarAndHeader/pageHandler.js\";\nvar myIdeaCards = {};\n// Initialize filtered suggestions as empty array (potentially change to get all suggestions\nvar filteredSuggestions = [];\nvar IdeaCard = /*#__PURE__*/function () {\n function IdeaCard(id, header, department, name, description, upvoteCount, suggestionID) {\n _classCallCheck(this, IdeaCard);\n this.header = header;\n this.department = department;\n this.name = name;\n this.description = description;\n this.upvoteCount = upvoteCount;\n this.id = id;\n this.suggestionID = suggestionID;\n }\n // <img src=\"images/upvoteIcon.png\" class =\"upvoteIcon\" alt=\"upvoteIcon\">\n _createClass(IdeaCard, [{\n key: \"addUpvote\",\n value: function addUpvote() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var tmp, user, suggestion;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n tmp = localStorage.getItem(\"user\");\n if (tmp) {\n _context.next = 4;\n break;\n }\n console.log(\"there is not an user in localStorage\");\n return _context.abrupt(\"return\");\n case 4:\n user = JSON.parse(tmp)[0];\n _context.next = 7;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.upvoteSuggestion)(this.suggestionID, user.id);\n case 7:\n _context.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n id: this.suggestionID\n });\n case 9:\n suggestion = _context.sent;\n this.upvoteCount = suggestion[0].upvotes.length;\n this.upvoteCount++;\n return _context.abrupt(\"return\", suggestion[0].upvotes.length);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"generateHTML\",\n value: function generateHTML() {\n return \"<div class=\\\"totalExpandedIdeaCard\\\">\\n <div class=\\\"ideaCard\\\">\\n <div class=\\\"ideaCardBorder\\\">\\n <div class=\\\"ideaCardImage\\\">\\n <img src=\\\"../images/pinkFaded.png\\\" class =\\\"pinkFaded\\\" alt=\\\"pinkFaded\\\">\\n </div>\\n <div class=\\\"ideaCardMiddleText\\\">\\n <p id=\\\"ideaCardHeader\\\" class=\\\"ideaCardFont\\\">\".concat(this.header, \"</p>\\n <p id=\\\"ideaCardDepartment\\\" class=\\\"ideaCardFont\\\">\").concat(this.department, \"</p>\\n <p id=\\\"ideaCardName\\\" class=\\\"ideaCardFont\\\">\").concat(this.name, \"</p>\\n <p id=\\\"ideaCardMoreInfo\").concat(this.id, \"\\\" class=\\\"ideaCardFont moreInfoClass\\\"> > Mer information</p>\\n </div>\\n <div class=\\\"ideaCardUpvotes\\\">\\n <div class=\\\"upvoteDiv\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" fill=\\\"grey\\\" class=\\\"bi bi-caret-up upvoteSymbol\\\" viewBox=\\\"0 0 16 16\\\" id=\\\"upvoteIconPic\").concat(this.id, \"\\\">\\n <path d=\\\"M3.204 11h9.592L8 5.519 3.204 11zm-.753-.659 4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z\\\"/>\\n</svg>\\n <div id =\\\"upvoteNumber\").concat(this.id, \"\\\" class=\\\"ideaCardFont upvoteNumber\\\" >\").concat(this.upvoteCount, \"</div>\\n\\n </div>\\n </div>\\n </div>\\n \\n </div>\\n <div id=\\\"expandedContent\").concat(this.id, \"\\\" class= \\\"expandedIdeaContent\\\" style =\\\"display : none;\\\">\\n <div class=\\\"expandedDescriptionText\\\">\\n <p class=\\\"ideaCardFontComments\\\" id=\\\"expandedHeader\\\">Om ideen</p>\\n <p class=\\\"ideaCardFont\\\" id=\\\"expandedDescription\\\">\").concat(this.description, \"</p>\\n </div>\\n <div class=\\\"expandedCommentAndButton id = \\\"expandedCommentAndButton\").concat(this.id, \"\\\">\\n <div class=\\\"expandedComment\\\">\\n <p class=\\\"ideaCardFontComments\\\">Kommentarer</p>\\n <p class=\\\"ideaCardFont\\\">Komment 7</p>\\n <p class=\\\"ideaCardFont\\\">Komment 2</p>\\n </div>\\n\\n <div class=\\\"expandedButton\\\">\\n <button class=\\\"initiateProjectButton\\\" id=\\\"initiateProjectFromCard\").concat(this.suggestionID, \"\\\">Initiera f\\xF6rb\\xE4ttringsf\\xF6rslag</button>\\n </div>\\n </div>\\n </div>\\n </div>\");\n }\n }, {\n key: \"showMoreInfo\",\n value: function showMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"flex\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"^ Stäng detaljer\";\n }\n }\n }, {\n key: \"closeMoreInfo\",\n value: function closeMoreInfo(blockId, thisTextId) {\n var blockElement = document.getElementById(blockId);\n if (blockElement) {\n blockElement.style.display = \"none\";\n }\n var textElement = document.getElementById(thisTextId);\n if (textElement) {\n textElement.innerText = \"> Mer information\";\n }\n }\n }, {\n key: \"loadInitiatePage\",\n value: function loadInitiatePage() {\n alert(\"The initiate project page should now be loaded\");\n window.location.href = '../client/projectPage/projectPageP.html';\n }\n }]);\n return IdeaCard;\n}();\nfunction createNewCards(className, container, suggestions) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _this = this;\n var counter;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n counter = 1;\n suggestions.forEach(function (suggestion) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var unit, user;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"unit\", suggestion.unitId);\n case 2:\n unit = _context2.sent;\n _context2.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"users\", suggestion.creatorHsaId);\n case 5:\n user = _context2.sent;\n console.log(suggestion);\n createNewIdeaCard(suggestion.name, unit.name, user.firstName + \" \" + user.lastName, suggestion.content, suggestion.upvotes.length, className, container, counter, suggestion.id);\n counter = counter + 1;\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n });\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction createNewIdeaCard(header, department, name, description, upvoteCount, className, container, ID, suggestionID) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var card, cardHTML, div;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n card = new IdeaCard(ID, header, department, name, description, upvoteCount, suggestionID);\n cardHTML = card.generateHTML();\n myIdeaCards[ID] = card;\n div = document.createElement(\"div\");\n div.className = className; // Set the class name(s) here\n div.innerHTML = cardHTML;\n container.appendChild(div);\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction testFunc() {\n console.log(\"Test func works\");\n}\nfunction loadPage() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var container, scriptElement, checkedHospitalIds, checkedUnitIds, searchBar;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context7.next = 3;\n break;\n }\n return _context7.abrupt(\"return\");\n case 3:\n // Stop if the container isn't found\n scriptElement = document.createElement(\"script\");\n scriptElement.src = \"../dist/ideaBank.bundle.js\";\n container.appendChild(scriptElement);\n // Initialize empty lists of checked hospital and unit ids\n checkedHospitalIds = [];\n checkedUnitIds = [];\n fetch(\"ideaBank/ideaBank.html\").then(function (response) {\n return response.text();\n }).then(function (data) {\n // Create a temporary container element to hold the loaded content\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = data;\n // Select the specific element with the class you want\n var specificElement = tempContainer.querySelector(\".filterBar\");\n var createHospitalCheckBoxContainer = tempContainer.querySelector('#hospitalSelection');\n var createUnitCheckBoxContainer = tempContainer.querySelector('#unitSelection');\n if (createHospitalCheckBoxContainer) {\n createHospitalCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n checkboxes = createHospitalCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked hospitals\n checkedHospitalIds = [];\n // Array to store IDs of checked checkboxes\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedHospitalIds.push(inputCheckbox.id);\n }\n });\n // Log all checked hospital IDs\n console.log('Checked hospitals:', checkedHospitalIds);\n // Future change: Only clear the unitIds for unchecked hospitals!\n clearContent(\"unitSelection\");\n loadUnits(checkedHospitalIds);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n }\n if (createUnitCheckBoxContainer) {\n createUnitCheckBoxContainer.addEventListener('change', function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var checkboxes;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n checkboxes = createUnitCheckBoxContainer.querySelectorAll('input[type=\"checkbox\"]'); // Empty list of checked units\n checkedUnitIds = [];\n checkboxes.forEach(function (checkbox) {\n // Ensure the checkbox is an HTMLInputElement\n var inputCheckbox = checkbox;\n // Check if the checkbox is checked and add its ID to the array\n if (inputCheckbox.checked) {\n checkedUnitIds.push(inputCheckbox.id);\n }\n });\n // Log all checked unit IDs\n _context6.next = 5;\n return getFilteredSuggestions(checkedUnitIds);\n case 5:\n filteredSuggestions = _context6.sent;\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 8:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n });\n }\n if (specificElement) {\n // Insert the specific element into the target element\n container.insertBefore(specificElement, container.firstChild);\n }\n })[\"catch\"](function (error) {\n console.error(\"Failed to load the external HTML file:\", error);\n });\n myIdeaCards = {};\n _context7.next = 12;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 12:\n filteredSuggestions = _context7.sent;\n console.log(\"Filtered suggestions: \", filteredSuggestions);\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n _context7.next = 17;\n return createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 17:\n addListner(myIdeaCards, container);\n searchBar = document.getElementById(\"searchBarId\");\n searchBar.addEventListener(\"keydown\", function (event) {\n if (event.key === \"Enter\") {\n performSearch(searchBar);\n }\n });\n loadHospitals();\n case 21:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\nfunction getFilteredSuggestions(checkedUnitIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var suggestions, _iterator, _step, checkedUnitId, allSuggestionsOfUnit;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n suggestions = [];\n if (!checkedUnitIds) {\n _context8.next = 24;\n break;\n }\n _iterator = _createForOfIteratorHelper(checkedUnitIds);\n _context8.prev = 3;\n _iterator.s();\n case 5:\n if ((_step = _iterator.n()).done) {\n _context8.next = 13;\n break;\n }\n checkedUnitId = _step.value;\n _context8.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n unitId: checkedUnitId\n });\n case 9:\n allSuggestionsOfUnit = _context8.sent;\n suggestions = suggestions.concat(allSuggestionsOfUnit);\n case 11:\n _context8.next = 5;\n break;\n case 13:\n _context8.next = 18;\n break;\n case 15:\n _context8.prev = 15;\n _context8.t0 = _context8[\"catch\"](3);\n _iterator.e(_context8.t0);\n case 18:\n _context8.prev = 18;\n _iterator.f();\n return _context8.finish(18);\n case 21:\n return _context8.abrupt(\"return\", suggestions);\n case 24:\n _context8.next = 26;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 26:\n suggestions = _context8.sent;\n return _context8.abrupt(\"return\", suggestions);\n case 28:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[3, 15, 18, 21]]);\n }));\n}\nfunction loadHospitals() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var selectHospitalHTML, allHospitals;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n selectHospitalHTML = $('#hospitalSelection'); // loads the select type from html\n _context9.next = 3;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({});\n case 3:\n allHospitals = _context9.sent;\n console.log(allHospitals);\n allHospitals.forEach(function (hospital) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + hospital.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + hospital.name + \"</label>\\n </div>\");\n selectHospitalHTML.append(generatedElement);\n console.log(\"Adding HTML for for hospital \", hospital.id);\n });\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n}\nfunction loadUnits(checkedHospitalIds) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var selectUnitHTML, allUnits, _iterator2, _step2, checkedHospitalId, allUnitsOfHospital;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n selectUnitHTML = $('#unitSelection'); // loads the select type from html\n allUnits = [];\n if (!(checkedHospitalIds.length != 0)) {\n _context10.next = 22;\n break;\n }\n _iterator2 = _createForOfIteratorHelper(checkedHospitalIds);\n _context10.prev = 4;\n _iterator2.s();\n case 6:\n if ((_step2 = _iterator2.n()).done) {\n _context10.next = 14;\n break;\n }\n checkedHospitalId = _step2.value;\n _context10.next = 10;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n hospitalId: checkedHospitalId\n });\n case 10:\n allUnitsOfHospital = _context10.sent;\n allUnits = allUnits.concat(allUnitsOfHospital);\n case 12:\n _context10.next = 6;\n break;\n case 14:\n _context10.next = 19;\n break;\n case 16:\n _context10.prev = 16;\n _context10.t0 = _context10[\"catch\"](4);\n _iterator2.e(_context10.t0);\n case 19:\n _context10.prev = 19;\n _iterator2.f();\n return _context10.finish(19);\n case 22:\n allUnits.forEach(function (unit) {\n var generatedElement = document.createRange().createContextualFragment(\"\\n <div class=\\\"form-check\\\">\\n <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"\" + unit.id + \"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"flexCheckDefault\\\">\" + unit.name + \"</label>\\n </div>\");\n selectUnitHTML.append(generatedElement);\n console.log(\"Adding HTML for for unit \", unit.id);\n });\n case 23:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[4, 16, 19, 22]]);\n }));\n}\nfunction clearContent(id) {\n var container = document.getElementById(id);\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n}\nfunction addListner(cardArray, element) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n element.addEventListener(\"click\", function (event) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var target, cardId, card, expandedDiv, _cardId, _card, upvoteDisplay;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n target = event.target; //Adds an eventlistener for the more info of the card\n if (target && target.className === \"ideaCardFont moreInfoClass\") {\n console.log(\"fel Div\");\n cardId = parseInt(target.id.replace(\"ideaCardMoreInfo\", \"\"), 10);\n if (cardArray[cardId]) {\n card = cardArray[cardId];\n expandedDiv = document.getElementById(\"expandedContent\".concat(cardId));\n if (expandedDiv) {\n if (expandedDiv.style.display === \"none\") {\n card.showMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n } else {\n card.closeMoreInfo(\"expandedContent\".concat(cardId), \"ideaCardMoreInfo\".concat(cardId));\n }\n } else {\n console.error(\"Expanded div not found\");\n }\n }\n }\n if (!(target && target.className.baseVal.includes(\"bi-caret-up upvoteSymbol\"))) {\n _context11.next = 16;\n break;\n }\n _cardId = parseInt(target.id.replace(\"upvoteIconPic\", \"\"), 10);\n if (!myIdeaCards[_cardId]) {\n _context11.next = 14;\n break;\n }\n _card = myIdeaCards[_cardId];\n _context11.next = 8;\n return _card.addUpvote();\n case 8:\n if (target.getAttribute(\"fill\") === \"grey\") {\n target.setAttribute(\"fill\", \"red\"); // Replace 'red' with the color indicating an upvote\n } else {\n target.setAttribute(\"fill\", \"grey\"); // Revert back to default color\n }\n upvoteDisplay = document.getElementById(\"upvoteNumber\" + _cardId);\n console.log(_card.upvoteCount.toString());\n if (upvoteDisplay) {\n upvoteDisplay.textContent = _card.upvoteCount.toString();\n }\n _context11.next = 15;\n break;\n case 14:\n console.error(\"Card not found for ID: \" + _cardId);\n case 15:\n console.log(\"upvoteIcon clicked\");\n case 16:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11);\n }));\n });\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12);\n }));\n}\nfunction removeCardsFromDiv(divName) {\n //Remove current elements\n var elementsToRemove = document.querySelectorAll(divName);\n // Remove each element\n elementsToRemove.forEach(function (element) {\n element.remove();\n });\n myIdeaCards = {};\n}\nfunction performSearch(searchBar) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var inputValue, container, suggestions, suggestionName, _iterator3, _step3, suggestion, users, spaceIndex, firstName, lastName, _iterator4, _step4, user, _iterator5, _step5, _user;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n inputValue = searchBar.value;\n console.log(\"Search query:\", inputValue);\n container = document.querySelector(\"#container-fluid\");\n if (container) {\n _context13.next = 5;\n break;\n }\n return _context13.abrupt(\"return\");\n case 5:\n // Stop if the container isn't found\n removeCardsFromDiv(\"div.IdeaCardDiv\");\n if (!(inputValue != \"\")) {\n _context13.next = 92;\n break;\n }\n _context13.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 9:\n suggestions = _context13.sent;\n suggestionName = false;\n _iterator3 = _createForOfIteratorHelper(suggestions);\n _context13.prev = 12;\n _iterator3.s();\n case 14:\n if ((_step3 = _iterator3.n()).done) {\n _context13.next = 24;\n break;\n }\n suggestion = _step3.value;\n if (!(suggestion.name.toLowerCase() >= inputValue.toLowerCase() && suggestion.name.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 22;\n break;\n }\n suggestionName = true;\n _context13.next = 20;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n name: suggestion.name\n });\n case 20:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 22:\n _context13.next = 14;\n break;\n case 24:\n _context13.next = 29;\n break;\n case 26:\n _context13.prev = 26;\n _context13.t0 = _context13[\"catch\"](12);\n _iterator3.e(_context13.t0);\n case 29:\n _context13.prev = 29;\n _iterator3.f();\n return _context13.finish(29);\n case 32:\n if (suggestionName) {\n _context13.next = 90;\n break;\n }\n _context13.next = 35;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({});\n case 35:\n users = _context13.sent;\n spaceIndex = inputValue.indexOf(\" \"); //If the search is for first and last name\n if (!(spaceIndex !== -1)) {\n _context13.next = 63;\n break;\n }\n firstName = inputValue.substring(0, spaceIndex).toLowerCase();\n lastName = inputValue.substring(spaceIndex + 1).toLowerCase();\n _iterator4 = _createForOfIteratorHelper(users);\n _context13.prev = 41;\n _iterator4.s();\n case 43:\n if ((_step4 = _iterator4.n()).done) {\n _context13.next = 53;\n break;\n }\n user = _step4.value;\n if (!(user.firstName.toLowerCase() >= firstName && user.firstName.toLowerCase() <= firstName + \"~\")) {\n _context13.next = 51;\n break;\n }\n if (!(user.lastName.toLowerCase() >= lastName && user.lastName.toLowerCase() <= lastName + \"~\")) {\n _context13.next = 51;\n break;\n }\n _context13.next = 49;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: user.id\n });\n case 49:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 51:\n _context13.next = 43;\n break;\n case 53:\n _context13.next = 58;\n break;\n case 55:\n _context13.prev = 55;\n _context13.t1 = _context13[\"catch\"](41);\n _iterator4.e(_context13.t1);\n case 58:\n _context13.prev = 58;\n _iterator4.f();\n return _context13.finish(58);\n case 61:\n _context13.next = 90;\n break;\n case 63:\n //If the search is for only first or last name\n _iterator5 = _createForOfIteratorHelper(users);\n _context13.prev = 64;\n _iterator5.s();\n case 66:\n if ((_step5 = _iterator5.n()).done) {\n _context13.next = 82;\n break;\n }\n _user = _step5.value;\n if (!(_user.firstName.toLowerCase() >= inputValue.toLowerCase() && _user.firstName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 75;\n break;\n }\n _context13.next = 71;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 71:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n _context13.next = 80;\n break;\n case 75:\n if (!(_user.lastName.toLowerCase() >= inputValue.toLowerCase() && _user.lastName.toLowerCase() <= inputValue.toLowerCase() + \"~\")) {\n _context13.next = 80;\n break;\n }\n _context13.next = 78;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({\n creatorHsaId: _user.id\n });\n case 78:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 80:\n _context13.next = 66;\n break;\n case 82:\n _context13.next = 87;\n break;\n case 84:\n _context13.prev = 84;\n _context13.t2 = _context13[\"catch\"](64);\n _iterator5.e(_context13.t2);\n case 87:\n _context13.prev = 87;\n _iterator5.f();\n return _context13.finish(87);\n case 90:\n _context13.next = 96;\n break;\n case 92:\n _context13.next = 94;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getSuggestions)({});\n case 94:\n filteredSuggestions = _context13.sent;\n createNewCards(\"IdeaCardDiv\", container, filteredSuggestions);\n case 96:\n addListner(myIdeaCards, container);\n case 97:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[12, 26, 29, 32], [41, 55, 58, 61], [64, 84, 87, 90]]);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/ideaBank/ideaBank.js?"); /***/ }), @@ -326,7 +326,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadImprovementWorkTasks: () => (/* binding */ loadImprovementWorkTasks),\n/* harmony export */ loadMemberModal: () => (/* binding */ loadMemberModal),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadProjectHeader: () => (/* binding */ loadProjectHeader),\n/* harmony export */ openTaskModal: () => (/* binding */ openTaskModal)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../initiateForbattringsarbete/initiateIdea.js */ \"./client/initiateForbattringsarbete/initiateIdea.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction loadPage(projectId) {}\nfunction loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var tasks, taskListElement;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getTasks)({\n improvementWorkId: projectId,\n stage: stage\n });\n case 2:\n tasks = _context2.sent;\n taskListElement = $('#' + taskListId);\n modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId);\n if (taskListElement) {\n tasks.forEach(function (task) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var taskElement, textSpan, checkbox;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n taskElement = $('<li>');\n textSpan = $('<span>').text(task.name);\n checkbox = $('<input>').attr('type', 'checkbox');\n if (task.completed) {\n checkbox.prop('checked', true);\n }\n taskElement.append(textSpan, checkbox);\n taskElement.addClass(stageListClassName);\n taskElement.on('click', function () {\n var startDateFormatted = formatDate(task.startDate);\n var endDateFormatted = formatDate(task.deadlineDate);\n openTaskModal(task.name, task.content, task.id, startDateFormatted, endDateFormatted, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId);\n });\n checkbox.on('click', function (event) {\n event.stopPropagation();\n if (checkbox.prop('checked')) {\n console.log('Checkbox is checked.');\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', task.id, {\n completed: true\n });\n } else {\n console.log('Checkbox is unchecked.');\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', task.id, {\n completed: false\n });\n }\n });\n taskListElement.append(taskElement); // Stop if the container isn't found\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n } else {\n console.log(\"Task container not found\");\n }\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Opens modal for a task\nfunction openTaskModal(taskTitle, taskContent, taskId, taskStart, taskEnd, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId) {\n var taskModal = document.getElementById(taskModalId);\n var title = document.getElementById(taskTitleId);\n var content = document.getElementById(taskContentId);\n var startDate = document.getElementById(taskStartDateId);\n var endDate = document.getElementById(taskEndDateId);\n if (taskModal) {\n taskModal.setAttribute('data-task-id', taskId);\n if (title && content && startDate && endDate) {\n title.value = \"\";\n content.value = \"\";\n startDate.value = \"\";\n endDate.value = \"\";\n if (taskTitle !== \"\" || taskContent !== \"\" || taskStart !== \"\" || taskEnd !== \"\") {\n title.value = taskTitle;\n content.value = taskContent;\n startDate.value = taskStart;\n endDate.value = taskEnd;\n }\n }\n taskModal.style.display = 'block';\n }\n}\n//Adds eventlistener to close modal\nfunction modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId) {\n var closeButton = document.getElementById(closeBtnId);\n var taskModal = document.getElementById(taskModalId);\n var saveButton = document.getElementById(saveBtnId);\n var deleteButton = document.getElementById(deleteBtnId);\n if (closeButton && taskModal) {\n var closeBtnListener = closeButton.hasAttribute('data-has-event-listener');\n if (!closeBtnListener) {\n closeButton.setAttribute('data-has-event-listener', 'true');\n closeButton.addEventListener('click', function () {\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n\n if (saveButton && taskModal) {\n var saveBtnListener = saveButton.hasAttribute('data-has-event-listener');\n if (!saveBtnListener) {\n saveButton.setAttribute('data-has-event-listener', 'true');\n saveButton.addEventListener('click', function () {\n createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId);\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n\n if (deleteButton && taskModal) {\n var deleteBtnListener = deleteButton.hasAttribute('data-has-event-listener');\n if (!deleteBtnListener) {\n deleteButton.setAttribute('data-has-event-listener', 'true');\n deleteButton.addEventListener('click', function () {\n deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId);\n taskModal.style.display = 'none'; //Closes modal\n });\n }\n }\n}\n\nfunction createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var modalElement, titleElement, deadlineElement, startElement, contentElement, taskId, improvementWork, deadline, startDate, listElement, _deadline, _startDate, _listElement;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n //title: string, deadline : Date, startDate: Date, stage: string, content: string\n modalElement = document.getElementById(taskModalId);\n titleElement = document.getElementById(taskTitleId);\n deadlineElement = document.getElementById(taskEndDateId);\n startElement = document.getElementById(taskStartDateId);\n contentElement = document.getElementById(taskContentId);\n taskId = modalElement.getAttribute('data-task-id');\n if (!(taskId === '')) {\n _context3.next = 13;\n break;\n }\n _context3.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)('improvementWork', projectId);\n case 9:\n improvementWork = _context3.sent;\n if (titleElement && contentElement && deadlineElement && startElement) {\n if (titleElement.value !== \"\", deadlineElement.value !== \"\", startElement.value !== \"\", contentElement.value !== \"\") {\n deadline = new Date(deadlineElement.value); //Date string to timestamp\n startDate = new Date(startElement.value); //Date string to timestamp\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.createTaskOnImprovementWork)(null, projectId, titleElement.value, deadline, startDate, improvementWork.currentStage, contentElement.value);\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n } else {\n console.log(\"All input fields for the task where not filled in\");\n }\n } else {\n console.log(\"All input element where not found\");\n }\n _context3.next = 21;\n break;\n case 13:\n if (!taskId) {\n _context3.next = 21;\n break;\n }\n _deadline = new Date(deadlineElement.value); //Date string to timestamp\n _startDate = new Date(startElement.value); //Date string to timestamp\n _context3.next = 18;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)('task', taskId, {\n name: titleElement.value,\n deadlineDate: _deadline,\n startDate: _startDate,\n content: contentElement.value\n });\n case 18:\n _listElement = document.getElementById(taskListId);\n _listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n //loadPage(projectId); //Loads tasks since updated ASK for help\n case 21:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var modalElement, taskId, listElement;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n modalElement = document.getElementById(taskModalId);\n taskId = modalElement.getAttribute('data-task-id');\n if (!taskId) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.deleteInstance)('task', taskId);\n case 5:\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction formatDate(timeStamp) {\n var date = timeStamp.toDate();\n var day = String(date.getDate()).toString();\n var month = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based\n var year = String(date.getFullYear()).toString();\n if (parseInt(month, 10) < 10 && parseInt(day, 10) > 9) {\n return \"\".concat(year, \"-0\").concat(month, \"-\").concat(day);\n } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-\").concat(month, \"-0\").concat(day);\n } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-0\").concat(month, \"-0\").concat(day);\n } else {\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n }\n}\nfunction timestamptoDate(timestamp) {\n if (timestamp instanceof firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.Timestamp) {\n var date = timestamp.toDate();\n return date;\n } else {\n console.error('Invalid timestamp type.');\n return null;\n }\n}\nfunction getDaysMonthYear(startDate) {\n var currentTime = new Date();\n if (startDate) {\n var millisecondsDifference = currentTime.getTime() - startDate.getTime();\n // Convert milliseconds to seconds\n var secondsDifference = millisecondsDifference / 1000;\n // Calculate years, months, and days\n var years = Math.floor(secondsDifference / (365.25 * 24 * 60 * 60));\n var remainingSeconds = secondsDifference % (365.25 * 24 * 60 * 60);\n var months = Math.floor(remainingSeconds / (30 * 24 * 60 * 60)); // Assuming 30 days per month\n var days = Math.floor(remainingSeconds % (30 * 24 * 60 * 60) / (24 * 60 * 60));\n return \" \".concat(years, \" \\xE5r, \").concat(months, \" m\\xE5nader, \").concat(days, \" dagar.\");\n } else {\n return \"Det finns inget startdatum registrerat\";\n }\n}\nfunction loadProjectHeader(improvementWork) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this2 = this;\n var loadingIndicators, titleP, aAreaElement, resources, time, formatdateStarted, aUnitArray, projectLeader, members, aProjectLeader, aMembers, aUnit, aUnitElement, hospitalArray, aHospital, aHospitalElement;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n loadingIndicators = document.querySelectorAll(\".loadingIndicator\");\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = 'block';\n });\n titleP = document.getElementById(\"title\");\n titleP.textContent = improvementWork.name;\n aAreaElement = document.getElementById(\"pArea\");\n aAreaElement.textContent = improvementWork.area;\n resources = document.getElementById(\"pResources\");\n resources.textContent = improvementWork.resources;\n time = document.getElementById(\"pTime\");\n formatdateStarted = timestamptoDate(improvementWork.dateStarted);\n time.textContent = getDaysMonthYear(formatdateStarted);\n _context6.next = 13;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n unitId: improvementWork.unitId\n });\n case 13:\n aUnitArray = _context6.sent;\n _context6.next = 16;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 16:\n projectLeader = _context6.sent;\n _context6.next = 19;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsersForImprovementWork)(improvementWork.id);\n case 19:\n members = _context6.sent;\n aProjectLeader = document.getElementById(\"pLeader\");\n aProjectLeader.textContent = projectLeader.firstName + \" \" + projectLeader.lastName + \" (\" + projectLeader.email + \")\";\n aMembers = document.getElementById(\"pMembers\");\n members.forEach(function (member) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n aMembers.textContent = aMembers.textContent + member.firstName + \" \" + member.lastName + \", \";\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n //stop loding current members\n if (aUnitArray.length === 0) {\n console.log(\"Error loading the units.\");\n }\n aUnit = aUnitArray[0];\n aUnitElement = document.getElementById(\"pUnit\");\n aUnitElement.textContent = aUnit.name;\n _context6.next = 30;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalId: aUnit.hospitalId\n });\n case 30:\n hospitalArray = _context6.sent;\n if (hospitalArray.length === 0) {\n console.log(\"Error loading the hospitals.\");\n }\n aHospital = hospitalArray[0];\n aHospitalElement = document.getElementById(\"pHospital\");\n aHospitalElement.textContent = aHospital.name;\n // Close loading indicators\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = 'none';\n });\n case 36:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction getDivWithIdFromHTML(path, id) {\n // Returning a Promise\n return fetch(path).then(function (response) {\n return response.text();\n }).then(function (html) {\n // Create a temporary container\n var container = document.createElement('div');\n container.innerHTML = html;\n // Get the modal content from the container\n var element = container.querySelector(id);\n return element;\n })[\"catch\"](function (error) {\n console.error('Error loading modal content:', error);\n return null;\n });\n}\nfunction loadMemberModal() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var modalContent, selectEmployeeChangeSection;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return getDivWithIdFromHTML('../projectPage/addMemberModal.html', '#addMemberModal');\n case 2:\n modalContent = _context7.sent;\n if (modalContent) {\n $('#container-fluid').append(modalContent);\n $(modalContent).modal('show');\n }\n /* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees');\n if (selectMemberContent) {\n $('#modal-body').append(selectMemberContent);\n } */\n selectEmployeeChangeSection = document.querySelector('#selectEmployee');\n if (selectEmployeeChangeSection) {\n selectEmployeeChangeSection.addEventListener('change', _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.assignedEmployer);\n } else {\n console.error(\"Error: 'changebutton' not found\");\n }\n (0,_initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.loadEmployees)();\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPage.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatDate: () => (/* binding */ formatDate),\n/* harmony export */ loadImprovementWorkTasks: () => (/* binding */ loadImprovementWorkTasks),\n/* harmony export */ loadMemberModal: () => (/* binding */ loadMemberModal),\n/* harmony export */ loadPage: () => (/* binding */ loadPage),\n/* harmony export */ loadProjectHeader: () => (/* binding */ loadProjectHeader),\n/* harmony export */ openTaskModal: () => (/* binding */ openTaskModal)\n/* harmony export */ });\n/* harmony import */ var _Database_database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Database/database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../initiateForbattringsarbete/initiateIdea.js */ \"./client/initiateForbattringsarbete/initiateIdea.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\nfunction loadPage(projectId) {}\nfunction loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var tasks, taskListElement;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getTasks)({\n improvementWorkId: projectId,\n stage: stage\n });\n case 2:\n tasks = _context2.sent;\n taskListElement = $(\"#\" + taskListId);\n modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId);\n if (taskListElement) {\n tasks.forEach(function (task) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var taskElement, textSpan, checkbox;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n taskElement = $(\"<li>\");\n textSpan = $(\"<span>\").text(task.name);\n checkbox = $(\"<input>\").attr(\"type\", \"checkbox\");\n if (task.completed) {\n checkbox.prop(\"checked\", true);\n }\n taskElement.append(textSpan, checkbox);\n taskElement.addClass(stageListClassName);\n taskElement.on(\"click\", function () {\n var startDateFormatted = formatDate(task.startDate);\n var endDateFormatted = formatDate(task.deadlineDate);\n openTaskModal(task.name, task.content, task.id, startDateFormatted, endDateFormatted, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId);\n });\n checkbox.on(\"click\", function (event) {\n event.stopPropagation();\n if (checkbox.prop(\"checked\")) {\n console.log(\"Checkbox is checked.\");\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", task.id, {\n completed: true\n });\n } else {\n console.log(\"Checkbox is unchecked.\");\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", task.id, {\n completed: false\n });\n }\n });\n taskListElement.append(taskElement); // Stop if the container isn't found\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n });\n } else {\n console.log(\"Task container not found\");\n }\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Opens modal for a task\nfunction openTaskModal(taskTitle, taskContent, taskId, taskStart, taskEnd, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId) {\n var taskModal = document.getElementById(taskModalId);\n var title = document.getElementById(taskTitleId);\n var content = document.getElementById(taskContentId);\n var startDate = document.getElementById(taskStartDateId);\n var endDate = document.getElementById(taskEndDateId);\n if (taskModal) {\n taskModal.setAttribute(\"data-task-id\", taskId);\n if (title && content && startDate && endDate) {\n title.value = \"\";\n content.value = \"\";\n startDate.value = \"\";\n endDate.value = \"\";\n if (taskTitle !== \"\" || taskContent !== \"\" || taskStart !== \"\" || taskEnd !== \"\") {\n title.value = taskTitle;\n content.value = taskContent;\n startDate.value = taskStart;\n endDate.value = taskEnd;\n }\n }\n taskModal.style.display = \"block\";\n }\n}\n//Adds eventlistener to close modal\nfunction modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId) {\n var closeButton = document.getElementById(closeBtnId);\n var taskModal = document.getElementById(taskModalId);\n var saveButton = document.getElementById(saveBtnId);\n var deleteButton = document.getElementById(deleteBtnId);\n if (closeButton && taskModal) {\n var closeBtnListener = closeButton.hasAttribute(\"data-has-event-listener\");\n if (!closeBtnListener) {\n closeButton.setAttribute(\"data-has-event-listener\", \"true\");\n closeButton.addEventListener(\"click\", function () {\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n\n if (saveButton && taskModal) {\n var saveBtnListener = saveButton.hasAttribute(\"data-has-event-listener\");\n if (!saveBtnListener) {\n saveButton.setAttribute(\"data-has-event-listener\", \"true\");\n saveButton.addEventListener(\"click\", function () {\n createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId);\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n\n if (deleteButton && taskModal) {\n var deleteBtnListener = deleteButton.hasAttribute(\"data-has-event-listener\");\n if (!deleteBtnListener) {\n deleteButton.setAttribute(\"data-has-event-listener\", \"true\");\n deleteButton.addEventListener(\"click\", function () {\n deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId);\n taskModal.style.display = \"none\"; //Closes modal\n });\n }\n }\n}\n\nfunction createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var modalElement, titleElement, deadlineElement, startElement, contentElement, taskId, improvementWork, deadline, startDate, listElement, _deadline, _startDate, _listElement;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n //title: string, deadline : Date, startDate: Date, stage: string, content: string\n modalElement = document.getElementById(taskModalId);\n titleElement = document.getElementById(taskTitleId);\n deadlineElement = document.getElementById(taskEndDateId);\n startElement = document.getElementById(taskStartDateId);\n contentElement = document.getElementById(taskContentId);\n taskId = modalElement.getAttribute(\"data-task-id\");\n if (!(taskId === \"\")) {\n _context3.next = 13;\n break;\n }\n _context3.next = 9;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getObjectById)(\"improvementWork\", projectId);\n case 9:\n improvementWork = _context3.sent;\n if (titleElement && contentElement && deadlineElement && startElement) {\n if (titleElement.value !== \"\", deadlineElement.value !== \"\", startElement.value !== \"\", contentElement.value !== \"\") {\n deadline = new Date(deadlineElement.value); //Date string to timestamp\n startDate = new Date(startElement.value); //Date string to timestamp\n (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.createTaskOnImprovementWork)(null, projectId, titleElement.value, deadline, startDate, improvementWork.currentStage, contentElement.value);\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n } else {\n console.log(\"All input fields for the task where not filled in\");\n }\n } else {\n console.log(\"All input element where not found\");\n }\n _context3.next = 21;\n break;\n case 13:\n if (!taskId) {\n _context3.next = 21;\n break;\n }\n _deadline = new Date(deadlineElement.value); //Date string to timestamp\n _startDate = new Date(startElement.value); //Date string to timestamp\n _context3.next = 18;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.updateInstance)(\"task\", taskId, {\n name: titleElement.value,\n deadlineDate: _deadline,\n startDate: _startDate,\n content: contentElement.value\n });\n case 18:\n _listElement = document.getElementById(taskListId);\n _listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n //loadPage(projectId); //Loads tasks since updated ASK for help\n case 21:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\nfunction deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var modalElement, taskId, listElement;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n modalElement = document.getElementById(taskModalId);\n taskId = modalElement.getAttribute(\"data-task-id\");\n if (!taskId) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.deleteInstance)(\"task\", taskId);\n case 5:\n listElement = document.getElementById(taskListId);\n listElement.innerHTML = \"\";\n loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId);\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n}\nfunction formatDate(timeStamp) {\n var date = timeStamp.toDate();\n var day = String(date.getDate()).toString();\n var month = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based\n var year = String(date.getFullYear()).toString();\n if (parseInt(month, 10) < 10 && parseInt(day, 10) > 9) {\n return \"\".concat(year, \"-0\").concat(month, \"-\").concat(day);\n } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-\").concat(month, \"-0\").concat(day);\n } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) {\n return \"\".concat(year, \"-0\").concat(month, \"-0\").concat(day);\n } else {\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n }\n}\nfunction timestamptoDate(timestamp) {\n if (timestamp instanceof firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.Timestamp) {\n var date = timestamp.toDate();\n return date;\n } else {\n console.error(\"Invalid timestamp type.\");\n return null;\n }\n}\nfunction getDaysMonthYear(startDate) {\n var currentTime = new Date();\n if (startDate) {\n var millisecondsDifference = currentTime.getTime() - startDate.getTime();\n // Convert milliseconds to seconds\n var secondsDifference = millisecondsDifference / 1000;\n // Calculate years, months, and days\n var years = Math.floor(secondsDifference / (365.25 * 24 * 60 * 60));\n var remainingSeconds = secondsDifference % (365.25 * 24 * 60 * 60);\n var months = Math.floor(remainingSeconds / (30 * 24 * 60 * 60)); // Assuming 30 days per month\n var days = Math.floor(remainingSeconds % (30 * 24 * 60 * 60) / (24 * 60 * 60));\n return \" \".concat(years, \" \\xE5r, \").concat(months, \" m\\xE5nader, \").concat(days, \" dagar.\");\n } else {\n return \"Det finns inget startdatum registrerat\";\n }\n}\nfunction loadProjectHeader(improvementWork) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this2 = this;\n var loadingIndicators, titleP, aAreaElement, resources, time, formatdateStarted, aUnitArray, projectLeader, members, aProjectLeader, aMembers, aUnit, aUnitElement, hospitalArray, aHospital, aHospitalElement;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n // Show loading indicators\n loadingIndicators = document.querySelectorAll(\".loadingIndicator\");\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = \"block\";\n });\n titleP = document.getElementById(\"title\");\n titleP.textContent = improvementWork.name;\n aAreaElement = document.getElementById(\"pArea\");\n aAreaElement.textContent = improvementWork.area;\n resources = document.getElementById(\"pResources\");\n resources.textContent = improvementWork.resources;\n time = document.getElementById(\"pTime\");\n formatdateStarted = timestamptoDate(improvementWork.dateStarted);\n time.textContent = getDaysMonthYear(formatdateStarted);\n _context6.next = 13;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n unitId: improvementWork.unitId\n });\n case 13:\n aUnitArray = _context6.sent;\n _context6.next = 16;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getImprovementWorkResponsible)(improvementWork.id);\n case 16:\n projectLeader = _context6.sent;\n _context6.next = 19;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsersForImprovementWork)(improvementWork.id);\n case 19:\n members = _context6.sent;\n aProjectLeader = document.getElementById(\"pLeader\");\n aProjectLeader.textContent = projectLeader.firstName + \" \" + projectLeader.lastName + \" (\" + projectLeader.email + \")\";\n aMembers = document.getElementById(\"pMembers\");\n members.forEach(function (member) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n aMembers.textContent = aMembers.textContent + member.firstName + \" \" + member.lastName + \", \";\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n });\n //stop loding current members\n if (aUnitArray.length === 0) {\n console.log(\"Error loading the units.\");\n }\n aUnit = aUnitArray[0];\n aUnitElement = document.getElementById(\"pUnit\");\n aUnitElement.textContent = aUnit.name;\n _context6.next = 30;\n return (0,_Database_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalId: aUnit.hospitalId\n });\n case 30:\n hospitalArray = _context6.sent;\n if (hospitalArray.length === 0) {\n console.log(\"Error loading the hospitals.\");\n }\n aHospital = hospitalArray[0];\n aHospitalElement = document.getElementById(\"pHospital\");\n aHospitalElement.textContent = aHospital.name;\n // Close loading indicators\n loadingIndicators.forEach(function (indicator) {\n indicator.style.display = \"none\";\n });\n case 36:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n}\nfunction getDivWithIdFromHTML(path, id) {\n // Returning a Promise\n return fetch(path).then(function (response) {\n return response.text();\n }).then(function (html) {\n // Create a temporary container\n var container = document.createElement(\"div\");\n container.innerHTML = html;\n // Get the modal content from the container\n var element = container.querySelector(id);\n return element;\n })[\"catch\"](function (error) {\n console.error(\"Error loading modal content:\", error);\n return null;\n });\n}\nfunction loadMemberModal() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var modalContent, selectEmployeeChangeSection;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return getDivWithIdFromHTML(\"../projectPage/addMemberModal.html\", \"#addMemberModal\");\n case 2:\n modalContent = _context7.sent;\n if (modalContent) {\n $(\"#container-fluid\").append(modalContent);\n $(modalContent).modal(\"show\");\n }\n /* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees');\n if (selectMemberContent) {\n $('#modal-body').append(selectMemberContent);\n } */\n selectEmployeeChangeSection = document.querySelector(\"#selectEmployee\");\n if (selectEmployeeChangeSection) {\n selectEmployeeChangeSection.addEventListener(\"change\", _initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.assignedEmployer);\n } else {\n console.error(\"Error: 'changebutton' not found\");\n }\n (0,_initiateForbattringsarbete_initiateIdea_js__WEBPACK_IMPORTED_MODULE_2__.loadEmployees)();\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n}\n\n//# sourceURL=webpack://c3/./client/projectPage/projectPage.js?"); /***/ }), diff --git a/client/dist/register.bundle.js b/client/dist/register.bundle.js index 2c6344e5926ebdcf95f593ffd25d0c2288234b08..50c7c8645c0f66104856bbaad94b694f11fda7cb 100644 --- a/client/dist/register.bundle.js +++ b/client/dist/register.bundle.js @@ -96,7 +96,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ login: () => (/* binding */ login),\n/* harmony export */ logout: () => (/* binding */ logout),\n/* harmony export */ register: () => (/* binding */ register)\n/* harmony export */ });\n/* harmony import */ var _database_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./database.js */ \"./client/Database/database.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n///////////////////////////////////login functions/////////////////////////////////////////////////////////////////////\n//Log ins the user\nfunction login(email, password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _this = this;\n var returnValue;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n returnValue = false;\n _context2.next = 3;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signInWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var user;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUsers)({\n uid: userCredential.user.uid\n });\n case 2:\n user = _context.sent;\n localStorage.setItem(\"user\", JSON.stringify(user));\n returnValue = true;\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n })[\"catch\"](function (error) {\n console.log(error);\n alert(\"Felaktiga inloggnings-uppgifter\");\n returnValue = false;\n });\n case 3:\n return _context2.abrupt(\"return\", returnValue);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n}\n//Redirects to the login in screen and log outs the user\nfunction logout() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.signOut)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth);\n localStorage.removeItem(\"user\");\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n}\n//Registers and log ins a new user\nfunction register(hsaId, hospitalName, unitName, role, firstName, lastName, email, password, isManager) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var hospital, unit, uid;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getHospitals)({\n hospitalName: hospitalName\n });\n case 2:\n hospital = _context5.sent;\n if (!(hospital.length != 1)) {\n _context5.next = 6;\n break;\n }\n console.log(\"hospital does not exist\");\n return _context5.abrupt(\"return\", false);\n case 6:\n _context5.next = 8;\n return (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.getUnits)({\n name: unitName,\n hospitalId: hospital[0].id,\n ascendingUnitNames: false\n });\n case 8:\n unit = _context5.sent;\n if (!(unit.length != 1)) {\n _context5.next = 12;\n break;\n }\n console.log(\"that unit does not exist for this hospital\");\n return _context5.abrupt(\"return\", false);\n case 12:\n uid = \"\";\n _context5.next = 15;\n return (0,firebase_auth__WEBPACK_IMPORTED_MODULE_1__.createUserWithEmailAndPassword)(_database_js__WEBPACK_IMPORTED_MODULE_0__.auth, email, password).then(function (userCredential) {\n return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n uid = userCredential.user.uid;\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n })[\"catch\"](function (error) {\n var errorMessage = error.message;\n console.log(errorMessage);\n return false;\n });\n case 15:\n (0,_database_js__WEBPACK_IMPORTED_MODULE_0__.createUser)(hsaId, unit[0].id, firstName, lastName, email, isManager, \"Sjuksöterska\", uid);\n return _context5.abrupt(\"return\", login(email, password));\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n}\n\n\n//# sourceURL=webpack://c3/./client/Database/authentication.js?"); /***/ }), @@ -106,7 +106,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyB7n9YIDCmeyzeZzteFnXqOUBijzEO59ls\",\n authDomain: \"backup-277c3.firebaseapp.com\",\n projectId: \"backup-277c3\",\n storageBucket: \"backup-277c3.appspot.com\",\n messagingSenderId: \"296015398098\",\n appId: \"1:296015398098:web:71e1d1ec2b0c370e5a590b\",\n measurementId: \"G-E933CXWWCG\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDocumentToImprovementWork: () => (/* binding */ addDocumentToImprovementWork),\n/* harmony export */ addMemberToImprovementWork: () => (/* binding */ addMemberToImprovementWork),\n/* harmony export */ addMemberToTask: () => (/* binding */ addMemberToTask),\n/* harmony export */ addNoteToUser: () => (/* binding */ addNoteToUser),\n/* harmony export */ auth: () => (/* binding */ auth),\n/* harmony export */ changePatientRiskLevel: () => (/* binding */ changePatientRiskLevel),\n/* harmony export */ createComment: () => (/* binding */ createComment),\n/* harmony export */ createHospital: () => (/* binding */ createHospital),\n/* harmony export */ createImprovementWork: () => (/* binding */ createImprovementWork),\n/* harmony export */ createSuggestion: () => (/* binding */ createSuggestion),\n/* harmony export */ createTaskOnImprovementWork: () => (/* binding */ createTaskOnImprovementWork),\n/* harmony export */ createUnit: () => (/* binding */ createUnit),\n/* harmony export */ createUser: () => (/* binding */ createUser),\n/* harmony export */ createdDocumentInKnowledgeBank: () => (/* binding */ createdDocumentInKnowledgeBank),\n/* harmony export */ db: () => (/* binding */ db),\n/* harmony export */ deleteAllDocumentsInCollection: () => (/* binding */ deleteAllDocumentsInCollection),\n/* harmony export */ deleteInstance: () => (/* binding */ deleteInstance),\n/* harmony export */ deleteSuggestion: () => (/* binding */ deleteSuggestion),\n/* harmony export */ finalizeImprovementWork: () => (/* binding */ finalizeImprovementWork),\n/* harmony export */ getComments: () => (/* binding */ getComments),\n/* harmony export */ getDocumentsByImprovementWork: () => (/* binding */ getDocumentsByImprovementWork),\n/* harmony export */ getFilteredImprovementWorks: () => (/* binding */ getFilteredImprovementWorks),\n/* harmony export */ getHospitals: () => (/* binding */ getHospitals),\n/* harmony export */ getImprovementWorkOwner: () => (/* binding */ getImprovementWorkOwner),\n/* harmony export */ getImprovementWorkResponsible: () => (/* binding */ getImprovementWorkResponsible),\n/* harmony export */ getImprovementWorks: () => (/* binding */ getImprovementWorks),\n/* harmony export */ getImprovementWorksForUser: () => (/* binding */ getImprovementWorksForUser),\n/* harmony export */ getObject: () => (/* binding */ getObject),\n/* harmony export */ getObjectById: () => (/* binding */ getObjectById),\n/* harmony export */ getSuggestions: () => (/* binding */ getSuggestions),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ getUnits: () => (/* binding */ getUnits),\n/* harmony export */ getUsers: () => (/* binding */ getUsers),\n/* harmony export */ getUsersForImprovementWork: () => (/* binding */ getUsersForImprovementWork),\n/* harmony export */ startOrPauseImprovementWork: () => (/* binding */ startOrPauseImprovementWork),\n/* harmony export */ updateInstance: () => (/* binding */ updateInstance),\n/* harmony export */ upvoteComment: () => (/* binding */ upvoteComment),\n/* harmony export */ upvoteSuggestion: () => (/* binding */ upvoteSuggestion)\n/* harmony export */ });\n/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! firebase/app */ \"./node_modules/firebase/app/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! firebase/firestore */ \"./node_modules/firebase/firestore/dist/esm/index.esm.js\");\n/* harmony import */ var firebase_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! firebase/auth */ \"./node_modules/firebase/auth/dist/esm/index.esm.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n// C3 solutions databasen - ska användas för P&S\nvar firebaseConfig = {\n apiKey: \"AIzaSyDqkaVZMr11J4mfnR0auqoQilZyPfyD-x4\",\n authDomain: \"c3solutions-dc109.firebaseapp.com\",\n projectId: \"c3solutions-dc109\",\n storageBucket: \"c3solutions-dc109.appspot.com\",\n messagingSenderId: \"902143402555\",\n appId: \"1:902143402555:web:29213e81de0a0cba38b21e\"\n};\n//Backup databas - ska användas av R&D\n/* const firebaseConfig = {\n apiKey: \"AIzaSyAMfD8V0belL6GxbuoehL__6YTFZH4pyoc\",\n authDomain: \"company3-backup.firebaseapp.com\",\n projectId: \"company3-backup\",\n storageBucket: \"company3-backup.appspot.com\",\n messagingSenderId: \"820650717800\",\n appId: \"1:820650717800:web:7557c7734ed59d3f7281dd\"\n };\n */\n//Bens egna reserv #nödfall\n/* const firebaseConfig = {\n apiKey: \"AIzaSyBIsZq_yOsJljp1woIxndJO1GkW6soh-g4\",\n authDomain: \"company3-456bb.firebaseapp.com\",\n projectId: \"company3-456bb\",\n storageBucket: \"company3-456bb.appspot.com\",\n messagingSenderId: \"310033686522\",\n appId: \"1:310033686522:web:63198bb0db679c98ee4e43\",\n measurementId: \"G-PFLDQY00DB\"\n}; */\nvar app = (0,firebase_app__WEBPACK_IMPORTED_MODULE_0__.initializeApp)(firebaseConfig);\nvar auth = (0,firebase_auth__WEBPACK_IMPORTED_MODULE_2__.getAuth)();\nvar db = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getFirestore)(app);\nvar userCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\nvar unitCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\nvar improvementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\nvar taskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\nvar hospitalCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\nvar suggestionCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\nvar knowledgeDocumentCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"knowledgeDocument\");\nvar userImprovementWorkCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userImprovementWork\");\nvar userTaskCollection = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"userTask\");\n////////////////////////////////////////Setters///////////////////////////////////////////////////////////////////\n// Function to create user a new user in database\n// takes in userId, unitId, firstname, lastname, email and password as string\n// throws error if transaction failed\nfunction createUser(hsaId, unitId, firstName, lastName, email, manager, role, uid) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var userRef;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, hsaId);\n _context.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(userRef, {\n id: userRef.id,\n uid: uid,\n unitId: unitId,\n firstName: firstName,\n lastName: lastName,\n email: email,\n role: role,\n // TODO Replace with userImprovementWork collection\n improvementWorks: [],\n tasks: [],\n manager: manager\n });\n case 4:\n _context.next = 9;\n break;\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 6]]);\n }));\n}\nfunction createImprovementWork(id, name, currentStage, content,\n// Är detta description bör detta förtydligas. JA\nunitId, purpose,\n//Bör tas bort motsvaras av p2- mål med projektet\npatientRiskLevel, area, projectLeader,\n//Adding projectleader & members to the project\nmembers) {\n var resources = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : \"Inte definerat ännu\";\n var p1 = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : \"\";\n var p2 = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : \"\";\n var p3 = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : \"\";\n var p4 = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : \"\";\n var p5 = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : \"\";\n var p6 = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : \"\";\n var p7 = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : \"\";\n var g1 = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : \"\";\n var g2 = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : \"\";\n var g3 = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : \"\";\n var g4 = arguments.length > 21 && arguments[21] !== undefined ? arguments[21] : \"\";\n var g5 = arguments.length > 22 && arguments[22] !== undefined ? arguments[22] : \"\";\n var s1 = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : \"\";\n var s2 = arguments.length > 24 && arguments[24] !== undefined ? arguments[24] : \"\";\n var s3 = arguments.length > 25 && arguments[25] !== undefined ? arguments[25] : \"\";\n var a1 = arguments.length > 26 && arguments[26] !== undefined ? arguments[26] : \"\";\n var a2 = arguments.length > 27 && arguments[27] !== undefined ? arguments[27] : \"\";\n var a3 = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : \"\";\n var a4 = arguments.length > 29 && arguments[29] !== undefined ? arguments[29] : \"\";\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var improvementWorkData, improvementWorkRef, _improvementWorkRef;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n improvementWorkData = {\n name: name,\n lowerCaseName: name.toLowerCase(),\n currentStage: currentStage,\n content: content,\n purpose: purpose,\n dateStarted: new Date(),\n unitId: unitId,\n completed: false,\n ongoing: false,\n tasks: [],\n patientRiskLevel: patientRiskLevel,\n area: area,\n p1: p1,\n p2: p2,\n p3: p3,\n p4: p4,\n p5: p5,\n p6: p6,\n p7: p7,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n s1: s1,\n s2: s2,\n s3: s3,\n a1: a1,\n a2: a2,\n a3: a3,\n a4: a4,\n resources: resources\n };\n if (!id) {\n _context2.next = 8;\n break;\n }\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, id);\n _context2.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(improvementWorkRef, Object.assign({\n id: improvementWorkRef.id\n }, improvementWorkData));\n case 6:\n _context2.next = 12;\n break;\n case 8:\n _improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection);\n _context2.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_improvementWorkRef, improvementWorkData);\n case 11:\n id = _improvementWorkRef.id;\n case 12:\n //adding the projectleader and users to the project\n addMemberToImprovementWork(projectLeader, id, false, true);\n members.forEach(function (member) {\n addMemberToImprovementWork(member, id, false, false);\n });\n _context2.next = 20;\n break;\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](0);\n console.log(\"Error creating improvementWork: \", _context2.t0);\n throw _context2.t0;\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 16]]);\n }));\n}\nfunction addMemberToTask(userHsaId, taskId, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userTaskCollection);\n _context3.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n taskId: taskId,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context3.next = 10;\n break;\n case 6:\n _context3.prev = 6;\n _context3.t0 = _context3[\"catch\"](0);\n console.log(\"Error adding member to task: \", _context3.t0);\n throw _context3.t0;\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 6]]);\n }));\n}\nfunction addMemberToImprovementWork(userHsaId, improvementWorkId, isOwner, isResponsibleFor) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var relationRef;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n relationRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userImprovementWorkCollection);\n _context4.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(relationRef, {\n id: relationRef.id,\n userHsaId: userHsaId,\n improvementWorkId: improvementWorkId,\n isOwner: isOwner,\n isResponsibleFor: isResponsibleFor\n });\n case 4:\n _context4.next = 10;\n break;\n case 6:\n _context4.prev = 6;\n _context4.t0 = _context4[\"catch\"](0);\n console.log(\"Error adding member to improvementWork: \", _context4.t0);\n throw _context4.t0;\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 6]]);\n }));\n}\nfunction createTaskOnImprovementWork(taskId, improvementWorkId, name, deadlineDate, startDate, stage, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var taskData, taskRef, _taskRef;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n taskData = {\n improvementWorkId: improvementWorkId,\n name: name,\n deadlineDate: deadlineDate,\n startDate: startDate,\n stage: stage,\n content: content,\n completed: false\n };\n if (!taskId) {\n _context5.next = 8;\n break;\n }\n taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection, taskId);\n _context5.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(taskRef, Object.assign({\n id: taskRef.id\n }, taskData));\n case 6:\n _context5.next = 11;\n break;\n case 8:\n _taskRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(taskCollection);\n _context5.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_taskRef, taskData);\n case 11:\n _context5.next = 17;\n break;\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](0);\n console.log(\"Error creating task: \", _context5.t0);\n throw _context5.t0;\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 13]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction createdDocumentInKnowledgeBank(documentUrl, name, projectId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(knowledgeDocumentCollection);\n _context6.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n name: name,\n projectId: projectId\n });\n case 4:\n _context6.next = 10;\n break;\n case 6:\n _context6.prev = 6;\n _context6.t0 = _context6[\"catch\"](0);\n console.log(\"Error adding document: \", _context6.t0);\n throw _context6.t0;\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, null, [[0, 6]]);\n }));\n}\n//add a document to a improvementWork\n// takes in, document url, name and improvementWork id refering to as string\n// throws error if transaction failed\nfunction addDocumentToImprovementWork(documentUrl, name, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var improvementWorkRef, docRef;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n improvementWorkRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkCollection, improvementWorkId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(improvementWorkRef, \"documents\");\n _context7.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n id: docRef.id,\n documentUrl: documentUrl,\n timestamp: new Date(),\n name: name\n });\n case 5:\n _context7.next = 11;\n break;\n case 7:\n _context7.prev = 7;\n _context7.t0 = _context7[\"catch\"](0);\n console.log(\"Error adding document: \", _context7.t0);\n throw _context7.t0;\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, null, [[0, 7]]);\n }));\n}\nfunction getDocumentsByImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var q, querySnapshot, documents, _iterator, _step, _doc, documentId, documentDoc;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n console.log(\"Getting documents for improvementwork: \", improvementWorkId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(knowledgeDocumentCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"projectId\", \"==\", improvementWorkId));\n _context8.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context8.sent;\n // Fetch each related improvementWork document\n documents = [];\n _iterator = _createForOfIteratorHelper(querySnapshot.docs);\n _context8.prev = 8;\n _iterator.s();\n case 10:\n if ((_step = _iterator.n()).done) {\n _context8.next = 19;\n break;\n }\n _doc = _step.value;\n documentId = _doc.data().id;\n _context8.next = 15;\n return getObjectById(\"knowledgeDocument\", documentId);\n case 15:\n documentDoc = _context8.sent;\n documents.push(documentDoc);\n case 17:\n _context8.next = 10;\n break;\n case 19:\n _context8.next = 24;\n break;\n case 21:\n _context8.prev = 21;\n _context8.t0 = _context8[\"catch\"](8);\n _iterator.e(_context8.t0);\n case 24:\n _context8.prev = 24;\n _iterator.f();\n return _context8.finish(24);\n case 27:\n return _context8.abrupt(\"return\", documents);\n case 30:\n _context8.prev = 30;\n _context8.t1 = _context8[\"catch\"](0);\n console.error(\"Error getting documents for improvmentwork: \", _context8.t1);\n throw _context8.t1;\n case 34:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction createHospital(hospitalId,\n// should be auto?\nname) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var hospitalData, hospitalRef, _hospitalRef;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n _context9.prev = 0;\n hospitalData = {\n name: name,\n units: []\n };\n if (!hospitalId) {\n _context9.next = 8;\n break;\n }\n hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection, hospitalId);\n _context9.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(hospitalRef, Object.assign({\n id: hospitalRef.id\n }, hospitalData));\n case 6:\n _context9.next = 11;\n break;\n case 8:\n _hospitalRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(hospitalCollection);\n _context9.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_hospitalRef, hospitalData);\n case 11:\n _context9.next = 17;\n break;\n case 13:\n _context9.prev = 13;\n _context9.t0 = _context9[\"catch\"](0);\n console.log(\"Error creating hospital: \", _context9.t0);\n throw _context9.t0;\n case 17:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, null, [[0, 13]]);\n }));\n}\nfunction createUnit(unitId,\n//should be auto?\nhospitalId, name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n var unitData, unitRef, _unitRef;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n unitData = {\n hospitalId: hospitalId,\n name: name\n };\n if (!unitId) {\n _context10.next = 8;\n break;\n }\n unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection, unitId);\n _context10.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(unitRef, Object.assign({\n id: unitRef.id\n }, unitData));\n case 6:\n _context10.next = 11;\n break;\n case 8:\n _unitRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(unitCollection);\n _context10.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_unitRef, unitData);\n case 11:\n _context10.next = 17;\n break;\n case 13:\n _context10.prev = 13;\n _context10.t0 = _context10[\"catch\"](0);\n console.log(\"Error creating unit: \", _context10.t0);\n throw _context10.t0;\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, null, [[0, 13]]);\n }));\n}\nfunction createSuggestion(id, creatorHsaId, name, area, content, purpose, measure, ideas,\n//need: boolean,\nunitId, departmentId, isPublic) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var suggestionData, suggestionRef, _suggestionRef;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n _context11.prev = 0;\n suggestionData = {\n creatorHsaId: creatorHsaId,\n name: name,\n area: area,\n content: content,\n purpose: purpose,\n measure: measure,\n ideas: ideas,\n //need,\n unitId: unitId,\n departmentId: departmentId,\n \"public\": isPublic,\n upvotes: [],\n comments: [],\n dateCreated: new Date()\n };\n if (!id) {\n _context11.next = 8;\n break;\n }\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, id);\n _context11.next = 6;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(suggestionRef, Object.assign({\n id: suggestionRef.id\n }, suggestionData));\n case 6:\n _context11.next = 11;\n break;\n case 8:\n _suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection);\n _context11.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(_suggestionRef, suggestionData);\n case 11:\n _context11.next = 17;\n break;\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](0);\n console.log(\"Error creating suggestion: \", _context11.t0);\n throw _context11.t0;\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, null, [[0, 13]]);\n }));\n}\nfunction deleteSuggestion(suggestionId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context12.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(suggestionRef);\n case 4:\n _context12.next = 10;\n break;\n case 6:\n _context12.prev = 6;\n _context12.t0 = _context12[\"catch\"](0);\n console.log(\"Error deleting suggestion: \", _context12.t0);\n throw _context12.t0;\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, null, [[0, 6]]);\n }));\n}\n// Upvote a suggestion for a user\n// takes in suggestion id, user HSAid\n// returns error if transaction failed\nfunction upvoteSuggestion(suggestionId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var suggestionRef;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) switch (_context13.prev = _context13.next) {\n case 0:\n _context13.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId); // Atomically add a update to the upvote array field.\n _context13.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(suggestionRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 4:\n _context13.next = 10;\n break;\n case 6:\n _context13.prev = 6;\n _context13.t0 = _context13[\"catch\"](0);\n console.log(\"Error upvoting suggestion: \", _context13.t0);\n throw _context13.t0;\n case 10:\n case \"end\":\n return _context13.stop();\n }\n }, _callee13, null, [[0, 6]]);\n }));\n}\n//creates a comment\n// takes in commenters id, suggestion id and content as string\n// throws error if transaction failed\nfunction createComment(\n// change to subcollection\ncommenterHsaId, suggestionId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var suggestionRef, commentCollection, commentRef;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n _context14.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\");\n case 4:\n commentCollection = _context14.sent;\n _context14.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(commentCollection);\n case 7:\n commentRef = _context14.sent;\n _context14.next = 10;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(commentRef, {\n id: commentRef.id,\n commenterHsaId: commenterHsaId,\n content: content,\n dateCreated: new Date(),\n upvotes: []\n });\n case 10:\n _context14.next = 16;\n break;\n case 12:\n _context14.prev = 12;\n _context14.t0 = _context14[\"catch\"](0);\n console.log(\"Error creating comment: \", _context14.t0);\n throw _context14.t0;\n case 16:\n case \"end\":\n return _context14.stop();\n }\n }, _callee14, null, [[0, 12]]);\n }));\n}\n// Upvote a comment for a user\n// takes in suggestionId, commentId and userId as strings\n// return error if transaction failed\nfunction upvoteComment(suggestionId, commentId, userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {\n var suggestionRef, commentRef;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) switch (_context15.prev = _context15.next) {\n case 0:\n _context15.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionCollection, suggestionId);\n commentRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(suggestionRef, \"comment\", commentId); // Atomically add a update to the upvote array field.\n _context15.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(commentRef, {\n upvotes: (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.arrayUnion)(userHsaId)\n });\n case 5:\n _context15.next = 11;\n break;\n case 7:\n _context15.prev = 7;\n _context15.t0 = _context15[\"catch\"](0);\n console.log(\"Error upvoting comment: \", _context15.t0);\n throw _context15.t0;\n case 11:\n case \"end\":\n return _context15.stop();\n }\n }, _callee15, null, [[0, 7]]);\n }));\n}\n//add a note to a user\n// takes in userHsaId and content as string\n// throws error if transaction failed\nfunction addNoteToUser(userHsaId, content) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {\n var userRef, docRef;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) switch (_context16.prev = _context16.next) {\n case 0:\n _context16.prev = 0;\n userRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userCollection, userHsaId);\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(userRef, \"notes\");\n _context16.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.setDoc)(docRef, {\n content: content,\n dateCreated: new Date()\n });\n case 5:\n _context16.next = 11;\n break;\n case 7:\n _context16.prev = 7;\n _context16.t0 = _context16[\"catch\"](0);\n console.log(\"Error adding document: \", _context16.t0);\n throw _context16.t0;\n case 11:\n case \"end\":\n return _context16.stop();\n }\n }, _callee16, null, [[0, 7]]);\n }));\n}\n// export to setters to be able to use in other files\n\n//////////////////////////////////////////////GETTERS/////////////////////////////////////////////////////////////////////\n// Get any object\n// input is the database type as a string.\n// output is the whole collection of that type.\nfunction getObject(collectionPath) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {\n var collectionRef, querySnapshot, result;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) switch (_context17.prev = _context17.next) {\n case 0:\n _context17.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionPath);\n _context17.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n querySnapshot = _context17.sent;\n result = [];\n querySnapshot.forEach(function (doc) {\n result.push(doc.data());\n });\n return _context17.abrupt(\"return\", result);\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](0);\n console.error(\"Error getting collection data\", _context17.t0);\n throw _context17.t0;\n case 14:\n case \"end\":\n return _context17.stop();\n }\n }, _callee17, null, [[0, 10]]);\n }));\n}\n/**\n * Asynchronously retrieves a single document object from the specified collection path and document ID.\n * If the document does not exist, logs a warning and returns null.\n *\n * @param {string} collectionPath - The path to the collection in the database (\"improvementWork\", \"hospital\", \"suggestion\", \"task\", \"unit\", \"users\")\n * @param {string} documentId - The ID of the document to retrieve.\n * @returns {Promise<any|null>} A promise that resolves to the document object if found, or null if not.\n *\n * @throws Will throw an error if there is an issue during retrieval from the database.\n */\nfunction getObjectById(collectionPath, documentId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee18() {\n var docRef, docSnapshot;\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) switch (_context18.prev = _context18.next) {\n case 0:\n _context18.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, collectionPath, documentId);\n _context18.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDoc)(docRef);\n case 4:\n docSnapshot = _context18.sent;\n if (!docSnapshot.exists()) {\n _context18.next = 9;\n break;\n }\n return _context18.abrupt(\"return\", Object.assign({\n id: docSnapshot.id\n }, docSnapshot.data()));\n case 9:\n console.warn(\"No such document! \".concat(collectionPath, \"/\").concat(documentId));\n return _context18.abrupt(\"return\", null);\n case 11:\n _context18.next = 17;\n break;\n case 13:\n _context18.prev = 13;\n _context18.t0 = _context18[\"catch\"](0);\n console.error(\"Error getting object\", _context18.t0);\n throw _context18.t0;\n case 17:\n case \"end\":\n return _context18.stop();\n }\n }, _callee18, null, [[0, 13]]);\n }));\n}\n/**\n * Asynchronously retrieves comments for a given suggestion.\n *\n * @param {Object} params - The parameters for fetching comments.\n * @param {string} params.suggestionId - The ID of the suggestion to fetch comments for.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - The criterion to sort the comments by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Determines if the sorting should be in ascending order. Defaults to false (descending).\n * @returns {Promise<any[]>} A promise that resolves to an array of comment objects.\n *\n * @throws Will throw an error if the comments cannot be retrieved.\n */\nfunction getComments(_ref) {\n var suggestionId = _ref.suggestionId,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? \"dateCreated\" : _ref$sortBy,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {\n var suggestionRef, commentsQuery, commentsSnapshot, comments;\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n suggestionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, \"suggestionCollection\", suggestionId);\n commentsQuery = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(suggestionRef, \"comment\"), (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n _context19.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(commentsQuery);\n case 5:\n commentsSnapshot = _context19.sent;\n comments = [];\n commentsSnapshot.forEach(function (doc) {\n comments.push(doc.data());\n });\n return _context19.abrupt(\"return\", comments);\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](0);\n console.error(\"Error getting comments for suggestion: \", _context19.t0);\n throw _context19.t0;\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }, _callee19, null, [[0, 11]]);\n }));\n}\n//Filtering suggestions on unitId AND creatorHsaId\n//Sort suggestions on dateCreated OR upvotes\n/**\n * Asynchronously retrieves an array of suggestions from the database, with various filters and sorting options.\n *\n * @param {Object} params - The parameters for filtering and sorting suggestions.\n * @param {string} [params.id] - Optional ID to filter suggestions by a specific identifier.\n * @param {string} [params.creatorHsaId] - Optional HSA ID to filter suggestions by the creator's HSA ID.\n * @param {string} [params.unitId] - Optional unit ID to filter suggestions by a specific unit.\n * @param {\"dateCreated\"|\"upvotes\"} [params.sortBy=\"dateCreated\"] - Criterion to sort the suggestions by. Defaults to \"dateCreated\".\n * @param {boolean} [params.ascending=false] - Flag indicating if sorting should be ascending. Defaults to false (descending order).\n * @param {boolean} [params.isPublic=true] - Flag indicating whether to filter for public suggestions. Defaults to true.\n * @returns {Promise<any[]>} A promise that resolves to an array of suggestion objects.\n *\n * @throws Will throw an error if there is an issue retrieving suggestions.\n */\nfunction getSuggestions(_ref2) {\n var id = _ref2.id,\n creatorHsaId = _ref2.creatorHsaId,\n name = _ref2.name,\n unitId = _ref2.unitId,\n _ref2$sortBy = _ref2.sortBy,\n sortBy = _ref2$sortBy === void 0 ? \"dateCreated\" : _ref2$sortBy,\n _ref2$ascending = _ref2.ascending,\n ascending = _ref2$ascending === void 0 ? false : _ref2$ascending,\n _ref2$isPublic = _ref2.isPublic,\n isPublic = _ref2$isPublic === void 0 ? true : _ref2$isPublic;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {\n var collectionRef, constraints, q, querySnapshot, suggestions;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"suggestion\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (creatorHsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"creatorHsaId\", \"==\", creatorHsaId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n sortBy = \"name\";\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"public\", \"==\", isPublic));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(sortBy, ascending ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context20.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context20.sent;\n suggestions = [];\n querySnapshot.forEach(function (doc) {\n suggestions.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context20.abrupt(\"return\", suggestions);\n case 18:\n _context20.prev = 18;\n _context20.t0 = _context20[\"catch\"](0);\n console.log(\"Error retrieving suggestions by department: \", _context20.t0);\n throw _context20.t0;\n case 22:\n case \"end\":\n return _context20.stop();\n }\n }, _callee20, null, [[0, 18]]);\n }));\n}\n/**\n * Asynchronously searches for hospital documents in the database.\n * It can filter the results by the hospital's name, ID, or both.\n * If no parameters are provided, it retrieves all hospitals.\n *\n * @param {Object} params - An object containing the search parameters.\n * @param {string} [params.hospitalName] - Optional name of the hospital to filter the search.\n * @param {string} [params.hospitalId] - Optional unique identifier of the hospital to filter the search.\n * @returns {Promise<any[]>} A promise that resolves to an array of hospital objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getHospitals(_ref3) {\n var hospitalName = _ref3.hospitalName,\n hospitalId = _ref3.hospitalId;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {\n var collectionRef, constraints, q, querySnapshot, hospitals;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) switch (_context21.prev = _context21.next) {\n case 0:\n _context21.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"hospital\");\n constraints = [];\n if (hospitalName) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", hospitalName));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hospitalId));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context21.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context21.sent;\n hospitals = [];\n querySnapshot.forEach(function (doc) {\n hospitals.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context21.abrupt(\"return\", hospitals);\n case 14:\n _context21.prev = 14;\n _context21.t0 = _context21[\"catch\"](0);\n console.log(\"Error retrieving Hospitals\", _context21.t0);\n throw _context21.t0;\n case 18:\n case \"end\":\n return _context21.stop();\n }\n }, _callee21, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of improvement work documents based on various filter criteria.\n * It supports filtering by ID, Nolan stage, unit ID, completion status, ongoing status, and patient risk level.\n * It also supports sorting by the start date of the improvement work in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.id] - Optional identifier to filter the improvement works.\n * @param {string} [params.nolanStage] - Optional Nolan stage to filter the improvement works.\n * @param {string} [params.unitId] - Optional unit ID to filter the improvement works.\n * @param {boolean} [params.completed] - Optional flag to filter the improvement works by their completion status.\n * @param {boolean} [params.ongoing] - Optional flag to filter the improvement works by their ongoing status.\n * @param {string} [params.patientRiskLevel] - Optional patient risk level to filter the improvement works.\n * @param {boolean} [params.ascendingDates=false] - Optional flag for sorting by date in ascending order. Defaults to false.\n * @returns {Promise<any[]>} A promise that resolves to an array of improvement work objects that match the criteria.\n *\n * @throws Will throw an error if there is a problem retrieving the improvement works.\n */\nfunction getImprovementWorks(_ref4) {\n var id = _ref4.id,\n name = _ref4.name,\n nolanStage = _ref4.nolanStage,\n unitId = _ref4.unitId,\n completed = _ref4.completed,\n ongoing = _ref4.ongoing,\n patientRiskLevel = _ref4.patientRiskLevel,\n _ref4$ascendingDates = _ref4.ascendingDates,\n ascendingDates = _ref4$ascendingDates === void 0 ? false : _ref4$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee22() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) switch (_context22.prev = _context22.next) {\n case 0:\n _context22.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (id) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", id));\n }\n if (unitId) {\n console.log(\"inne i ifsatsen i databasen\");\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (nolanStage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"==\", nolanStage));\n }\n if (completed != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n if (ongoing !== undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"ongoing\", \"==\", ongoing));\n }\n if (patientRiskLevel) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"==\", patientRiskLevel));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \">=\", name.toLowerCase()));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"lowerCaseName\", \"<=\", name.toLowerCase() + \"~\"));\n } else {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context22.next = 13;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 13:\n querySnapshot = _context22.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context22.abrupt(\"return\", improvementWorks);\n case 19:\n _context22.prev = 19;\n _context22.t0 = _context22[\"catch\"](0);\n console.log(\"Error retrieving improvementWorks: \", _context22.t0);\n throw _context22.t0;\n case 23:\n case \"end\":\n return _context22.stop();\n }\n }, _callee22, null, [[0, 19]]);\n }));\n}\n// Gets improvementWorks where each field matches the union of elements in the input array for each fo the fields\nfunction getFilteredImprovementWorks(_ref5) {\n var patientRiskLevels = _ref5.patientRiskLevels,\n nolanStages = _ref5.nolanStages,\n units = _ref5.units,\n _ref5$ascendingDates = _ref5.ascendingDates,\n ascendingDates = _ref5$ascendingDates === void 0 ? false : _ref5$ascendingDates,\n completed = _ref5.completed;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee23() {\n var collectionRef, constraints, q, querySnapshot, improvementWorks;\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n console.log(\"Getting improvement works with the following constraints\", patientRiskLevels, nolanStages, units, ascendingDates);\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"improvementWork\");\n constraints = [];\n if (patientRiskLevels && patientRiskLevels.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"patientRiskLevel\", \"in\", patientRiskLevels));\n }\n if (nolanStages && nolanStages.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"currentStage\", \"in\", nolanStages));\n }\n if (units && units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"in\", units));\n }\n // If none of the array filters are provided, default to ordering by date.\n if (!patientRiskLevels.length && !nolanStages.length && !units.length) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"dateStarted\", ascendingDates ? \"asc\" : \"desc\"));\n }\n if (completed) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"completed\", \"==\", completed));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context23.next = 12;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 12:\n querySnapshot = _context23.sent;\n improvementWorks = [];\n querySnapshot.forEach(function (doc) {\n improvementWorks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context23.abrupt(\"return\", improvementWorks);\n case 18:\n _context23.prev = 18;\n _context23.t0 = _context23[\"catch\"](0);\n console.error(\"Error retrieving filtered improvementWorks: \", _context23.t0);\n throw _context23.t0;\n case 22:\n case \"end\":\n return _context23.stop();\n }\n }, _callee23, null, [[0, 18]]);\n }));\n}\nfunction getImprovementWorkOwner(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee24() {\n var constraints, q, querySnapshot, owner;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isOwner\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context24.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context24.sent;\n if (!querySnapshot.empty) {\n _context24.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no owner\");\n return _context24.abrupt(\"return\", null);\n case 13:\n owner = querySnapshot.docs[0].data().userHsaId;\n return _context24.abrupt(\"return\", owner);\n case 15:\n _context24.next = 20;\n break;\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](0);\n console.log(_context24.t0);\n case 20:\n case \"end\":\n return _context24.stop();\n }\n }, _callee24, null, [[0, 17]]);\n }));\n}\nfunction getImprovementWorkResponsible(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {\n var constraints, q, querySnapshot, responsibleId, responsible;\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) switch (_context25.prev = _context25.next) {\n case 0:\n _context25.prev = 0;\n constraints = [];\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"isResponsibleFor\", \"==\", true));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [userImprovementWorkCollection].concat(constraints));\n _context25.next = 7;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 7:\n querySnapshot = _context25.sent;\n if (!querySnapshot.empty) {\n _context25.next = 13;\n break;\n }\n console.log(\"Improvement work \", improvementWorkId, \" has no responsible\");\n return _context25.abrupt(\"return\", null);\n case 13:\n responsibleId = querySnapshot.docs[0].data().userHsaId;\n _context25.next = 16;\n return getObjectById(\"users\", responsibleId);\n case 16:\n responsible = _context25.sent;\n return _context25.abrupt(\"return\", responsible);\n case 18:\n _context25.next = 23;\n break;\n case 20:\n _context25.prev = 20;\n _context25.t0 = _context25[\"catch\"](0);\n console.log(_context25.t0);\n case 23:\n case \"end\":\n return _context25.stop();\n }\n }, _callee25, null, [[0, 20]]);\n }));\n}\n// TODO getUsersForTask!\n/**\n * Asynchronously retrieves user documents from the database based on various filter criteria.\n * It can filter by the Health Savings Account ID (hsaId), unit ID, and unique identifier (uid).\n * Additionally, it can sort the results by first name in either ascending or descending order.\n *\n * @param {Object} params - An object containing the filter and sorting parameters.\n * @param {string} [params.hsaId] - Optional HSA ID to filter the users.\n * @param {string} [params.unitId] - Optional unit ID to filter the users.\n * @param {boolean} [params.ascendingFirstNames=false] - Optional flag to sort by first names in ascending order. Defaults to false (descending order).\n * @param {string} [params.uid] - Optional unique identifier to filter the users.\n * @returns {Promise<any[]>} A promise that resolves to an array of user objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUsers(_ref6) {\n var hsaId = _ref6.hsaId,\n name = _ref6.name,\n unitId = _ref6.unitId,\n _ref6$ascendingFirstN = _ref6.ascendingFirstNames,\n ascendingFirstNames = _ref6$ascendingFirstN === void 0 ? false : _ref6$ascendingFirstN,\n uid = _ref6.uid;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {\n var collectionRef, constraints, q, querySnapshot, users;\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) switch (_context26.prev = _context26.next) {\n case 0:\n _context26.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"users\");\n constraints = [];\n if (hsaId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", hsaId));\n }\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"unitId\", \"==\", unitId));\n }\n if (uid) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"uid\", \"==\", uid));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"firstName\", ascendingFirstNames ? \"asc\" : \"desc\"));\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context26.next = 11;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 11:\n querySnapshot = _context26.sent;\n users = [];\n querySnapshot.forEach(function (doc) {\n users.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context26.abrupt(\"return\", users);\n case 17:\n _context26.prev = 17;\n _context26.t0 = _context26[\"catch\"](0);\n console.log(\"Error retrieving users by department: \", _context26.t0);\n throw _context26.t0;\n case 21:\n case \"end\":\n return _context26.stop();\n }\n }, _callee26, null, [[0, 17]]);\n }));\n}\n// TODO getTasksForUser!\n/**\n * Asynchronously retrieves an array of task documents from the database based on several filter and sorting criteria.\n * Filters include task ID, user ID and their responsibility status, and related improvement work ID.\n * Results can be sorted by date either in ascending or descending order.\n *\n * @param {Object} params - Parameters to filter and sort the task results.\n * @param {string} [params.taskId] - Optional task ID to filter the tasks.\n * @param {string} [params.userId] - Optional user ID to identify tasks related to a user.\n * @param {boolean} [params.isResponsibleFor] - Optional flag to filter tasks where the user is marked as responsible.\n * @param {string} [params.improvementWorkId] - Optional improvement work ID to filter tasks related to a specific improvement work.\n * @param {boolean} [params.ascendingDates=false] - Optional flag to sort tasks by date in ascending order; defaults to descending order.\n * @returns {Promise<any[]>} A promise that resolves to an array of task objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getTasks(_ref7) {\n var improvementWorkId = _ref7.improvementWorkId,\n stage = _ref7.stage,\n _ref7$ascendingDates = _ref7.ascendingDates,\n ascendingDates = _ref7$ascendingDates === void 0 ? false : _ref7$ascendingDates;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee27() {\n var collectionRef, constraints, q, querySnapshot, tasks;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) switch (_context27.prev = _context27.next) {\n case 0:\n _context27.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"task\");\n constraints = [];\n if (stage) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"stage\", \"==\", stage));\n }\n if (improvementWorkId != undefined) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"startDate\", ascendingDates ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context27.next = 8;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 8:\n querySnapshot = _context27.sent;\n tasks = [];\n querySnapshot.forEach(function (doc) {\n tasks.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context27.abrupt(\"return\", tasks);\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](0);\n console.log(\"Error retrieving task by department: \", _context27.t0);\n throw _context27.t0;\n case 18:\n case \"end\":\n return _context27.stop();\n }\n }, _callee27, null, [[0, 14]]);\n }));\n}\n/**\n * Asynchronously retrieves an array of unit documents from the database based on various filter criteria.\n * Filters can be applied based on unit ID, hospital ID, and unit name.\n * Additionally, results can be sorted by unit names in ascending or descending order.\n *\n * @param {Object} params - The parameters object containing filter and sorting options.\n * @param {string} [params.unitId] - Optional unit ID to filter the units.\n * @param {string} [params.hospitalId] - Optional hospital ID to filter units within a specific hospital.\n * @param {string} [params.name] - Optional name to filter units by a specific name.\n * @param {boolean} [params.ascendingUnitNames=false] - Optional flag to sort units by name in ascending order, defaults to descending.\n * @returns {Promise<any[]>} A promise that resolves to an array of unit objects that match the search criteria.\n *\n * @throws Will throw an error if there is an issue during the retrieval process.\n */\nfunction getUnits(_ref8) {\n var unitId = _ref8.unitId,\n hospitalId = _ref8.hospitalId,\n name = _ref8.name,\n _ref8$ascendingUnitNa = _ref8.ascendingUnitNames,\n ascendingUnitNames = _ref8$ascendingUnitNa === void 0 ? false : _ref8$ascendingUnitNa;\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee28() {\n var collectionRef, constraints, q, querySnapshot, units;\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, \"unit\");\n constraints = [];\n if (unitId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"id\", \"==\", unitId));\n }\n if (name) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"name\", \"==\", name));\n }\n if (hospitalId) {\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"hospitalId\", \"==\", hospitalId));\n constraints.push((0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.orderBy)(\"name\", ascendingUnitNames ? \"asc\" : \"desc\"));\n }\n q = firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query.apply(void 0, [collectionRef].concat(constraints));\n _context28.next = 9;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 9:\n querySnapshot = _context28.sent;\n units = [];\n querySnapshot.forEach(function (doc) {\n units.push(Object.assign({\n id: doc.id\n }, doc.data()));\n });\n return _context28.abrupt(\"return\", units);\n case 15:\n _context28.prev = 15;\n _context28.t0 = _context28[\"catch\"](0);\n console.log(\"Error retrieving units by hospitalId: \", _context28.t0);\n throw _context28.t0;\n case 19:\n case \"end\":\n return _context28.stop();\n }\n }, _callee28, null, [[0, 15]]);\n }));\n}\nfunction getImprovementWorksForUser(userHsaId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {\n var q, querySnapshot, improvementWorks, _iterator2, _step2, _doc2, improvementWorkId, improvementWorkDoc;\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) switch (_context29.prev = _context29.next) {\n case 0:\n _context29.prev = 0;\n console.log(\"Getting improvementworks for user: \", userHsaId);\n // Query the userImprovementWork collection for relations involving this user\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"userHsaId\", \"==\", userHsaId));\n _context29.next = 5;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 5:\n querySnapshot = _context29.sent;\n // Fetch each related improvementWork document\n improvementWorks = [];\n _iterator2 = _createForOfIteratorHelper(querySnapshot.docs);\n _context29.prev = 8;\n _iterator2.s();\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context29.next = 19;\n break;\n }\n _doc2 = _step2.value;\n improvementWorkId = _doc2.data().improvementWorkId;\n _context29.next = 15;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 15:\n improvementWorkDoc = _context29.sent;\n improvementWorks.push(improvementWorkDoc);\n case 17:\n _context29.next = 10;\n break;\n case 19:\n _context29.next = 24;\n break;\n case 21:\n _context29.prev = 21;\n _context29.t0 = _context29[\"catch\"](8);\n _iterator2.e(_context29.t0);\n case 24:\n _context29.prev = 24;\n _iterator2.f();\n return _context29.finish(24);\n case 27:\n return _context29.abrupt(\"return\", improvementWorks);\n case 30:\n _context29.prev = 30;\n _context29.t1 = _context29[\"catch\"](0);\n console.error(\"Error getting improvement works for user: \", _context29.t1);\n throw _context29.t1;\n case 34:\n case \"end\":\n return _context29.stop();\n }\n }, _callee29, null, [[0, 30], [8, 21, 24, 27]]);\n }));\n}\nfunction getUsersForImprovementWork(improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee30() {\n var q, querySnapshot, users, _iterator3, _step3, _doc3, userHsaId, userDoc;\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) switch (_context30.prev = _context30.next) {\n case 0:\n _context30.prev = 0;\n // Query the userImprovementWork collection for relations involving this improvementWork\n q = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.query)(userImprovementWorkCollection, (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.where)(\"improvementWorkId\", \"==\", improvementWorkId));\n _context30.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(q);\n case 4:\n querySnapshot = _context30.sent;\n // Fetch each related user document\n users = [];\n _iterator3 = _createForOfIteratorHelper(querySnapshot.docs);\n _context30.prev = 7;\n _iterator3.s();\n case 9:\n if ((_step3 = _iterator3.n()).done) {\n _context30.next = 18;\n break;\n }\n _doc3 = _step3.value;\n userHsaId = _doc3.data().userHsaId;\n _context30.next = 14;\n return getObjectById(\"users\", userHsaId);\n case 14:\n userDoc = _context30.sent;\n users.push(userDoc);\n case 16:\n _context30.next = 9;\n break;\n case 18:\n _context30.next = 23;\n break;\n case 20:\n _context30.prev = 20;\n _context30.t0 = _context30[\"catch\"](7);\n _iterator3.e(_context30.t0);\n case 23:\n _context30.prev = 23;\n _iterator3.f();\n return _context30.finish(23);\n case 26:\n return _context30.abrupt(\"return\", users);\n case 29:\n _context30.prev = 29;\n _context30.t1 = _context30[\"catch\"](0);\n console.error(\"Error getting users for improvementWork: \", _context30.t1);\n throw _context30.t1;\n case 33:\n case \"end\":\n return _context30.stop();\n }\n }, _callee30, null, [[0, 29], [7, 20, 23, 26]]);\n }));\n}\n// export getters to be able to use in other files\n\n////////////////////////////////////DELETING/////////////////////////////////////////////\n// delete an instance of a type\nfunction deleteInstance(docType, docId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee31() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) switch (_context31.prev = _context31.next) {\n case 0:\n _context31.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context31.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(docRef);\n case 4:\n console.log(\"\".concat(docType, \" deleted successfully.\"));\n _context31.next = 11;\n break;\n case 7:\n _context31.prev = 7;\n _context31.t0 = _context31[\"catch\"](0);\n console.error(\"Error deleting \".concat(docType, \":\"), _context31.t0);\n throw _context31.t0;\n case 11:\n case \"end\":\n return _context31.stop();\n }\n }, _callee31, null, [[0, 7]]);\n }));\n}\n// delete all instances of a type\nfunction deleteAllDocumentsInCollection(collectionName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var _this = this;\n var collectionRef, snapshot, deletePromises;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n collectionRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection)(db, collectionName);\n _context33.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.getDocs)(collectionRef);\n case 4:\n snapshot = _context33.sent;\n // Delete all documents in the collection\n deletePromises = snapshot.docs.map(function (doc) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.deleteDoc)(doc.ref);\n case 2:\n case \"end\":\n return _context32.stop();\n }\n }, _callee32);\n }));\n });\n _context33.next = 8;\n return Promise.all(deletePromises);\n case 8:\n console.log(\"All documents in the \".concat(collectionName, \" collection deleted successfully.\"));\n _context33.next = 15;\n break;\n case 11:\n _context33.prev = 11;\n _context33.t0 = _context33[\"catch\"](0);\n console.error(\"Error deleting all documents in \".concat(collectionName, \":\"), _context33.t0);\n throw _context33.t0;\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }, _callee33, null, [[0, 11]]);\n }));\n}\n////////////////////////////////////UPDATING/////////////////////////////////////////////\n// update a field in an instance\nfunction updateInstance(docType, docId, updates) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var docRef;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n docRef = (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.doc)(db, docType, docId);\n _context34.next = 4;\n return (0,firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.updateDoc)(docRef, updates);\n case 4:\n console.log(\"\".concat(docType, \" updated successfully.\"));\n _context34.next = 11;\n break;\n case 7:\n _context34.prev = 7;\n _context34.t0 = _context34[\"catch\"](0);\n console.error(\"Error updating \".concat(docType, \":\"), _context34.t0);\n throw _context34.t0;\n case 11:\n case \"end\":\n return _context34.stop();\n }\n }, _callee34, null, [[0, 7]]);\n }));\n}\n// changes the ongoing status of an improvement work. if ongoing it is paused, if if paused onging.\n// user must be a manager\nfunction startOrPauseImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee35() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context35.sent;\n _context35.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context35.sent;\n if (!(!user || !user.manager)) {\n _context35.next = 11;\n break;\n }\n throw new Error(\"User can't change improvementWork status\");\n case 11:\n if (!improvementWork) {\n _context35.next = 19;\n break;\n }\n update = {\n ongoing: !improvementWork.ongoing\n };\n _context35.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n return _context35.abrupt(\"return\", true);\n case 19:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n return _context35.abrupt(\"return\", false);\n case 21:\n _context35.next = 27;\n break;\n case 23:\n _context35.prev = 23;\n _context35.t0 = _context35[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context35.t0);\n throw _context35.t0;\n case 27:\n case \"end\":\n return _context35.stop();\n }\n }, _callee35, null, [[0, 23]]);\n }));\n}\nfunction changePatientRiskLevel(userId, improvementWorkId, patientRiskLevel) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var user, improvementWork, update;\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context36.sent;\n _context36.next = 6;\n return getObjectById(\"improvementWork\", improvementWorkId);\n case 6:\n improvementWork = _context36.sent;\n if (!(!user || !user.manager)) {\n _context36.next = 11;\n break;\n }\n throw new Error(\"User can't change patientRiskLevel in improvement work\");\n case 11:\n if (!improvementWork) {\n _context36.next = 18;\n break;\n }\n update = {\n patientRiskLevel: patientRiskLevel\n };\n _context36.next = 15;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 15:\n console.log(\"Improvement work \".concat(improvementWorkId, \" status updated.\"));\n _context36.next = 19;\n break;\n case 18:\n console.error(\"Improvement work with ID \".concat(improvementWorkId, \" not found.\"));\n case 19:\n _context36.next = 25;\n break;\n case 21:\n _context36.prev = 21;\n _context36.t0 = _context36[\"catch\"](0);\n console.error(\"Error starting/pausing improvement work:\", _context36.t0);\n throw _context36.t0;\n case 25:\n case \"end\":\n return _context36.stop();\n }\n }, _callee36, null, [[0, 21]]);\n }));\n}\n// finalizes the improvement work. ongoing is set to false.\n// user must be a manager\nfunction finalizeImprovementWork(userId, improvementWorkId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n var user, update;\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) switch (_context37.prev = _context37.next) {\n case 0:\n _context37.prev = 0;\n _context37.next = 3;\n return getObjectById(\"users\", userId);\n case 3:\n user = _context37.sent;\n if (!(!user || !user.manager)) {\n _context37.next = 8;\n break;\n }\n return _context37.abrupt(\"return\", false);\n case 8:\n update = {\n completed: true,\n ongoing: false\n };\n _context37.next = 11;\n return updateInstance(\"improvementWork\", improvementWorkId, update);\n case 11:\n return _context37.abrupt(\"return\", true);\n case 12:\n _context37.next = 17;\n break;\n case 14:\n _context37.prev = 14;\n _context37.t0 = _context37[\"catch\"](0);\n return _context37.abrupt(\"return\", false);\n case 17:\n case \"end\":\n return _context37.stop();\n }\n }, _callee37, null, [[0, 14]]);\n }));\n}\n\n//////////////////////////////// for later sprint\n//function add_upvotes\n//function add_notes\n//function add_intrested_users\n\n//# sourceURL=webpack://c3/./client/Database/database.js?"); /***/ }), diff --git a/client/homePage.ts b/client/homePage.ts index 49dbbc4d463443dcf8adcc0ab31fa241ac351978..2e6fa1ee2b5a987a7c28911f98c3b249251560f3 100644 --- a/client/homePage.ts +++ b/client/homePage.ts @@ -1,7 +1,7 @@ import { onAuthStateChanged } from "firebase/auth"; import { auth } from "./Database/database.js"; import { logout } from "./Database/authentication.js"; -import {} from "./currentProjects/currentProjects.js" +import {} from "./currentProjects/currentProjects.js"; import { loadProjectPageP, loadProjectPageA, @@ -17,6 +17,8 @@ import { getImprovementWorksForUser, } from "../client/Database/database.js"; +import { formatDate } from "./projectPage/projectPage.js"; + function logoutUser(event: Event) { event.preventDefault(); alert("logout"); @@ -24,8 +26,6 @@ function logoutUser(event: Event) { logout(); } - - interface Project { ID: string; name: string; @@ -186,7 +186,6 @@ function addListner(cardArray: { [key: number]: IdeaCard }, element: Element) { } else { console.error("Expanded div not found"); } - } } }); @@ -200,7 +199,7 @@ async function createNewIdeaCard( className: string, container: Element, ID: number, - suggestionID : string + suggestionID: string ) { let card = new IdeaCard( ID, @@ -258,7 +257,7 @@ export async function loadPage(listenersLoaded: boolean) { addListner(myIdeaCards, container); } - + const nameHeaderElement = document.getElementById("user-name-header"); let userFullName = user.firstName + " " + user.lastName; @@ -269,8 +268,6 @@ export async function loadPage(listenersLoaded: boolean) { const projectContainer = document.getElementById("project-container"); if (projectContainer) { await getProjects(projectContainer, listenersLoaded, user.id); - - } console.log("innan"); const departmentContainer = document.getElementById( @@ -294,34 +291,32 @@ export async function loadPage(listenersLoaded: boolean) { }); } -export async function addEventListener( - projectId: string, - card: projectCard -) { - - $("#homepage-"+projectId).off("click").on("click", async function () { - let tmp = await getObjectById("improvementWork", projectId); - const currentStage = tmp.currentStage; - if (currentStage === "Act") { - loadProjectPageA(projectId); - } else if (currentStage === "Study") { - loadProjectPageS(projectId); - } else if (currentStage === "Do") { - loadProjectPageG(projectId); - } else if (currentStage === "Plan") { - loadProjectPageP(projectId); - } else if (currentStage === "Finished") { - loadProjectPageP(projectId); - } - }); +export async function addEventListener(projectId: string, card: projectCard) { + $("#homepage-" + projectId) + .off("click") + .on("click", async function () { + let tmp = await getObjectById("improvementWork", projectId); + const currentStage = tmp.currentStage; + if (currentStage === "Act") { + loadProjectPageA(projectId); + } else if (currentStage === "Study") { + loadProjectPageS(projectId); + } else if (currentStage === "Do") { + loadProjectPageG(projectId); + } else if (currentStage === "Plan") { + loadProjectPageP(projectId); + } else if (currentStage === "Finished") { + loadProjectPageP(projectId); + } + }); } const patientRiskLevelMapping: { [key: string]: string } = { - Grön: "Green", - Blå: "Blue", - Gul: "Yellow", - Röd: "Red" -} + Grön: "Green", + Blå: "Blue", + Gul: "Yellow", + Röd: "Red", +}; const nolanStageMapping: { [key: string]: string } = { Planera: "Plan", @@ -436,7 +431,7 @@ async function improvementWorkInfo(departmentContainer: any, user: any) { async function getProjects( selectElement: HTMLElement, - listenersLoaded:boolean, + listenersLoaded: boolean, userHsaId: string ) { const data = await getImprovementWorksForUser(userHsaId); @@ -454,7 +449,8 @@ async function getProjects( department.name, title, description, - project.id + project.id, + project.dateStarted ); projectCards[i] = card; let cardHTML = card.generateHTML(); @@ -480,6 +476,7 @@ class projectCard { private description: string; private id: number; private projectId: string; + private dateStarted: any; constructor( id: number, @@ -487,7 +484,8 @@ class projectCard { department: string, title: string, description: string, - projectId: string + projectId: string, + dateStarted: string ) { this.name = name; this.department = department; @@ -495,6 +493,7 @@ class projectCard { this.description = description; this.id = id; this.projectId = projectId; + this.dateStarted = dateStarted; } showMoreInfo(blockId: string, thisTextId: string): void { @@ -526,17 +525,30 @@ class projectCard { generateHTML(): string { return `<div class="homeTotalExpandedOngoingWorkCard"> - <div style="cursor: pointer;" class="flex-container ongoingCard" id="homepage-${this.projectId}"> + <div style="cursor: pointer;" class="flex-container ongoingCard" id="homepage-${ + this.projectId + }"> <div class="ongoingCardImageContainer toSinglePage"> <div class = "flex-box ongoingCardImage toSinglePage" id="pinkFaded"></div> </div> <div class="div ongoingCardInfo toSinglePage"> <p class="toSinglePage" id="ongoingCardManager">${this.name}</p> - <p class="toSinglePage" id="ongoingCardDepartment">${this.department}</p> - <p class="toSinglePage" id="ongoingCardIdeaTitle">${this.title}</p> + <p class="toSinglePage" id="ongoingCardDepartment">${ + this.department + }</p> + <p class="toSinglePage" id="ongoingCardIdeaTitle">${ + this.title + }</p> + <p class="toSinglePage" id="ongoingCardStartDate" style="font-size: 12px;"> ${formatDate( + this.dateStarted + )}</p> </div> - <!--<button id="homepage-project-button-${this.projectId}" data-project-id="${this.id}" class="projectButton" role="button">Gå till projektsidan</button>--> + <!--<button id="homepage-project-button-${ + this.projectId + }" data-project-id="${ + this.id + }" class="projectButton" role="button">Gå till projektsidan</button>--> <div class="container ongoingSeeCardDetails toSinglePage"> @@ -545,7 +557,9 @@ class projectCard { </div> </div> </div> - <div class = "expandedOngoingWorkCard" id="homepage-expandedOngoingWorkCard${this.projectId}" style="display: none;"> + <div class = "expandedOngoingWorkCard" id="homepage-expandedOngoingWorkCard${ + this.projectId + }" style="display: none;"> <div class ="homepage-expandedTextOngoingWorkCard"> ${this.description} </div> @@ -555,4 +569,3 @@ class projectCard { } //<p id="homepage-ongoingSeeDetailsButton${this.projectId}" class = "moreInfoClass">> Mer information</p> - diff --git a/client/projectPage/projectPage.ts b/client/projectPage/projectPage.ts index 310dca0699ef0a6735869a1603e3f7936bbf27c9..6e6aea73958b0f606300a0c25c1a3a3f09ed529c 100644 --- a/client/projectPage/projectPage.ts +++ b/client/projectPage/projectPage.ts @@ -1,192 +1,398 @@ -import {getHospitals, getUsersForImprovementWork, getImprovementWorkResponsible,getUnits,getObjectById, updateInstance, getTasks, createTaskOnImprovementWork, deleteInstance,improvementWork} from "../Database/database.js"; -import { Timestamp} from "firebase/firestore"; -import {loadEmployees,assignedEmployer} from "../initiateForbattringsarbete/initiateIdea.js" +import { + getHospitals, + getUsersForImprovementWork, + getImprovementWorkResponsible, + getUnits, + getObjectById, + updateInstance, + getTasks, + createTaskOnImprovementWork, + deleteInstance, + improvementWork, +} from "../Database/database.js"; +import { Timestamp } from "firebase/firestore"; +import { + loadEmployees, + assignedEmployer, +} from "../initiateForbattringsarbete/initiateIdea.js"; -export function loadPage(projectId:string) { -} +export function loadPage(projectId: string) {} -export async function loadImprovementWorkTasks(projectId : string, stage: string, stageListClassName: string, taskListId: string, closeBtnId: string, taskModalId: string, taskTitleId: string, taskEndDateId: string, taskStartDateId: string, taskContentId: string, saveBtnId: string, deleteBtnId: string) { - //Event listener that closes task modal - const tasks = await getTasks({improvementWorkId : projectId, stage : stage}); - const taskListElement = $('#'+taskListId); - modalEventListeners(projectId, stage, stageListClassName, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, saveBtnId, deleteBtnId); - if(taskListElement) { - tasks.forEach(async(task) => { - const taskElement = $('<li>'); - const textSpan = $('<span>').text(task.name); - const checkbox = $('<input>').attr('type', 'checkbox'); - if(task.completed) { - checkbox.prop('checked', true); - } - taskElement.append(textSpan, checkbox); - taskElement.addClass(stageListClassName); - taskElement.on('click', function() { - let startDateFormatted = formatDate(task.startDate); - let endDateFormatted = formatDate(task.deadlineDate); - openTaskModal(task.name, task.content, task.id, startDateFormatted, endDateFormatted, taskModalId, taskTitleId, taskContentId, taskStartDateId, taskEndDateId); - }) - checkbox.on('click', (event) => { - event.stopPropagation(); - if (checkbox.prop('checked')) { - console.log('Checkbox is checked.'); - updateInstance('task', task.id, {completed: true}); - } else { - console.log('Checkbox is unchecked.'); - updateInstance('task', task.id, {completed: false}); - } - }); - - taskListElement.append(taskElement); // Stop if the container isn't found - }); - } else { - console.log("Task container not found"); - } +export async function loadImprovementWorkTasks( + projectId: string, + stage: string, + stageListClassName: string, + taskListId: string, + closeBtnId: string, + taskModalId: string, + taskTitleId: string, + taskEndDateId: string, + taskStartDateId: string, + taskContentId: string, + saveBtnId: string, + deleteBtnId: string +) { + //Event listener that closes task modal + const tasks = await getTasks({ improvementWorkId: projectId, stage: stage }); + const taskListElement = $("#" + taskListId); + modalEventListeners( + projectId, + stage, + stageListClassName, + closeBtnId, + taskModalId, + taskTitleId, + taskEndDateId, + taskStartDateId, + taskContentId, + taskListId, + saveBtnId, + deleteBtnId + ); + if (taskListElement) { + tasks.forEach(async (task) => { + const taskElement = $("<li>"); + const textSpan = $("<span>").text(task.name); + const checkbox = $("<input>").attr("type", "checkbox"); + if (task.completed) { + checkbox.prop("checked", true); + } + taskElement.append(textSpan, checkbox); + taskElement.addClass(stageListClassName); + taskElement.on("click", function () { + let startDateFormatted = formatDate(task.startDate); + let endDateFormatted = formatDate(task.deadlineDate); + openTaskModal( + task.name, + task.content, + task.id, + startDateFormatted, + endDateFormatted, + taskModalId, + taskTitleId, + taskContentId, + taskStartDateId, + taskEndDateId + ); + }); + checkbox.on("click", (event) => { + event.stopPropagation(); + if (checkbox.prop("checked")) { + console.log("Checkbox is checked."); + updateInstance("task", task.id, { completed: true }); + } else { + console.log("Checkbox is unchecked."); + updateInstance("task", task.id, { completed: false }); + } + }); + + taskListElement.append(taskElement); // Stop if the container isn't found + }); + } else { + console.log("Task container not found"); + } } //Opens modal for a task -export function openTaskModal(taskTitle : string, taskContent : string, taskId: string, taskStart: string, taskEnd: string, taskModalId: string, taskTitleId: string, taskContentId: string, taskStartDateId: string, taskEndDateId: string) { - const taskModal = document.getElementById(taskModalId); - const title = document.getElementById(taskTitleId) as HTMLInputElement; - const content = document.getElementById(taskContentId) as HTMLTextAreaElement; - const startDate = document.getElementById(taskStartDateId) as HTMLInputElement; - const endDate = document.getElementById(taskEndDateId) as HTMLInputElement; - if(taskModal) { - taskModal.setAttribute('data-task-id', taskId); - if(title && content && startDate && endDate) { - title.value = ""; - content.value = ""; - startDate.value = ""; - endDate.value = ""; - - if (taskTitle !== "" || taskContent !== "" || taskStart !== "" || taskEnd !== "") { - title.value = taskTitle; - content.value = taskContent; - startDate.value = taskStart; - endDate.value = taskEnd; - } - } - taskModal.style.display = 'block'; +export function openTaskModal( + taskTitle: string, + taskContent: string, + taskId: string, + taskStart: string, + taskEnd: string, + taskModalId: string, + taskTitleId: string, + taskContentId: string, + taskStartDateId: string, + taskEndDateId: string +) { + const taskModal = document.getElementById(taskModalId); + const title = document.getElementById(taskTitleId) as HTMLInputElement; + const content = document.getElementById(taskContentId) as HTMLTextAreaElement; + const startDate = document.getElementById( + taskStartDateId + ) as HTMLInputElement; + const endDate = document.getElementById(taskEndDateId) as HTMLInputElement; + if (taskModal) { + taskModal.setAttribute("data-task-id", taskId); + if (title && content && startDate && endDate) { + title.value = ""; + content.value = ""; + startDate.value = ""; + endDate.value = ""; + + if ( + taskTitle !== "" || + taskContent !== "" || + taskStart !== "" || + taskEnd !== "" + ) { + title.value = taskTitle; + content.value = taskContent; + startDate.value = taskStart; + endDate.value = taskEnd; + } } + taskModal.style.display = "block"; + } } //Adds eventlistener to close modal -function modalEventListeners(projectId: string, stage: string, stageListClassName: string, closeBtnId: string, taskModalId: string, taskTitleId: string, taskEndDateId: string, taskStartDateId: string, taskContentId: string, taskListId: string, saveBtnId: string, deleteBtnId: string) { - const closeButton = document.getElementById(closeBtnId); - const taskModal = document.getElementById(taskModalId); - const saveButton = document.getElementById(saveBtnId); - const deleteButton = document.getElementById(deleteBtnId); - if(closeButton && taskModal) { - const closeBtnListener = closeButton.hasAttribute('data-has-event-listener'); - if(!closeBtnListener) { - closeButton.setAttribute('data-has-event-listener', 'true'); - closeButton.addEventListener('click', () => { - taskModal.style.display = 'none'; //Closes modal - }); - } +function modalEventListeners( + projectId: string, + stage: string, + stageListClassName: string, + closeBtnId: string, + taskModalId: string, + taskTitleId: string, + taskEndDateId: string, + taskStartDateId: string, + taskContentId: string, + taskListId: string, + saveBtnId: string, + deleteBtnId: string +) { + const closeButton = document.getElementById(closeBtnId); + const taskModal = document.getElementById(taskModalId); + const saveButton = document.getElementById(saveBtnId); + const deleteButton = document.getElementById(deleteBtnId); + if (closeButton && taskModal) { + const closeBtnListener = closeButton.hasAttribute( + "data-has-event-listener" + ); + if (!closeBtnListener) { + closeButton.setAttribute("data-has-event-listener", "true"); + closeButton.addEventListener("click", () => { + taskModal.style.display = "none"; //Closes modal + }); } - - if(saveButton && taskModal) { - const saveBtnListener = saveButton.hasAttribute('data-has-event-listener'); - if(!saveBtnListener) { - saveButton.setAttribute('data-has-event-listener', 'true'); - saveButton.addEventListener('click', () => { - createNewOrSaveTask(projectId, stage, stageListClassName, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, taskListId, closeBtnId, saveBtnId, deleteBtnId); - taskModal.style.display = 'none'; //Closes modal - }); - } + } + + if (saveButton && taskModal) { + const saveBtnListener = saveButton.hasAttribute("data-has-event-listener"); + if (!saveBtnListener) { + saveButton.setAttribute("data-has-event-listener", "true"); + saveButton.addEventListener("click", () => { + createNewOrSaveTask( + projectId, + stage, + stageListClassName, + taskModalId, + taskTitleId, + taskEndDateId, + taskStartDateId, + taskContentId, + taskListId, + closeBtnId, + saveBtnId, + deleteBtnId + ); + taskModal.style.display = "none"; //Closes modal + }); } + } - if(deleteButton && taskModal) { - const deleteBtnListener = deleteButton.hasAttribute('data-has-event-listener'); - if(!deleteBtnListener) { - deleteButton.setAttribute('data-has-event-listener', 'true'); - deleteButton.addEventListener('click', () => { - deleteTask(projectId, stage, stageListClassName, taskModalId, taskListId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId, closeBtnId); - taskModal.style.display = 'none'; //Closes modal - }); - } + if (deleteButton && taskModal) { + const deleteBtnListener = deleteButton.hasAttribute( + "data-has-event-listener" + ); + if (!deleteBtnListener) { + deleteButton.setAttribute("data-has-event-listener", "true"); + deleteButton.addEventListener("click", () => { + deleteTask( + projectId, + stage, + stageListClassName, + taskModalId, + taskListId, + taskTitleId, + taskEndDateId, + taskStartDateId, + taskContentId, + saveBtnId, + deleteBtnId, + closeBtnId + ); + taskModal.style.display = "none"; //Closes modal + }); } + } } -async function createNewOrSaveTask(projectId: string, stage: string, stageListClassName: string, taskModalId: string, taskTitleId: string, taskEndDateId: string, taskStartDateId: string, taskContentId: string, taskListId: string, closeBtnId: string, saveBtnId: string, deleteBtnId: string) { - //title: string, deadline : Date, startDate: Date, stage: string, content: string - const modalElement = document.getElementById(taskModalId) as HTMLElement; - const titleElement = document.getElementById(taskTitleId) as HTMLInputElement; - const deadlineElement = document.getElementById(taskEndDateId) as HTMLInputElement; - const startElement = document.getElementById(taskStartDateId) as HTMLInputElement; - const contentElement = document.getElementById(taskContentId) as HTMLTextAreaElement; - const taskId = modalElement.getAttribute('data-task-id'); - - if(taskId === '') { //Creates new task - const improvementWork = await getObjectById('improvementWork', projectId); - if(titleElement && contentElement && deadlineElement && startElement) { - if(titleElement.value !== "", deadlineElement.value !== "", startElement.value !== "", contentElement.value !== "") { - let deadline: Date = new Date(deadlineElement.value); //Date string to timestamp - let startDate: Date = new Date(startElement.value); //Date string to timestamp - createTaskOnImprovementWork(null, projectId, titleElement.value, deadline, startDate, improvementWork.currentStage, contentElement.value); - const listElement = document.getElementById(taskListId) as HTMLUListElement; - listElement.innerHTML = ""; - loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId); - } else { - console.log("All input fields for the task where not filled in") - } - } else { - console.log("All input element where not found") - } - } else { //Updates old task - if(taskId) { - let deadline: Date = new Date(deadlineElement.value); //Date string to timestamp - let startDate: Date = new Date(startElement.value); //Date string to timestamp - await updateInstance('task', taskId, {name: titleElement.value, deadlineDate: deadline, startDate: startDate, content: contentElement.value}); - const listElement = document.getElementById(taskListId) as HTMLUListElement; - listElement.innerHTML = ""; - loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId); - //loadPage(projectId); //Loads tasks since updated ASK for help - } - } -} +async function createNewOrSaveTask( + projectId: string, + stage: string, + stageListClassName: string, + taskModalId: string, + taskTitleId: string, + taskEndDateId: string, + taskStartDateId: string, + taskContentId: string, + taskListId: string, + closeBtnId: string, + saveBtnId: string, + deleteBtnId: string +) { + //title: string, deadline : Date, startDate: Date, stage: string, content: string + const modalElement = document.getElementById(taskModalId) as HTMLElement; + const titleElement = document.getElementById(taskTitleId) as HTMLInputElement; + const deadlineElement = document.getElementById( + taskEndDateId + ) as HTMLInputElement; + const startElement = document.getElementById( + taskStartDateId + ) as HTMLInputElement; + const contentElement = document.getElementById( + taskContentId + ) as HTMLTextAreaElement; + const taskId = modalElement.getAttribute("data-task-id"); -async function deleteTask(projectId: string, stage: string, stageListClassName: string, taskModalId: string, taskListId: string, taskTitleId: string, taskEndDateId: string, taskStartDateId: string, taskContentId: string, saveBtnId: string, deleteBtnId: string, closeBtnId: string) { - const modalElement = document.getElementById(taskModalId) as HTMLElement; - const taskId = modalElement.getAttribute('data-task-id'); - if(taskId) { - await deleteInstance('task', taskId); - const listElement = document.getElementById(taskListId) as HTMLUListElement; + if (taskId === "") { + //Creates new task + const improvementWork = await getObjectById("improvementWork", projectId); + if (titleElement && contentElement && deadlineElement && startElement) { + if ( + (titleElement.value !== "", + deadlineElement.value !== "", + startElement.value !== "", + contentElement.value !== "") + ) { + let deadline: Date = new Date(deadlineElement.value); //Date string to timestamp + let startDate: Date = new Date(startElement.value); //Date string to timestamp + createTaskOnImprovementWork( + null, + projectId, + titleElement.value, + deadline, + startDate, + improvementWork.currentStage, + contentElement.value + ); + const listElement = document.getElementById( + taskListId + ) as HTMLUListElement; listElement.innerHTML = ""; - loadImprovementWorkTasks(projectId, stage, stageListClassName, taskListId, closeBtnId, taskModalId, taskTitleId, taskEndDateId, taskStartDateId, taskContentId, saveBtnId, deleteBtnId); + loadImprovementWorkTasks( + projectId, + stage, + stageListClassName, + taskListId, + closeBtnId, + taskModalId, + taskTitleId, + taskEndDateId, + taskStartDateId, + taskContentId, + saveBtnId, + deleteBtnId + ); + } else { + console.log("All input fields for the task where not filled in"); + } + } else { + console.log("All input element where not found"); + } + } else { + //Updates old task + if (taskId) { + let deadline: Date = new Date(deadlineElement.value); //Date string to timestamp + let startDate: Date = new Date(startElement.value); //Date string to timestamp + await updateInstance("task", taskId, { + name: titleElement.value, + deadlineDate: deadline, + startDate: startDate, + content: contentElement.value, + }); + const listElement = document.getElementById( + taskListId + ) as HTMLUListElement; + listElement.innerHTML = ""; + loadImprovementWorkTasks( + projectId, + stage, + stageListClassName, + taskListId, + closeBtnId, + taskModalId, + taskTitleId, + taskEndDateId, + taskStartDateId, + taskContentId, + saveBtnId, + deleteBtnId + ); + //loadPage(projectId); //Loads tasks since updated ASK for help } + } } -function formatDate(timeStamp: Timestamp): string { - const date = timeStamp.toDate(); - const day: string = String(date.getDate()).toString(); - const month: string = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based - const year: string = String(date.getFullYear()).toString(); - - if(parseInt(month, 10) < 10 && parseInt(day, 10) > 9) { - return `${year}-0${month}-${day}`; - } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) { - return `${year}-${month}-0${day}`; - } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) { - return `${year}-0${month}-0${day}`; - } else { - return `${year}-${month}-${day}`; - } +async function deleteTask( + projectId: string, + stage: string, + stageListClassName: string, + taskModalId: string, + taskListId: string, + taskTitleId: string, + taskEndDateId: string, + taskStartDateId: string, + taskContentId: string, + saveBtnId: string, + deleteBtnId: string, + closeBtnId: string +) { + const modalElement = document.getElementById(taskModalId) as HTMLElement; + const taskId = modalElement.getAttribute("data-task-id"); + if (taskId) { + await deleteInstance("task", taskId); + const listElement = document.getElementById(taskListId) as HTMLUListElement; + listElement.innerHTML = ""; + loadImprovementWorkTasks( + projectId, + stage, + stageListClassName, + taskListId, + closeBtnId, + taskModalId, + taskTitleId, + taskEndDateId, + taskStartDateId, + taskContentId, + saveBtnId, + deleteBtnId + ); + } } -function timestamptoDate (timestamp: any): Date | null { - if (timestamp instanceof Timestamp) { - const date = timestamp.toDate(); - return date; - } else { - console.error('Invalid timestamp type.'); - return null; - } + +export function formatDate(timeStamp: Timestamp): string { + const date = timeStamp.toDate(); + const day: string = String(date.getDate()).toString(); + const month: string = String(date.getMonth() + 1).toString(); // Adding 1 because months are zero-based + const year: string = String(date.getFullYear()).toString(); + + if (parseInt(month, 10) < 10 && parseInt(day, 10) > 9) { + return `${year}-0${month}-${day}`; + } else if (parseInt(month, 10) > 9 && parseInt(day, 10) < 10) { + return `${year}-${month}-0${day}`; + } else if (parseInt(month, 10) < 10 && parseInt(day, 10) < 10) { + return `${year}-0${month}-0${day}`; + } else { + return `${year}-${month}-${day}`; + } +} +function timestamptoDate(timestamp: any): Date | null { + if (timestamp instanceof Timestamp) { + const date = timestamp.toDate(); + return date; + } else { + console.error("Invalid timestamp type."); + return null; + } } -function getDaysMonthYear(startDate : Date | null): string { - const currentTime = new Date(); - if (startDate){ - const millisecondsDifference = currentTime.getTime() - startDate.getTime(); +function getDaysMonthYear(startDate: Date | null): string { + const currentTime = new Date(); + if (startDate) { + const millisecondsDifference = currentTime.getTime() - startDate.getTime(); // Convert milliseconds to seconds const secondsDifference = millisecondsDifference / 1000; @@ -195,110 +401,131 @@ function getDaysMonthYear(startDate : Date | null): string { const years = Math.floor(secondsDifference / (365.25 * 24 * 60 * 60)); const remainingSeconds = secondsDifference % (365.25 * 24 * 60 * 60); const months = Math.floor(remainingSeconds / (30 * 24 * 60 * 60)); // Assuming 30 days per month - const days = Math.floor((remainingSeconds % (30 * 24 * 60 * 60)) / (24 * 60 * 60)); + const days = Math.floor( + (remainingSeconds % (30 * 24 * 60 * 60)) / (24 * 60 * 60) + ); return ` ${years} år, ${months} månader, ${days} dagar.`; - } else { - return "Det finns inget startdatum registrerat" - } - - + } else { + return "Det finns inget startdatum registrerat"; + } } -export async function loadProjectHeader(improvementWork: improvementWork) -{ // Show loading indicators - const loadingIndicators = document.querySelectorAll(".loadingIndicator"); - loadingIndicators.forEach(indicator => { - (indicator as HTMLParagraphElement).style.display = 'block'; - }); +export async function loadProjectHeader(improvementWork: improvementWork) { + // Show loading indicators + const loadingIndicators = document.querySelectorAll(".loadingIndicator"); + loadingIndicators.forEach((indicator) => { + (indicator as HTMLParagraphElement).style.display = "block"; + }); - const titleP = document.getElementById("title") as HTMLTextAreaElement; - titleP.textContent = improvementWork.name; - - const aAreaElement = document.getElementById("pArea") as HTMLParagraphElement; - aAreaElement.textContent = improvementWork.area; - - const resources = document.getElementById("pResources") as HTMLTextAreaElement; - resources.textContent = improvementWork.resources; - - const time = document.getElementById("pTime") as HTMLTextAreaElement; - let formatdateStarted = timestamptoDate(improvementWork.dateStarted); - time.textContent = getDaysMonthYear(formatdateStarted); - - - - const aUnitArray = await getUnits({ unitId: improvementWork.unitId }); - //this code loads the current members - const projectLeader = await getImprovementWorkResponsible(improvementWork.id!); - const members = await getUsersForImprovementWork(improvementWork.id!); - - const aProjectLeader = document.getElementById("pLeader") as HTMLParagraphElement; - aProjectLeader.textContent = projectLeader.firstName +" "+ projectLeader.lastName + " ("+projectLeader.email +")"; - - const aMembers = document.getElementById("pMembers") as HTMLParagraphElement; - members.forEach(async member => { - aMembers.textContent = aMembers.textContent + member.firstName +" "+member.lastName + ", "; - }) - //stop loding current members - if (aUnitArray.length === 0) { - console.log("Error loading the units.") - } - - const aUnit = aUnitArray[0]; - const aUnitElement = document.getElementById("pUnit") as HTMLParagraphElement; - aUnitElement.textContent = aUnit.name; - - const hospitalArray = await getHospitals({ hospitalId: aUnit.hospitalId }); - if (hospitalArray.length === 0) { - console.log("Error loading the hospitals.") - } - const aHospital = hospitalArray[0]; - const aHospitalElement = document.getElementById("pHospital") as HTMLParagraphElement; - aHospitalElement.textContent = aHospital.name; - - // Close loading indicators - loadingIndicators.forEach(indicator => { - (indicator as HTMLParagraphElement).style.display = 'none'; - }); + const titleP = document.getElementById("title") as HTMLTextAreaElement; + titleP.textContent = improvementWork.name; + + const aAreaElement = document.getElementById("pArea") as HTMLParagraphElement; + aAreaElement.textContent = improvementWork.area; + + const resources = document.getElementById( + "pResources" + ) as HTMLTextAreaElement; + resources.textContent = improvementWork.resources; + + const time = document.getElementById("pTime") as HTMLTextAreaElement; + let formatdateStarted = timestamptoDate(improvementWork.dateStarted); + time.textContent = getDaysMonthYear(formatdateStarted); + + const aUnitArray = await getUnits({ unitId: improvementWork.unitId }); + //this code loads the current members + const projectLeader = await getImprovementWorkResponsible( + improvementWork.id! + ); + const members = await getUsersForImprovementWork(improvementWork.id!); + + const aProjectLeader = document.getElementById( + "pLeader" + ) as HTMLParagraphElement; + aProjectLeader.textContent = + projectLeader.firstName + + " " + + projectLeader.lastName + + " (" + + projectLeader.email + + ")"; + + const aMembers = document.getElementById("pMembers") as HTMLParagraphElement; + members.forEach(async (member) => { + aMembers.textContent = + aMembers.textContent + member.firstName + " " + member.lastName + ", "; + }); + //stop loding current members + if (aUnitArray.length === 0) { + console.log("Error loading the units."); + } + + const aUnit = aUnitArray[0]; + const aUnitElement = document.getElementById("pUnit") as HTMLParagraphElement; + aUnitElement.textContent = aUnit.name; + + const hospitalArray = await getHospitals({ hospitalId: aUnit.hospitalId }); + if (hospitalArray.length === 0) { + console.log("Error loading the hospitals."); + } + const aHospital = hospitalArray[0]; + const aHospitalElement = document.getElementById( + "pHospital" + ) as HTMLParagraphElement; + aHospitalElement.textContent = aHospital.name; + + // Close loading indicators + loadingIndicators.forEach((indicator) => { + (indicator as HTMLParagraphElement).style.display = "none"; + }); } -function getDivWithIdFromHTML(path: string, id: string): Promise<HTMLElement | null> { - // Returning a Promise - return fetch(path) - .then(response => response.text()) - .then(html => { - // Create a temporary container - const container = document.createElement('div'); - container.innerHTML = html; - - // Get the modal content from the container - const element = container.querySelector(id) as HTMLElement; - return element; - }) - .catch(error => { - console.error('Error loading modal content:', error); - return null; - }); +function getDivWithIdFromHTML( + path: string, + id: string +): Promise<HTMLElement | null> { + // Returning a Promise + return fetch(path) + .then((response) => response.text()) + .then((html) => { + // Create a temporary container + const container = document.createElement("div"); + container.innerHTML = html; + + // Get the modal content from the container + const element = container.querySelector(id) as HTMLElement; + return element; + }) + .catch((error) => { + console.error("Error loading modal content:", error); + return null; + }); } export async function loadMemberModal() { - const modalContent = await getDivWithIdFromHTML('../projectPage/addMemberModal.html', '#addMemberModal'); + const modalContent = await getDivWithIdFromHTML( + "../projectPage/addMemberModal.html", + "#addMemberModal" + ); - if (modalContent) { - $('#container-fluid').append(modalContent); - ($(modalContent) as any).modal('show'); - } + if (modalContent) { + $("#container-fluid").append(modalContent); + ($(modalContent) as any).modal("show"); + } -/* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees'); + /* const selectMemberContent = await getDivWithIdFromHTML('../initiateForbattringsarbete/initiateIdea.html', '#selectEmployees'); if (selectMemberContent) { $('#modal-body').append(selectMemberContent); } */ - const selectEmployeeChangeSection = document.querySelector('#selectEmployee') as HTMLButtonElement; + const selectEmployeeChangeSection = document.querySelector( + "#selectEmployee" + ) as HTMLButtonElement; - if (selectEmployeeChangeSection) { - selectEmployeeChangeSection.addEventListener('change', assignedEmployer); - } else { - console.error("Error: 'changebutton' not found"); - } + if (selectEmployeeChangeSection) { + selectEmployeeChangeSection.addEventListener("change", assignedEmployer); + } else { + console.error("Error: 'changebutton' not found"); + } - loadEmployees(); + loadEmployees(); }